@wizishop/angular-components 0.0.236 → 0.0.239
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular-components.scss +521 -295
- package/bundles/wizishop-angular-components.umd.js +3 -1
- package/bundles/wizishop-angular-components.umd.js.map +1 -1
- package/bundles/wizishop-angular-components.umd.min.js +1 -1
- package/bundles/wizishop-angular-components.umd.min.js.map +1 -1
- package/esm2015/lib/components/button/button.component.js +4 -2
- package/fesm2015/wizishop-angular-components.js +3 -1
- package/fesm2015/wizishop-angular-components.js.map +1 -1
- package/lib/components/button/button.component.d.ts +1 -0
- package/package.json +1 -1
- package/wizishop-angular-components-0.0.239.tgz +0 -0
- package/wizishop-angular-components.metadata.json +1 -1
- package/wizishop-angular-components-0.0.236.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/angular-components/src/lib/components/loader/loader.component.ts","../../../../projects/angular-components/src/lib/components/inputs/input-search/input-search.component.ts","../../../../projects/angular-components/src/lib/directives/abstract-debounce/abstract-debounce.directive.ts","../../../../projects/angular-components/src/lib/directives/abstract-debounce/debounce-keyup.directive.ts","../../../../projects/angular-components/src/lib/services/dom.service.ts","../../../../projects/angular-components/src/lib/directives/auto-hide/auto-hide.directive.ts","../../../../projects/angular-components/src/lib/directives/zindex-toggle/zindex-toggle.directive.ts","../../../../projects/angular-components/src/lib/directives/ng-var.directive.ts","../../../../projects/angular-components/src/lib/directives/keyboard-events/keypress-enter.directive.ts","../../../../projects/angular-components/src/lib/directives/shared-directives.module.ts","../../../../projects/angular-components/src/lib/animations/in-out/in-out-y.animation.ts","../../../../projects/angular-components/src/lib/components/checkbox/checkbox.component.ts","../../../../projects/angular-components/src/lib/components/table/shared/filters-table.service.ts","../../../../projects/angular-components/src/lib/utils/html-container.class.ts","../../../../projects/angular-components/src/lib/components/table/shared/table-checkbox-id.service.ts","../../../../projects/angular-components/src/lib/components/table/directives/checkBoxRow.directive.ts","../../../../projects/angular-components/src/lib/services/multiple-selection.service.ts","../../../../projects/angular-components/src/lib/components/table/directives/raw.directive.ts","../../../../projects/angular-components/src/lib/components/table/table.component.ts","../../../../projects/angular-components/src/lib/components/tag/tag.component.ts","../../../../projects/angular-components/src/lib/components/tab/tab.component.ts","../../../../projects/angular-components/src/lib/components/button/button.component.ts","../../../../projects/angular-components/src/lib/components/info/info.component.ts","../../../../projects/angular-components/src/lib/components/settings/settings.component.ts","../../../../projects/angular-components/src/lib/components/delete/delete.component.ts","../../../../projects/angular-components/src/lib/components/dropdown/dropdown.component.ts","../../../../projects/angular-components/src/lib/components/image/image.component.ts","../../../../projects/angular-components/src/lib/components/back/back.component.ts","../../../../projects/angular-components/src/lib/components/separator/separator.component.ts","../../../../projects/angular-components/src/lib/components/logo/logo.component.ts","../../../../projects/angular-components/src/lib/components/radio/radio.component.ts","../../../../projects/angular-components/src/lib/components/state/state.component.ts","../../../../projects/angular-components/src/lib/animations/in-out/in-out-x.animation.ts","../../../../projects/angular-components/src/lib/components/label/label.component.ts","../../../../projects/angular-components/src/lib/components/calendar/calendar.component.ts","../../../../projects/angular-components/src/lib/components/edit-in-place/edit-in-place.component.ts","../../../../projects/angular-components/src/lib/components/text-area/text-area.component.ts","../../../../projects/angular-components/src/lib/components/hn/h1/h1.component.ts","../../../../projects/angular-components/src/lib/components/hn/h2/h2.component.ts","../../../../projects/angular-components/src/lib/components/hn/h3/h3.component.ts","../../../../projects/angular-components/src/lib/components/header-page/header-page.component.ts","../../../../projects/angular-components/src/lib/components/inputs/input/input.component.ts","../../../../projects/angular-components/src/lib/components/link/link.component.ts","../../../../projects/angular-components/src/lib/components/progress-bar/progress-bar.component.ts","../../../../projects/angular-components/src/lib/components/switch/switch.component.ts","../../../../projects/angular-components/src/lib/components/tooltip/tooltip.component.ts","../../../../projects/angular-components/src/lib/components/alert/alert.component.ts","../../../../projects/angular-components/src/lib/components/text/text.component.ts","../../../../projects/angular-components/src/lib/components/pagination/pipes/is-last-page.pipe.ts","../../../../projects/angular-components/src/lib/components/pagination/pagination.component.ts","../../../../projects/angular-components/src/lib/components/pagination/pipes/array-pages.pipe.ts","../../../../projects/angular-components/src/lib/components/pagination/pipes/custom-text.pipe.ts","../../../../projects/angular-components/src/lib/components/pagination/pagination.module.ts","../../../../projects/angular-components/src/lib/components/checkbox/checkbox.module.ts","../../../../projects/angular-components/src/lib/components/progress-bar/progress-bar.module.ts","../../../../projects/angular-components/src/lib/components/tooltip/tooltip.module.ts","../../../../projects/angular-components/src/lib/components/inputs/input/input.module.ts","../../../../projects/angular-components/src/lib/components/inputs/input-search/input-search.module.ts","../../../../projects/angular-components/src/lib/components/loader/loader.module.ts","../../../../projects/angular-components/src/lib/components/table/directives/column.directive.ts","../../../../projects/angular-components/src/lib/components/table/directives/columnHeader.directive.ts","../../../../projects/angular-components/src/lib/components/table/table.module.ts","../../../../projects/angular-components/src/lib/components/upload/upload.component.ts","../../../../projects/angular-components/src/lib/components/hn/h4/h4.component.ts","../../../../projects/angular-components/src/lib/components/selects/select-in-text/select-in-text.component.ts","../../../../projects/angular-components/src/lib/components/selects/select/select.component.ts","../../../../projects/angular-components/src/lib/components/multiple-search/multiple-search.component.ts","../../../../projects/angular-components/src/lib/components/multiple-search-plus/multiple-search-plus.component.ts","../../../../projects/angular-components/src/lib/components/inputs/input-with-select/input-with-select.component.ts","../../../../projects/angular-components/src/lib/components/popin/popin.component.ts","../../../../projects/angular-components/src/lib/components/free-popin/free-popin.component.ts","../../../../projects/angular-components/src/lib/components/block/block.component.ts","../../../../projects/angular-components/src/lib/components/wrapper/wrapper.component.ts","../../../../projects/angular-components/src/lib/components/filters/filters.component.ts","../../../../projects/angular-components/src/lib/components/wrapper-blocs/wrapper-blocs.component.ts","../../../../projects/angular-components/src/lib/components/snackbar/snackbar.component.ts","../../../../projects/angular-components/src/lib/components/alert-popup/alert-popup.component.ts","../../../../projects/angular-components/src/lib/components/alert-popup/alert-popup.service.ts","../../../../projects/angular-components/src/lib/components/alert-popup/alert-popup-module.ts","../../../../projects/angular-components/src/lib/components/search/search.component.ts","../../../../projects/angular-components/src/lib/components/selected-list/selected-list.component.ts","../../../../projects/angular-components/src/lib/components/tree/tree.component.ts","../../../../projects/angular-components/src/lib/pipes/tree/format-object-to-recursif-tree.pipe.ts","../../../../projects/angular-components/src/lib/pipes/tree/format-object-to-simple-tree.pipe.ts","../../../../projects/angular-components/src/lib/pipes/select/select-filters.pipe.ts","../../../../projects/angular-components/src/lib/pipes/selected-list/are-all-options-selected.pipe.ts","../../../../projects/angular-components/src/lib/pipes/shared-pipes.module.ts","../../../../projects/angular-components/src/lib/components/tree/tree.module.ts","../../../../projects/angular-components/src/lib/components/wrapper-sidebar/wrapper-sidebar.component.ts","../../../../projects/angular-components/src/lib/components/breadcrumbs/breadcrumbs.component.ts","../../../../projects/angular-components/src/lib/components/card-price/card-price.component.ts","../../../../projects/angular-components/src/lib/components/token-check/token-check.component.ts","../../../../projects/angular-components/src/lib/components/block-with-checkbox/block-with-checkbox.component.ts","../../../../projects/angular-components/src/lib/components/confirm-delete/confirm-delete.component.ts","../../../../projects/angular-components/src/lib/components/mosaic/mosaic.component.ts","../../../../projects/angular-components/src/lib/components/content-with-buttons/content-with-buttons.component.ts","../../../../projects/angular-components/src/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.ts","../../../../projects/angular-components/src/lib/components/draganddrop-list/draganddrop-list.component.ts","../../../../projects/angular-components/src/lib/components/shared-components.module.ts","../../../../projects/angular-components/src/lib/wizi-components.module.ts","../../../../projects/angular-components/src/lib/components/table/shared/table-filters-group.model.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","__read","n","r","e","ar","push","error","__spread","arguments","concat","text","small","Component","args","selector","template","encapsulation","ViewEncapsulation","None","Input","InputSearchComponent","placeholder","smallPadding","innerValue","changeDebounced","EventEmitter","onTouchedCallback","onChangeCallback","defineProperty","v","writeValue","registerOnChange","fn","registerOnTouched","handleDebouncedKeyUp","emit","providers","provide","NG_VALUE_ACCESSOR","useExisting","multi","Output","AbstractDebounceDirective","debounceTime","onEventChange","emitEvent$","Subject","subscription$","ngOnInit","_this","pipe","takeUntil","distinctUntilChanged","tap","emitChange","subscribe","ngOnDestroy","complete","Directive","DebounceKeyupDirective","_super","onKeyUp","event","preventDefault","HostListener","DomService","componentFactoryResolver","appRef","injector","overlayContainer","documentEventSource","documentEventDone","asObservable","eventInitialisation","documentScrollSource","documentScrollDone","documentEvent","setDocumentEventListener","document","body","addEventListener","target","documentScroll","setScrollEventListener","window","onscroll","attachComponentPortal","component","componentRef","resolveComponentFactory","attachView","hostView","getContainerElement","appendChild","_getComponentRootNode","rootNodes","Injectable","providedIn","ComponentFactoryResolver","ApplicationRef","Injector","OverlayContainer","AutoHideDirective","_elementRef","domService","forceOn","clickOutside","ngAfterViewInit","subscription","targetElement","clickedInside","nativeElement","contains","classNameFromElement","getAttribute","includes","triggerElement","needToClose_1","forEach","unsubscribe","ElementRef","ZindexToggleDirective","currentElement","renderer","isActived","switchToggle","addClass","parentElement","parentNode","removeClass","Renderer2","VarDirective","templateRef","vcRef","context","$implicit","ngVar","hasView","createEmbeddedView","TemplateRef","ViewContainerRef","KeypressEnterDirective","KEYPRESS_ENTER","keypressEnter","onKeypress","key","directives","NgModule","imports","CommonModule","FormsModule","declarations","exports","inOutY","trigger","transition","style","transform","height","opacity","animate","CheckboxComponent","label","alone","checked","hasInput","inputPlaceholder","id","whiteSpace","disabled","_onChange","_onTouched","setDisabledState","isDisabled","obj","onChange","onTextInputChange","_onTextInputChange","inputClick","$event","stopPropagation","animations","FiltersTableService","filterRoutingBuilder","filterGroups","Map","sortSubject","getTableFilterGroup","dataTableName","has","get","dataTableFilters","sort","undefined","order","searchValue","totalItems","itemsPerPage","currentPage","filterGroup","group","tableFiltersValuesChange$","ReplaySubject","tableFiltersValuesDebouncedChange$","set","emitSortChange","sortName","getSortChangeListner","setPaginationFilters","setValues","setInitialPaginationFiltersIfNotExist","parseInt","NwbFilterRoutingBuilder","HtmlContainer","hostElement","attached","attach","Error","disposeFn","detachView","destroy","dispose","TableCheckboxIdService","nbCheckboxInstances","tableInstance","currentTableInstance","getUniqueId","CheckBoxRow","currentRow","resolver","tableCheckboxIdService","checkBoxValueChange","_value","checkboxComponentRef","setCheckBoxValue","createCheckBoxComponent","handleChecboxInputs","handleCheckboxOutputs","checkBoxElement","createElement","className","insertBefore","firstChild","htmlContainer","instance","checkBoxId","name","checkBoxName","checkBoxValue","_toggleCheckbox","getElement","querySelector","isActive","setActive","Inject","DOCUMENT","MultiSelectionService","activeChanges","activeChanges$","handle","items","toggleSingleItem","first","clicks$","getListeners","merge","apply","_b","isShiftKeyPressed","isShift","index","lastIndex","start","end","_c","Math","min","max","last","itemsSelection","toArray","slice","isBeginnerItemActive","current","getSelection","removeAllRanges","indexInRange","from","x","map","item","fromEvent","shiftKey","getActives","filter","_a","TableRow","currentCell","applyCustomStylesOnCell","TableComponent","filtersTableService","multiSelectionService","tableFiltersChange","checkbox","toggleAllCheckBox","checkBoxSelectionChange","disableSearch","disablePagniation","isLoading","headerCheckBoxId","tableRoutingName","tableFilters","_tableFiltersGroup","setTablesFilters","filterGroupChangeSub","valuesChange$","selectionIndexRawCheckChange","checkBoxRows","changes","console","log","tableRows","onToggleAllCheckBox","searchChange","pageChange","ContentChildren","TagComponent","hasClose","big","isOpen","isOpenChange","toggleTag","TabComponent","underline","button","tabs","indexChange","valueChanged","ButtonComponent","extraClasses","icon","textcolor","widthAuto","contentHorizontalPosition","iconFontSize","hasLoader","whiteSpaceNowrap","animation","animationRight","animationText","confirmDelete","confirmDeleteText","noPadding","tooltipPosition","confirmDeletePosition","click","isLoadingChange","_isLoading","interval","waitForConfirmDelete","buttonMaxWidth","buttonWidth","buttonMaxWidthDelete","buttonWidthDelete","currentLoading","toggleLoading","takeWhile","time","floor","random","addMaxWidth","resetMaxWidth","addMaxWidthDelete","resetMaxWidthDelete","onButtonClick","setTimeout","calculWidth","offsetWidth","calculWidthDelete","ViewChild","DropdownComponent","hasIcons","userInput","onUserInput","itemIndex","dashed","RadioComponent","changeInput","valueInput","state","inOutX","zIndex","width","LabelComponent","deleted","onDeleteLabel","deleteLabel","CalendarComponent","type","options","displayMode","showHeader","showFooter","showButton","position","dateSelected","Date","typeDate","noMargin","selected","changeData","open","startLabel","endLabel","changeDate","currentDate","startDate","setHours","getTime","currentHours","currentMinutes","triggerChange","endDate","openCalendar","splitLabel","split","getHours","getMinutes","verifKeyup","events","replace","verifHours","dateData","verifMinutes","addHours","removeHours","addMinutes","removeMinutes","WzEditInPlaceComponent","config","customChange","objectKeys","keys","editing","Function","onTouched","currentValue","currency","parseValueToNumber","separator","parseValueToSeparator","_setValue","ngAfterViewChecked","input","focus","selectTextUponClick","firstEdit","preValue","select","initialized","startEditing","checkAndRemoveCurrency","edit","onSubmit","handler","data","hasChanged","success","isNaN","parseFloat","indexComma","indexOf","indexDot","parsedValue","toFixed","ngOnChanges","selectOption","innerText","closeSelect","TextAreaComponent","textInfo","textError","size","dynamicSize","progressBar","toString","substr","onBlur","H1Component","annotation","withImg","center","H2Component","H3Component","grey","HeaderPageComponent","InputComponent","isNumber","withoutBlock","medium","boldLabel","disableMargin","textPrepend","textAppend","keyPreventDefault","showTooltip","textTooltip","iconTooltip","urlTooltip","linkTooltip","padding","indication","indicationLeft","checkNumberValue","onFocusOut","keyPress","LinkComponent","renderer2","fontSize","_link","link","setAttributesLink","linkComponent","href","setAttribute","removeAttribute","ProgressBarComponent","translateService","valueLength","progressBarClass","spanNumber","is-danger","is-success","is-warning","progressBarSpanPosition","maxSize","progressBarGetMaxSize","progressBarGetTextInfo","instant","TranslateService","SwitchComponent","textState","textStateEnable","textStateDisable","showInput","danger","switchChange","changeValue","triggerInput","TooltipComponent","tooltipText","tooltipLink","tooltipUrl","tooltipIcon","AlertComponent","warning","alert","iconClass","TextComponent","PagniationIsLastPage","ceil","Pipe","PaginationComponent","_pagination","pagination","decrementPage","incrementPage","onGotoPageChange","PagniationArrayTotalPages","arrayLength","Number","PagniationText","currentItemsLow","currentItemsHigh","low","high","total","pipes","TranslateModule","SharedDirectives","TooltipModule","ProgressBarModule","InputModule","LoaderComponent","TableColumn","centerCellValue","flexGrow","columnSize","centerCell","TableColumnHeader","_headerName","filterRouting","onSortChange","subscriptions","setHeaderName","tableName","handleSortRouting","handleSortBasic","renderHeaderColumn","filters","filterSort","resetSortIcon","sortChangeSub","contentHeader","getCurrentSortIcon","createHeaderContent","handleSort","innerHTML","headerName","getInitialSortIcon","listen","newIcon","newSort","newOrder","currentIcon","emitEvents","initialSortIcon","exec","groups","InputSearchModule","LoaderModule","CheckboxModule","PaginationModule","UploadComponent","image","labelImage","triggerEvent","H4Component","SelectInTextComponent","alwaysOpen","openCategories","currentLabel","currentLabelIcon","maxWidth","selectValue","clickOnCallToAction","_items","setInitialValues","itemSelected","getItemSelected","setCurrentItem","onClose","customTB","onSelectItem","unselectAll","onClickCallToAction","callToAction","SelectComponent","search","openUp","searchValueChange","indexItemSelected","onTouch","setIndexItemSelected","_calllToAction","setIndexItemSelectedById","onSearcheValueChange","showCategories","searchElement","findIndex","selectItem","MultipleSearchComponent","query","openSelect","showError","setPlaceholder","setLabel","setQuery","setIcon","setSearchValueToQuery","code","encodeURI","submitForm","location","displayError","queries","hideError","openFuncSelect","resetAllVue","MultipleSearchPlusComponent","openSearchResults","optionsChange","setCurrentOption","setSearchValue","currentOption","onToggleSelect","closeSearchResults","searchResults","addResult","alreadyExist","table","elem","action","deleteResult","indexItem","splice","InputWithSelectComponent","showSelect","inputValueChange","selectValueChange","active","onClickItem","unActiveAll","optionSelected","onCloseSelect","onChangeInputValue","PopinComponent","visible","visibleChange","response","background","firstOpen","validatePopin","closePopin","refusePopin","FreePopinComponent","disableCloseOutside","titleBlock","titleExternalBlock","sticky","simple","noFullHeight","titleUppercase","borderRadius","removePadding","stretchHeight","WrapperComponent","FiltersComponent","labelRestart","filterChange","filterActiveIndex","activeFilter","resetFilter","WrapperBlocsComponent","sidebar","SnackbarComponent","manualClose","duration","timer","validate","closeSnackbar","refuse","bottom","AlertPopupComponent","afterClosedPopup","dismiss","afterClosed","host","class","AlertPopupService","getComponentRef","assign","entryComponents","SearchComponent","disableSearchIn","emptyResult","searchKeyUp","searchFocusOut","triggerOptions","element","toLowerCase","sendEventFocusOut","findInOption","SelectedListComponent","enableSelectAll","selectedItemsIndex","selectedItemsAll","unSelectedItemsAll","selectedOptionIndex","onSelectAll","option","onUnSelectAll","areAllOptionsChecked","some","TreeComponent","treeDepth","FormatObjectToRecursifTreePipe","childrenProperties","objectList","object","recursiveFormatObjectToRecursifTree","childrenProperty","hasTreeChildren","isArray","treeChildren","FormatObjectToSimpleTreePipe","labelProperties","recursiveFormatObjectToSimpleTree","property","treeLabel","SelectFiltersPipe","filterName","RegExp","test","AreAllOptionsSelectedPipe","pure","exportedPipes","SharedPipes","WrapperSidebarComponent","reverse","hideBackground","stickySidebar","BreadcrumbsComponent","noResponsive","CardPriceComponent","btnTextcolor","extraClassesSelected","hideButton","confirm","cancel","triggerClick","removePackageTrigger","TokenCheckComponent","BlockWithCheckboxComponent","checkboxAction","nameRadio","isFirst","randomLabelName","eventSelected","removeFirstClass","querySelectorAll","classList","remove","ConfirmDeleteComponent","backgroundColor","hideText","eventCancel","eventConfirm","responsiveControl","onResize","container","MosaicComponent","imagesList","numberOfColumn","importImageSrc","loadMoreImages","trackColumn","trackImage","src","isNumberOfColumnChange","previousValue","generateColumns","previousList","currentList","isNewListSmaller","resetColumns","isPreviousListExisting","newImagesToDisplay","columns","separateImagesIntoColumns","existingColumns","concatColumns","numberOfImagePerColumn","chunk","oldColumns","newColumns","oldColumn","columnIndex","onBottomReached","onImportImage","changeDetection","ChangeDetectionStrategy","OnPush","ContentWithButtonsComponent","iconCopy","iconTranslate","tooltipCopy","tooltipTranslate","count","countCharacterLabel","countWordsLabel","copyAction","reportAction","translateAction","countIsReady","content","getElementById","countCharacter","trim","join","countWords","eventCopy","eventTranslate","eventReport","WrapperMultipleBlockComponent","DraganddropListComponent","showTriggerSave","itemsChange","drop","moveItemInArray","previousIndex","currentIndex","values","delete","saveFieldEnd","addField","saveNewField","components","InfoComponent","SettingsComponent","DeleteComponent","ImageComponent","BackComponent","SeparatorComponent","LogoComponent","StateComponent","BlockComponent","exportsFromModule","NwbAllModule","forChild","ReactiveFormsModule","CdkTableModule","TagInputModule","DragDropModule","TableModule","PerfectScrollbarModule","AlertPopupModule","RouterModule","AutosizeModule","NgScrollbarModule","NgScrollbarReachedModule","TreeModule","SharedComponentsModule","TableFiltersGroup","resetToFirstPage","NwbFilterGroup"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-loader',\n templateUrl: './loader.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class LoaderComponent {\n @Input()\n text = '';\n @Input()\n small = false;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-input-search',\n templateUrl: './input-search.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputSearchComponent, multi: true }]\n})\nexport class InputSearchComponent implements ControlValueAccessor {\n @Input()\n placeholder: string = '';\n\n @Input()\n smallPadding:boolean = false; // todo Try to be more flexible like changing type : export type PaddingConfig = \"default\" | \"small\" | \"big\" | \"no-padding\";\n\n @Input()\n id: string;\n private innerValue: any = '';\n @Output() changeDebounced = new EventEmitter<any>(); // debounced\n\n private onTouchedCallback: () => void = () => {};\n private onChangeCallback: (_: any) => void = () => {};\n\n get value(): any {\n return this.innerValue;\n }\n\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n }\n }\n\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n public handleDebouncedKeyUp(): void {\n this.changeDebounced.emit(this.value);\n }\n}\n","import { Directive, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\n\n@Directive({\n selector: 'AbstractDebounceDirective'\n})\nexport class AbstractDebounceDirective implements OnDestroy {\n @Input()\n public debounceTime: number;\n\n @Output()\n public onEventChange: EventEmitter<any>;\n\n protected emitEvent$: Subject<any>;\n protected subscription$: Subject<void>;\n\n constructor() {\n this.debounceTime = 500;\n this.onEventChange = new EventEmitter<any>();\n this.emitEvent$ = new Subject<any>();\n this.subscription$ = new Subject<void>();\n }\n\n ngOnInit(): void {\n this.emitEvent$\n .pipe(\n takeUntil(this.subscription$),\n debounceTime(this.debounceTime),\n distinctUntilChanged(),\n tap(value => this.emitChange(value))\n )\n .subscribe();\n }\n\n public emitChange(value: any): void {\n this.onEventChange.emit(value);\n }\n\n ngOnDestroy(): void {\n this.subscription$.next();\n this.subscription$.complete();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { AbstractDebounceDirective } from './abstract-debounce.directive';\n@Directive({\n selector: 'input[debounceKeyUp]'\n})\nexport class DebounceKeyupDirective extends AbstractDebounceDirective {\n constructor() {\n super();\n }\n\n @HostListener('keyup', ['$event'])\n public onKeyUp(event: any): void {\n event.preventDefault();\n this.emitEvent$.next(event);\n }\n}\n","import {ApplicationRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Injectable, Injector} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {ComponentType, OverlayContainer} from '@angular/cdk/overlay';\nimport {PortalInjector} from '@angular/cdk/portal';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DomService {\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector,\n private overlayContainer: OverlayContainer\n ) {}\n private documentEventSource = new Subject();\n private documentEventDone = this.documentEventSource.asObservable();\n private eventInitialisation = true;\n\n private documentScrollSource = new Subject();\n private documentScrollDone = this.documentScrollSource.asObservable();\n\n documentEvent() {\n this.setDocumentEventListener();\n return this.documentEventDone;\n }\n\n setDocumentEventListener() {\n if (!this.eventInitialisation) {\n return;\n }\n this.eventInitialisation = false;\n document.body.addEventListener('click', event => {\n this.documentEventSource.next(event.target);\n });\n }\n\n documentScroll() {\n return this.documentScrollDone;\n }\n\n setScrollEventListener() {\n window.onscroll = () => {\n this.documentScrollSource.next(window);\n };\n }\n attachComponentPortal<T>(component: ComponentType<T>, injector?: PortalInjector): ComponentRef<T> {\n const componentRef: ComponentRef<T> = this.componentFactoryResolver\n .resolveComponentFactory(component)\n .create(injector ? injector : this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n\n this.overlayContainer.getContainerElement().appendChild(this._getComponentRootNode(componentRef));\n\n return componentRef;\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n","import {Directive, ElementRef, Input, Output, EventEmitter, AfterViewInit, OnInit} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { DomService } from '../../services/dom.service';\n\n@Directive({\n selector: '[wzAutoHide]'\n})\nexport class AutoHideDirective implements AfterViewInit {\n @Input() triggerElement: string;\n @Input() forceOn: Array<string> = null;\n subscription: Subscription;\n\n constructor(private _elementRef: ElementRef, private domService: DomService) {}\n\n @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\n\n ngAfterViewInit(): void {\n this.subscription = this.domService.documentEvent().subscribe((targetElement: Element) => {\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n const classNameFromElement = targetElement.getAttribute('class');\n\n if (!clickedInside && (classNameFromElement === null || !classNameFromElement.includes(this.triggerElement))) {\n\n this.clickOutside.emit(null);\n }\n\n if (this.forceOn != null && classNameFromElement !== null) {\n let needToClose = true;\n this.forceOn.forEach(v => {\n if (!classNameFromElement.includes(v)) {\n needToClose = false;\n }\n });\n if (needToClose) {\n this.clickOutside.emit(null);\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe()\n }\n}\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2} from '@angular/core';\n\n@Directive({\n selector: '[zIndexToggle]'\n})\nexport class ZindexToggleDirective implements OnInit, OnDestroy {\n isActived = false;\n\n @Output()\n public onEventChange: EventEmitter<any>;\n\n @Input('zIndexToggle')\n set isActive(value: boolean) {\n this.isActived = value;\n this.switchToggle();\n }\n get isActive(): boolean {\n return this.isActived;\n }\n\n constructor(private currentElement: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n }\n\n switchToggle() {\n if (this.isActived) {\n this.renderer.addClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n this.renderer.addClass(this.currentElement.nativeElement.parentElement.parentNode.parentNode, 'zindexToggle');\n } else {\n this.renderer.removeClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n this.renderer.removeClass(this.currentElement.nativeElement.parentElement.parentNode.parentNode, 'zindexToggle');\n }\n }\n\n ngOnDestroy(): void {\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\n\n@Directive({\n selector: '[ngVar]',\n})\nexport class VarDirective {\n // https://stackoverflow.com/questions/38582293/how-to-declare-a-variable-in-a-template-in-angular\n\n @Input()\n set ngVar(context: unknown) {\n this.context.$implicit = this.context.ngVar = context;\n\n if (!this.hasView) {\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\n this.hasView = true;\n }\n }\n\n private context: {\n $implicit: unknown;\n ngVar: unknown;\n } = {\n $implicit: null,\n ngVar: null,\n };\n\n private hasView: boolean = false;\n\n constructor(\n private templateRef: TemplateRef<any>,\n private vcRef: ViewContainerRef\n ) {}\n}","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({ selector: '[keypressEnter]' })\nexport class KeypressEnterDirective {\n\n private KEYPRESS_ENTER = \"Enter\";\n\n @HostListener('keypress', ['$event']) onKeypress(event: KeyboardEvent){\n if (event.key === this.KEYPRESS_ENTER) {\n this.keypressEnter.next(true);\n }\n }\n\n @Output() keypressEnter = new EventEmitter<boolean>();\n\n constructor() {}\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { DebounceKeyupDirective } from './abstract-debounce/debounce-keyup.directive';\nimport { AbstractDebounceDirective } from './abstract-debounce/abstract-debounce.directive';\nimport { AutoHideDirective } from './auto-hide/auto-hide.directive';\nimport {ZindexToggleDirective} from './zindex-toggle/zindex-toggle.directive';\nimport { VarDirective } from './ng-var.directive';\nimport { KeypressEnterDirective } from './keyboard-events/keypress-enter.directive';\n\nconst directives = [DebounceKeyupDirective, AbstractDebounceDirective, AutoHideDirective, ZindexToggleDirective, VarDirective, KeypressEnterDirective];\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: directives,\n exports: directives\n})\nexport class SharedDirectives {}\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const inOutY = trigger('inOutYAnimation', [\n transition(':enter', [\n style({ transform: 'scaleY(0)', height: 0, opacity: 0 }),\n animate('.3s ease-out', style({ transform: 'scaleY(1)', height: 'auto', opacity: 1 }))\n ]),\n transition(':leave', [\n style({ transform: 'scaleY(1)', height: 'auto', opacity: 1 }),\n animate('.3s ease-in', style({ transform: 'scaleY(0)', height: 0, opacity: 0 }))\n ])\n]);\n","import { Component, ElementRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { inOutY } from '../../animations/in-out/in-out-y.animation';\n\n@Component({\n selector: 'wac-checkbox',\n templateUrl: './checkbox.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }],\n animations: [inOutY]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input()\n label = '';\n @Input()\n value: any;\n @Input()\n type: string;\n @Input()\n alone = false;\n @Input()\n checked = false;\n @Input()\n hasInput = false;\n @Input()\n inputPlaceholder = '';\n @Input()\n id = '';\n @Input()\n name: string;\n @Input()\n whiteSpace = true;\n disabled = false;\n\n constructor() {}\n\n private _onChange: Function;\n private _onTextInputChange: Function;\n private _onTouched: Function;\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: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n }\n }\n\n onTextInputChange(value) {\n if (this._onTextInputChange) {\n this._onTextInputChange(value);\n }\n }\n\n inputClick($event) { // todo it is usefull ?\n $event.stopPropagation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NwbFilterGroup, NwbFilterRoutingBuilder } from '@wizishop/ng-wizi-bulma';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { TableFiltersGroup } from './table-filters-group.model';\nimport { TableFilters } from './table-filters.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FiltersTableService {\n filterGroups = new Map<string, NwbFilterGroup>();\n\n private sortSubject: Subject<any> = new Subject<any>();\n\n constructor(private filterRoutingBuilder: NwbFilterRoutingBuilder) {}\n\n getTableFilterGroup(dataTableName: string): TableFiltersGroup {\n if (this.filterGroups.has(dataTableName)) {\n return this.filterGroups.get(dataTableName) as TableFiltersGroup;\n }\n\n const dataTableFilters: TableFilters = {\n sort: undefined,\n order: undefined,\n searchValue: undefined,\n totalItems: 0,\n itemsPerPage: 0,\n currentPage: 0\n };\n\n const filterGroup: TableFiltersGroup = this.filterRoutingBuilder.group(dataTableFilters, dataTableName) as TableFiltersGroup;\n filterGroup.tableFiltersValuesChange$ = new ReplaySubject<TableFilters>(1);\n filterGroup.tableFiltersValuesDebouncedChange$ = filterGroup.tableFiltersValuesChange$.pipe(debounceTime(300));\n\n this.filterGroups.set(dataTableName, filterGroup);\n return filterGroup;\n }\n\n /**\n * Use to reset the others sorts of the table\n * @param dataTableName\n * @param sortName\n * @param order\n */\n emitSortChange(dataTableName: string, sortName: string, order: boolean) {\n this.sortSubject.next({ dataTableName, sortName, order });\n }\n\n getSortChangeListner() {\n return this.sortSubject.asObservable();\n }\n\n setPaginationFilters(dataTableName, totalItems, itemsPerPage, currentPage) {\n const filterGroup = this.getTableFilterGroup(dataTableName);\n filterGroup.setValues({\n itemsPerPage,\n currentPage\n });\n }\n\n /*\n Add defaults filters in the URL if they not exists.\n */\n setInitialPaginationFiltersIfNotExist(dataTableName, itemsPerPage, currentPage) {\n const filterGroup = this.getTableFilterGroup(dataTableName);\n filterGroup.setValues({\n itemsPerPage: filterGroup.get('itemsPerPage') ? parseInt(filterGroup.get('itemsPerPage')) : itemsPerPage,\n currentPage: filterGroup.get('currentPage') ? parseInt(filterGroup.get('currentPage')) : currentPage\n });\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, Injector, Type, ComponentRef, EmbeddedViewRef } from \"@angular/core\";\n\nexport class HtmlContainer {\n private attached: boolean = false;\n\n private disposeFn: () => void;\n\n constructor(\n private hostElement: Element,\n private appRef: ApplicationRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector\n ) {}\n\n attach(component: Type<any>): ComponentRef<any> {\n if (this.attached) {\n throw new Error('component has already been attached');\n }\n\n this.attached = true;\n const childComponentFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n\n let componentRef = childComponentFactory.create(this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n this.disposeFn = () => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n };\n\n this.hostElement.appendChild((componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n\n return componentRef;\n }\n\n dispose() {\n if (this.attached) {\n this.disposeFn();\n }\n }\n}","import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class TableCheckboxIdService {\n\n static tableInstance = 0;\n\n currentTableInstance:number;\n nbCheckboxInstances: number = 0;\n\n constructor() {\n TableCheckboxIdService.tableInstance++;\n this.currentTableInstance = TableCheckboxIdService.tableInstance;\n }\n\n getUniqueId() {\n this.nbCheckboxInstances++;\n return `wac-table-${this.currentTableInstance}-${this.nbCheckboxInstances}`;\n }\n}","import { DOCUMENT } from '@angular/common';\nimport {\n ComponentFactoryResolver,\n EventEmitter,\n Inject,\n Output,\n Renderer2,\n Directive,\n ElementRef,\n Input,\n ComponentRef,\n ApplicationRef,\n Injector,\n} from '@angular/core';\nimport { HtmlContainer } from '../../../utils/html-container.class';\nimport { CheckboxComponent } from '../../checkbox/checkbox.component';\nimport { TableCheckboxIdService } from '../shared/table-checkbox-id.service';\n\n@Directive({\n selector: '[checkBoxRow]'\n})\nexport class CheckBoxRow {\n @Input('checkBoxId') checkBoxId: string | number;\n @Input('checkBoxName') checkBoxName: string;\n\n @Input('checkBoxValue') set checkBoxValue(value: boolean) {\n this._value = value;\n if (this.checkboxComponentRef) {\n this.setCheckBoxValue();\n }\n }\n _value: boolean;\n get checkBoxValue(): boolean {\n return this._value;\n }\n\n @Output() checkBoxValueChange: EventEmitter<boolean> = new EventEmitter();\n\n private checkboxComponentRef: ComponentRef<CheckboxComponent>;\n private htmlContainer: HtmlContainer;\n private checkBoxElement;\n\n constructor(\n private currentRow: ElementRef,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document,\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n private tableCheckboxIdService: TableCheckboxIdService\n ) {}\n\n ngOnInit() {\n this.createCheckBoxComponent();\n this.handleChecboxInputs();\n this.handleCheckboxOutputs();\n }\n\n createCheckBoxComponent() {\n // Create the container\n this.checkBoxElement = document.createElement('div');\n this.checkBoxElement.className = 'wac-table__body__line__cell wac-table__body__line__cell--checkbox';\n\n // Insert divCheckBox in the DOM as the first child of the row\n this.renderer.insertBefore(this.currentRow.nativeElement, this.checkBoxElement, this.currentRow.nativeElement.firstChild);\n\n // Insert the CheckBoxComponent inside the container (DOM and Angular DOM)\n this.htmlContainer = new HtmlContainer(this.checkBoxElement, this.appRef, this.resolver, this.injector);\n this.checkboxComponentRef = this.htmlContainer.attach(CheckboxComponent);\n }\n\n private handleChecboxInputs() {\n this.checkboxComponentRef.instance.id = this.checkBoxId ? '' + this.checkBoxId : this.tableCheckboxIdService.getUniqueId();\n this.checkboxComponentRef.instance.name = this.checkBoxName ? this.checkBoxName : undefined;\n this.checkboxComponentRef.instance.alone = true;\n this.setCheckBoxValue();\n }\n\n private setCheckBoxValue() {\n this.checkboxComponentRef.instance.value = this.checkBoxValue;\n }\n\n private handleCheckboxOutputs() {\n // Detect checkbox changes\n this.checkboxComponentRef.instance.registerOnChange(() => {\n this._toggleCheckbox();\n });\n }\n\n private _toggleCheckbox() {\n this.checkBoxValueChange.emit(this.checkBoxValue);\n }\n\n getElement() {\n return this.checkBoxElement.querySelector('.wac-field-checkbox');\n }\n\n isActive(): boolean {\n return !!this.checkboxComponentRef.instance.value;\n }\n\n setActive(isActive: boolean) {\n this.checkboxComponentRef.instance.value = isActive; //? does not trigger output\n }\n\n ngOnDestroy() {\n this.htmlContainer.dispose();\n }\n}\n","import { Injectable, QueryList } from \"@angular/core\";\nimport { Subscription, Subject, merge, fromEvent } from \"rxjs\";\nimport { debounceTime, map } from \"rxjs/operators\";\nimport { SelectionItem } from \"../utils/slection-item.interface\";\n\n@Injectable()\nexport class MultiSelectionService {\n private items: QueryList<SelectionItem>;\n private subscription: Subscription;\n private lastIndex: number;\n private activeChanges: Subject<number[]> = new Subject();\n activeChanges$ = this.activeChanges.asObservable();\n\n constructor() {}\n\n handle(items: QueryList<SelectionItem>, toggleSingleItem: boolean = false): void {\n\n if (!items || !items.first) {\n this.destroy();\n return;\n }\n\n this.destroy(); // close previous subsciption\n\n this.items = items;\n\n const clicks$ = this.getListeners();\n\n this.subscription = merge(...clicks$).subscribe(({ component, isShift: isShiftKeyPressed, index }) => {\n if (!isShiftKeyPressed) {\n if (toggleSingleItem) {\n component.setActive(!component.isActive());\n }\n this.activeChanges.next([index]);\n this.lastIndex = index;\n return;\n }\n\n const start = index;\n const end = this.lastIndex;\n const [first, last] = [Math.min(start, end), Math.max(start, end) + 1];\n const itemsSelection = this.items.toArray().slice(first, last);\n const isBeginnerItemActive = this.items.get(end).isActive();\n\n itemsSelection.forEach(current => current.setActive(isBeginnerItemActive));\n window.getSelection().removeAllRanges(); // remove text selection\n const indexInRange = Array.from({length: last-first}, (x, i) => i + first);\n this.activeChanges.next(indexInRange);\n });\n }\n\n private getListeners() {\n return this.items.map((item, index) => {\n return fromEvent(item.getElement(), 'click').pipe(\n map((event: MouseEvent) => {\n return {\n index,\n isShift: event.shiftKey,\n component: item\n }\n })\n )\n .pipe(debounceTime(100)) // debounced, because when clicking on a wac-checkbox it is emitted twice and can not find why\n });\n }\n\n getActives() {\n return this.items.filter(item => item.isActive());\n }\n\n destroy() {\n this.subscription?.unsubscribe();\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Inject } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n // The selector has the same name as the tableRaw selector in table.component.html\n selector: '[tableRow]'\n})\nexport class TableRow {\n constructor(private currentCell: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) {}\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n }\n\n applyCustomStylesOnCell() {\n this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__body__line');\n }\n}\n","import { Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { FiltersTableService } from './shared/filters-table.service';\nimport { Subscription } from 'rxjs';\nimport { TableFilters } from './shared/table-filters.model';\nimport { TableFiltersGroup } from './shared/table-filters-group.model';\nimport { CheckBoxRow } from './directives/checkBoxRow.directive';\nimport { MultiSelectionService } from '../../services/multiple-selection.service';\nimport { TableCheckboxIdService } from './shared/table-checkbox-id.service';\nimport { TableRow } from './directives/raw.directive';\n\n@Component({\n selector: 'wac-table',\n templateUrl: './table.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n TableCheckboxIdService,\n MultiSelectionService\n ]\n})\nexport class TableComponent implements OnInit {\n\n @ContentChildren(CheckBoxRow) checkBoxRows: QueryList<CheckBoxRow>;\n @ContentChildren(TableRow) tableRows: QueryList<TableRow>;\n\n // todo find a way to spotlight the wac-table doc when used on wizi-admin only in dev\n // todo try to use bridge patterne in order to add checkbox and remove checkbowrox directive.\n /// Input/Output of table filters ///\n\n @Input() tableFilters: TableFilters;\n @Output() tableFiltersChange: EventEmitter<TableFilters> = new EventEmitter();\n\n @Input() tableRoutingName: string; // Name of the table\n @Input() placeholder: string = '';\n\n private _tableFiltersGroup: TableFiltersGroup;\n\n /// Input/Output of checkbox ///\n\n /** Pass to true to display checkbox in the header table */\n @Input() checkbox = false;\n\n @Output() toggleAllCheckBox: EventEmitter<boolean> = new EventEmitter(); // todo replace by checkBoxSelectionChange\n\n @Output() checkBoxSelectionChange: EventEmitter<number[]> = new EventEmitter(); // todo add to doc\n\n /// Input to disable section ///\n\n /** Pass to true to hide search input */\n @Input() disableSearch: boolean = false;\n /** Pass to true to hide the pagniator */\n @Input() disablePagniation: boolean = false;\n\n /// Input for loader on table body ///\n\n @Input() isLoading = false;\n\n /// Private variables ///\n headerCheckBoxId: string;\n private filterGroupChangeSub: Subscription;\n\n constructor(private filtersTableService: FiltersTableService, private tableCheckboxIdService: TableCheckboxIdService, private multiSelectionService: MultiSelectionService) {}\n\n ngOnInit(): void {\n this.headerCheckBoxId = this.tableCheckboxIdService.getUniqueId(); // Create checkbox unique id\n\n /* Handle routing filters */\n if (this.tableRoutingName) {\n\n this.filtersTableService.setInitialPaginationFiltersIfNotExist(\n this.tableRoutingName,\n this.tableFilters.itemsPerPage,\n this.tableFilters.currentPage\n );\n\n this._tableFiltersGroup = this.filtersTableService.getTableFilterGroup(this.tableRoutingName);\n this.setTablesFilters();\n // Listen to filters changes with debounced time to limit multiple api calls\n this.filterGroupChangeSub = this._tableFiltersGroup.valuesChange$.subscribe(() => {\n this.setTablesFilters();\n });\n }\n\n this.multiSelectionService.activeChanges$.subscribe(selectionIndexRawCheckChange => {\n this.checkBoxSelectionChange.emit(selectionIndexRawCheckChange);\n });\n }\n\n ngAfterViewInit() {\n this.multiSelectionService.handle(this.checkBoxRows);\n this.checkBoxRows.changes.subscribe(() => {\n this.multiSelectionService.handle(this.checkBoxRows);\n });\n console.log('this.tableRows', this.tableRows);\n }\n\n onToggleAllCheckBox(event: any) {\n this.toggleAllCheckBox.emit(event.target.checked);\n }\n\n searchChange() {\n // Reset table filters\n this.tableFilters.sort = undefined;\n this.tableFilters.order = undefined;\n this.tableFilters.currentPage = 1;\n this.tableFiltersChange.emit(this.tableFilters);\n\n // Reset routing filters\n if (this._tableFiltersGroup) {\n this._tableFiltersGroup.setValues({\n searchValue: this.tableFilters.searchValue,\n sort: undefined,\n order: undefined,\n currentPage: 1\n });\n }\n }\n\n pageChange() {\n this.tableFiltersChange.emit(this.tableFilters);\n if (this._tableFiltersGroup) {\n this._tableFiltersGroup.setValues({\n itemsPerPage: this.tableFilters.itemsPerPage,\n currentPage: this.tableFilters.currentPage\n });\n }\n }\n\n /**\n * Set tableFilters from routing data existing in the url\n * */\n private setTablesFilters() {\n this.tableFilters = {\n sort: this._tableFiltersGroup.get('sort'),\n order: this._tableFiltersGroup.get('order') ? this._tableFiltersGroup.get('order') === 'true' : undefined,\n searchValue: this._tableFiltersGroup.get('searchValue'),\n itemsPerPage: this._tableFiltersGroup.get('itemsPerPage') ? parseInt(this._tableFiltersGroup.get('itemsPerPage')) : 0,\n currentPage: this._tableFiltersGroup.get('currentPage') ? parseInt(this._tableFiltersGroup.get('currentPage')) : 0,\n totalItems: this.tableFilters.totalItems\n };\n this.tableFiltersChange.emit(this.tableFilters);\n this._tableFiltersGroup.tableFiltersValuesChange$.next(this.tableFilters);\n }\n\n ngOnDestroy() {\n if (this.filterGroupChangeSub) {\n this.filterGroupChangeSub.unsubscribe();\n }\n this.multiSelectionService.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'wac-tag',\n templateUrl: './tag.component.html'\n})\nexport class TagComponent {\n @Input()\n label = '';\n @Input()\n class: 'default'|'success'|'warning'|'error'|'dark'|'gray'|'lightgray';\n @Input()\n hasClose = false;\n\n @Input()\n big = false;\n\n @Input() isOpen:boolean = true;\n @Output() isOpenChange = new EventEmitter<boolean>();\n\n constructor() {}\n\n toggleTag() {\n this.isOpen = !this.isOpen;\n this.isOpenChange.next(this.isOpen);\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-tab',\n templateUrl: './tab.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TabComponent {\n\n @Input()\n underline = false;\n\n @Input()\n button = false;\n\n @Input()\n tabs = [];\n\n @Input() index: number = 0;\n\n @Output() indexChange = new EventEmitter<any>();\n\n constructor() {}\n\n valueChanged(i) {\n this.index = i;\n this.indexChange.emit(this.index);\n }\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport { interval } from 'rxjs';\nimport { takeWhile } from 'rxjs/operators';\n\n@Component({\n selector: 'wac-button',\n templateUrl: './button.component.html'\n})\nexport class ButtonComponent implements OnInit, AfterViewInit {\n @Input()\n extraClasses = 'is-info'; // todo make a list of existing class\n\n @Input()\n label = '';\n\n @Input()\n icon = '';\n\n @Input()\n iconNext: string;\n\n @Input()\n textcolor = null;\n @Input()\n widthAuto = false;\n\n @Input()\n contentHorizontalPosition: 'left' | 'center' | 'right' = 'center';\n\n @Input()\n iconFontSize = 12;\n\n @Input()\n hasLoader = false;\n\n @Input()\n disabled = false;\n\n @Input()\n whiteSpaceNowrap = false;\n\n @Input()\n opacity = false;\n // TODO MAKE ANNIMATION AVAILABLE FOR MOBILE as CONFIRM DELETE DO (because, its doeant show the text and trigger click)\n @Input()\n animation = false;\n\n @Input()\n animationRight = false;\n\n @Input()\n animationText = '';\n\n @Input()\n confirmDelete = false;\n\n @Input()\n confirmDeleteText = '';\n\n @Input()\n coin: number | string;\n\n @Input()\n tooltip: string;\n\n @Input()\n tooltipWidth: string;\n\n @Input()\n noPadding = false;\n\n @Input()\n tooltipPosition: 'top-center' | 'top-right' | 'top-left' | 'bottom-center' | 'bottom-right' | 'bottom-left' | 'left' | 'right' = 'top-center';\n\n @Input()\n confirmDeletePosition = 'right';\n\n @Output() public click: EventEmitter<MouseEvent> = new EventEmitter();\n\n @Input() set isLoading(isLoading : boolean) {\n this._isLoading = isLoading;\n this.isLoadingChange.next(isLoading);\n this.toggleLoading();\n }\n\n @Output() isLoadingChange = new EventEmitter<boolean>();\n\n get isLoading() : boolean {\n return this._isLoading;\n }\n\n private _isLoading: boolean = false;\n\n\n interval = null;\n\n waitForConfirmDelete = false;\n\n buttonMaxWidth = '0px';\n buttonWidth = '0px';\n\n buttonMaxWidthDelete = '0px';\n buttonWidthDelete = '0px';\n\n currentLoading = 0;\n\n @ViewChild('calculWidth')\n calculWidth: ElementRef;\n\n @ViewChild('calculWidthDelete')\n calculWidthDelete: ElementRef;\n\n constructor() {}\n\n ngOnInit() {\n if (this.confirmDelete) {\n this.waitForConfirmDelete = true;\n }\n }\n\n toggleLoading() {\n this.currentLoading = this.isLoading ? 10 : 100;\n\n interval(200).pipe(takeWhile( time=> this.isLoading)).subscribe(\n () => {\n if (this.currentLoading < 85) {\n this.currentLoading += Math.floor(Math.random() * 15);\n }\n }\n );\n }\n\n addMaxWidth() {\n this.buttonMaxWidth = this.buttonWidth + 'px';\n }\n\n resetMaxWidth() {\n this.buttonMaxWidth = '0px';\n }\n\n addMaxWidthDelete() {\n this.buttonMaxWidthDelete = this.buttonWidthDelete + 'px';\n }\n\n resetMaxWidthDelete() {\n this.buttonMaxWidthDelete = '0px';\n this.waitForConfirmDelete = true;\n }\n\n onButtonClick(event){\n event.stopPropagation();\n if (this.disabled) {\n return;\n }\n if (this.hasLoader) {\n this.isLoading = false;\n setTimeout(() => { // trick to reset the animation loading\n this.isLoading = true;\n }, 0);\n }\n\n if (!this.waitForConfirmDelete) {\n this.click.emit(event);\n if (this.confirmDelete) {\n this.resetMaxWidthDelete();\n }\n } else {\n this.waitForConfirmDelete = false;\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n if (this.animation) {\n this.buttonWidth = this.calculWidth.nativeElement.offsetWidth;\n }\n if (this.confirmDelete) {\n this.buttonWidthDelete = this.calculWidthDelete.nativeElement.offsetWidth;\n }\n }, 1000);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wac-info',\n templateUrl: './info.component.html'\n})\nexport class InfoComponent {\n constructor() {}\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-settings',\n templateUrl: './settings.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SettingsComponent {\n constructor() {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wac-delete',\n templateUrl: './delete.component.html'\n})\nexport class DeleteComponent {\n constructor() {}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'wac-dropdown',\n templateUrl: './dropdown.component.html'\n})\nexport class DropdownComponent {\n @Input()\n hasIcons = false;\n\n @Input()\n items = [];\n\n @Output() userInput = new EventEmitter<any>();\n\n constructor() {}\n\n onUserInput(itemIndex) {\n this.userInput.emit(itemIndex);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'wac-image',\n templateUrl: './image.component.html'\n})\nexport class ImageComponent {\n @Input()\n src: '';\n\n constructor() {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wac-back',\n templateUrl: './back.component.html'\n})\nexport class BackComponent {\n constructor() {}\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-separator',\n templateUrl: './separator.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SeparatorComponent {\n @Input()\n dashed = false;\n\n constructor() {}\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-logo',\n templateUrl: './logo.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class LogoComponent {\n @Input()\n isDropizi: false;\n\n @Input()\n isWhite: false;\n\n constructor() {}\n}\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-radio',\n templateUrl: './radio.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: RadioComponent, multi: true }]\n})\nexport class RadioComponent implements ControlValueAccessor {\n @Input()\n label = '';\n @Input()\n options: object;\n @Input()\n value: any;\n @Input()\n type: string;\n @Input()\n id = '';\n @Input()\n name: string;\n @Input()\n alone = false;\n @Output()\n changeInput = new EventEmitter<any>();\n disabled = false;\n constructor() {}\n private _onChange: Function;\n private _onTouched: Function;\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: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n }\n }\n\n valueInput(value) {\n this.changeInput.emit(value);\n }\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-state',\n templateUrl: './state.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class StateComponent {\n @Input()\n state = 'success';\n constructor() {}\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const inOutX = trigger('inOutXAnimation', [\n transition(':enter', [\n style({ zIndex: -1, transform: 'scaleX(0)', width: 0, opacity: 0 }),\n animate('.3s ease-out', style({ zIndex: 1, transform: 'scaleX(1)', width: 'auto', opacity: 1 }))\n ]),\n transition(':leave', [\n style({ zIndex: 1, transform: 'scaleX(1)', width: 'auto', opacity: 1 }),\n animate('.3s ease-in', style({ zIndex: -1, transform: 'scaleX(0)', width: 0, opacity: 0 }))\n ])\n]);\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { inOutX } from '../../animations/in-out/in-out-x.animation';\n\n@Component({\n selector: 'wac-label',\n templateUrl: './label.component.html',\n encapsulation: ViewEncapsulation.None,\n animations: [inOutX]\n})\nexport class LabelComponent {\n @Input()\n index = 0;\n @Input()\n label = '';\n @Input()\n deleted = false;\n\n @Output() onDeleteLabel = new EventEmitter<any>();\n\n constructor() {}\n\n deleteLabel() {\n this.deleted = true;\n this.onDeleteLabel.emit({\n index: this.index,\n label: this.label\n });\n }\n}\n","import { Component, Input, EventEmitter, Output, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-calendar',\n templateUrl: './calendar.component.html'\n})\nexport class CalendarComponent implements OnInit {\n @Input()\n label: string | null;\n @Input()\n type = 'input';\n @Input()\n options: object = {\n displayMode: 'inline',\n showHeader: false,\n showFooter: true,\n showButton: true\n };\n @Input()\n position = 'bottom';\n @Input()\n dateSelected: any = new Date();\n @Input()\n typeDate = 'datetime-local';\n @Input()\n noMargin = false;\n @Output()\n selected: EventEmitter<string> = new EventEmitter<string>();\n @Output() changeData = new EventEmitter<any>();\n open = false;\n startLabel = '';\n endLabel = '';\n currentHours: any;\n currentMinutes: any;\n currentDate: any;\n constructor() {}\n changeDate(event: any) {\n this.currentDate = new Date(new Date(event.startDate).setHours(0, 0, 0, 0));\n this.dateSelected = new Date(\n new Date(new Date(event.startDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.triggerChange({\n startDate: this.dateSelected,\n endDate: this.dateSelected\n });\n }\n\n triggerChange(event: any) {\n this.changeData.emit(event);\n }\n\n openCalendar(value = null) {\n if (value === 'close') {\n if (this.open) {\n this.open = false;\n }\n } else {\n this.open = !this.open;\n }\n }\n ngOnInit(): void {\n if (this.type === 'edit' && this.label) {\n const splitLabel = this.label.split('{x}');\n if (splitLabel.length > 1) {\n this.startLabel = splitLabel[0];\n this.endLabel = splitLabel[1];\n } else {\n this.startLabel = this.label;\n }\n }\n this.currentHours =\n new Date(this.dateSelected).getHours() < 10 ? '0' + new Date(this.dateSelected).getHours() : new Date(this.dateSelected).getHours();\n this.currentMinutes =\n new Date(this.dateSelected).getMinutes() < 10\n ? '0' + new Date(this.dateSelected).getMinutes()\n : new Date(this.dateSelected).getMinutes();\n this.currentDate = new Date(this.dateSelected).setHours(0, 0, 0, 0);\n if (this.typeDate === 'date') {\n this.currentHours = '00';\n this.currentMinutes = '00';\n }\n }\n verifKeyup(events: any) {\n events.target.value = events.target.value.replace(/\\D+/g, '');\n }\n verifHours(events: any) {\n const value = parseInt(events.target.value, 0);\n events.target.value = this.currentHours = value < 24 ? (value < 10 ? '0' + value : value) : 23;\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n verifMinutes(events: any) {\n const value = parseInt(events.target.value, 0);\n events.target.value = this.currentMinutes = value < 60 ? (value < 10 ? '0' + value : value) : 59;\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n addHours(target: any) {\n target.value = this.currentHours =\n parseInt(target.value, 0) + 1 < 24\n ? parseInt(target.value, 0) + 1 < 10\n ? '0' + (parseInt(target.value, 0) + 1)\n : parseInt(target.value, 0) + 1\n : parseInt(target.value, 0) < 10\n ? '0' + parseInt(target.value, 0)\n : parseInt(target.value, 0);\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n removeHours(target: any) {\n target.value = this.currentHours =\n parseInt(target.value, 0) - 1 > -1\n ? parseInt(target.value, 0) - 1 < 10\n ? '0' + (parseInt(target.value, 0) - 1)\n : parseInt(target.value, 0) - 1\n : parseInt(target.value, 0) < 10\n ? '0' + parseInt(target.value, 0)\n : parseInt(target.value, 0);\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n addMinutes(target: any) {\n target.value = this.currentMinutes =\n parseInt(target.value, 0) + 1 < 60\n ? parseInt(target.value, 0) + 1 < 10\n ? '0' + (parseInt(target.value, 0) + 1)\n : parseInt(target.value, 0) + 1\n : parseInt(target.value, 0) < 10\n ? '0' + parseInt(target.value, 0)\n : parseInt(target.value, 0);\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n removeMinutes(target: any) {\n target.value = this.currentMinutes =\n parseInt(target.value, 0) - 1 > -1\n ? parseInt(target.value, 0) - 1 < 10\n ? '0' + (parseInt(target.value, 0) - 1)\n : parseInt(target.value, 0) - 1\n : parseInt(target.value, 0) < 10\n ? '0' + parseInt(target.value, 0)\n : parseInt(target.value, 0);\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'wac-edit-in-place',\n templateUrl: './edit-in-place.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: WzEditInPlaceComponent,\n multi: true\n }\n ]\n})\nexport class WzEditInPlaceComponent implements ControlValueAccessor, AfterViewChecked, OnChanges {\n //! Refacto aweful to use\n // todo add exemples in showcases\n @Input()\n type: string;\n @Input()\n nwbOptions: object | string[];\n @Input()\n config: NwbEditInPlaceConfig = {};\n @Input()\n label: string;\n @Output() customChange = new EventEmitter<any>();\n\n @ViewChild('input')\n input: ElementRef;\n\n objectKeys = Object.keys;\n public currentValue: string | number;\n private preValue: string | number;\n\n public inputWidth: number;\n public editing = false;\n public isLoading: boolean;\n private firstEdit: boolean;\n private initialized: boolean;\n\n public onChange: any = Function.prototype;\n public onTouched: any = Function.prototype;\n\n get value(): any {\n return this.currentValue;\n }\n\n set value(v: any) {\n if (v !== this.currentValue) {\n this.currentValue = v;\n }\n }\n\n writeValue(value: any) {\n if (value !== null) {\n if (this.config.currency) {\n this.currentValue = this.parseValueToNumber(value);\n if (this.config.separator !== '.') {\n this.currentValue = this.parseValueToSeparator(this.currentValue);\n }\n this.currentValue += this.config.currency;\n } else {\n this.currentValue = value;\n }\n }\n }\n\n public registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n private _setValue(v: string | number) {\n if (this.type === 'select') {\n this.onChange(v);\n } else if (typeof this.config.currency === 'string') {\n v = this.parseValueToNumber(v);\n this.onChange(v);\n if (this.config.separator !== '.') {\n v = this.parseValueToSeparator(v);\n }\n v = v + this.config.currency;\n this.customChange.emit(v);\n } else {\n this.onChange(v);\n }\n this.writeValue(v);\n this.value = v;\n }\n\n ngAfterViewChecked() {\n if (this.input && this.editing) {\n this.input.nativeElement.focus();\n if (this.config.selectTextUponClick && this.firstEdit && this.preValue && this.input.nativeElement.value) {\n this.input.nativeElement.select();\n this.firstEdit = false;\n }\n }\n this.initialized = true;\n }\n\n startEditing() {\n if (!this.editing) {\n this.editing = true;\n this.currentValue = this.checkAndRemoveCurrency(this.currentValue);\n this.firstEdit = true;\n }\n }\n\n edit() {\n this.preValue = this.currentValue;\n this.editing = true;\n }\n\n onSubmit() {\n this.editing = false;\n if (this.currentValue !== this.preValue) {\n if (typeof this.config.handler === 'function') {\n this.isLoading = true;\n this.config.handler(this.currentValue, this.config.data).subscribe(\n data => {\n let hasChanged: boolean;\n this.isLoading = false;\n if (typeof data !== 'boolean') {\n this.currentValue = data.value;\n hasChanged = data.success;\n } else {\n hasChanged = data;\n }\n if (hasChanged) {\n this._setValue(this.currentValue);\n } else {\n this._setValue(this.preValue);\n }\n },\n () => {\n this.isLoading = false;\n this._setValue(this.preValue);\n }\n );\n } else {\n this._setValue(this.currentValue);\n }\n } else {\n if (typeof this.config.currency === 'string') {\n this.currentValue = this.currentValue + this.config.currency;\n }\n }\n }\n\n checkAndRemoveCurrency(value) {\n if (typeof this.config.currency === 'string') {\n return value.slice(0, -1);\n }\n\n return value;\n }\n\n parseValueToNumber(value) {\n if (!isNaN(value) && value !== '') {\n return parseFloat(value);\n }\n if (typeof this.config.currency === 'string') {\n const indexComma = value.indexOf(',');\n const indexDot = value.indexOf('.');\n if (indexComma > 0 && indexDot === -1) {\n const parsedValue = value.replace(',', '.');\n if (!isNaN(parsedValue)) {\n return parseFloat(parsedValue);\n }\n }\n if (indexDot > 0 && indexComma === -1) {\n if (!isNaN(value)) {\n return parseFloat(value);\n }\n }\n return 0;\n }\n }\n\n parseValueToSeparator(value) {\n if (typeof this.config.separator === 'string') {\n value = parseFloat(value).toFixed(2);\n return value.replace('.', this.config.separator);\n }\n\n return value;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.initialized) {\n this.currentValue = this.checkAndRemoveCurrency(this.currentValue) + this.config.currency;\n this.customChange.emit(this.value);\n }\n }\n\n selectOption(event) {\n this.currentValue = event.target.innerText;\n this.closeSelect(event);\n event.stopPropagation();\n this.customChange.emit(event.target.value);\n }\n\n closeSelect(event) {\n this.editing = false;\n this.isLoading = false;\n event.stopPropagation();\n }\n}\n\nexport interface NwbEditInPlaceConfig {\n /** Whether to select the whole text inside the input upon click */\n selectTextUponClick?: boolean;\n\n /** Data to pass as the second argument for the handler method if any **/\n data?: any;\n\n currency?: string;\n\n separator?: string;\n\n /**\n * handler method to call on change.\n * This allows you to perform any action before setting new value to the model\n * It has to return a boolean observable. If the returned value is true then the model will change.\n */\n handler?: (value: any, data: any) => Observable<boolean | ReturnedData>;\n}\n\nexport interface ReturnedData {\n success: boolean;\n value: any;\n}\n","import { Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-text-area',\n templateUrl: './text-area.component.html',\n\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: TextAreaComponent, multi: true }]\n})\nexport class TextAreaComponent implements ControlValueAccessor {\n // todo simplify and improve progress bar\n @Input()\n label = '';\n @Input()\n value = '';\n @Input()\n placeholder = '';\n @Input()\n textInfo = '';\n @Input()\n textError = '';\n @Input()\n error = '';\n @Input()\n success = '';\n @Input()\n size = null;\n @Input()\n min = null;\n @Input()\n max = null;\n @Input()\n dynamicSize = false;\n @Input()\n progressBar = false;\n @Input()\n disabled = false;\n @Input()\n maxlength: number | string;\n @Input()\n minlength: number | string;\n\n id =\n 'wac-textarea__' +\n Math.random()\n .toString(36)\n .substr(2, 9);\n\n private _onChange: Function;\n private _onTouched: Function;\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: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n this.writeValue(value);\n }\n }\n\n onBlur() {\n if (this._onTouched) {\n this._onTouched();\n }\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'wac-h1',\n templateUrl: './h1.component.html'\n})\nexport class H1Component implements OnInit {\n @Input()\n annotation = '';\n @Input()\n withImg = false;\n @Input()\n center = false;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'wac-h2',\n templateUrl: './h2.component.html'\n})\nexport class H2Component implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'wac-h3',\n templateUrl: './h3.component.html'\n})\nexport class H3Component implements OnInit {\n @Input() grey = false;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n@Component({\n selector: 'wac-header-page',\n templateUrl: './header-page.component.html'\n})\nexport class HeaderPageComponent implements OnInit {\n @Input()\n title: string;\n @Input()\n linkBack: string;\n @Input()\n withImg = false;\n @Input()\n center = false;\n constructor() {}\n ngOnInit(): void {}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-input',\n templateUrl: './input.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputComponent, multi: true }]\n})\nexport class InputComponent implements ControlValueAccessor {\n @Input()\n label = '';\n @Input()\n value = '';\n @Input()\n type = 'text';\n @Input()\n placeholder = '';\n @Input()\n textInfo = null;\n @Input()\n textError = null;\n @Input()\n size = null;\n @Input()\n isNumber = null;\n @Input()\n withoutBlock = false;\n @Input()\n icon = '';\n @Input()\n big = false;\n @Input()\n medium = false;\n @Input()\n boldLabel = 'false';\n @Input()\n min = null;\n @Input()\n max = null;\n @Input()\n disableMargin = false;\n @Input()\n textPrepend = null;\n @Input()\n textAppend = null;\n @Input()\n progressBar = false;\n @Input()\n extraClasses = '';\n @Input()\n keyPreventDefault = [];\n @Input()\n showTooltip = false;\n @Input()\n textTooltip = '';\n @Input()\n iconTooltip = '';\n @Input()\n urlTooltip = '';\n @Input()\n linkTooltip = '';\n @Input()\n padding = false;\n @Input()\n disabled = false;\n @Input()\n indication = false;\n @Input()\n success = false;\n @Input()\n error = false;\n @Input()\n maxlength: number | string;\n @Input()\n minlength: number | string;\n @Input()\n indicationLeft = false;\n\n @Output() keypressEnter = new EventEmitter<boolean>();\n\n private KEYPRESS_ENTER = \"Enter\";\n\n id =\n 'wz-input_' +\n Math.random()\n .toString(36)\n .substr(2, 9);\n\n private _onChange: Function;\n private _onTouched: Function;\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: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n }\n }\n\n onBlur() {\n if (this._onTouched) {\n this._onTouched();\n }\n }\n\n checkNumberValue(value) {\n if (this.min && this.min > value) {\n this.value = this.min;\n }\n if (this.max && this.max < value) {\n this.value = this.max;\n }\n }\n\n onFocusOut() {\n if (this.type === 'number') {\n this.checkNumberValue(this.value);\n }\n }\n\n keyPress(event: KeyboardEvent) {\n if (this.keyPreventDefault.includes(event.key)) {\n event.preventDefault();\n }\n\n if (event.key === this.KEYPRESS_ENTER) {\n this.keypressEnter.next(true);\n }\n }\n}\n","import { Component, ElementRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'wac-link',\n templateUrl: './link.component.html'\n})\nexport class LinkComponent implements OnInit {\n\n _link: string;\n\n @Input() set href(link : string) {\n this._link = link;\n this.setAttributesLink();\n }\n\n get href(): string {\n return this._link;\n }\n\n @Input() target: '_self' | '_blank' | '_parent' | '_top' = '_self';\n @Input() id: string;\n @Input() class: string;\n @Input() fontSize = '14px';\n\n @ViewChild('linkComponent')\n linkComponent: ElementRef;\n\n constructor(private renderer2: Renderer2) {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {\n this.setAttributesLink();\n }\n\n setAttributesLink() {\n if (!this.linkComponent) {\n return;\n }\n\n if (this.href) {\n this.renderer2.setAttribute(this.linkComponent.nativeElement, \"href\", this.href);\n this.renderer2.setAttribute(this.linkComponent.nativeElement, \"target\", this.target);\n } else {\n this.renderer2.removeAttribute(this.linkComponent.nativeElement, \"href\");\n this.renderer2.removeAttribute(this.linkComponent.nativeElement, \"target\");\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wac-progress-bar',\n templateUrl: './progress-bar.component.html',\n\n})\nexport class ProgressBarComponent {\n @Input()\n valueLength = null;\n @Input()\n min = null;\n @Input()\n max = null;\n\n constructor(private translateService: TranslateService) {}\n\n progressBarClass(spanNumber = -1) {\n const length = this.valueLength;\n const min = this.min;\n const max = this.max;\n\n if (spanNumber === 1) {\n return {\n 'is-danger': length > max,\n 'is-success': length >= min && length <= max\n };\n } else if (spanNumber === 2) {\n return {\n 'is-success': length === max,\n 'is-danger': length > max\n };\n } else {\n return {\n 'is-warning': length < min,\n 'is-danger': length > max,\n 'is-success': length >= min && length <= max\n };\n }\n }\n\n progressBarSpanPosition(index) {\n const min = this.min;\n const max = this.max;\n const maxSize = this.progressBarGetMaxSize(max);\n const successMin = (min / maxSize) * 100;\n const successMax = (max / maxSize) * 100;\n return index === 1 ? successMin : successMax;\n }\n\n progressBarGetMaxSize(max) {\n return max + max / 4;\n }\n\n progressBarGetTextInfo() {\n const length = this.valueLength;\n const min = this.min;\n const max = this.max;\n\n if (length < min) {\n return this.translateService.instant('wac.input.progressbar.information.too.short');\n } else if (length > max) {\n return this.translateService.instant('wac.input.progressbar.information.too.long');\n } else {\n return this.translateService.instant('wac.input.progressbar.information.good');\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n@Component({\n selector: 'wac-switch',\n templateUrl: './switch.component.html'\n})\nexport class SwitchComponent implements OnInit {\n // todo add ngmodel and review texts display (textState is mandaoty in order to display textStateEnable and textStateDisable)\n @Input() value = false;\n @Input() textState = false;\n @Input() textStateEnable = '';\n @Input() textStateDisable = '';\n @Input() showInput = false;\n @Input() placholderInput: string;\n @Input() danger = false;\n @Input() whiteSpace: boolean = false;\n @Output() switchChange = new EventEmitter<any>(); // todo set emitted type\n @Output() changeInput = new EventEmitter<any>(); // todo set emitted type\n valueInput: string;\n public id: string;\n constructor() {}\n ngOnInit(): void {\n this.id = 'switch-' + Math.floor(Math.random() * Math.floor(1000));\n }\n changeValue(event: any) {\n this.switchChange.emit(event.target.checked);\n }\n triggerInput() {\n this.changeInput.emit(this.valueInput);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-tooltip',\n templateUrl: './tooltip.component.html',\n\n})\nexport class TooltipComponent implements OnInit {\n // todo add exemples. Should be a directive. Maybe allow to pass a template like\n @Input()\n tooltipIcon: string;\n @Input()\n tooltipText: string = '';\n @Input()\n tooltipLink: string = '';\n @Input()\n tooltipUrl: string = '#';\n\n constructor() {}\n\n ngOnInit() {\n if (this.tooltipIcon === '') {\n this.tooltipIcon = 'fas fa-info-circle';\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-alert',\n templateUrl: './alert.component.html'\n})\nexport class AlertComponent implements OnInit {\n @Input() icon = true;\n @Input() warning = false;\n @Input() success = false;\n @Input() alert = false;\n @Input() iconClass = 'fas fa-info';\n constructor() {}\n ngOnInit(): void {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'wac-text',\n templateUrl: './text.component.html'\n})\nexport class TextComponent implements OnInit {\n @Input()\n textClass: 'grey'|'yellow'|'red'|'label'|'optional';\n constructor() {}\n ngOnInit(): void {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'IsLastPage'\n})\nexport class PagniationIsLastPage implements PipeTransform {\n /**\n * Return true, if the current page is the last page. Otherwise, return false.\n * @param currentPage\n * @param totalItems\n * @param itemsPerPage\n */\n transform(currentPage, totalItems, itemsPerPage): boolean {\n if (!(currentPage >= 0 && totalItems >= 0 && itemsPerPage >= 0)) {\n throw new Error('currentPage or totalItems or itemsPerPage is/are missing in PagniationIsLastPage pipe.');\n }\n return currentPage === Math.ceil(totalItems / itemsPerPage);\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PagniationIsLastPage } from './pipes/is-last-page.pipe';\n\nexport interface PaginationFilters {\n totalItems: number;\n itemsPerPage: number;\n currentPage: number;\n}\n\n@Component({\n selector: 'wac-pagination',\n templateUrl: './pagination.component.html'\n})\nexport class PaginationComponent {\n @Input()\n set pagination(pagination: PaginationFilters) {\n this._pagination = pagination;\n }\n get pagination(): PaginationFilters {\n return this._pagination;\n }\n private _pagination: PaginationFilters;\n\n @Output() pageChange: EventEmitter<PaginationFilters> = new EventEmitter();\n\n constructor() {}\n\n decrementPage() {\n if (this.pagination.currentPage <= 1) {\n return;\n }\n this.pagination.currentPage--;\n this.pageChange.emit(this.pagination);\n }\n\n incrementPage() {\n const isLastPage = new PagniationIsLastPage().transform(\n this.pagination.currentPage,\n this.pagination.totalItems,\n this.pagination.itemsPerPage\n );\n if (isLastPage) {\n return;\n }\n this.pagination.currentPage++;\n this.pageChange.emit(this.pagination);\n }\n\n onGotoPageChange(event: any) {\n this.pagination.currentPage = parseInt(event.target.value);\n this.pageChange.emit(this.pagination);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ArrayTotalPages'\n})\nexport class PagniationArrayTotalPages implements PipeTransform {\n /**\n * Return an incremental array corresponding with the number page\n * [ 1, 2, 3 ..., last page number ]\n * @param totalItems\n * @param itemsPerPage\n */\n transform(totalItems, itemsPerPage): number[] {\n if (!(totalItems >= 0 && itemsPerPage >= 0)) {\n throw new Error('totalItems or itemsPerPage missing in ArrayTotalPages pipe.');\n }\n const arrayLength: number = Math.ceil(totalItems / itemsPerPage);\n return Array.apply(null, { length: arrayLength })\n .map(Number.call, Number)\n .map(x => x + 1);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'customPagniationText'\n})\nexport class PagniationText implements PipeTransform {\n constructor(private translateService: TranslateService) {}\n\n /**\n * Update pagination text if at least one entrie change\n * @param currentPage\n * @param totalItems\n * @param itemsPerPage\n */\n transform(currentPage, totalItems, itemsPerPage): any {\n let currentItemsLow = 0,\n currentItemsHigh = 0;\n\n if (totalItems) {\n currentItemsLow = (parseInt(currentPage) - 1) * parseInt(itemsPerPage) + 1;\n currentItemsHigh = parseInt(currentPage) * parseInt(itemsPerPage);\n }\n\n if (currentItemsHigh > totalItems) {\n currentItemsHigh = totalItems;\n }\n\n return this.translateService.get('wac.PaginationComponent.on', { low: currentItemsLow, high: currentItemsHigh, total: totalItems })\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { PaginationComponent } from './pagination.component';\nimport { PagniationArrayTotalPages } from './pipes/array-pages.pipe';\nimport { PagniationText } from './pipes/custom-text.pipe';\nimport { PagniationIsLastPage } from './pipes/is-last-page.pipe';\n\nconst pipes = [PagniationArrayTotalPages, PagniationIsLastPage, PagniationText];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule\n ],\n exports: [PaginationComponent],\n declarations: [PaginationComponent, ...pipes],\n providers: [],\n})\nexport class PaginationModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n exports: [CheckboxComponent],\n declarations: [CheckboxComponent],\n providers: [],\n})\nexport class CheckboxModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n exports: [ProgressBarComponent],\n declarations: [ProgressBarComponent],\n providers: [],\n})\nexport class ProgressBarModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { TooltipComponent } from './tooltip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [TooltipComponent],\n declarations: [TooltipComponent],\n providers: [],\n})\nexport class TooltipModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SharedDirectives } from '../../../directives/shared-directives.module';\nimport { ProgressBarModule } from '../../progress-bar/progress-bar.module';\nimport { TooltipModule } from '../../tooltip/tooltip.module';\nimport { InputComponent } from './input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedDirectives,\n TooltipModule,\n ProgressBarModule\n ],\n exports: [InputComponent],\n declarations: [InputComponent],\n providers: [],\n})\nexport class InputModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SharedDirectives } from '../../../directives/shared-directives.module';\nimport { InputModule } from '../input/input.module';\n\nimport { InputSearchComponent } from './input-search.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n InputModule,\n SharedDirectives\n ],\n exports: [InputSearchComponent],\n declarations: [InputSearchComponent],\n providers: [],\n})\nexport class InputSearchModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { LoaderComponent } from './loader.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n exports: [LoaderComponent],\n declarations: [LoaderComponent],\n providers: [],\n})\nexport class LoaderModule { }\n","import { DOCUMENT } from '@angular/common';\nimport { Inject } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[tableColumn]'\n})\nexport class TableColumn {\n @Input('columnSize') columnSize: string; // Optional.\n @Input('centerCell') centerCell: 'left'|'center'|'right'; // Optional. left|center|right\n\n private centerCellValue: string[] = ['left', 'center', 'right'];\n\n constructor(private currentCell: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) {}\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n }\n\n applyCustomStylesOnCell() {\n this.currentCell.nativeElement.style.flexGrow = typeof this.columnSize !== 'undefined' ? this.columnSize : '1';\n this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__body__line__cell');\n\n if (this.centerCell) {\n if (this.centerCellValue.indexOf(this.centerCell) === -1) {\n throw 'Error : The centerCell directive has no matched value. The value must be one of the following : left, center, right.';\n }\n\n let className = 'wac-table__body__line__cell--center' + '--' + this.centerCell;\n this.renderer.addClass(this.currentCell.nativeElement, className);\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { EventEmitter, Inject, Output } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef, Input } from '@angular/core';\nimport { NwbFilter, NwbFilterGroup } from '@wizishop/ng-wizi-bulma';\nimport { Subscription } from 'rxjs';\nimport { FiltersTableService } from '../shared/filters-table.service';\nimport { TableFilters } from '../shared/table-filters.model';\n\n@Directive({\n // The selector has the same name as the headerCell selector in table.component.html\n selector: '[headerCell]'\n})\nexport class TableColumnHeader {\n @Input('headerName') // Optional.\n set headerName(value: string) {\n this._headerName = value;\n this.setHeaderName();\n }\n _headerName: string = '';\n get headerName(): string {\n return this._headerName;\n }\n @Input('columnSize') columnSize: string; // Optional.\n @Input('filterRouting') filterRouting: boolean = false; // Optional. Set to true to use Filter Routing.\n @Input('tableName') tableName: string; // Optional, but mandatory to handle sorting\n @Input('sortName') sortName: string; // Optional, but mandatory to handle sorting\n @Input('centerCell') centerCell: 'left'|'center'|'right'; // Optional. left|center|right\n @Output() onSortChange: EventEmitter<boolean> = new EventEmitter(); // Emit the sort value (true, false, undefuned) of the current sort icon when clicking\n @Input() tableFilters: TableFilters;\n @Output() tableFiltersChange: EventEmitter<TableFilters> = new EventEmitter();\n\n private centerCellValue: string[] = ['left', 'center', 'right'];\n\n private contentHeader: HTMLAnchorElement;\n private filterGroup: NwbFilterGroup;\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private currentCell: ElementRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document,\n private filtersTableService: FiltersTableService\n ) {}\n\n ngOnInit() {\n if (this.tableName && this.sortName) {\n if (this.filterRouting) {\n this.handleSortRouting();\n } else {\n this.handleSortBasic();\n }\n }\n }\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n this.renderHeaderColumn();\n }\n\n handleSortRouting() {\n this.filterGroup = this.filtersTableService.getTableFilterGroup(this.tableName);\n\n const filterGroupChangeSub = this.filterGroup.valuesChange$.subscribe((filters:NwbFilter[]) => {\n if (!filters || !filters.length) {\n return;\n }\n const filterSort = filters.filter(filter => filter.key === 'sort')[0];\n if (this.sortName !== filterSort.value) {\n this.resetSortIcon();\n }\n });\n this.subscriptions.push(filterGroupChangeSub);\n }\n\n handleSortBasic() {\n const sortChangeSub = this.filtersTableService.getSortChangeListner().subscribe(sort => {\n if (this.tableName === sort.dataTableName && this.sortName !== sort.sortName) {\n // Reset the current sort icon\n this.resetSortIcon();\n }\n });\n this.subscriptions.push(sortChangeSub);\n }\n\n resetSortIcon() {\n // Replace current icon with default icon\n this.contentHeader.className = this.contentHeader.className.replace(this.getCurrentSortIcon(), 'idle');\n }\n\n applyCustomStylesOnCell() {\n this.currentCell.nativeElement.style.flexGrow = typeof this.columnSize !== 'undefined' ? this.columnSize : '1';\n this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__head__cell');\n\n if (this.centerCell) {\n if (this.centerCellValue.indexOf(this.centerCell) === -1) {\n throw 'Error : The centerCell directive has no matched value. The value must be one of the following : left, center, right.';\n }\n\n let className = 'wac-table__head__cell--center' + '--' + this.centerCell;\n this.renderer.addClass(this.currentCell.nativeElement, className);\n }\n }\n\n renderHeaderColumn() {\n this.createHeaderContent();\n this.renderer.appendChild(this.currentCell.nativeElement, this.contentHeader);\n }\n\n createHeaderContent() {\n this.contentHeader = document.createElement('a');\n this.contentHeader.className = 'wac-table__head__cell__search';\n this.setHeaderName();\n if (this.tableName && this.sortName) {\n this.handleSort();\n }\n }\n\n private setHeaderName() {\n if (!this.contentHeader) {\n return;\n }\n this.contentHeader.innerHTML = this.headerName;\n }\n\n handleSort() {\n // Set icon in the header column cell\n this.contentHeader.className += ' wac-table__head__cell__search--' + this.getInitialSortIcon();\n\n // On click on the content header, change the icon and emit event\n this.renderer.listen(this.contentHeader, 'click', () => {\n const currentIcon = this.getCurrentSortIcon();\n let newIcon: string;\n let newSort: string, newOrder: boolean;\n\n switch (currentIcon) {\n case 'idle':\n newIcon = 'up';\n newSort = this.sortName;\n newOrder = true;\n break;\n\n case 'up':\n newIcon = 'down';\n newSort = this.sortName;\n newOrder = false;\n break;\n\n case 'down':\n newIcon = 'idle';\n break;\n\n default:\n newIcon = 'idle';\n break;\n }\n // Replace the icon\n this.contentHeader.className = this.contentHeader.className.replace(currentIcon, newIcon);\n\n this.emitEvents(newSort, newOrder);\n });\n }\n\n getInitialSortIcon() {\n if (!this.filterRouting) {\n return 'idle';\n }\n // Get Initial Sort Icon for Routing Filter\n let initialSortIcon = 'idle';\n if (this.filterGroup.get('sort') === this.sortName) {\n initialSortIcon = this.filterGroup.get('order') == 'true' ? 'up' : 'down';\n }\n return initialSortIcon;\n }\n\n getCurrentSortIcon() {\n const regexp = /wac-table__head__cell__search--(?<icon>\\w+)/;\n const { groups } = regexp.exec(this.contentHeader.className);\n return groups.icon;\n }\n\n emitEvents(newSort, newOrder) {\n if (this.filterRouting) {\n // Will send the filter routing value has changes event\n this.filterGroup.setValues({\n sort: newSort,\n order: newOrder,\n currentPage: 1\n });\n } else {\n // Send the event sort change\n this.filtersTableService.emitSortChange(this.tableName, this.sortName, newOrder);\n }\n if (this.tableFilters) {\n this.tableFilters.sort = this.sortName;\n this.tableFilters.order = newOrder;\n this.tableFilters.currentPage = 1;\n this.tableFiltersChange.emit(this.tableFilters);\n }\n this.onSortChange.emit(newOrder);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => {\n subscription.unsubscribe();\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxModule } from '../checkbox/checkbox.module';\nimport { InputSearchModule } from '../inputs/input-search/input-search.module';\nimport { LoaderModule } from '../loader/loader.module';\nimport { PaginationModule } from '../pagination/pagination.module';\nimport { CheckBoxRow } from './directives/checkBoxRow.directive';\nimport { TableColumn } from './directives/column.directive';\nimport { TableColumnHeader } from './directives/columnHeader.directive';\nimport { TableRow } from './directives/raw.directive';\n\nimport { TableComponent } from './table.component';\n\nconst directives = [TableColumn, CheckBoxRow, TableColumnHeader, TableRow,]\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n InputSearchModule,\n LoaderModule,\n CheckboxModule,\n PaginationModule\n ],\n exports: [TableComponent, ...directives],\n declarations: [TableComponent, ...directives],\n providers: [],\n})\nexport class TableModule { }\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'wac-upload',\n templateUrl: './upload.component.html'\n})\nexport class UploadComponent implements OnInit {\n @Input()\n label: string = 'Choisir les images à importer';\n @Input()\n type: string = 'button';\n @Input()\n icon: string | boolean = 'far fa-images';\n @Input()\n image: string | boolean = 'assets/angular-components/images/upload/icon_picture.svg';\n @Input()\n labelImage: string = 'Glisser-déposer votre image ici';\n\n @Output()\n open = new EventEmitter<any>();\n constructor() {}\n\n ngOnInit(): void {}\n\n triggerEvent(event) {\n this.open.emit(event);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-h4',\n templateUrl: './h4.component.html'\n})\nexport class H4Component implements OnInit {\n @Input() grey = false;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CalllToAction } from '../call-to-action.model';\nimport { SelectItem } from '../select-items.dto';\n\n@Component({\n selector: 'wac-select-in-text',\n templateUrl: './select-in-text.component.html'\n})\nexport class SelectInTextComponent implements OnInit {\n @Input()\n set items(items: SelectItem[]) {\n this._items = items;\n this.setInitialValues();\n }\n get items(): SelectItem[] {\n return this._items;\n }\n private _items: SelectItem[];\n\n @Input()\n placeholder: string;\n\n @Input()\n label: string;\n\n @Input()\n maxWidthItems: string;\n\n @Input()\n type = 'default';\n\n @Input()\n callToAction: CalllToAction;\n\n @Input()\n preText: string;\n\n @Input()\n postText: string;\n\n @Input()\n alwaysOpen: boolean = false;\n\n openCategories = false;\n\n currentLabel: string = '';\n currentLabelIcon: string = '';\n\n @Input() maxWidth = '100%';\n\n @Output() selectValue = new EventEmitter<number>();\n\n @Output() clickOnCallToAction = new EventEmitter<any>();\n\n constructor() {}\n\n ngOnInit(): void {\n this.currentLabel = this.placeholder;\n this.setInitialValues();\n }\n\n setInitialValues() {\n if (!this.items.length) {\n return;\n }\n\n const itemSelected: SelectItem = this.getItemSelected();\n this.setCurrentItem(itemSelected);\n }\n\n onClose() {\n this.openCategories = false;\n }\n\n customTB(item: SelectItem, index: number) {\n return `${item.id}-${index}`;\n }\n\n onSelectItem(index: number) {\n this.unselectAll();\n const itemSelected: SelectItem = this.items[index];\n this.setCurrentItem(itemSelected);\n this.selectValue.emit(index);\n }\n\n onClickCallToAction() {\n this.clickOnCallToAction.emit(this.callToAction.value);\n }\n\n private getItemSelected():SelectItem {\n let itemSelected: SelectItem = null;\n this.items.forEach(item => {\n if (!item.selected) {\n return;\n }\n itemSelected = item;\n });\n return itemSelected;\n }\n\n private setCurrentItem(itemSelected: SelectItem) {\n if (!itemSelected) {\n return;\n }\n itemSelected.selected = true;\n this.currentLabel = itemSelected.name;\n this.currentLabelIcon = itemSelected.icon;\n }\n\n private unselectAll() {\n this.items.forEach(item => item.selected = false);\n }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport { CalllToAction } from '../call-to-action.model';\nimport { SelectItem } from '../select-items.dto';\nimport {TranslateService} from '@ngx-translate/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-select',\n templateUrl: './select.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }]\n})\nexport class SelectComponent implements OnInit, ControlValueAccessor {\n //! Refacto improve sroll on mobile, see with Pauline\n // todo could be simplify. Check filters manager implementation for use case\n\n _items: SelectItem[];\n @Input() set items(items: SelectItem[]) {\n this._items = items;\n this.setIndexItemSelected();\n }\n\n get items() : SelectItem[] {\n return this._items;\n }\n\n @Input()\n placeholder: string;\n\n @Input()\n label: string;\n\n @Input()\n maxWidthItems: string; // todo improvre type like : export type CssUnits = 'em'| 'rem' | 'px'; export type CssUnit = `${number}${CssUnits}`;\n\n @Input()\n search = false;\n\n @Input()\n searchValue: string = '';\n\n @Input() openUp = false;\n\n @Output() searchValueChange = new EventEmitter<string>();\n\n @Input()\n type = 'default';\n\n _calllToAction: CalllToAction; // todo maybe replace by ng-content or allow template or child component like <wac-call-to-action>...\n @Input() set callToAction(callToAction: CalllToAction) {\n this._calllToAction = callToAction;\n }\n\n get callToAction(): CalllToAction {\n return this._calllToAction;\n }\n\n @Input() maxWidth = '100%';\n\n @Input()\n disabled = false;\n\n @Output() selectValue = new EventEmitter<number>(); // todo rename more explicit\n\n @Output() clickOnCallToAction = new EventEmitter<any>();\n\n @ViewChild('search') searchElement: ElementRef;\n\n openCategories = false;\n\n indexItemSelected: number = -1;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n }\n\n onClose() {\n this.openCategories = false;\n }\n\n customTB(item: SelectItem, index: number) {\n return `${item.id}-${index}`;\n }\n\n onSelectItem(id: number) {\n this.unselectAll();\n this.setIndexItemSelectedById(id);\n const itemSelected: SelectItem = this.getItemSelected();\n itemSelected.selected = true;\n this.selectValue.emit(this.indexItemSelected);\n this.onChange(itemSelected);\n }\n\n onClickCallToAction() {\n this.onClose();\n this.clickOnCallToAction.emit(this.callToAction.value);\n }\n\n onSearcheValueChange() {\n this.searchValueChange.emit(this.searchValue);\n }\n\n private getItemSelected(): SelectItem {\n return this.items[this.indexItemSelected];\n }\n\n showCategories() {\n this.openCategories = true;\n setTimeout(() => { // this will make the execution after the above boolean has changed\n this.searchElement.nativeElement?.focus();\n }, 0);\n }\n\n private unselectAll() {\n this.items.forEach(item => item.selected = false);\n }\n\n private setIndexItemSelectedById(id: number) {\n this.indexItemSelected = this.items.findIndex(item => item.id === id);\n }\n\n private setIndexItemSelected() {\n this.indexItemSelected = this.items.findIndex(item => item.selected);\n }\n\n // ControlValueAccessor methods\n\n onChange: (selectItem: SelectItem) => void = () => {};\n onTouch: any = () => {}\n\n writeValue(selectItem: any){\n if (!selectItem) {\n return;\n }\n this.unselectAll();\n selectItem.selected = true;\n this.setIndexItemSelectedById(selectItem.id);\n }\n\n registerOnChange(fn: any){\n this.onChange = fn;\n }\n registerOnTouched(fn: any){\n this.onTouch = fn;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wac-multiple-search',\n templateUrl: './multiple-search.component.html'\n})\nexport class MultipleSearchComponent implements OnInit {\n @Input() options = {};\n @Input() alwaysOpen = false;\n label = '';\n placeholder = '';\n icon = '';\n query = '';\n search: any = '';\n openSelect = false;\n error = 'wac.simpleSearchComponent.error';\n showError = false;\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n this.setPlaceholder();\n this.setLabel();\n this.setQuery();\n this.setIcon();\n }\n\n setSearchValueToQuery(value) {\n if (value.code !== 'Enter') {\n this.search = encodeURI(value.target.value);\n } else {\n this.submitForm();\n }\n }\n\n submitForm() {\n if (this.search) {\n if (this.search.length > 0) {\n window.location.href = this.query.replace('{s}', this.search);\n } else {\n this.displayError();\n }\n } else {\n this.displayError();\n }\n }\n\n setPlaceholder(value?) {\n if (value) {\n this.placeholder = this.options[value].placeholder;\n } else {\n this.placeholder = this.options[0].placeholder;\n }\n }\n\n setLabel(value?) {\n if (value) {\n this.label = this.options[value].label;\n } else {\n this.label = this.options[0].label;\n }\n }\n\n setQuery(value?) {\n if (value) {\n this.query = this.options[value].queries;\n } else {\n this.query = this.options[0].queries;\n }\n }\n\n displayError() {\n this.showError = true;\n setTimeout(() => {\n this.hideError();\n }, 2000);\n }\n\n hideError() {\n this.showError = false;\n }\n\n setIcon(value?) {\n if (value) {\n this.icon = this.options[value].icon;\n } else {\n this.icon = this.options[0].icon;\n }\n }\n\n openFuncSelect() {\n this.openSelect = !this.openSelect;\n }\n\n closeSelect() {\n this.openSelect = false;\n }\n\n resetAllVue(value) {\n this.setPlaceholder(value);\n this.setLabel(value);\n this.setQuery(value);\n this.setIcon(value);\n this.search = '';\n this.closeSelect();\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MultipleSearchPlusOption } from './shared/multiple-search-plus-option.model';\nimport { MultipleSearchPlusResults } from './shared/multiple-search-plus-results.model';\n\n@Component({\n selector: 'wac-multiple-search-plus',\n templateUrl: './multiple-search-plus.component.html'\n})\nexport class MultipleSearchPlusComponent implements OnInit {\n\n currentOption:number;\n label = '';\n placeholder = '';\n openSelect = false;\n openSearchResults = false;\n\n isLoading = true;\n\n @Input() options:MultipleSearchPlusOption[];\n @Input() searchResults:MultipleSearchPlusResults[];\n\n @Output() searchValue = new EventEmitter();\n @Output() optionsChange = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {\n this.setCurrentOption();\n this.setPlaceholder();\n this.setLabel();\n }\n\n setSearchValue(value:any) {\n if(value.target.value != ''){\n this.openSearchResults = true;\n } else {\n this.openSearchResults = false;\n }\n this.searchValue.emit({ currentOption: this.options[this.currentOption].code, value: value.target.value });\n }\n\n setCurrentOption(value?:number) {\n this.currentOption = value || 0;\n }\n\n setPlaceholder(value?:number) {\n this.placeholder = value ? this.options[value].placeholder : this.options[0].placeholder;\n }\n\n setLabel(value?:number) {\n this.label = value ? this.options[value].label : this.options[0].label;\n }\n\n onToggleSelect() {\n this.openSelect = !this.openSelect;\n }\n\n closeSelect() {\n this.openSelect = false;\n }\n\n closeSearchResults() {\n this.openSearchResults = false;\n }\n\n resetAllVue(value:number) {\n this.searchResults = undefined;\n this.setCurrentOption(value);\n this.setPlaceholder(value);\n this.setLabel(value);\n this.openSearchResults = false;\n this.closeSelect();\n }\n\n addResult(index:number) {\n let alreadyExist = false;\n this.options[this.currentOption].table.forEach(elem => {\n if(elem.id == this.searchResults[index].id){\n alreadyExist = true;\n }\n });\n if(!alreadyExist) {\n this.options[this.currentOption].table.push(this.searchResults[index]);\n }\n this.resetAllVue(this.currentOption);\n this.optionsChange.emit({ currentOption: this.options[this.currentOption].code, action: 'add'});\n }\n\n deleteResult(indexItem:number, index:number) {\n this.options[index].table.splice(indexItem,1);\n this.optionsChange.emit({ currentOption: this.options[index].code, action: 'delete'});\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { OptionItem } from './option-item.dto';\n\n@Component({\n selector: 'wac-input-with-select',\n templateUrl: './input-with-select.component.html'\n})\nexport class InputWithSelectComponent implements OnInit {\n // todo add ngmodel for input\n @Input()\n label: string;\n\n @Input()\n text: string;\n\n @Input()\n options: OptionItem[];\n\n @Input()\n placeholder: string;\n\n @Input()\n id: string;\n\n currentLabel: string;\n showSelect = false;\n\n @Output() inputValueChange = new EventEmitter<string>();\n @Output() selectValueChange = new EventEmitter<number>();\n\n constructor() {}\n\n ngOnInit() {\n this.options.forEach((item) => {\n if (item.active) {\n this.currentLabel = item.label;\n }\n });\n }\n\n onClickItem(index: number) {\n this.unActiveAll();\n const optionSelected: OptionItem = this.options[index];\n optionSelected.active = true;\n this.currentLabel = optionSelected.label;\n this.showSelect = false;\n this.selectValueChange.emit(index);\n }\n\n onToggleSelect() {\n this.showSelect = !this.showSelect;\n }\n\n onCloseSelect() {\n this.showSelect = false;\n }\n\n onChangeInputValue(e: any) {\n this.inputValueChange.emit(e.target.value);\n }\n\n private unActiveAll() {\n this.options.forEach((item) => {\n item.active = false;\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DomService } from '../../services/dom.service';\n\n@Component({\n selector: 'wac-popin',\n templateUrl: './popin.component.html'\n})\nexport class PopinComponent implements OnInit {\n @Input()\n title: string;\n\n @Input()\n content: string;\n\n @Input()\n imgSrc: string;\n\n @Input()\n okButtonLabel: string;\n\n @Input()\n koButtonLabel: string;\n\n @Input()\n okButtonClass: string;\n\n @Input()\n koButtonClass: string;\n\n @Input()\n visible = false;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Output()\n response = new EventEmitter();\n\n @Input()\n background = true;\n\n firstOpen = true;\n\n constructor(private domService: DomService) { }\n\n ngOnInit() {\n this.domService.setDocumentEventListener();\n }\n\n validatePopin() {\n this.response.emit(true);\n this.closePopin();\n }\n\n refusePopin(){\n this.response.emit(false);\n this.closePopin();\n }\n\n closePopin() {\n if(!this.firstOpen){ //trick for auto-hide directive that close immediatly the pop-in\n this.visible = false;\n this.visibleChange.emit(this.visible);\n this.firstOpen = true;\n } else {\n this.firstOpen = false;\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DomService } from '../../services/dom.service';\n\n@Component({\n selector: 'wac-free-popin',\n templateUrl: './free-popin.component.html'\n})\nexport class FreePopinComponent implements OnInit {\n @Input()\n okButtonLabel: string;\n\n @Input()\n koButtonLabel: string;\n\n @Input()\n visible = false;\n\n @Input()\n disableCloseOutside = false;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Output()\n response = new EventEmitter();\n\n @Input()\n background = true;\n\n @Input()\n zIndex: number = 9999;\n\n firstOpen = true;\n\n constructor(private domService: DomService) { }\n\n ngOnInit() {\n this.domService.setDocumentEventListener();\n }\n\n validatePopin() {\n this.response.emit(true);\n this.closePopin();\n }\n\n refusePopin(){\n this.response.emit(false);\n this.closePopin();\n }\n\n closePopin() {\n if (!this.firstOpen || this.disableCloseOutside) {\n this.visible = false;\n this.visibleChange.emit(this.visible);\n this.firstOpen = true;\n } else {\n this.firstOpen = false;\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'wac-block',\n templateUrl: './block.component.html'\n})\nexport class BlockComponent {\n @Input()\n titleBlock = ''; // Titre interne au block\n\n @Input()\n titleExternalBlock = false; // Titre externe au block\n\n @Input()\n sticky = false; // add sticky to block\n\n @Input()\n simple = false;\n\n @Input()\n noFullHeight = false; // not full height\n\n @Input()\n icon = '';\n\n @Input()\n titleUppercase = true;\n\n @Input()\n borderRadius = false;\n\n @Input()\n removePadding = false;\n\n @Input()\n stretchHeight = false;\n\n constructor() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-wrapper',\n templateUrl: './wrapper.component.html'\n})\nexport class WrapperComponent implements OnInit {\n @Input()\n size = 'fullsize';\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FilterItem } from './filter-item.dto';\n\n@Component({\n selector: 'wac-filters',\n templateUrl: './filters.component.html'\n})\nexport class FiltersComponent implements OnInit {\n\n @Input()\n options: FilterItem[];\n\n @Input()\n labelRestart: string = 'Afficher toutes les catégories';\n\n @Output()\n filterChange = new EventEmitter<number>();\n\n filterActiveIndex?: string;\n\n constructor() {}\n\n ngOnInit(): void {\n this.options.forEach((item, index) => {\n\n if (item.active) {\n this.filterActiveIndex = '' + index;\n }\n });\n\n }\n\n activeFilter(index: number) {\n this.options[index].active = true;\n this.filterActiveIndex = '' + index;\n this.filterChange.emit(index);\n }\n\n resetFilter() {\n this.options.forEach((item) => {\n item.active = false;\n });\n this.filterActiveIndex = null;\n this.filterChange.emit(-1);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'wac-wrapper-blocs',\n templateUrl: './wrapper-blocs.component.html'\n})\nexport class WrapperBlocsComponent implements OnInit {\n @Input()\n sidebar = false;\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, Input, OnInit, Output, ViewEncapsulation, EventEmitter } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'wac-snackbar',\n templateUrl: './snackbar.component.html',\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('state', [\n state(\n 'void',\n style({\n bottom: '-100px'\n })\n ),\n state(\n 'inactive',\n style({\n bottom: '-100px'\n })\n ),\n state(\n 'active',\n style({\n bottom: '0px'\n })\n ),\n transition('void => active', animate(300)),\n transition('active => inactive', animate(300))\n ])\n ]\n})\nexport class SnackbarComponent implements OnInit {\n\n @Input() message: string;\n @Input() textButtonOk?: string;\n @Input() textButtonKo?: string;\n @Input() duration?: number;\n @Input() color?: string;\n @Input() buttonColor?: string;\n\n @Input() visible = false;\n @Output() visibleChange = new EventEmitter();\n\n @Output() response = new EventEmitter();\n\n private manualClose = false;\n\n private timer: any;\n\n ngOnInit() {\n if (this.duration > 0) {\n this.timer = setTimeout(() => this.manualClose = true, this.duration);\n }\n }\n\n validate(){\n this.response.emit(true);\n this.closeSnackbar();\n this.manualClose = true;\n }\n\n refuse(){\n this.response.emit(false);\n this.closeSnackbar();\n this.manualClose = true;\n }\n\n closeSnackbar(){\n this.visible = false;\n this.visibleChange.emit(this.visible);\n }\n\n}\n","import { Observable, Subject } from 'rxjs';\nimport { AlertPopupConfig } from './alert-popup.service';\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-alert-popup',\n templateUrl: './alert-popup.component.html',\n host: {\n class: 'wac-alert-popup'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class AlertPopupComponent implements OnInit {\n config: AlertPopupConfig;\n\n /** Subject for notifying the user that the dialog has finished closing. */\n private afterClosedPopup: Subject<any> = new Subject();\n\n open = false;\n\n private timer: any;\n\n ngOnInit() {\n setTimeout(() => {\n this.open = true;\n }, 50);\n\n if (this.config.duration > 0) {\n this.timer = setTimeout(() => this.dismiss(), this.config.duration);\n }\n }\n\n dismiss() {\n this.open = false;\n\n setTimeout(() => {\n this.afterClosedPopup.next(true);\n this.afterClosedPopup.complete();\n }, 200);\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed(): Observable<any> {\n return this.afterClosedPopup.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AlertPopupComponent } from './alert-popup.component';\nimport {DomService} from '../../services/dom.service';\n\n@Injectable()\nexport class AlertPopupService {\n constructor(private domService: DomService) {}\n\n open(config: AlertPopupConfig): AlertPopupComponent {\n const componentRef = this.getComponentRef(config);\n\n return componentRef.instance;\n }\n\n private getComponentRef(config: AlertPopupConfig) {\n const componentRef = this.domService.attachComponentPortal(AlertPopupComponent);\n\n config = Object.assign(\n {\n position: 'is-top'\n },\n config\n );\n\n componentRef.instance.config = config;\n\n componentRef.instance.afterClosed().subscribe(() => {\n componentRef.destroy();\n });\n\n return componentRef;\n }\n}\n\nexport interface AlertPopupConfig {\n message: string;\n title?: string;\n icon?: string;\n color?: string;\n position?: string;\n duration?: number;\n extraClasses?: string;\n fullsize?: boolean;\n opacity?: boolean;\n small?: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AlertPopupService } from './alert-popup.service';\nimport { AlertPopupComponent } from './alert-popup.component';\n\n@NgModule({\n imports: [CommonModule],\n providers: [AlertPopupService],\n entryComponents: [AlertPopupComponent],\n declarations: [AlertPopupComponent],\n exports: [AlertPopupComponent]\n})\nexport class AlertPopupModule {}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {SearchOption} from './shared/search-option.model';\nimport {SelectItem} from '../selects/select-items.dto';\n\n@Component({\n selector: 'wac-search',\n templateUrl: './search.component.html'\n})\nexport class SearchComponent implements OnInit {\n\n @Input() placeholder: string;\n @Input() alwaysOpen = false;\n @Input() label: string;\n @Input() options: SearchOption[];\n @Input() disableSearchIn = false;\n @Input() emptyResult = '';\n search: any = '';\n openSelect = false;\n triggerOptions: SearchOption[];\n @Output() selectValue = new EventEmitter<number>();\n @Output() searchKeyUp = new EventEmitter<string>();\n @Output() searchFocusOut = new EventEmitter<string>();\n constructor() {}\n\n ngOnInit() {\n this.triggerOptions = this.options;\n }\n\n onClose() {\n this.openSelect = false;\n }\n\n setSearchValueToQuery(value) {\n this.search = value.target.value;\n if (this.disableSearchIn) {\n this.triggerOptions = this.options;\n } else {\n if (this.search.length > 0) {\n this.openSelect = true;\n this.triggerOptions = this.options.filter(element => element.label.toLowerCase().indexOf(this.search.toLowerCase()) !== -1);\n } else {\n this.triggerOptions = this.options;\n }\n }\n this.searchKeyUp.emit(this.search);\n }\n\n sendEventFocusOut() {\n this.searchFocusOut.emit(this.search);\n }\n\n closeSelect() {\n this.openSelect = false;\n }\n\n onSelectItem(index: number, value: number, label: string) {\n this.search = '';\n this.openSelect = false;\n if (this.disableSearchIn) {\n this.selectValue.emit(index);\n } else {\n const findInOption = this.options.findIndex(element => element.label === label && element.id === value);\n this.selectValue.emit(findInOption);\n }\n }\n\n resetAllVue() {\n this.search = '';\n this.closeSelect();\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {SelectedListOption} from './shared/selected-list-option.model';\n\n@Component({\n selector: 'wac-selected-list',\n templateUrl: './selected-list.component.html',\n})\nexport class SelectedListComponent implements OnInit {\n\n @Input() options: SelectedListOption[] = [];\n @Input() label: string;\n @Input() textSelectAll: string;\n @Input() textUnSelectAll: string;\n @Input() enableSelectAll = true;\n @Output() selectedItemsIndex = new EventEmitter<number>();\n @Output() selectedItemsAll = new EventEmitter<number[]>();\n @Output() unSelectedItemsAll = new EventEmitter<number[]>();\n\n selectedOptionIndex = [];\n\n ngOnInit() {\n }\n\n onSelectAll() {\n this.selectedOptionIndex = this.options.map((option, index) => {\n option.checked = true;\n return index;\n });\n this.selectedItemsAll.emit(this.selectedOptionIndex);\n }\n\n onUnSelectAll() {\n this.selectedOptionIndex = this.options.map((option, index) => {\n option.checked = false;\n return index;\n });\n this.unSelectedItemsAll.emit(this.selectedOptionIndex);\n }\n\n onSelectItem(index: number) {\n this.options[index].checked = !this.options[index].checked;\n this.selectedItemsIndex.emit(index);\n }\n\n areAllOptionsChecked() {\n return !this.options.some(option => !option.checked);\n }\n\n}\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'wac-tree',\n templateUrl: 'tree.component.html'\n})\n\nexport class TreeComponent implements OnInit {\n\n // https://indepth.dev/posts/1405/ngtemplateoutlet\n\n\n /**\n *! items sould include RecursifDto interface\n */\n @Input() items: any[];\n @Input() treeDepth:number = 0;\n @Input(\"optionTemplate\")\n optionTemplate: TemplateRef<any>;\n\n constructor() { }\n\n ngOnInit() { }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatObjectToRecursifTree'\n})\n\nexport class FormatObjectToRecursifTreePipe implements PipeTransform {\n\n childrenProperties: string[] = [];\n\n transform(objectList:any[], childrenProperties: string[]): any {\n this.childrenProperties = childrenProperties;\n const treeDepth = 0;\n\n objectList.forEach(object => this.recursiveFormatObjectToRecursifTree(object, treeDepth));\n\n return objectList;\n }\n\n private recursiveFormatObjectToRecursifTree(object: any, treeDepth:number): any {\n for (const childrenProperty of this.childrenProperties) {\n\n object.hasTreeChildren = true;\n\n if (!object.hasOwnProperty(childrenProperty)) {\n // No more chrildren\n object.hasTreeChildren = false;\n continue;\n }\n\n if (!Array.isArray(object[childrenProperty])) {\n throw `Property : \"${childrenProperty}\", is not an array. it could not be transform to a recursive list.`;\n }\n // Add treeChildren property filled with name children property\n object.treeChildren = object[childrenProperty];\n // call this function recursively until no children can be generated\n this.recursiveFormatObjectToRecursifTree(object.treeChildren, treeDepth++);\n break;\n }\n\n object.treeDepth = treeDepth;\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatObjectToSimpleTree'\n})\n\nexport class FormatObjectToSimpleTreePipe implements PipeTransform {\n\n private childrenProperties: string[] = [];\n private labelProperties: string[] = [];\n\n transform(objectList:any[], childrenProperties: string[], labelProperties: string[]): any {\n\n this.childrenProperties = childrenProperties;\n this.labelProperties = labelProperties;\n const treeDepth = 0;\n\n objectList.forEach(object => this.recursiveFormatObjectToSimpleTree(object, treeDepth));\n\n return objectList;\n }\n\n private recursiveFormatObjectToSimpleTree(object: any, treeDepth:number): any {\n for (const property in object) {\n\n if (!Object.prototype.hasOwnProperty.call(object, property)) {\n continue;\n }\n\n if (this.labelProperties.includes(property)) {\n object.treeLabel = object[property];\n continue;\n }\n\n object.hasTreeChildren = true;\n\n if (!this.childrenProperties.includes(property)) {\n // No more chrildren\n object.hasTreeChildren = false;\n continue;\n }\n\n if (!Array.isArray(object[property])) {\n throw `Property : \"${property}\", is not an array. it could not be transform to a recursive list.`;\n }\n // Add treeChildren property filled with name children property\n object.treeChildren = object[property];\n // call this function recursively until no children can be generated\n this.recursiveFormatObjectToSimpleTree(object.treeChildren, treeDepth++);\n break;\n }\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { SelectItem } from '../../components/selects/select-items.dto';\n\n@Pipe({\n name: 'selectFilters'\n})\n\nexport class SelectFiltersPipe implements PipeTransform {\n transform(items: SelectItem[], filterName: string): any {\n return items.filter(item => {\n const regexp = new RegExp(filterName, 'i');\n return regexp.test(item.name);\n });\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { SelectedListOption } from '../../components/selected-list/shared/selected-list-option.model';\n\n@Pipe({\n name: 'areAllOptionsSelected',\n pure: false\n})\n\nexport class AreAllOptionsSelectedPipe implements PipeTransform {\n transform(options: SelectedListOption[]): boolean {\n return !options.some(option => !option.checked);\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { FormatObjectToRecursifTreePipe } from './tree/format-object-to-recursif-tree.pipe';\nimport { FormatObjectToSimpleTreePipe } from './tree/format-object-to-simple-tree.pipe';\nimport { SelectFiltersPipe } from './select/select-filters.pipe';\nimport { AreAllOptionsSelectedPipe } from './selected-list/are-all-options-selected.pipe';\n\nconst exportedPipes = [FormatObjectToRecursifTreePipe, FormatObjectToSimpleTreePipe];\n\nconst pipes = [\n SelectFiltersPipe,\n AreAllOptionsSelectedPipe\n]\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [...exportedPipes, ...pipes],\n exports: [...exportedPipes, ...pipes]\n})\nexport class SharedPipes {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SharedPipes } from '../../pipes/shared-pipes.module';\nimport { TreeComponent } from './tree.component';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedPipes\n ],\n exports: [TreeComponent],\n declarations: [TreeComponent],\n providers: [],\n})\nexport class TreeModule { }\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'wac-wrapper-sidebar',\n templateUrl: './wrapper-sidebar.component.html'\n})\nexport class WrapperSidebarComponent implements OnInit {\n\n @Input() reverse = false;\n @Input() hideBackground = false;\n @Input() backgroundGrey: string;\n @Input() backgroundWidth: string;\n @Input() stickySidebar = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {BreadcrumbsDto} from './breadcrumbs.dto';\n\n@Component({\n selector: 'wac-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n})\nexport class BreadcrumbsComponent implements OnInit {\n\n @Input()\n breadcrumbs: BreadcrumbsDto[];\n\n @Input()\n noResponsive = false;\n\n index: number = 0;\n\n @Output()\n indexChange = new EventEmitter<any>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n valueChanged(i) {\n this.index = i;\n this.indexChange.emit(this.index);\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'wac-card-price',\n templateUrl: './card-price.component.html',\n})\nexport class CardPriceComponent implements OnInit {\n\n @Input()\n amount: string;\n\n @Input()\n title: string;\n\n @Input()\n selected = false;\n\n @Input()\n btnLabelSelected: string;\n\n @Input()\n price: string | number;\n\n @Input()\n currency: string;\n\n @Input()\n priceWording: string;\n\n @Input()\n subtitle: string;\n\n @Input()\n btnLabel: string;\n\n @Input()\n packageSubtitle: string;\n\n @Input()\n linkPackageLabel: string;\n\n @Input()\n disabled: boolean = false;\n\n @Input()\n btnTextcolor = '#ffffff';\n\n @Input()\n extraClasses = 'is-success';\n\n @Input()\n extraClassesSelected = 'is-success is-outlined';\n\n @Input()\n hideButton = false;\n\n @Output() public confirm: EventEmitter<any> = new EventEmitter();\n\n @Output() public cancel: EventEmitter<any> = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n triggerClick() {\n this.confirm.emit(true);\n }\n\n removePackageTrigger() {\n this.cancel.emit(true);\n }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'wac-token-check',\n templateUrl: './token-check.component.html',\n})\nexport class TokenCheckComponent implements OnInit {\n\n @Input()\n label: string;\n\n @Input()\n value: number;\n\n @Input()\n max: number;\n\n warning = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'wac-block-with-checkbox',\n templateUrl: './block-with-checkbox.component.html',\n})\nexport class BlockWithCheckboxComponent implements OnInit {\n\n @Input()\n selected = false;\n\n @Input()\n disabled = false;\n\n @Output()\n checkboxAction = new EventEmitter<boolean>();\n\n randomLabelName: string;\n\n @Input()\n nameRadio = 'wacBlockCheckboxRadio';\n\n @Input()\n isFirst = false;\n\n @Input()\n opacity = '.45';\n\n constructor() { }\n\n ngOnInit(): void {\n this.randomLabelName = 'radioBlock' + Math.random() * (900 - 700) + 700;\n }\n\n eventSelected(event) {\n if (!this.disabled) {\n this.selected = event.target.checked;\n this.checkboxAction.emit(this.selected);\n this.isFirst = false;\n }\n }\n\n removeFirstClass() {\n if (typeof document.querySelectorAll('.firstWacRadioBLock')[0] !== typeof undefined) {\n document.querySelectorAll('.firstWacRadioBLock')[0].classList.remove('firstWacRadioBLock');\n }\n }\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild} from '@angular/core';\n\n@Component({\n selector: 'wac-confirm-delete',\n templateUrl: './confirm-delete.component.html'\n})\nexport class ConfirmDeleteComponent implements OnInit, AfterViewInit {\n\n @Input()\n open = false;\n\n @Input()\n label: string;\n\n @Input()\n labelCancel: string;\n\n @Input()\n labelConfirm: string;\n\n @Output()\n confirm = new EventEmitter<boolean>();\n\n @Input()\n backgroundColor = '#fff';\n\n @Input()\n borderRadius = '0px';\n\n hideText = false;\n\n @ViewChild('container') container: ElementRef;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n eventCancel(event) {\n this.confirm.emit(false);\n this.open = false;\n }\n\n eventConfirm(event) {\n this.confirm.emit(true);\n this.open = false;\n }\n\n responsiveControl(size) {\n if (size < 342) {\n this.hideText = true;\n } else {\n this.hideText = false;\n }\n }\n\n @HostListener('window:resize')\n onResize(): void {\n this.responsiveControl(this.container.nativeElement.offsetWidth);\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.responsiveControl(this.container.nativeElement.offsetWidth);\n }, 100);\n }\n\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output, SimpleChanges, TemplateRef, ViewEncapsulation} from '@angular/core';\n\nexport type ImageSource = string;\nexport type ImageAlt = string;\n\nexport type MosaicImage = {\n src: ImageSource,\n alt: ImageAlt\n}\n\nexport type MosaicImages = Readonly<MosaicImage[]>;\n\n@Component({\n selector: 'wac-mosaic',\n templateUrl: './mosaic.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MosaicComponent {\n\n @Input() imagesList: MosaicImages = [];\n\n @Input() isLoading = false;\n\n @Input() numberOfColumn = 3;\n\n @Input() hoverImageTemplate: TemplateRef<any>;\n\n @Output() importImageSrc = new EventEmitter<ImageSource>();\n\n @Output() loadMoreImages = new EventEmitter<void>();\n\n columns: MosaicImages[];\n\n trackColumn(index: number ) {\n return index;\n }\n\n trackImage(index: number, image: MosaicImage ) {\n return image.src;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n console.log('changes', changes);\n const isNumberOfColumnChange = changes.numberOfColumn && (changes.numberOfColumn.currentValue !== changes.numberOfColumn.previousValue);\n if (changes.imagesList) {\n this.generateColumns(changes.imagesList.previousValue, changes.imagesList.currentValue, isNumberOfColumnChange);\n return;\n }\n\n if (isNumberOfColumnChange) {\n this.generateColumns(null, this.imagesList, isNumberOfColumnChange);\n }\n }\n\n generateColumns(previousList: MosaicImages, currentList: MosaicImages, isNumberOfColumnChange: boolean) {\n const isNewListSmaller = (currentList && previousList) && (currentList.length < previousList.length);\n const resetColumns = isNumberOfColumnChange || isNewListSmaller;\n const isPreviousListExisting = previousList?.length;\n const newImagesToDisplay = !isPreviousListExisting || resetColumns ? currentList : currentList.slice(previousList.length);\n let columns = this.separateImagesIntoColumns(newImagesToDisplay);\n\n if (isPreviousListExisting && !resetColumns) {\n const existingColumns = this.columns;\n columns = this.concatColumns(existingColumns, columns);\n }\n\n this.columns = columns;\n }\n\n separateImagesIntoColumns(newImagesToDisplay: MosaicImages): MosaicImages[] { // https://stackoverflow.com/questions/8495687/split-array-into-chunks\n const columns = [];\n const numberOfImagePerColumn = Math.floor(newImagesToDisplay.length / this.numberOfColumn);\n for (let i = 0; i < newImagesToDisplay.length; i += numberOfImagePerColumn) {\n const chunk = newImagesToDisplay.slice(i, i + numberOfImagePerColumn);\n columns.push(chunk);\n }\n return columns;\n }\n\n concatColumns(oldColumns: MosaicImages[], newColumns: MosaicImages[]): MosaicImages[] {\n return oldColumns.map((oldColumn, columnIndex) => [...oldColumn, ...newColumns[columnIndex]]);\n }\n\n onBottomReached() {\n this.loadMoreImages.emit();\n }\n\n onImportImage(src: ImageSource) {\n this.importImageSrc.emit(src);\n }\n}\n","import {AfterContentInit, AfterViewInit, Component, ContentChild, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'wac-content-with-buttons',\n templateUrl: './content-with-buttons.component.html',\n})\nexport class ContentWithButtonsComponent implements OnInit, AfterViewInit {\n\n @Input()\n iconCopy = 'fa-duotone fa-copy';\n\n @Input()\n iconTranslate = 'fa-regular fa-globe';\n\n @Input()\n tooltipCopy = '';\n\n @Input()\n tooltipTranslate = '';\n\n @Input()\n count = true;\n\n @Input()\n countCharacterLabel = 'caractères';\n\n @Input()\n countWordsLabel = 'mots';\n\n @Input()\n reportLabel: string;\n\n @Output()\n copyAction = new EventEmitter<boolean>();\n\n @Output()\n reportAction = new EventEmitter<boolean>();\n\n @Output()\n translateAction = new EventEmitter<boolean>();\n\n countWords: number;\n\n countIsReady = false;\n\n countCharacter: number;\n\n randomLabelName: string;\n\n\n ngOnInit() {\n this.randomLabelName = 'content-' + Math.random() * (900 - 700) + 700;\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n const content = document.getElementById(this.randomLabelName).innerHTML.replace(/(<([^>]+)>)/gi, '').replace(/[.,\\/#!$%\\^&\\*;:{}=\\-_`~()]/g, '');\n this.countCharacter = content.trim().split(' ').join('').length;\n this.countWords = content.trim().split(' ').length;\n this.countIsReady = true;\n });\n }\n\n eventCopy() {\n this.copyAction.emit(true);\n }\n\n eventTranslate() {\n this.translateAction.emit(true);\n }\n\n eventReport() {\n this.reportAction.emit(true);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-wrapper-multiple-block',\n templateUrl: './wrapper-multiple-block.component.html',\n})\nexport class WrapperMultipleBlockComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'wac-draganddrop-list',\n templateUrl: './draganddrop-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DraganddropListComponent implements OnInit {\n\n @Input()\n label = '';\n\n @Input()\n items: Array<string>;\n\n @Input()\n disabled = false;\n\n @Input()\n max: number;\n\n @Input()\n labelBtnAdd: string;\n\n @Input()\n backgroundColor = '#fff';\n\n showTriggerSave = false;\n\n @Output()\n itemsChange = new EventEmitter<Array<string>>();\n\n ngOnInit() {\n }\n\n drop(event: CdkDragDrop<string[]>) {\n if (!this.disabled) {\n moveItemInArray(this.items, event.previousIndex, event.currentIndex);\n this.itemsChange.emit(Object.values(this.items));\n }\n }\n\n delete(index) {\n if (!this.disabled) {\n this.items = this.items.filter((value, i) => i !== index );\n this.itemsChange.emit(Object.values(this.items));\n }\n }\n\n saveFieldEnd(index, event) {\n this.items[index] = event.target.value;\n this.itemsChange.emit(Object.values(this.items));\n }\n\n addField() {\n this.showTriggerSave = true;\n }\n\n saveNewField(event) {\n this.items.push(event.target.value);\n this.itemsChange.emit(Object.values(this.items));\n this.showTriggerSave = false;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\nimport { LoaderComponent } from './loader/loader.component';\nimport { InputSearchComponent } from './inputs/input-search/input-search.component';\nimport { SharedDirectives } from '../directives/shared-directives.module';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { TagInputModule } from 'ngx-chips';\nimport { TableComponent } from './table/table.component';\nimport { TagComponent } from './tag/tag.component';\nimport { TabComponent } from './tab/tab.component';\nimport { ButtonComponent } from './button/button.component';\nimport { InfoComponent } from './info/info.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { DeleteComponent } from './delete/delete.component';\nimport { DropdownComponent } from './dropdown/dropdown.component';\nimport { ImageComponent } from './image/image.component';\nimport { BackComponent } from './back/back.component';\nimport { SeparatorComponent } from './separator/separator.component';\nimport { LogoComponent } from './logo/logo.component';\nimport { RadioComponent } from './radio/radio.component';\nimport { StateComponent } from './state/state.component';\nimport { LabelComponent } from './label/label.component';\nimport { CalendarComponent } from './calendar/calendar.component';\nimport { WzEditInPlaceComponent } from './edit-in-place/edit-in-place.component';\nimport { TextAreaComponent } from './text-area/text-area.component';\nimport { H1Component } from './hn/h1/h1.component';\nimport { H2Component } from './hn/h2/h2.component';\nimport { H3Component } from './hn/h3/h3.component';\nimport { HeaderPageComponent } from './header-page/header-page.component';\nimport { InputComponent } from './inputs/input/input.component';\nimport { LinkComponent } from './link/link.component';\nimport { ProgressBarComponent } from './progress-bar/progress-bar.component';\nimport { SwitchComponent } from './switch/switch.component';\nimport { TooltipComponent } from './tooltip/tooltip.component';\nimport { AlertComponent } from './alert/alert.component';\nimport { TextComponent } from './text/text.component';\nimport { PaginationModule } from './pagination/pagination.module';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TableModule } from './table/table.module';\nimport { CheckBoxRow } from './table/directives/checkBoxRow.directive';\nimport { TableColumn } from './table/directives/column.directive';\nimport { TableColumnHeader } from './table/directives/columnHeader.directive';\nimport { TableRow } from './table/directives/raw.directive';\nimport { InputSearchModule } from './inputs/input-search/input-search.module';\nimport { TooltipModule } from './tooltip/tooltip.module';\nimport { LoaderModule } from './loader/loader.module';\nimport { CheckboxModule } from './checkbox/checkbox.module';\nimport { InputModule } from './inputs/input/input.module';\nimport { ProgressBarModule } from './progress-bar/progress-bar.module';\nimport { UploadComponent } from './upload/upload.component';\nimport { H4Component } from './hn/h4/h4.component';\nimport { SelectInTextComponent } from './selects/select-in-text/select-in-text.component';\nimport { SelectComponent } from './selects/select/select.component';\nimport { MultipleSearchComponent } from './multiple-search/multiple-search.component';\nimport { MultipleSearchPlusComponent } from './multiple-search-plus/multiple-search-plus.component';\nimport { InputWithSelectComponent } from './inputs/input-with-select/input-with-select.component';\nimport { PopinComponent } from './popin/popin.component';\nimport { FreePopinComponent } from './free-popin/free-popin.component';\nimport { BlockComponent } from './block/block.component';\nimport { WrapperComponent } from './wrapper/wrapper.component';\nimport { FiltersComponent } from './filters/filters.component';\nimport { WrapperBlocsComponent } from './wrapper-blocs/wrapper-blocs.component';\nimport { SnackbarComponent } from './snackbar/snackbar.component';\nimport { RouterModule, Routes } from '@angular/router';\nimport {AlertPopupModule} from './alert-popup/alert-popup-module';\nimport {SearchComponent} from './search/search.component';\nimport {SelectedListComponent} from './selected-list/selected-list.component';\nimport { TreeComponent } from './tree/tree.component';\nimport { TreeModule } from './tree/tree.module';\nimport { SharedPipes } from '../pipes/shared-pipes.module';\nimport {WrapperSidebarComponent} from './wrapper-sidebar/wrapper-sidebar.component';\nimport {AutosizeModule} from 'ngx-autosize';\nimport {BreadcrumbsComponent} from './breadcrumbs/breadcrumbs.component';\nimport {CardPriceComponent} from './card-price/card-price.component';\nimport {TokenCheckComponent} from './token-check/token-check.component';\nimport {BlockWithCheckboxComponent} from './block-with-checkbox/block-with-checkbox.component';\nimport {ConfirmDeleteComponent} from './confirm-delete/confirm-delete.component';\nimport {MosaicComponent} from './mosaic/mosaic.component';\nimport {NgScrollbarModule} from 'ngx-scrollbar';\nimport {NgScrollbarReachedModule} from 'ngx-scrollbar/reached-event';\nimport {ContentWithButtonsComponent} from './content-with-buttons/content-with-buttons.component';\nimport {WrapperMultipleBlockComponent} from './wrapper-multiple-block/wrapper-multiple-block.component';\nimport {DraganddropListComponent} from './draganddrop-list/draganddrop-list.component';\nimport {DragDrop, DragDropModule} from '@angular/cdk/drag-drop';\n\nconst components = [\n TagComponent,\n TabComponent,\n ButtonComponent,\n InfoComponent,\n SettingsComponent,\n DeleteComponent,\n DropdownComponent,\n ImageComponent,\n BackComponent,\n SeparatorComponent,\n LogoComponent,\n RadioComponent,\n StateComponent,\n LabelComponent,\n CalendarComponent,\n WzEditInPlaceComponent,\n AlertComponent,\n HeaderPageComponent,\n SwitchComponent,\n LinkComponent,\n H1Component,\n H2Component,\n H3Component,\n H4Component,\n TextComponent,\n TextAreaComponent,\n UploadComponent,\n SelectInTextComponent,\n SelectComponent,\n MultipleSearchComponent,\n MultipleSearchPlusComponent,\n InputWithSelectComponent,\n PopinComponent,\n FreePopinComponent,\n BlockComponent,\n WrapperComponent,\n FiltersComponent,\n WrapperBlocsComponent,\n SnackbarComponent,\n SearchComponent,\n SelectedListComponent,\n WrapperSidebarComponent,\n BreadcrumbsComponent,\n CardPriceComponent,\n TokenCheckComponent,\n BlockWithCheckboxComponent,\n ConfirmDeleteComponent,\n MosaicComponent,\n ContentWithButtonsComponent,\n WrapperMultipleBlockComponent,\n DraganddropListComponent\n];\n\nconst exportsFromModule = [\n PaginationComponent,\n TableComponent,\n TableColumn,\n CheckBoxRow,\n TableColumnHeader,\n TableRow,\n InputSearchComponent,\n InputComponent,\n TooltipComponent,\n CheckboxComponent,\n LoaderComponent,\n ProgressBarComponent,\n TreeComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NwbAllModule,\n TranslateModule.forChild(),\n ReactiveFormsModule,\n SharedDirectives,\n SharedPipes,\n CdkTableModule,\n TagInputModule,\n DragDropModule,\n PaginationModule,\n TableModule,\n InputSearchModule,\n TooltipModule,\n CheckboxModule,\n InputModule,\n LoaderModule,\n ProgressBarModule,\n PerfectScrollbarModule,\n AlertPopupModule,\n RouterModule,\n AutosizeModule,\n NgScrollbarModule,\n NgScrollbarReachedModule,\n TreeModule\n ],\n declarations: components,\n exports: [...components, ...exportsFromModule]\n})\nexport class SharedComponentsModule {}\n","import { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { NgModule } from '@angular/core';\nimport { SharedComponentsModule } from './components/shared-components.module';\nimport { CommonModule } from '@angular/common';\nimport { SharedDirectives } from './directives/shared-directives.module';\nimport { SharedPipes } from './pipes/shared-pipes.module';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedComponentsModule,\n SharedDirectives,\n SharedPipes,\n NwbAllModule],\n exports: [SharedComponentsModule, SharedDirectives, SharedPipes]\n})\nexport class WiziComponentsModule {}\n","import { NwbFilterGroup } from \"@wizishop/ng-wizi-bulma\";\nimport { Observable, ReplaySubject } from \"rxjs\";\nimport { TableFilters } from \"./table-filters.model\";\n\nexport class TableFiltersGroup extends NwbFilterGroup {\n tableFiltersValuesChange$: ReplaySubject<TableFilters>;\n tableFiltersValuesDebouncedChange$: Observable<TableFilters>;\n\n set(key: \"sort\" | \"order\" | \"searchValue\" | \"totalItems\" | \"itemsPerPage\" | \"currentPage\", value: any): void {\n super.set(key, value);\n }\n\n resetToFirstPage(): void {\n this.set(\"currentPage\", 1);\n }\n}"]}
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/angular-components/src/lib/components/loader/loader.component.ts","../../../../projects/angular-components/src/lib/components/inputs/input-search/input-search.component.ts","../../../../projects/angular-components/src/lib/directives/abstract-debounce/abstract-debounce.directive.ts","../../../../projects/angular-components/src/lib/directives/abstract-debounce/debounce-keyup.directive.ts","../../../../projects/angular-components/src/lib/services/dom.service.ts","../../../../projects/angular-components/src/lib/directives/auto-hide/auto-hide.directive.ts","../../../../projects/angular-components/src/lib/directives/zindex-toggle/zindex-toggle.directive.ts","../../../../projects/angular-components/src/lib/directives/ng-var.directive.ts","../../../../projects/angular-components/src/lib/directives/keyboard-events/keypress-enter.directive.ts","../../../../projects/angular-components/src/lib/directives/shared-directives.module.ts","../../../../projects/angular-components/src/lib/animations/in-out/in-out-y.animation.ts","../../../../projects/angular-components/src/lib/components/checkbox/checkbox.component.ts","../../../../projects/angular-components/src/lib/components/table/shared/filters-table.service.ts","../../../../projects/angular-components/src/lib/utils/html-container.class.ts","../../../../projects/angular-components/src/lib/components/table/shared/table-checkbox-id.service.ts","../../../../projects/angular-components/src/lib/components/table/directives/checkBoxRow.directive.ts","../../../../projects/angular-components/src/lib/services/multiple-selection.service.ts","../../../../projects/angular-components/src/lib/components/table/directives/raw.directive.ts","../../../../projects/angular-components/src/lib/components/table/table.component.ts","../../../../projects/angular-components/src/lib/components/tag/tag.component.ts","../../../../projects/angular-components/src/lib/components/tab/tab.component.ts","../../../../projects/angular-components/src/lib/components/button/button.component.ts","../../../../projects/angular-components/src/lib/components/info/info.component.ts","../../../../projects/angular-components/src/lib/components/settings/settings.component.ts","../../../../projects/angular-components/src/lib/components/delete/delete.component.ts","../../../../projects/angular-components/src/lib/components/dropdown/dropdown.component.ts","../../../../projects/angular-components/src/lib/components/image/image.component.ts","../../../../projects/angular-components/src/lib/components/back/back.component.ts","../../../../projects/angular-components/src/lib/components/separator/separator.component.ts","../../../../projects/angular-components/src/lib/components/logo/logo.component.ts","../../../../projects/angular-components/src/lib/components/radio/radio.component.ts","../../../../projects/angular-components/src/lib/components/state/state.component.ts","../../../../projects/angular-components/src/lib/animations/in-out/in-out-x.animation.ts","../../../../projects/angular-components/src/lib/components/label/label.component.ts","../../../../projects/angular-components/src/lib/components/calendar/calendar.component.ts","../../../../projects/angular-components/src/lib/components/edit-in-place/edit-in-place.component.ts","../../../../projects/angular-components/src/lib/components/text-area/text-area.component.ts","../../../../projects/angular-components/src/lib/components/hn/h1/h1.component.ts","../../../../projects/angular-components/src/lib/components/hn/h2/h2.component.ts","../../../../projects/angular-components/src/lib/components/hn/h3/h3.component.ts","../../../../projects/angular-components/src/lib/components/header-page/header-page.component.ts","../../../../projects/angular-components/src/lib/components/inputs/input/input.component.ts","../../../../projects/angular-components/src/lib/components/link/link.component.ts","../../../../projects/angular-components/src/lib/components/progress-bar/progress-bar.component.ts","../../../../projects/angular-components/src/lib/components/switch/switch.component.ts","../../../../projects/angular-components/src/lib/components/tooltip/tooltip.component.ts","../../../../projects/angular-components/src/lib/components/alert/alert.component.ts","../../../../projects/angular-components/src/lib/components/text/text.component.ts","../../../../projects/angular-components/src/lib/components/pagination/pipes/is-last-page.pipe.ts","../../../../projects/angular-components/src/lib/components/pagination/pagination.component.ts","../../../../projects/angular-components/src/lib/components/pagination/pipes/array-pages.pipe.ts","../../../../projects/angular-components/src/lib/components/pagination/pipes/custom-text.pipe.ts","../../../../projects/angular-components/src/lib/components/pagination/pagination.module.ts","../../../../projects/angular-components/src/lib/components/checkbox/checkbox.module.ts","../../../../projects/angular-components/src/lib/components/progress-bar/progress-bar.module.ts","../../../../projects/angular-components/src/lib/components/tooltip/tooltip.module.ts","../../../../projects/angular-components/src/lib/components/inputs/input/input.module.ts","../../../../projects/angular-components/src/lib/components/inputs/input-search/input-search.module.ts","../../../../projects/angular-components/src/lib/components/loader/loader.module.ts","../../../../projects/angular-components/src/lib/components/table/directives/column.directive.ts","../../../../projects/angular-components/src/lib/components/table/directives/columnHeader.directive.ts","../../../../projects/angular-components/src/lib/components/table/table.module.ts","../../../../projects/angular-components/src/lib/components/upload/upload.component.ts","../../../../projects/angular-components/src/lib/components/hn/h4/h4.component.ts","../../../../projects/angular-components/src/lib/components/selects/select-in-text/select-in-text.component.ts","../../../../projects/angular-components/src/lib/components/selects/select/select.component.ts","../../../../projects/angular-components/src/lib/components/multiple-search/multiple-search.component.ts","../../../../projects/angular-components/src/lib/components/multiple-search-plus/multiple-search-plus.component.ts","../../../../projects/angular-components/src/lib/components/inputs/input-with-select/input-with-select.component.ts","../../../../projects/angular-components/src/lib/components/popin/popin.component.ts","../../../../projects/angular-components/src/lib/components/free-popin/free-popin.component.ts","../../../../projects/angular-components/src/lib/components/block/block.component.ts","../../../../projects/angular-components/src/lib/components/wrapper/wrapper.component.ts","../../../../projects/angular-components/src/lib/components/filters/filters.component.ts","../../../../projects/angular-components/src/lib/components/wrapper-blocs/wrapper-blocs.component.ts","../../../../projects/angular-components/src/lib/components/snackbar/snackbar.component.ts","../../../../projects/angular-components/src/lib/components/alert-popup/alert-popup.component.ts","../../../../projects/angular-components/src/lib/components/alert-popup/alert-popup.service.ts","../../../../projects/angular-components/src/lib/components/alert-popup/alert-popup-module.ts","../../../../projects/angular-components/src/lib/components/search/search.component.ts","../../../../projects/angular-components/src/lib/components/selected-list/selected-list.component.ts","../../../../projects/angular-components/src/lib/components/tree/tree.component.ts","../../../../projects/angular-components/src/lib/pipes/tree/format-object-to-recursif-tree.pipe.ts","../../../../projects/angular-components/src/lib/pipes/tree/format-object-to-simple-tree.pipe.ts","../../../../projects/angular-components/src/lib/pipes/select/select-filters.pipe.ts","../../../../projects/angular-components/src/lib/pipes/selected-list/are-all-options-selected.pipe.ts","../../../../projects/angular-components/src/lib/pipes/shared-pipes.module.ts","../../../../projects/angular-components/src/lib/components/tree/tree.module.ts","../../../../projects/angular-components/src/lib/components/wrapper-sidebar/wrapper-sidebar.component.ts","../../../../projects/angular-components/src/lib/components/breadcrumbs/breadcrumbs.component.ts","../../../../projects/angular-components/src/lib/components/card-price/card-price.component.ts","../../../../projects/angular-components/src/lib/components/token-check/token-check.component.ts","../../../../projects/angular-components/src/lib/components/block-with-checkbox/block-with-checkbox.component.ts","../../../../projects/angular-components/src/lib/components/confirm-delete/confirm-delete.component.ts","../../../../projects/angular-components/src/lib/components/mosaic/mosaic.component.ts","../../../../projects/angular-components/src/lib/components/content-with-buttons/content-with-buttons.component.ts","../../../../projects/angular-components/src/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.ts","../../../../projects/angular-components/src/lib/components/draganddrop-list/draganddrop-list.component.ts","../../../../projects/angular-components/src/lib/components/shared-components.module.ts","../../../../projects/angular-components/src/lib/wizi-components.module.ts","../../../../projects/angular-components/src/lib/components/table/shared/table-filters-group.model.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","__read","n","r","e","ar","push","error","__spread","arguments","concat","text","small","Component","args","selector","template","encapsulation","ViewEncapsulation","None","Input","InputSearchComponent","placeholder","smallPadding","innerValue","changeDebounced","EventEmitter","onTouchedCallback","onChangeCallback","defineProperty","v","writeValue","registerOnChange","fn","registerOnTouched","handleDebouncedKeyUp","emit","providers","provide","NG_VALUE_ACCESSOR","useExisting","multi","Output","AbstractDebounceDirective","debounceTime","onEventChange","emitEvent$","Subject","subscription$","ngOnInit","_this","pipe","takeUntil","distinctUntilChanged","tap","emitChange","subscribe","ngOnDestroy","complete","Directive","DebounceKeyupDirective","_super","onKeyUp","event","preventDefault","HostListener","DomService","componentFactoryResolver","appRef","injector","overlayContainer","documentEventSource","documentEventDone","asObservable","eventInitialisation","documentScrollSource","documentScrollDone","documentEvent","setDocumentEventListener","document","body","addEventListener","target","documentScroll","setScrollEventListener","window","onscroll","attachComponentPortal","component","componentRef","resolveComponentFactory","attachView","hostView","getContainerElement","appendChild","_getComponentRootNode","rootNodes","Injectable","providedIn","ComponentFactoryResolver","ApplicationRef","Injector","OverlayContainer","AutoHideDirective","_elementRef","domService","forceOn","clickOutside","ngAfterViewInit","subscription","targetElement","clickedInside","nativeElement","contains","classNameFromElement","getAttribute","includes","triggerElement","needToClose_1","forEach","unsubscribe","ElementRef","ZindexToggleDirective","currentElement","renderer","isActived","switchToggle","addClass","parentElement","parentNode","removeClass","Renderer2","VarDirective","templateRef","vcRef","context","$implicit","ngVar","hasView","createEmbeddedView","TemplateRef","ViewContainerRef","KeypressEnterDirective","KEYPRESS_ENTER","keypressEnter","onKeypress","key","directives","NgModule","imports","CommonModule","FormsModule","declarations","exports","inOutY","trigger","transition","style","transform","height","opacity","animate","CheckboxComponent","label","alone","checked","hasInput","inputPlaceholder","id","whiteSpace","disabled","_onChange","_onTouched","setDisabledState","isDisabled","obj","onChange","onTextInputChange","_onTextInputChange","inputClick","$event","stopPropagation","animations","FiltersTableService","filterRoutingBuilder","filterGroups","Map","sortSubject","getTableFilterGroup","dataTableName","has","get","dataTableFilters","sort","undefined","order","searchValue","totalItems","itemsPerPage","currentPage","filterGroup","group","tableFiltersValuesChange$","ReplaySubject","tableFiltersValuesDebouncedChange$","set","emitSortChange","sortName","getSortChangeListner","setPaginationFilters","setValues","setInitialPaginationFiltersIfNotExist","parseInt","NwbFilterRoutingBuilder","HtmlContainer","hostElement","attached","attach","Error","disposeFn","detachView","destroy","dispose","TableCheckboxIdService","nbCheckboxInstances","tableInstance","currentTableInstance","getUniqueId","CheckBoxRow","currentRow","resolver","tableCheckboxIdService","checkBoxValueChange","_value","checkboxComponentRef","setCheckBoxValue","createCheckBoxComponent","handleChecboxInputs","handleCheckboxOutputs","checkBoxElement","createElement","className","insertBefore","firstChild","htmlContainer","instance","checkBoxId","name","checkBoxName","checkBoxValue","_toggleCheckbox","getElement","querySelector","isActive","setActive","Inject","DOCUMENT","MultiSelectionService","activeChanges","activeChanges$","handle","items","toggleSingleItem","first","clicks$","getListeners","merge","apply","_b","isShiftKeyPressed","isShift","index","lastIndex","start","end","_c","Math","min","max","last","itemsSelection","toArray","slice","isBeginnerItemActive","current","getSelection","removeAllRanges","indexInRange","from","x","map","item","fromEvent","shiftKey","getActives","filter","_a","TableRow","currentCell","applyCustomStylesOnCell","TableComponent","filtersTableService","multiSelectionService","tableFiltersChange","checkbox","toggleAllCheckBox","checkBoxSelectionChange","disableSearch","disablePagniation","isLoading","headerCheckBoxId","tableRoutingName","tableFilters","_tableFiltersGroup","setTablesFilters","filterGroupChangeSub","valuesChange$","selectionIndexRawCheckChange","checkBoxRows","changes","console","log","tableRows","onToggleAllCheckBox","searchChange","pageChange","ContentChildren","TagComponent","hasClose","big","isOpen","isOpenChange","toggleTag","TabComponent","underline","button","tabs","indexChange","valueChanged","ButtonComponent","extraClasses","icon","textcolor","widthAuto","contentHorizontalPosition","iconFontSize","hasLoader","whiteSpaceNowrap","animation","animationRight","animationText","confirmDelete","confirmDeleteText","noPadding","tooltipPosition","tooltipOneline","confirmDeletePosition","click","isLoadingChange","_isLoading","interval","waitForConfirmDelete","buttonMaxWidth","buttonWidth","buttonMaxWidthDelete","buttonWidthDelete","currentLoading","toggleLoading","takeWhile","time","floor","random","addMaxWidth","resetMaxWidth","addMaxWidthDelete","resetMaxWidthDelete","onButtonClick","setTimeout","calculWidth","offsetWidth","calculWidthDelete","ViewChild","DropdownComponent","hasIcons","userInput","onUserInput","itemIndex","dashed","RadioComponent","changeInput","valueInput","state","inOutX","zIndex","width","LabelComponent","deleted","onDeleteLabel","deleteLabel","CalendarComponent","type","options","displayMode","showHeader","showFooter","showButton","position","dateSelected","Date","typeDate","noMargin","selected","changeData","open","startLabel","endLabel","changeDate","currentDate","startDate","setHours","getTime","currentHours","currentMinutes","triggerChange","endDate","openCalendar","splitLabel","split","getHours","getMinutes","verifKeyup","events","replace","verifHours","dateData","verifMinutes","addHours","removeHours","addMinutes","removeMinutes","WzEditInPlaceComponent","config","customChange","objectKeys","keys","editing","Function","onTouched","currentValue","currency","parseValueToNumber","separator","parseValueToSeparator","_setValue","ngAfterViewChecked","input","focus","selectTextUponClick","firstEdit","preValue","select","initialized","startEditing","checkAndRemoveCurrency","edit","onSubmit","handler","data","hasChanged","success","isNaN","parseFloat","indexComma","indexOf","indexDot","parsedValue","toFixed","ngOnChanges","selectOption","innerText","closeSelect","TextAreaComponent","textInfo","textError","size","dynamicSize","progressBar","toString","substr","onBlur","H1Component","annotation","withImg","center","H2Component","H3Component","grey","HeaderPageComponent","InputComponent","isNumber","withoutBlock","medium","boldLabel","disableMargin","textPrepend","textAppend","keyPreventDefault","showTooltip","textTooltip","iconTooltip","urlTooltip","linkTooltip","padding","indication","indicationLeft","checkNumberValue","onFocusOut","keyPress","LinkComponent","renderer2","fontSize","_link","link","setAttributesLink","linkComponent","href","setAttribute","removeAttribute","ProgressBarComponent","translateService","valueLength","progressBarClass","spanNumber","is-danger","is-success","is-warning","progressBarSpanPosition","maxSize","progressBarGetMaxSize","progressBarGetTextInfo","instant","TranslateService","SwitchComponent","textState","textStateEnable","textStateDisable","showInput","danger","switchChange","changeValue","triggerInput","TooltipComponent","tooltipText","tooltipLink","tooltipUrl","tooltipIcon","AlertComponent","warning","alert","iconClass","TextComponent","PagniationIsLastPage","ceil","Pipe","PaginationComponent","_pagination","pagination","decrementPage","incrementPage","onGotoPageChange","PagniationArrayTotalPages","arrayLength","Number","PagniationText","currentItemsLow","currentItemsHigh","low","high","total","pipes","TranslateModule","SharedDirectives","TooltipModule","ProgressBarModule","InputModule","LoaderComponent","TableColumn","centerCellValue","flexGrow","columnSize","centerCell","TableColumnHeader","_headerName","filterRouting","onSortChange","subscriptions","setHeaderName","tableName","handleSortRouting","handleSortBasic","renderHeaderColumn","filters","filterSort","resetSortIcon","sortChangeSub","contentHeader","getCurrentSortIcon","createHeaderContent","handleSort","innerHTML","headerName","getInitialSortIcon","listen","newIcon","newSort","newOrder","currentIcon","emitEvents","initialSortIcon","exec","groups","InputSearchModule","LoaderModule","CheckboxModule","PaginationModule","UploadComponent","image","labelImage","triggerEvent","H4Component","SelectInTextComponent","alwaysOpen","openCategories","currentLabel","currentLabelIcon","maxWidth","selectValue","clickOnCallToAction","_items","setInitialValues","itemSelected","getItemSelected","setCurrentItem","onClose","customTB","onSelectItem","unselectAll","onClickCallToAction","callToAction","SelectComponent","search","openUp","searchValueChange","indexItemSelected","onTouch","setIndexItemSelected","_calllToAction","setIndexItemSelectedById","onSearcheValueChange","showCategories","searchElement","findIndex","selectItem","MultipleSearchComponent","query","openSelect","showError","setPlaceholder","setLabel","setQuery","setIcon","setSearchValueToQuery","code","encodeURI","submitForm","location","displayError","queries","hideError","openFuncSelect","resetAllVue","MultipleSearchPlusComponent","openSearchResults","optionsChange","setCurrentOption","setSearchValue","currentOption","onToggleSelect","closeSearchResults","searchResults","addResult","alreadyExist","table","elem","action","deleteResult","indexItem","splice","InputWithSelectComponent","showSelect","inputValueChange","selectValueChange","active","onClickItem","unActiveAll","optionSelected","onCloseSelect","onChangeInputValue","PopinComponent","visible","visibleChange","response","background","firstOpen","validatePopin","closePopin","refusePopin","FreePopinComponent","disableCloseOutside","titleBlock","titleExternalBlock","sticky","simple","noFullHeight","titleUppercase","borderRadius","removePadding","stretchHeight","WrapperComponent","FiltersComponent","labelRestart","filterChange","filterActiveIndex","activeFilter","resetFilter","WrapperBlocsComponent","sidebar","SnackbarComponent","manualClose","duration","timer","validate","closeSnackbar","refuse","bottom","AlertPopupComponent","afterClosedPopup","dismiss","afterClosed","host","class","AlertPopupService","getComponentRef","assign","entryComponents","SearchComponent","disableSearchIn","emptyResult","searchKeyUp","searchFocusOut","triggerOptions","element","toLowerCase","sendEventFocusOut","findInOption","SelectedListComponent","enableSelectAll","selectedItemsIndex","selectedItemsAll","unSelectedItemsAll","selectedOptionIndex","onSelectAll","option","onUnSelectAll","areAllOptionsChecked","some","TreeComponent","treeDepth","FormatObjectToRecursifTreePipe","childrenProperties","objectList","object","recursiveFormatObjectToRecursifTree","childrenProperty","hasTreeChildren","isArray","treeChildren","FormatObjectToSimpleTreePipe","labelProperties","recursiveFormatObjectToSimpleTree","property","treeLabel","SelectFiltersPipe","filterName","RegExp","test","AreAllOptionsSelectedPipe","pure","exportedPipes","SharedPipes","WrapperSidebarComponent","reverse","hideBackground","stickySidebar","BreadcrumbsComponent","noResponsive","CardPriceComponent","btnTextcolor","extraClassesSelected","hideButton","confirm","cancel","triggerClick","removePackageTrigger","TokenCheckComponent","BlockWithCheckboxComponent","checkboxAction","nameRadio","isFirst","randomLabelName","eventSelected","removeFirstClass","querySelectorAll","classList","remove","ConfirmDeleteComponent","backgroundColor","hideText","eventCancel","eventConfirm","responsiveControl","onResize","container","MosaicComponent","imagesList","numberOfColumn","importImageSrc","loadMoreImages","trackColumn","trackImage","src","isNumberOfColumnChange","previousValue","generateColumns","previousList","currentList","isNewListSmaller","resetColumns","isPreviousListExisting","newImagesToDisplay","columns","separateImagesIntoColumns","existingColumns","concatColumns","numberOfImagePerColumn","chunk","oldColumns","newColumns","oldColumn","columnIndex","onBottomReached","onImportImage","changeDetection","ChangeDetectionStrategy","OnPush","ContentWithButtonsComponent","iconCopy","iconTranslate","tooltipCopy","tooltipTranslate","count","countCharacterLabel","countWordsLabel","copyAction","reportAction","translateAction","countIsReady","content","getElementById","countCharacter","trim","join","countWords","eventCopy","eventTranslate","eventReport","WrapperMultipleBlockComponent","DraganddropListComponent","showTriggerSave","itemsChange","drop","moveItemInArray","previousIndex","currentIndex","values","delete","saveFieldEnd","addField","saveNewField","components","InfoComponent","SettingsComponent","DeleteComponent","ImageComponent","BackComponent","SeparatorComponent","LogoComponent","StateComponent","BlockComponent","exportsFromModule","NwbAllModule","forChild","ReactiveFormsModule","CdkTableModule","TagInputModule","DragDropModule","TableModule","PerfectScrollbarModule","AlertPopupModule","RouterModule","AutosizeModule","NgScrollbarModule","NgScrollbarReachedModule","TreeModule","SharedComponentsModule","TableFiltersGroup","resetToFirstPage","NwbFilterGroup"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-loader',\n templateUrl: './loader.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class LoaderComponent {\n @Input()\n text = '';\n @Input()\n small = false;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-input-search',\n templateUrl: './input-search.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputSearchComponent, multi: true }]\n})\nexport class InputSearchComponent implements ControlValueAccessor {\n @Input()\n placeholder: string = '';\n\n @Input()\n smallPadding:boolean = false; // todo Try to be more flexible like changing type : export type PaddingConfig = \"default\" | \"small\" | \"big\" | \"no-padding\";\n\n @Input()\n id: string;\n private innerValue: any = '';\n @Output() changeDebounced = new EventEmitter<any>(); // debounced\n\n private onTouchedCallback: () => void = () => {};\n private onChangeCallback: (_: any) => void = () => {};\n\n get value(): any {\n return this.innerValue;\n }\n\n set value(v: any) {\n if (v !== this.innerValue) {\n this.innerValue = v;\n this.onChangeCallback(v);\n }\n }\n\n writeValue(value: any) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n public handleDebouncedKeyUp(): void {\n this.changeDebounced.emit(this.value);\n }\n}\n","import { Directive, OnDestroy, Input, Output, EventEmitter } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged, tap } from 'rxjs/operators';\n\n@Directive({\n selector: 'AbstractDebounceDirective'\n})\nexport class AbstractDebounceDirective implements OnDestroy {\n @Input()\n public debounceTime: number;\n\n @Output()\n public onEventChange: EventEmitter<any>;\n\n protected emitEvent$: Subject<any>;\n protected subscription$: Subject<void>;\n\n constructor() {\n this.debounceTime = 500;\n this.onEventChange = new EventEmitter<any>();\n this.emitEvent$ = new Subject<any>();\n this.subscription$ = new Subject<void>();\n }\n\n ngOnInit(): void {\n this.emitEvent$\n .pipe(\n takeUntil(this.subscription$),\n debounceTime(this.debounceTime),\n distinctUntilChanged(),\n tap(value => this.emitChange(value))\n )\n .subscribe();\n }\n\n public emitChange(value: any): void {\n this.onEventChange.emit(value);\n }\n\n ngOnDestroy(): void {\n this.subscription$.next();\n this.subscription$.complete();\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { AbstractDebounceDirective } from './abstract-debounce.directive';\n@Directive({\n selector: 'input[debounceKeyUp]'\n})\nexport class DebounceKeyupDirective extends AbstractDebounceDirective {\n constructor() {\n super();\n }\n\n @HostListener('keyup', ['$event'])\n public onKeyUp(event: any): void {\n event.preventDefault();\n this.emitEvent$.next(event);\n }\n}\n","import {ApplicationRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Injectable, Injector} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport {ComponentType, OverlayContainer} from '@angular/cdk/overlay';\nimport {PortalInjector} from '@angular/cdk/portal';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DomService {\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector,\n private overlayContainer: OverlayContainer\n ) {}\n private documentEventSource = new Subject();\n private documentEventDone = this.documentEventSource.asObservable();\n private eventInitialisation = true;\n\n private documentScrollSource = new Subject();\n private documentScrollDone = this.documentScrollSource.asObservable();\n\n documentEvent() {\n this.setDocumentEventListener();\n return this.documentEventDone;\n }\n\n setDocumentEventListener() {\n if (!this.eventInitialisation) {\n return;\n }\n this.eventInitialisation = false;\n document.body.addEventListener('click', event => {\n this.documentEventSource.next(event.target);\n });\n }\n\n documentScroll() {\n return this.documentScrollDone;\n }\n\n setScrollEventListener() {\n window.onscroll = () => {\n this.documentScrollSource.next(window);\n };\n }\n attachComponentPortal<T>(component: ComponentType<T>, injector?: PortalInjector): ComponentRef<T> {\n const componentRef: ComponentRef<T> = this.componentFactoryResolver\n .resolveComponentFactory(component)\n .create(injector ? injector : this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n\n this.overlayContainer.getContainerElement().appendChild(this._getComponentRootNode(componentRef));\n\n return componentRef;\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n}\n","import {Directive, ElementRef, Input, Output, EventEmitter, AfterViewInit, OnInit} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { DomService } from '../../services/dom.service';\n\n@Directive({\n selector: '[wzAutoHide]'\n})\nexport class AutoHideDirective implements AfterViewInit {\n @Input() triggerElement: string;\n @Input() forceOn: Array<string> = null;\n subscription: Subscription;\n\n constructor(private _elementRef: ElementRef, private domService: DomService) {}\n\n @Output('clickOutside') clickOutside: EventEmitter<any> = new EventEmitter();\n\n ngAfterViewInit(): void {\n this.subscription = this.domService.documentEvent().subscribe((targetElement: Element) => {\n const clickedInside = this._elementRef.nativeElement.contains(targetElement);\n const classNameFromElement = targetElement.getAttribute('class');\n\n if (!clickedInside && (classNameFromElement === null || !classNameFromElement.includes(this.triggerElement))) {\n\n this.clickOutside.emit(null);\n }\n\n if (this.forceOn != null && classNameFromElement !== null) {\n let needToClose = true;\n this.forceOn.forEach(v => {\n if (!classNameFromElement.includes(v)) {\n needToClose = false;\n }\n });\n if (needToClose) {\n this.clickOutside.emit(null);\n }\n }\n });\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe()\n }\n}\n","import {Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, Renderer2} from '@angular/core';\n\n@Directive({\n selector: '[zIndexToggle]'\n})\nexport class ZindexToggleDirective implements OnInit, OnDestroy {\n isActived = false;\n\n @Output()\n public onEventChange: EventEmitter<any>;\n\n @Input('zIndexToggle')\n set isActive(value: boolean) {\n this.isActived = value;\n this.switchToggle();\n }\n get isActive(): boolean {\n return this.isActived;\n }\n\n constructor(private currentElement: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n }\n\n switchToggle() {\n if (this.isActived) {\n this.renderer.addClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n this.renderer.addClass(this.currentElement.nativeElement.parentElement.parentNode.parentNode, 'zindexToggle');\n } else {\n this.renderer.removeClass(this.currentElement.nativeElement.parentElement.parentNode, 'zindexToggle');\n this.renderer.removeClass(this.currentElement.nativeElement.parentElement.parentNode.parentNode, 'zindexToggle');\n }\n }\n\n ngOnDestroy(): void {\n }\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from \"@angular/core\";\n\n@Directive({\n selector: '[ngVar]',\n})\nexport class VarDirective {\n // https://stackoverflow.com/questions/38582293/how-to-declare-a-variable-in-a-template-in-angular\n\n @Input()\n set ngVar(context: unknown) {\n this.context.$implicit = this.context.ngVar = context;\n\n if (!this.hasView) {\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\n this.hasView = true;\n }\n }\n\n private context: {\n $implicit: unknown;\n ngVar: unknown;\n } = {\n $implicit: null,\n ngVar: null,\n };\n\n private hasView: boolean = false;\n\n constructor(\n private templateRef: TemplateRef<any>,\n private vcRef: ViewContainerRef\n ) {}\n}","import { Directive, EventEmitter, HostListener, Output } from '@angular/core';\n\n@Directive({ selector: '[keypressEnter]' })\nexport class KeypressEnterDirective {\n\n private KEYPRESS_ENTER = \"Enter\";\n\n @HostListener('keypress', ['$event']) onKeypress(event: KeyboardEvent){\n if (event.key === this.KEYPRESS_ENTER) {\n this.keypressEnter.next(true);\n }\n }\n\n @Output() keypressEnter = new EventEmitter<boolean>();\n\n constructor() {}\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { DebounceKeyupDirective } from './abstract-debounce/debounce-keyup.directive';\nimport { AbstractDebounceDirective } from './abstract-debounce/abstract-debounce.directive';\nimport { AutoHideDirective } from './auto-hide/auto-hide.directive';\nimport {ZindexToggleDirective} from './zindex-toggle/zindex-toggle.directive';\nimport { VarDirective } from './ng-var.directive';\nimport { KeypressEnterDirective } from './keyboard-events/keypress-enter.directive';\n\nconst directives = [DebounceKeyupDirective, AbstractDebounceDirective, AutoHideDirective, ZindexToggleDirective, VarDirective, KeypressEnterDirective];\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: directives,\n exports: directives\n})\nexport class SharedDirectives {}\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const inOutY = trigger('inOutYAnimation', [\n transition(':enter', [\n style({ transform: 'scaleY(0)', height: 0, opacity: 0 }),\n animate('.3s ease-out', style({ transform: 'scaleY(1)', height: 'auto', opacity: 1 }))\n ]),\n transition(':leave', [\n style({ transform: 'scaleY(1)', height: 'auto', opacity: 1 }),\n animate('.3s ease-in', style({ transform: 'scaleY(0)', height: 0, opacity: 0 }))\n ])\n]);\n","import { Component, ElementRef, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { inOutY } from '../../animations/in-out/in-out-y.animation';\n\n@Component({\n selector: 'wac-checkbox',\n templateUrl: './checkbox.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }],\n animations: [inOutY]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input()\n label = '';\n @Input()\n value: any;\n @Input()\n type: string;\n @Input()\n alone = false;\n @Input()\n checked = false;\n @Input()\n hasInput = false;\n @Input()\n inputPlaceholder = '';\n @Input()\n id = '';\n @Input()\n name: string;\n @Input()\n whiteSpace = true;\n disabled = false;\n\n constructor() {}\n\n private _onChange: Function;\n private _onTextInputChange: Function;\n private _onTouched: Function;\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: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n }\n }\n\n onTextInputChange(value) {\n if (this._onTextInputChange) {\n this._onTextInputChange(value);\n }\n }\n\n inputClick($event) { // todo it is usefull ?\n $event.stopPropagation();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NwbFilterGroup, NwbFilterRoutingBuilder } from '@wizishop/ng-wizi-bulma';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { TableFiltersGroup } from './table-filters-group.model';\nimport { TableFilters } from './table-filters.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FiltersTableService {\n filterGroups = new Map<string, NwbFilterGroup>();\n\n private sortSubject: Subject<any> = new Subject<any>();\n\n constructor(private filterRoutingBuilder: NwbFilterRoutingBuilder) {}\n\n getTableFilterGroup(dataTableName: string): TableFiltersGroup {\n if (this.filterGroups.has(dataTableName)) {\n return this.filterGroups.get(dataTableName) as TableFiltersGroup;\n }\n\n const dataTableFilters: TableFilters = {\n sort: undefined,\n order: undefined,\n searchValue: undefined,\n totalItems: 0,\n itemsPerPage: 0,\n currentPage: 0\n };\n\n const filterGroup: TableFiltersGroup = this.filterRoutingBuilder.group(dataTableFilters, dataTableName) as TableFiltersGroup;\n filterGroup.tableFiltersValuesChange$ = new ReplaySubject<TableFilters>(1);\n filterGroup.tableFiltersValuesDebouncedChange$ = filterGroup.tableFiltersValuesChange$.pipe(debounceTime(300));\n\n this.filterGroups.set(dataTableName, filterGroup);\n return filterGroup;\n }\n\n /**\n * Use to reset the others sorts of the table\n * @param dataTableName\n * @param sortName\n * @param order\n */\n emitSortChange(dataTableName: string, sortName: string, order: boolean) {\n this.sortSubject.next({ dataTableName, sortName, order });\n }\n\n getSortChangeListner() {\n return this.sortSubject.asObservable();\n }\n\n setPaginationFilters(dataTableName, totalItems, itemsPerPage, currentPage) {\n const filterGroup = this.getTableFilterGroup(dataTableName);\n filterGroup.setValues({\n itemsPerPage,\n currentPage\n });\n }\n\n /*\n Add defaults filters in the URL if they not exists.\n */\n setInitialPaginationFiltersIfNotExist(dataTableName, itemsPerPage, currentPage) {\n const filterGroup = this.getTableFilterGroup(dataTableName);\n filterGroup.setValues({\n itemsPerPage: filterGroup.get('itemsPerPage') ? parseInt(filterGroup.get('itemsPerPage')) : itemsPerPage,\n currentPage: filterGroup.get('currentPage') ? parseInt(filterGroup.get('currentPage')) : currentPage\n });\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, Injector, Type, ComponentRef, EmbeddedViewRef } from \"@angular/core\";\n\nexport class HtmlContainer {\n private attached: boolean = false;\n\n private disposeFn: () => void;\n\n constructor(\n private hostElement: Element,\n private appRef: ApplicationRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private injector: Injector\n ) {}\n\n attach(component: Type<any>): ComponentRef<any> {\n if (this.attached) {\n throw new Error('component has already been attached');\n }\n\n this.attached = true;\n const childComponentFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n\n let componentRef = childComponentFactory.create(this.injector);\n\n this.appRef.attachView(componentRef.hostView);\n this.disposeFn = () => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n };\n\n this.hostElement.appendChild((componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n\n return componentRef;\n }\n\n dispose() {\n if (this.attached) {\n this.disposeFn();\n }\n }\n}","import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class TableCheckboxIdService {\n\n static tableInstance = 0;\n\n currentTableInstance:number;\n nbCheckboxInstances: number = 0;\n\n constructor() {\n TableCheckboxIdService.tableInstance++;\n this.currentTableInstance = TableCheckboxIdService.tableInstance;\n }\n\n getUniqueId() {\n this.nbCheckboxInstances++;\n return `wac-table-${this.currentTableInstance}-${this.nbCheckboxInstances}`;\n }\n}","import { DOCUMENT } from '@angular/common';\nimport {\n ComponentFactoryResolver,\n EventEmitter,\n Inject,\n Output,\n Renderer2,\n Directive,\n ElementRef,\n Input,\n ComponentRef,\n ApplicationRef,\n Injector,\n} from '@angular/core';\nimport { HtmlContainer } from '../../../utils/html-container.class';\nimport { CheckboxComponent } from '../../checkbox/checkbox.component';\nimport { TableCheckboxIdService } from '../shared/table-checkbox-id.service';\n\n@Directive({\n selector: '[checkBoxRow]'\n})\nexport class CheckBoxRow {\n @Input('checkBoxId') checkBoxId: string | number;\n @Input('checkBoxName') checkBoxName: string;\n\n @Input('checkBoxValue') set checkBoxValue(value: boolean) {\n this._value = value;\n if (this.checkboxComponentRef) {\n this.setCheckBoxValue();\n }\n }\n _value: boolean;\n get checkBoxValue(): boolean {\n return this._value;\n }\n\n @Output() checkBoxValueChange: EventEmitter<boolean> = new EventEmitter();\n\n private checkboxComponentRef: ComponentRef<CheckboxComponent>;\n private htmlContainer: HtmlContainer;\n private checkBoxElement;\n\n constructor(\n private currentRow: ElementRef,\n private appRef: ApplicationRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document,\n private resolver: ComponentFactoryResolver,\n private injector: Injector,\n private tableCheckboxIdService: TableCheckboxIdService\n ) {}\n\n ngOnInit() {\n this.createCheckBoxComponent();\n this.handleChecboxInputs();\n this.handleCheckboxOutputs();\n }\n\n createCheckBoxComponent() {\n // Create the container\n this.checkBoxElement = document.createElement('div');\n this.checkBoxElement.className = 'wac-table__body__line__cell wac-table__body__line__cell--checkbox';\n\n // Insert divCheckBox in the DOM as the first child of the row\n this.renderer.insertBefore(this.currentRow.nativeElement, this.checkBoxElement, this.currentRow.nativeElement.firstChild);\n\n // Insert the CheckBoxComponent inside the container (DOM and Angular DOM)\n this.htmlContainer = new HtmlContainer(this.checkBoxElement, this.appRef, this.resolver, this.injector);\n this.checkboxComponentRef = this.htmlContainer.attach(CheckboxComponent);\n }\n\n private handleChecboxInputs() {\n this.checkboxComponentRef.instance.id = this.checkBoxId ? '' + this.checkBoxId : this.tableCheckboxIdService.getUniqueId();\n this.checkboxComponentRef.instance.name = this.checkBoxName ? this.checkBoxName : undefined;\n this.checkboxComponentRef.instance.alone = true;\n this.setCheckBoxValue();\n }\n\n private setCheckBoxValue() {\n this.checkboxComponentRef.instance.value = this.checkBoxValue;\n }\n\n private handleCheckboxOutputs() {\n // Detect checkbox changes\n this.checkboxComponentRef.instance.registerOnChange(() => {\n this._toggleCheckbox();\n });\n }\n\n private _toggleCheckbox() {\n this.checkBoxValueChange.emit(this.checkBoxValue);\n }\n\n getElement() {\n return this.checkBoxElement.querySelector('.wac-field-checkbox');\n }\n\n isActive(): boolean {\n return !!this.checkboxComponentRef.instance.value;\n }\n\n setActive(isActive: boolean) {\n this.checkboxComponentRef.instance.value = isActive; //? does not trigger output\n }\n\n ngOnDestroy() {\n this.htmlContainer.dispose();\n }\n}\n","import { Injectable, QueryList } from \"@angular/core\";\nimport { Subscription, Subject, merge, fromEvent } from \"rxjs\";\nimport { debounceTime, map } from \"rxjs/operators\";\nimport { SelectionItem } from \"../utils/slection-item.interface\";\n\n@Injectable()\nexport class MultiSelectionService {\n private items: QueryList<SelectionItem>;\n private subscription: Subscription;\n private lastIndex: number;\n private activeChanges: Subject<number[]> = new Subject();\n activeChanges$ = this.activeChanges.asObservable();\n\n constructor() {}\n\n handle(items: QueryList<SelectionItem>, toggleSingleItem: boolean = false): void {\n\n if (!items || !items.first) {\n this.destroy();\n return;\n }\n\n this.destroy(); // close previous subsciption\n\n this.items = items;\n\n const clicks$ = this.getListeners();\n\n this.subscription = merge(...clicks$).subscribe(({ component, isShift: isShiftKeyPressed, index }) => {\n if (!isShiftKeyPressed) {\n if (toggleSingleItem) {\n component.setActive(!component.isActive());\n }\n this.activeChanges.next([index]);\n this.lastIndex = index;\n return;\n }\n\n const start = index;\n const end = this.lastIndex;\n const [first, last] = [Math.min(start, end), Math.max(start, end) + 1];\n const itemsSelection = this.items.toArray().slice(first, last);\n const isBeginnerItemActive = this.items.get(end).isActive();\n\n itemsSelection.forEach(current => current.setActive(isBeginnerItemActive));\n window.getSelection().removeAllRanges(); // remove text selection\n const indexInRange = Array.from({length: last-first}, (x, i) => i + first);\n this.activeChanges.next(indexInRange);\n });\n }\n\n private getListeners() {\n return this.items.map((item, index) => {\n return fromEvent(item.getElement(), 'click').pipe(\n map((event: MouseEvent) => {\n return {\n index,\n isShift: event.shiftKey,\n component: item\n }\n })\n )\n .pipe(debounceTime(100)) // debounced, because when clicking on a wac-checkbox it is emitted twice and can not find why\n });\n }\n\n getActives() {\n return this.items.filter(item => item.isActive());\n }\n\n destroy() {\n this.subscription?.unsubscribe();\n }\n}","import { DOCUMENT } from '@angular/common';\nimport { Inject } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n // The selector has the same name as the tableRaw selector in table.component.html\n selector: '[tableRow]'\n})\nexport class TableRow {\n constructor(private currentCell: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) {}\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n }\n\n applyCustomStylesOnCell() {\n this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__body__line');\n }\n}\n","import { Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren, ViewEncapsulation } from '@angular/core';\nimport { FiltersTableService } from './shared/filters-table.service';\nimport { Subscription } from 'rxjs';\nimport { TableFilters } from './shared/table-filters.model';\nimport { TableFiltersGroup } from './shared/table-filters-group.model';\nimport { CheckBoxRow } from './directives/checkBoxRow.directive';\nimport { MultiSelectionService } from '../../services/multiple-selection.service';\nimport { TableCheckboxIdService } from './shared/table-checkbox-id.service';\nimport { TableRow } from './directives/raw.directive';\n\n@Component({\n selector: 'wac-table',\n templateUrl: './table.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n TableCheckboxIdService,\n MultiSelectionService\n ]\n})\nexport class TableComponent implements OnInit {\n\n @ContentChildren(CheckBoxRow) checkBoxRows: QueryList<CheckBoxRow>;\n @ContentChildren(TableRow) tableRows: QueryList<TableRow>;\n\n // todo find a way to spotlight the wac-table doc when used on wizi-admin only in dev\n // todo try to use bridge patterne in order to add checkbox and remove checkbowrox directive.\n /// Input/Output of table filters ///\n\n @Input() tableFilters: TableFilters;\n @Output() tableFiltersChange: EventEmitter<TableFilters> = new EventEmitter();\n\n @Input() tableRoutingName: string; // Name of the table\n @Input() placeholder: string = '';\n\n private _tableFiltersGroup: TableFiltersGroup;\n\n /// Input/Output of checkbox ///\n\n /** Pass to true to display checkbox in the header table */\n @Input() checkbox = false;\n\n @Output() toggleAllCheckBox: EventEmitter<boolean> = new EventEmitter(); // todo replace by checkBoxSelectionChange\n\n @Output() checkBoxSelectionChange: EventEmitter<number[]> = new EventEmitter(); // todo add to doc\n\n /// Input to disable section ///\n\n /** Pass to true to hide search input */\n @Input() disableSearch: boolean = false;\n /** Pass to true to hide the pagniator */\n @Input() disablePagniation: boolean = false;\n\n /// Input for loader on table body ///\n\n @Input() isLoading = false;\n\n /// Private variables ///\n headerCheckBoxId: string;\n private filterGroupChangeSub: Subscription;\n\n constructor(private filtersTableService: FiltersTableService, private tableCheckboxIdService: TableCheckboxIdService, private multiSelectionService: MultiSelectionService) {}\n\n ngOnInit(): void {\n this.headerCheckBoxId = this.tableCheckboxIdService.getUniqueId(); // Create checkbox unique id\n\n /* Handle routing filters */\n if (this.tableRoutingName) {\n\n this.filtersTableService.setInitialPaginationFiltersIfNotExist(\n this.tableRoutingName,\n this.tableFilters.itemsPerPage,\n this.tableFilters.currentPage\n );\n\n this._tableFiltersGroup = this.filtersTableService.getTableFilterGroup(this.tableRoutingName);\n this.setTablesFilters();\n // Listen to filters changes with debounced time to limit multiple api calls\n this.filterGroupChangeSub = this._tableFiltersGroup.valuesChange$.subscribe(() => {\n this.setTablesFilters();\n });\n }\n\n this.multiSelectionService.activeChanges$.subscribe(selectionIndexRawCheckChange => {\n this.checkBoxSelectionChange.emit(selectionIndexRawCheckChange);\n });\n }\n\n ngAfterViewInit() {\n this.multiSelectionService.handle(this.checkBoxRows);\n this.checkBoxRows.changes.subscribe(() => {\n this.multiSelectionService.handle(this.checkBoxRows);\n });\n console.log('this.tableRows', this.tableRows);\n }\n\n onToggleAllCheckBox(event: any) {\n this.toggleAllCheckBox.emit(event.target.checked);\n }\n\n searchChange() {\n // Reset table filters\n this.tableFilters.sort = undefined;\n this.tableFilters.order = undefined;\n this.tableFilters.currentPage = 1;\n this.tableFiltersChange.emit(this.tableFilters);\n\n // Reset routing filters\n if (this._tableFiltersGroup) {\n this._tableFiltersGroup.setValues({\n searchValue: this.tableFilters.searchValue,\n sort: undefined,\n order: undefined,\n currentPage: 1\n });\n }\n }\n\n pageChange() {\n this.tableFiltersChange.emit(this.tableFilters);\n if (this._tableFiltersGroup) {\n this._tableFiltersGroup.setValues({\n itemsPerPage: this.tableFilters.itemsPerPage,\n currentPage: this.tableFilters.currentPage\n });\n }\n }\n\n /**\n * Set tableFilters from routing data existing in the url\n * */\n private setTablesFilters() {\n this.tableFilters = {\n sort: this._tableFiltersGroup.get('sort'),\n order: this._tableFiltersGroup.get('order') ? this._tableFiltersGroup.get('order') === 'true' : undefined,\n searchValue: this._tableFiltersGroup.get('searchValue'),\n itemsPerPage: this._tableFiltersGroup.get('itemsPerPage') ? parseInt(this._tableFiltersGroup.get('itemsPerPage')) : 0,\n currentPage: this._tableFiltersGroup.get('currentPage') ? parseInt(this._tableFiltersGroup.get('currentPage')) : 0,\n totalItems: this.tableFilters.totalItems\n };\n this.tableFiltersChange.emit(this.tableFilters);\n this._tableFiltersGroup.tableFiltersValuesChange$.next(this.tableFilters);\n }\n\n ngOnDestroy() {\n if (this.filterGroupChangeSub) {\n this.filterGroupChangeSub.unsubscribe();\n }\n this.multiSelectionService.destroy();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'wac-tag',\n templateUrl: './tag.component.html'\n})\nexport class TagComponent {\n @Input()\n label = '';\n @Input()\n class: 'default'|'success'|'warning'|'error'|'dark'|'gray'|'lightgray';\n @Input()\n hasClose = false;\n\n @Input()\n big = false;\n\n @Input() isOpen:boolean = true;\n @Output() isOpenChange = new EventEmitter<boolean>();\n\n constructor() {}\n\n toggleTag() {\n this.isOpen = !this.isOpen;\n this.isOpenChange.next(this.isOpen);\n }\n}\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-tab',\n templateUrl: './tab.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class TabComponent {\n\n @Input()\n underline = false;\n\n @Input()\n button = false;\n\n @Input()\n tabs = [];\n\n @Input() index: number = 0;\n\n @Output() indexChange = new EventEmitter<any>();\n\n constructor() {}\n\n valueChanged(i) {\n this.index = i;\n this.indexChange.emit(this.index);\n }\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport { interval } from 'rxjs';\nimport { takeWhile } from 'rxjs/operators';\n\n@Component({\n selector: 'wac-button',\n templateUrl: './button.component.html'\n})\nexport class ButtonComponent implements OnInit, AfterViewInit {\n @Input()\n extraClasses = 'is-info'; // todo make a list of existing class\n\n @Input()\n label = '';\n\n @Input()\n icon = '';\n\n @Input()\n iconNext: string;\n\n @Input()\n textcolor = null;\n @Input()\n widthAuto = false;\n\n @Input()\n contentHorizontalPosition: 'left' | 'center' | 'right' = 'center';\n\n @Input()\n iconFontSize = 12;\n\n @Input()\n hasLoader = false;\n\n @Input()\n disabled = false;\n\n @Input()\n whiteSpaceNowrap = false;\n\n @Input()\n opacity = false;\n // TODO MAKE ANNIMATION AVAILABLE FOR MOBILE as CONFIRM DELETE DO (because, its doeant show the text and trigger click)\n @Input()\n animation = false;\n\n @Input()\n animationRight = false;\n\n @Input()\n animationText = '';\n\n @Input()\n confirmDelete = false;\n\n @Input()\n confirmDeleteText = '';\n\n @Input()\n coin: number | string;\n\n @Input()\n tooltip: string;\n\n @Input()\n tooltipWidth: string;\n\n @Input()\n noPadding = false;\n\n @Input()\n tooltipPosition: 'top-center' | 'top-right' | 'top-left' | 'bottom-center' | 'bottom-right' | 'bottom-left' | 'left' | 'right' = 'top-center';\n\n @Input()\n tooltipOneline = false;\n\n @Input()\n confirmDeletePosition = 'right';\n\n @Output() public click: EventEmitter<MouseEvent> = new EventEmitter();\n\n @Input() set isLoading(isLoading : boolean) {\n this._isLoading = isLoading;\n this.isLoadingChange.next(isLoading);\n this.toggleLoading();\n }\n\n @Output() isLoadingChange = new EventEmitter<boolean>();\n\n get isLoading() : boolean {\n return this._isLoading;\n }\n\n private _isLoading: boolean = false;\n\n\n interval = null;\n\n waitForConfirmDelete = false;\n\n buttonMaxWidth = '0px';\n buttonWidth = '0px';\n\n buttonMaxWidthDelete = '0px';\n buttonWidthDelete = '0px';\n\n currentLoading = 0;\n\n @ViewChild('calculWidth')\n calculWidth: ElementRef;\n\n @ViewChild('calculWidthDelete')\n calculWidthDelete: ElementRef;\n\n constructor() {}\n\n ngOnInit() {\n if (this.confirmDelete) {\n this.waitForConfirmDelete = true;\n }\n }\n\n toggleLoading() {\n this.currentLoading = this.isLoading ? 10 : 100;\n\n interval(200).pipe(takeWhile( time=> this.isLoading)).subscribe(\n () => {\n if (this.currentLoading < 85) {\n this.currentLoading += Math.floor(Math.random() * 15);\n }\n }\n );\n }\n\n addMaxWidth() {\n this.buttonMaxWidth = this.buttonWidth + 'px';\n }\n\n resetMaxWidth() {\n this.buttonMaxWidth = '0px';\n }\n\n addMaxWidthDelete() {\n this.buttonMaxWidthDelete = this.buttonWidthDelete + 'px';\n }\n\n resetMaxWidthDelete() {\n this.buttonMaxWidthDelete = '0px';\n this.waitForConfirmDelete = true;\n }\n\n onButtonClick(event){\n event.stopPropagation();\n if (this.disabled) {\n return;\n }\n if (this.hasLoader) {\n this.isLoading = false;\n setTimeout(() => { // trick to reset the animation loading\n this.isLoading = true;\n }, 0);\n }\n\n if (!this.waitForConfirmDelete) {\n this.click.emit(event);\n if (this.confirmDelete) {\n this.resetMaxWidthDelete();\n }\n } else {\n this.waitForConfirmDelete = false;\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n if (this.animation) {\n this.buttonWidth = this.calculWidth.nativeElement.offsetWidth;\n }\n if (this.confirmDelete) {\n this.buttonWidthDelete = this.calculWidthDelete.nativeElement.offsetWidth;\n }\n }, 1000);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wac-info',\n templateUrl: './info.component.html'\n})\nexport class InfoComponent {\n constructor() {}\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-settings',\n templateUrl: './settings.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SettingsComponent {\n constructor() {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wac-delete',\n templateUrl: './delete.component.html'\n})\nexport class DeleteComponent {\n constructor() {}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'wac-dropdown',\n templateUrl: './dropdown.component.html'\n})\nexport class DropdownComponent {\n @Input()\n hasIcons = false;\n\n @Input()\n items = [];\n\n @Output() userInput = new EventEmitter<any>();\n\n constructor() {}\n\n onUserInput(itemIndex) {\n this.userInput.emit(itemIndex);\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'wac-image',\n templateUrl: './image.component.html'\n})\nexport class ImageComponent {\n @Input()\n src: '';\n\n constructor() {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'wac-back',\n templateUrl: './back.component.html'\n})\nexport class BackComponent {\n constructor() {}\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-separator',\n templateUrl: './separator.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SeparatorComponent {\n @Input()\n dashed = false;\n\n constructor() {}\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-logo',\n templateUrl: './logo.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class LogoComponent {\n @Input()\n isDropizi: false;\n\n @Input()\n isWhite: false;\n\n constructor() {}\n}\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-radio',\n templateUrl: './radio.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: RadioComponent, multi: true }]\n})\nexport class RadioComponent implements ControlValueAccessor {\n @Input()\n label = '';\n @Input()\n options: object;\n @Input()\n value: any;\n @Input()\n type: string;\n @Input()\n id = '';\n @Input()\n name: string;\n @Input()\n alone = false;\n @Output()\n changeInput = new EventEmitter<any>();\n disabled = false;\n constructor() {}\n private _onChange: Function;\n private _onTouched: Function;\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: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n }\n }\n\n valueInput(value) {\n this.changeInput.emit(value);\n }\n}\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-state',\n templateUrl: './state.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class StateComponent {\n @Input()\n state = 'success';\n constructor() {}\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\n\nexport const inOutX = trigger('inOutXAnimation', [\n transition(':enter', [\n style({ zIndex: -1, transform: 'scaleX(0)', width: 0, opacity: 0 }),\n animate('.3s ease-out', style({ zIndex: 1, transform: 'scaleX(1)', width: 'auto', opacity: 1 }))\n ]),\n transition(':leave', [\n style({ zIndex: 1, transform: 'scaleX(1)', width: 'auto', opacity: 1 }),\n animate('.3s ease-in', style({ zIndex: -1, transform: 'scaleX(0)', width: 0, opacity: 0 }))\n ])\n]);\n","import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { inOutX } from '../../animations/in-out/in-out-x.animation';\n\n@Component({\n selector: 'wac-label',\n templateUrl: './label.component.html',\n encapsulation: ViewEncapsulation.None,\n animations: [inOutX]\n})\nexport class LabelComponent {\n @Input()\n index = 0;\n @Input()\n label = '';\n @Input()\n deleted = false;\n\n @Output() onDeleteLabel = new EventEmitter<any>();\n\n constructor() {}\n\n deleteLabel() {\n this.deleted = true;\n this.onDeleteLabel.emit({\n index: this.index,\n label: this.label\n });\n }\n}\n","import { Component, Input, EventEmitter, Output, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-calendar',\n templateUrl: './calendar.component.html'\n})\nexport class CalendarComponent implements OnInit {\n @Input()\n label: string | null;\n @Input()\n type = 'input';\n @Input()\n options: object = {\n displayMode: 'inline',\n showHeader: false,\n showFooter: true,\n showButton: true\n };\n @Input()\n position = 'bottom';\n @Input()\n dateSelected: any = new Date();\n @Input()\n typeDate = 'datetime-local';\n @Input()\n noMargin = false;\n @Output()\n selected: EventEmitter<string> = new EventEmitter<string>();\n @Output() changeData = new EventEmitter<any>();\n open = false;\n startLabel = '';\n endLabel = '';\n currentHours: any;\n currentMinutes: any;\n currentDate: any;\n constructor() {}\n changeDate(event: any) {\n this.currentDate = new Date(new Date(event.startDate).setHours(0, 0, 0, 0));\n this.dateSelected = new Date(\n new Date(new Date(event.startDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.triggerChange({\n startDate: this.dateSelected,\n endDate: this.dateSelected\n });\n }\n\n triggerChange(event: any) {\n this.changeData.emit(event);\n }\n\n openCalendar(value = null) {\n if (value === 'close') {\n if (this.open) {\n this.open = false;\n }\n } else {\n this.open = !this.open;\n }\n }\n ngOnInit(): void {\n if (this.type === 'edit' && this.label) {\n const splitLabel = this.label.split('{x}');\n if (splitLabel.length > 1) {\n this.startLabel = splitLabel[0];\n this.endLabel = splitLabel[1];\n } else {\n this.startLabel = this.label;\n }\n }\n this.currentHours =\n new Date(this.dateSelected).getHours() < 10 ? '0' + new Date(this.dateSelected).getHours() : new Date(this.dateSelected).getHours();\n this.currentMinutes =\n new Date(this.dateSelected).getMinutes() < 10\n ? '0' + new Date(this.dateSelected).getMinutes()\n : new Date(this.dateSelected).getMinutes();\n this.currentDate = new Date(this.dateSelected).setHours(0, 0, 0, 0);\n if (this.typeDate === 'date') {\n this.currentHours = '00';\n this.currentMinutes = '00';\n }\n }\n verifKeyup(events: any) {\n events.target.value = events.target.value.replace(/\\D+/g, '');\n }\n verifHours(events: any) {\n const value = parseInt(events.target.value, 0);\n events.target.value = this.currentHours = value < 24 ? (value < 10 ? '0' + value : value) : 23;\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n verifMinutes(events: any) {\n const value = parseInt(events.target.value, 0);\n events.target.value = this.currentMinutes = value < 60 ? (value < 10 ? '0' + value : value) : 59;\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n addHours(target: any) {\n target.value = this.currentHours =\n parseInt(target.value, 0) + 1 < 24\n ? parseInt(target.value, 0) + 1 < 10\n ? '0' + (parseInt(target.value, 0) + 1)\n : parseInt(target.value, 0) + 1\n : parseInt(target.value, 0) < 10\n ? '0' + parseInt(target.value, 0)\n : parseInt(target.value, 0);\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n removeHours(target: any) {\n target.value = this.currentHours =\n parseInt(target.value, 0) - 1 > -1\n ? parseInt(target.value, 0) - 1 < 10\n ? '0' + (parseInt(target.value, 0) - 1)\n : parseInt(target.value, 0) - 1\n : parseInt(target.value, 0) < 10\n ? '0' + parseInt(target.value, 0)\n : parseInt(target.value, 0);\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n addMinutes(target: any) {\n target.value = this.currentMinutes =\n parseInt(target.value, 0) + 1 < 60\n ? parseInt(target.value, 0) + 1 < 10\n ? '0' + (parseInt(target.value, 0) + 1)\n : parseInt(target.value, 0) + 1\n : parseInt(target.value, 0) < 10\n ? '0' + parseInt(target.value, 0)\n : parseInt(target.value, 0);\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n removeMinutes(target: any) {\n target.value = this.currentMinutes =\n parseInt(target.value, 0) - 1 > -1\n ? parseInt(target.value, 0) - 1 < 10\n ? '0' + (parseInt(target.value, 0) - 1)\n : parseInt(target.value, 0) - 1\n : parseInt(target.value, 0) < 10\n ? '0' + parseInt(target.value, 0)\n : parseInt(target.value, 0);\n const dateData = new Date(\n new Date(new Date(this.currentDate).setHours(0, 0, 0, 0)).getTime() +\n parseInt(this.currentHours, 0) * 60 * 60 * 1000 +\n parseInt(this.currentMinutes, 0) * 60000\n );\n this.dateSelected = dateData;\n this.triggerChange({\n startDate: dateData,\n endDate: dateData\n });\n }\n}\n","import {\n AfterViewChecked,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { Observable } from 'rxjs';\n\n@Component({\n selector: 'wac-edit-in-place',\n templateUrl: './edit-in-place.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: WzEditInPlaceComponent,\n multi: true\n }\n ]\n})\nexport class WzEditInPlaceComponent implements ControlValueAccessor, AfterViewChecked, OnChanges {\n //! Refacto aweful to use\n // todo add exemples in showcases\n @Input()\n type: string;\n @Input()\n nwbOptions: object | string[];\n @Input()\n config: NwbEditInPlaceConfig = {};\n @Input()\n label: string;\n @Output() customChange = new EventEmitter<any>();\n\n @ViewChild('input')\n input: ElementRef;\n\n objectKeys = Object.keys;\n public currentValue: string | number;\n private preValue: string | number;\n\n public inputWidth: number;\n public editing = false;\n public isLoading: boolean;\n private firstEdit: boolean;\n private initialized: boolean;\n\n public onChange: any = Function.prototype;\n public onTouched: any = Function.prototype;\n\n get value(): any {\n return this.currentValue;\n }\n\n set value(v: any) {\n if (v !== this.currentValue) {\n this.currentValue = v;\n }\n }\n\n writeValue(value: any) {\n if (value !== null) {\n if (this.config.currency) {\n this.currentValue = this.parseValueToNumber(value);\n if (this.config.separator !== '.') {\n this.currentValue = this.parseValueToSeparator(this.currentValue);\n }\n this.currentValue += this.config.currency;\n } else {\n this.currentValue = value;\n }\n }\n }\n\n public registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n public registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n private _setValue(v: string | number) {\n if (this.type === 'select') {\n this.onChange(v);\n } else if (typeof this.config.currency === 'string') {\n v = this.parseValueToNumber(v);\n this.onChange(v);\n if (this.config.separator !== '.') {\n v = this.parseValueToSeparator(v);\n }\n v = v + this.config.currency;\n this.customChange.emit(v);\n } else {\n this.onChange(v);\n }\n this.writeValue(v);\n this.value = v;\n }\n\n ngAfterViewChecked() {\n if (this.input && this.editing) {\n this.input.nativeElement.focus();\n if (this.config.selectTextUponClick && this.firstEdit && this.preValue && this.input.nativeElement.value) {\n this.input.nativeElement.select();\n this.firstEdit = false;\n }\n }\n this.initialized = true;\n }\n\n startEditing() {\n if (!this.editing) {\n this.editing = true;\n this.currentValue = this.checkAndRemoveCurrency(this.currentValue);\n this.firstEdit = true;\n }\n }\n\n edit() {\n this.preValue = this.currentValue;\n this.editing = true;\n }\n\n onSubmit() {\n this.editing = false;\n if (this.currentValue !== this.preValue) {\n if (typeof this.config.handler === 'function') {\n this.isLoading = true;\n this.config.handler(this.currentValue, this.config.data).subscribe(\n data => {\n let hasChanged: boolean;\n this.isLoading = false;\n if (typeof data !== 'boolean') {\n this.currentValue = data.value;\n hasChanged = data.success;\n } else {\n hasChanged = data;\n }\n if (hasChanged) {\n this._setValue(this.currentValue);\n } else {\n this._setValue(this.preValue);\n }\n },\n () => {\n this.isLoading = false;\n this._setValue(this.preValue);\n }\n );\n } else {\n this._setValue(this.currentValue);\n }\n } else {\n if (typeof this.config.currency === 'string') {\n this.currentValue = this.currentValue + this.config.currency;\n }\n }\n }\n\n checkAndRemoveCurrency(value) {\n if (typeof this.config.currency === 'string') {\n return value.slice(0, -1);\n }\n\n return value;\n }\n\n parseValueToNumber(value) {\n if (!isNaN(value) && value !== '') {\n return parseFloat(value);\n }\n if (typeof this.config.currency === 'string') {\n const indexComma = value.indexOf(',');\n const indexDot = value.indexOf('.');\n if (indexComma > 0 && indexDot === -1) {\n const parsedValue = value.replace(',', '.');\n if (!isNaN(parsedValue)) {\n return parseFloat(parsedValue);\n }\n }\n if (indexDot > 0 && indexComma === -1) {\n if (!isNaN(value)) {\n return parseFloat(value);\n }\n }\n return 0;\n }\n }\n\n parseValueToSeparator(value) {\n if (typeof this.config.separator === 'string') {\n value = parseFloat(value).toFixed(2);\n return value.replace('.', this.config.separator);\n }\n\n return value;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.initialized) {\n this.currentValue = this.checkAndRemoveCurrency(this.currentValue) + this.config.currency;\n this.customChange.emit(this.value);\n }\n }\n\n selectOption(event) {\n this.currentValue = event.target.innerText;\n this.closeSelect(event);\n event.stopPropagation();\n this.customChange.emit(event.target.value);\n }\n\n closeSelect(event) {\n this.editing = false;\n this.isLoading = false;\n event.stopPropagation();\n }\n}\n\nexport interface NwbEditInPlaceConfig {\n /** Whether to select the whole text inside the input upon click */\n selectTextUponClick?: boolean;\n\n /** Data to pass as the second argument for the handler method if any **/\n data?: any;\n\n currency?: string;\n\n separator?: string;\n\n /**\n * handler method to call on change.\n * This allows you to perform any action before setting new value to the model\n * It has to return a boolean observable. If the returned value is true then the model will change.\n */\n handler?: (value: any, data: any) => Observable<boolean | ReturnedData>;\n}\n\nexport interface ReturnedData {\n success: boolean;\n value: any;\n}\n","import { Component, Input } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-text-area',\n templateUrl: './text-area.component.html',\n\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: TextAreaComponent, multi: true }]\n})\nexport class TextAreaComponent implements ControlValueAccessor {\n // todo simplify and improve progress bar\n @Input()\n label = '';\n @Input()\n value = '';\n @Input()\n placeholder = '';\n @Input()\n textInfo = '';\n @Input()\n textError = '';\n @Input()\n error = '';\n @Input()\n success = '';\n @Input()\n size = null;\n @Input()\n min = null;\n @Input()\n max = null;\n @Input()\n dynamicSize = false;\n @Input()\n progressBar = false;\n @Input()\n disabled = false;\n @Input()\n maxlength: number | string;\n @Input()\n minlength: number | string;\n\n id =\n 'wac-textarea__' +\n Math.random()\n .toString(36)\n .substr(2, 9);\n\n private _onChange: Function;\n private _onTouched: Function;\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: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n this.writeValue(value);\n }\n }\n\n onBlur() {\n if (this._onTouched) {\n this._onTouched();\n }\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'wac-h1',\n templateUrl: './h1.component.html'\n})\nexport class H1Component implements OnInit {\n @Input()\n annotation = '';\n @Input()\n withImg = false;\n @Input()\n center = false;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'wac-h2',\n templateUrl: './h2.component.html'\n})\nexport class H2Component implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'wac-h3',\n templateUrl: './h3.component.html'\n})\nexport class H3Component implements OnInit {\n @Input() grey = false;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n@Component({\n selector: 'wac-header-page',\n templateUrl: './header-page.component.html'\n})\nexport class HeaderPageComponent implements OnInit {\n @Input()\n title: string;\n @Input()\n linkBack: string;\n @Input()\n withImg = false;\n @Input()\n center = false;\n constructor() {}\n ngOnInit(): void {}\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-input',\n templateUrl: './input.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: InputComponent, multi: true }]\n})\nexport class InputComponent implements ControlValueAccessor {\n @Input()\n label = '';\n @Input()\n value = '';\n @Input()\n type = 'text';\n @Input()\n placeholder = '';\n @Input()\n textInfo = null;\n @Input()\n textError = null;\n @Input()\n size = null;\n @Input()\n isNumber = null;\n @Input()\n withoutBlock = false;\n @Input()\n icon = '';\n @Input()\n big = false;\n @Input()\n medium = false;\n @Input()\n boldLabel = 'false';\n @Input()\n min = null;\n @Input()\n max = null;\n @Input()\n disableMargin = false;\n @Input()\n textPrepend = null;\n @Input()\n textAppend = null;\n @Input()\n progressBar = false;\n @Input()\n extraClasses = '';\n @Input()\n keyPreventDefault = [];\n @Input()\n showTooltip = false;\n @Input()\n textTooltip = '';\n @Input()\n iconTooltip = '';\n @Input()\n urlTooltip = '';\n @Input()\n linkTooltip = '';\n @Input()\n padding = false;\n @Input()\n disabled = false;\n @Input()\n indication = false;\n @Input()\n success = false;\n @Input()\n error = false;\n @Input()\n maxlength: number | string;\n @Input()\n minlength: number | string;\n @Input()\n indicationLeft = false;\n\n @Output() keypressEnter = new EventEmitter<boolean>();\n\n private KEYPRESS_ENTER = \"Enter\";\n\n id =\n 'wz-input_' +\n Math.random()\n .toString(36)\n .substr(2, 9);\n\n private _onChange: Function;\n private _onTouched: Function;\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: any): void {\n this.value = obj;\n }\n\n onChange(value) {\n if (this._onChange) {\n this._onChange(value);\n }\n }\n\n onBlur() {\n if (this._onTouched) {\n this._onTouched();\n }\n }\n\n checkNumberValue(value) {\n if (this.min && this.min > value) {\n this.value = this.min;\n }\n if (this.max && this.max < value) {\n this.value = this.max;\n }\n }\n\n onFocusOut() {\n if (this.type === 'number') {\n this.checkNumberValue(this.value);\n }\n }\n\n keyPress(event: KeyboardEvent) {\n if (this.keyPreventDefault.includes(event.key)) {\n event.preventDefault();\n }\n\n if (event.key === this.KEYPRESS_ENTER) {\n this.keypressEnter.next(true);\n }\n }\n}\n","import { Component, ElementRef, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'wac-link',\n templateUrl: './link.component.html'\n})\nexport class LinkComponent implements OnInit {\n\n _link: string;\n\n @Input() set href(link : string) {\n this._link = link;\n this.setAttributesLink();\n }\n\n get href(): string {\n return this._link;\n }\n\n @Input() target: '_self' | '_blank' | '_parent' | '_top' = '_self';\n @Input() id: string;\n @Input() class: string;\n @Input() fontSize = '14px';\n\n @ViewChild('linkComponent')\n linkComponent: ElementRef;\n\n constructor(private renderer2: Renderer2) {}\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {\n this.setAttributesLink();\n }\n\n setAttributesLink() {\n if (!this.linkComponent) {\n return;\n }\n\n if (this.href) {\n this.renderer2.setAttribute(this.linkComponent.nativeElement, \"href\", this.href);\n this.renderer2.setAttribute(this.linkComponent.nativeElement, \"target\", this.target);\n } else {\n this.renderer2.removeAttribute(this.linkComponent.nativeElement, \"href\");\n this.renderer2.removeAttribute(this.linkComponent.nativeElement, \"target\");\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wac-progress-bar',\n templateUrl: './progress-bar.component.html',\n\n})\nexport class ProgressBarComponent {\n @Input()\n valueLength = null;\n @Input()\n min = null;\n @Input()\n max = null;\n\n constructor(private translateService: TranslateService) {}\n\n progressBarClass(spanNumber = -1) {\n const length = this.valueLength;\n const min = this.min;\n const max = this.max;\n\n if (spanNumber === 1) {\n return {\n 'is-danger': length > max,\n 'is-success': length >= min && length <= max\n };\n } else if (spanNumber === 2) {\n return {\n 'is-success': length === max,\n 'is-danger': length > max\n };\n } else {\n return {\n 'is-warning': length < min,\n 'is-danger': length > max,\n 'is-success': length >= min && length <= max\n };\n }\n }\n\n progressBarSpanPosition(index) {\n const min = this.min;\n const max = this.max;\n const maxSize = this.progressBarGetMaxSize(max);\n const successMin = (min / maxSize) * 100;\n const successMax = (max / maxSize) * 100;\n return index === 1 ? successMin : successMax;\n }\n\n progressBarGetMaxSize(max) {\n return max + max / 4;\n }\n\n progressBarGetTextInfo() {\n const length = this.valueLength;\n const min = this.min;\n const max = this.max;\n\n if (length < min) {\n return this.translateService.instant('wac.input.progressbar.information.too.short');\n } else if (length > max) {\n return this.translateService.instant('wac.input.progressbar.information.too.long');\n } else {\n return this.translateService.instant('wac.input.progressbar.information.good');\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n@Component({\n selector: 'wac-switch',\n templateUrl: './switch.component.html'\n})\nexport class SwitchComponent implements OnInit {\n // todo add ngmodel and review texts display (textState is mandaoty in order to display textStateEnable and textStateDisable)\n @Input() value = false;\n @Input() textState = false;\n @Input() textStateEnable = '';\n @Input() textStateDisable = '';\n @Input() showInput = false;\n @Input() placholderInput: string;\n @Input() danger = false;\n @Input() whiteSpace: boolean = false;\n @Output() switchChange = new EventEmitter<any>(); // todo set emitted type\n @Output() changeInput = new EventEmitter<any>(); // todo set emitted type\n valueInput: string;\n public id: string;\n constructor() {}\n ngOnInit(): void {\n this.id = 'switch-' + Math.floor(Math.random() * Math.floor(1000));\n }\n changeValue(event: any) {\n this.switchChange.emit(event.target.checked);\n }\n triggerInput() {\n this.changeInput.emit(this.valueInput);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-tooltip',\n templateUrl: './tooltip.component.html',\n\n})\nexport class TooltipComponent implements OnInit {\n // todo add exemples. Should be a directive. Maybe allow to pass a template like\n @Input()\n tooltipIcon: string;\n @Input()\n tooltipText: string = '';\n @Input()\n tooltipLink: string = '';\n @Input()\n tooltipUrl: string = '#';\n\n constructor() {}\n\n ngOnInit() {\n if (this.tooltipIcon === '') {\n this.tooltipIcon = 'fas fa-info-circle';\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-alert',\n templateUrl: './alert.component.html'\n})\nexport class AlertComponent implements OnInit {\n @Input() icon = true;\n @Input() warning = false;\n @Input() success = false;\n @Input() alert = false;\n @Input() iconClass = 'fas fa-info';\n constructor() {}\n ngOnInit(): void {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n\n@Component({\n selector: 'wac-text',\n templateUrl: './text.component.html'\n})\nexport class TextComponent implements OnInit {\n @Input()\n textClass: 'grey'|'yellow'|'red'|'label'|'optional';\n constructor() {}\n ngOnInit(): void {}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'IsLastPage'\n})\nexport class PagniationIsLastPage implements PipeTransform {\n /**\n * Return true, if the current page is the last page. Otherwise, return false.\n * @param currentPage\n * @param totalItems\n * @param itemsPerPage\n */\n transform(currentPage, totalItems, itemsPerPage): boolean {\n if (!(currentPage >= 0 && totalItems >= 0 && itemsPerPage >= 0)) {\n throw new Error('currentPage or totalItems or itemsPerPage is/are missing in PagniationIsLastPage pipe.');\n }\n return currentPage === Math.ceil(totalItems / itemsPerPage);\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PagniationIsLastPage } from './pipes/is-last-page.pipe';\n\nexport interface PaginationFilters {\n totalItems: number;\n itemsPerPage: number;\n currentPage: number;\n}\n\n@Component({\n selector: 'wac-pagination',\n templateUrl: './pagination.component.html'\n})\nexport class PaginationComponent {\n @Input()\n set pagination(pagination: PaginationFilters) {\n this._pagination = pagination;\n }\n get pagination(): PaginationFilters {\n return this._pagination;\n }\n private _pagination: PaginationFilters;\n\n @Output() pageChange: EventEmitter<PaginationFilters> = new EventEmitter();\n\n constructor() {}\n\n decrementPage() {\n if (this.pagination.currentPage <= 1) {\n return;\n }\n this.pagination.currentPage--;\n this.pageChange.emit(this.pagination);\n }\n\n incrementPage() {\n const isLastPage = new PagniationIsLastPage().transform(\n this.pagination.currentPage,\n this.pagination.totalItems,\n this.pagination.itemsPerPage\n );\n if (isLastPage) {\n return;\n }\n this.pagination.currentPage++;\n this.pageChange.emit(this.pagination);\n }\n\n onGotoPageChange(event: any) {\n this.pagination.currentPage = parseInt(event.target.value);\n this.pageChange.emit(this.pagination);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'ArrayTotalPages'\n})\nexport class PagniationArrayTotalPages implements PipeTransform {\n /**\n * Return an incremental array corresponding with the number page\n * [ 1, 2, 3 ..., last page number ]\n * @param totalItems\n * @param itemsPerPage\n */\n transform(totalItems, itemsPerPage): number[] {\n if (!(totalItems >= 0 && itemsPerPage >= 0)) {\n throw new Error('totalItems or itemsPerPage missing in ArrayTotalPages pipe.');\n }\n const arrayLength: number = Math.ceil(totalItems / itemsPerPage);\n return Array.apply(null, { length: arrayLength })\n .map(Number.call, Number)\n .map(x => x + 1);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'customPagniationText'\n})\nexport class PagniationText implements PipeTransform {\n constructor(private translateService: TranslateService) {}\n\n /**\n * Update pagination text if at least one entrie change\n * @param currentPage\n * @param totalItems\n * @param itemsPerPage\n */\n transform(currentPage, totalItems, itemsPerPage): any {\n let currentItemsLow = 0,\n currentItemsHigh = 0;\n\n if (totalItems) {\n currentItemsLow = (parseInt(currentPage) - 1) * parseInt(itemsPerPage) + 1;\n currentItemsHigh = parseInt(currentPage) * parseInt(itemsPerPage);\n }\n\n if (currentItemsHigh > totalItems) {\n currentItemsHigh = totalItems;\n }\n\n return this.translateService.get('wac.PaginationComponent.on', { low: currentItemsLow, high: currentItemsHigh, total: totalItems })\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { PaginationComponent } from './pagination.component';\nimport { PagniationArrayTotalPages } from './pipes/array-pages.pipe';\nimport { PagniationText } from './pipes/custom-text.pipe';\nimport { PagniationIsLastPage } from './pipes/is-last-page.pipe';\n\nconst pipes = [PagniationArrayTotalPages, PagniationIsLastPage, PagniationText];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule\n ],\n exports: [PaginationComponent],\n declarations: [PaginationComponent, ...pipes],\n providers: [],\n})\nexport class PaginationModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { CheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n exports: [CheckboxComponent],\n declarations: [CheckboxComponent],\n providers: [],\n})\nexport class CheckboxModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { ProgressBarComponent } from './progress-bar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n exports: [ProgressBarComponent],\n declarations: [ProgressBarComponent],\n providers: [],\n})\nexport class ProgressBarModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { TooltipComponent } from './tooltip.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule\n ],\n exports: [TooltipComponent],\n declarations: [TooltipComponent],\n providers: [],\n})\nexport class TooltipModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SharedDirectives } from '../../../directives/shared-directives.module';\nimport { ProgressBarModule } from '../../progress-bar/progress-bar.module';\nimport { TooltipModule } from '../../tooltip/tooltip.module';\nimport { InputComponent } from './input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedDirectives,\n TooltipModule,\n ProgressBarModule\n ],\n exports: [InputComponent],\n declarations: [InputComponent],\n providers: [],\n})\nexport class InputModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SharedDirectives } from '../../../directives/shared-directives.module';\nimport { InputModule } from '../input/input.module';\n\nimport { InputSearchComponent } from './input-search.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n InputModule,\n SharedDirectives\n ],\n exports: [InputSearchComponent],\n declarations: [InputSearchComponent],\n providers: [],\n})\nexport class InputSearchModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { LoaderComponent } from './loader.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ],\n exports: [LoaderComponent],\n declarations: [LoaderComponent],\n providers: [],\n})\nexport class LoaderModule { }\n","import { DOCUMENT } from '@angular/common';\nimport { Inject } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[tableColumn]'\n})\nexport class TableColumn {\n @Input('columnSize') columnSize: string; // Optional.\n @Input('centerCell') centerCell: 'left'|'center'|'right'; // Optional. left|center|right\n\n private centerCellValue: string[] = ['left', 'center', 'right'];\n\n constructor(private currentCell: ElementRef, private renderer: Renderer2, @Inject(DOCUMENT) private document) {}\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n }\n\n applyCustomStylesOnCell() {\n this.currentCell.nativeElement.style.flexGrow = typeof this.columnSize !== 'undefined' ? this.columnSize : '1';\n this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__body__line__cell');\n\n if (this.centerCell) {\n if (this.centerCellValue.indexOf(this.centerCell) === -1) {\n throw 'Error : The centerCell directive has no matched value. The value must be one of the following : left, center, right.';\n }\n\n let className = 'wac-table__body__line__cell--center' + '--' + this.centerCell;\n this.renderer.addClass(this.currentCell.nativeElement, className);\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { EventEmitter, Inject, Output } from '@angular/core';\nimport { Renderer2 } from '@angular/core';\nimport { Directive, ElementRef, Input } from '@angular/core';\nimport { NwbFilter, NwbFilterGroup } from '@wizishop/ng-wizi-bulma';\nimport { Subscription } from 'rxjs';\nimport { FiltersTableService } from '../shared/filters-table.service';\nimport { TableFilters } from '../shared/table-filters.model';\n\n@Directive({\n // The selector has the same name as the headerCell selector in table.component.html\n selector: '[headerCell]'\n})\nexport class TableColumnHeader {\n @Input('headerName') // Optional.\n set headerName(value: string) {\n this._headerName = value;\n this.setHeaderName();\n }\n _headerName: string = '';\n get headerName(): string {\n return this._headerName;\n }\n @Input('columnSize') columnSize: string; // Optional.\n @Input('filterRouting') filterRouting: boolean = false; // Optional. Set to true to use Filter Routing.\n @Input('tableName') tableName: string; // Optional, but mandatory to handle sorting\n @Input('sortName') sortName: string; // Optional, but mandatory to handle sorting\n @Input('centerCell') centerCell: 'left'|'center'|'right'; // Optional. left|center|right\n @Output() onSortChange: EventEmitter<boolean> = new EventEmitter(); // Emit the sort value (true, false, undefuned) of the current sort icon when clicking\n @Input() tableFilters: TableFilters;\n @Output() tableFiltersChange: EventEmitter<TableFilters> = new EventEmitter();\n\n private centerCellValue: string[] = ['left', 'center', 'right'];\n\n private contentHeader: HTMLAnchorElement;\n private filterGroup: NwbFilterGroup;\n\n private subscriptions: Subscription[] = [];\n\n constructor(\n private currentCell: ElementRef,\n private renderer: Renderer2,\n @Inject(DOCUMENT) private document,\n private filtersTableService: FiltersTableService\n ) {}\n\n ngOnInit() {\n if (this.tableName && this.sortName) {\n if (this.filterRouting) {\n this.handleSortRouting();\n } else {\n this.handleSortBasic();\n }\n }\n }\n\n ngAfterViewInit() {\n this.applyCustomStylesOnCell();\n this.renderHeaderColumn();\n }\n\n handleSortRouting() {\n this.filterGroup = this.filtersTableService.getTableFilterGroup(this.tableName);\n\n const filterGroupChangeSub = this.filterGroup.valuesChange$.subscribe((filters:NwbFilter[]) => {\n if (!filters || !filters.length) {\n return;\n }\n const filterSort = filters.filter(filter => filter.key === 'sort')[0];\n if (this.sortName !== filterSort.value) {\n this.resetSortIcon();\n }\n });\n this.subscriptions.push(filterGroupChangeSub);\n }\n\n handleSortBasic() {\n const sortChangeSub = this.filtersTableService.getSortChangeListner().subscribe(sort => {\n if (this.tableName === sort.dataTableName && this.sortName !== sort.sortName) {\n // Reset the current sort icon\n this.resetSortIcon();\n }\n });\n this.subscriptions.push(sortChangeSub);\n }\n\n resetSortIcon() {\n // Replace current icon with default icon\n this.contentHeader.className = this.contentHeader.className.replace(this.getCurrentSortIcon(), 'idle');\n }\n\n applyCustomStylesOnCell() {\n this.currentCell.nativeElement.style.flexGrow = typeof this.columnSize !== 'undefined' ? this.columnSize : '1';\n this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__head__cell');\n\n if (this.centerCell) {\n if (this.centerCellValue.indexOf(this.centerCell) === -1) {\n throw 'Error : The centerCell directive has no matched value. The value must be one of the following : left, center, right.';\n }\n\n let className = 'wac-table__head__cell--center' + '--' + this.centerCell;\n this.renderer.addClass(this.currentCell.nativeElement, className);\n }\n }\n\n renderHeaderColumn() {\n this.createHeaderContent();\n this.renderer.appendChild(this.currentCell.nativeElement, this.contentHeader);\n }\n\n createHeaderContent() {\n this.contentHeader = document.createElement('a');\n this.contentHeader.className = 'wac-table__head__cell__search';\n this.setHeaderName();\n if (this.tableName && this.sortName) {\n this.handleSort();\n }\n }\n\n private setHeaderName() {\n if (!this.contentHeader) {\n return;\n }\n this.contentHeader.innerHTML = this.headerName;\n }\n\n handleSort() {\n // Set icon in the header column cell\n this.contentHeader.className += ' wac-table__head__cell__search--' + this.getInitialSortIcon();\n\n // On click on the content header, change the icon and emit event\n this.renderer.listen(this.contentHeader, 'click', () => {\n const currentIcon = this.getCurrentSortIcon();\n let newIcon: string;\n let newSort: string, newOrder: boolean;\n\n switch (currentIcon) {\n case 'idle':\n newIcon = 'up';\n newSort = this.sortName;\n newOrder = true;\n break;\n\n case 'up':\n newIcon = 'down';\n newSort = this.sortName;\n newOrder = false;\n break;\n\n case 'down':\n newIcon = 'idle';\n break;\n\n default:\n newIcon = 'idle';\n break;\n }\n // Replace the icon\n this.contentHeader.className = this.contentHeader.className.replace(currentIcon, newIcon);\n\n this.emitEvents(newSort, newOrder);\n });\n }\n\n getInitialSortIcon() {\n if (!this.filterRouting) {\n return 'idle';\n }\n // Get Initial Sort Icon for Routing Filter\n let initialSortIcon = 'idle';\n if (this.filterGroup.get('sort') === this.sortName) {\n initialSortIcon = this.filterGroup.get('order') == 'true' ? 'up' : 'down';\n }\n return initialSortIcon;\n }\n\n getCurrentSortIcon() {\n const regexp = /wac-table__head__cell__search--(?<icon>\\w+)/;\n const { groups } = regexp.exec(this.contentHeader.className);\n return groups.icon;\n }\n\n emitEvents(newSort, newOrder) {\n if (this.filterRouting) {\n // Will send the filter routing value has changes event\n this.filterGroup.setValues({\n sort: newSort,\n order: newOrder,\n currentPage: 1\n });\n } else {\n // Send the event sort change\n this.filtersTableService.emitSortChange(this.tableName, this.sortName, newOrder);\n }\n if (this.tableFilters) {\n this.tableFilters.sort = this.sortName;\n this.tableFilters.order = newOrder;\n this.tableFilters.currentPage = 1;\n this.tableFiltersChange.emit(this.tableFilters);\n }\n this.onSortChange.emit(newOrder);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(subscription => {\n subscription.unsubscribe();\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxModule } from '../checkbox/checkbox.module';\nimport { InputSearchModule } from '../inputs/input-search/input-search.module';\nimport { LoaderModule } from '../loader/loader.module';\nimport { PaginationModule } from '../pagination/pagination.module';\nimport { CheckBoxRow } from './directives/checkBoxRow.directive';\nimport { TableColumn } from './directives/column.directive';\nimport { TableColumnHeader } from './directives/columnHeader.directive';\nimport { TableRow } from './directives/raw.directive';\n\nimport { TableComponent } from './table.component';\n\nconst directives = [TableColumn, CheckBoxRow, TableColumnHeader, TableRow,]\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n InputSearchModule,\n LoaderModule,\n CheckboxModule,\n PaginationModule\n ],\n exports: [TableComponent, ...directives],\n declarations: [TableComponent, ...directives],\n providers: [],\n})\nexport class TableModule { }\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'wac-upload',\n templateUrl: './upload.component.html'\n})\nexport class UploadComponent implements OnInit {\n @Input()\n label: string = 'Choisir les images à importer';\n @Input()\n type: string = 'button';\n @Input()\n icon: string | boolean = 'far fa-images';\n @Input()\n image: string | boolean = 'assets/angular-components/images/upload/icon_picture.svg';\n @Input()\n labelImage: string = 'Glisser-déposer votre image ici';\n\n @Output()\n open = new EventEmitter<any>();\n constructor() {}\n\n ngOnInit(): void {}\n\n triggerEvent(event) {\n this.open.emit(event);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-h4',\n templateUrl: './h4.component.html'\n})\nexport class H4Component implements OnInit {\n @Input() grey = false;\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { CalllToAction } from '../call-to-action.model';\nimport { SelectItem } from '../select-items.dto';\n\n@Component({\n selector: 'wac-select-in-text',\n templateUrl: './select-in-text.component.html'\n})\nexport class SelectInTextComponent implements OnInit {\n @Input()\n set items(items: SelectItem[]) {\n this._items = items;\n this.setInitialValues();\n }\n get items(): SelectItem[] {\n return this._items;\n }\n private _items: SelectItem[];\n\n @Input()\n placeholder: string;\n\n @Input()\n label: string;\n\n @Input()\n maxWidthItems: string;\n\n @Input()\n type = 'default';\n\n @Input()\n callToAction: CalllToAction;\n\n @Input()\n preText: string;\n\n @Input()\n postText: string;\n\n @Input()\n alwaysOpen: boolean = false;\n\n openCategories = false;\n\n currentLabel: string = '';\n currentLabelIcon: string = '';\n\n @Input() maxWidth = '100%';\n\n @Output() selectValue = new EventEmitter<number>();\n\n @Output() clickOnCallToAction = new EventEmitter<any>();\n\n constructor() {}\n\n ngOnInit(): void {\n this.currentLabel = this.placeholder;\n this.setInitialValues();\n }\n\n setInitialValues() {\n if (!this.items.length) {\n return;\n }\n\n const itemSelected: SelectItem = this.getItemSelected();\n this.setCurrentItem(itemSelected);\n }\n\n onClose() {\n this.openCategories = false;\n }\n\n customTB(item: SelectItem, index: number) {\n return `${item.id}-${index}`;\n }\n\n onSelectItem(index: number) {\n this.unselectAll();\n const itemSelected: SelectItem = this.items[index];\n this.setCurrentItem(itemSelected);\n this.selectValue.emit(index);\n }\n\n onClickCallToAction() {\n this.clickOnCallToAction.emit(this.callToAction.value);\n }\n\n private getItemSelected():SelectItem {\n let itemSelected: SelectItem = null;\n this.items.forEach(item => {\n if (!item.selected) {\n return;\n }\n itemSelected = item;\n });\n return itemSelected;\n }\n\n private setCurrentItem(itemSelected: SelectItem) {\n if (!itemSelected) {\n return;\n }\n itemSelected.selected = true;\n this.currentLabel = itemSelected.name;\n this.currentLabelIcon = itemSelected.icon;\n }\n\n private unselectAll() {\n this.items.forEach(item => item.selected = false);\n }\n}\n","import {Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport { CalllToAction } from '../call-to-action.model';\nimport { SelectItem } from '../select-items.dto';\nimport {TranslateService} from '@ngx-translate/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'wac-select',\n templateUrl: './select.component.html',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }]\n})\nexport class SelectComponent implements OnInit, ControlValueAccessor {\n //! Refacto improve sroll on mobile, see with Pauline\n // todo could be simplify. Check filters manager implementation for use case\n\n _items: SelectItem[];\n @Input() set items(items: SelectItem[]) {\n this._items = items;\n this.setIndexItemSelected();\n }\n\n get items() : SelectItem[] {\n return this._items;\n }\n\n @Input()\n placeholder: string;\n\n @Input()\n label: string;\n\n @Input()\n maxWidthItems: string; // todo improvre type like : export type CssUnits = 'em'| 'rem' | 'px'; export type CssUnit = `${number}${CssUnits}`;\n\n @Input()\n search = false;\n\n @Input()\n searchValue: string = '';\n\n @Input() openUp = false;\n\n @Output() searchValueChange = new EventEmitter<string>();\n\n @Input()\n type = 'default';\n\n _calllToAction: CalllToAction; // todo maybe replace by ng-content or allow template or child component like <wac-call-to-action>...\n @Input() set callToAction(callToAction: CalllToAction) {\n this._calllToAction = callToAction;\n }\n\n get callToAction(): CalllToAction {\n return this._calllToAction;\n }\n\n @Input() maxWidth = '100%';\n\n @Input()\n disabled = false;\n\n @Output() selectValue = new EventEmitter<number>(); // todo rename more explicit\n\n @Output() clickOnCallToAction = new EventEmitter<any>();\n\n @ViewChild('search') searchElement: ElementRef;\n\n openCategories = false;\n\n indexItemSelected: number = -1;\n\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n }\n\n onClose() {\n this.openCategories = false;\n }\n\n customTB(item: SelectItem, index: number) {\n return `${item.id}-${index}`;\n }\n\n onSelectItem(id: number) {\n this.unselectAll();\n this.setIndexItemSelectedById(id);\n const itemSelected: SelectItem = this.getItemSelected();\n itemSelected.selected = true;\n this.selectValue.emit(this.indexItemSelected);\n this.onChange(itemSelected);\n }\n\n onClickCallToAction() {\n this.onClose();\n this.clickOnCallToAction.emit(this.callToAction.value);\n }\n\n onSearcheValueChange() {\n this.searchValueChange.emit(this.searchValue);\n }\n\n private getItemSelected(): SelectItem {\n return this.items[this.indexItemSelected];\n }\n\n showCategories() {\n this.openCategories = true;\n setTimeout(() => { // this will make the execution after the above boolean has changed\n this.searchElement.nativeElement?.focus();\n }, 0);\n }\n\n private unselectAll() {\n this.items.forEach(item => item.selected = false);\n }\n\n private setIndexItemSelectedById(id: number) {\n this.indexItemSelected = this.items.findIndex(item => item.id === id);\n }\n\n private setIndexItemSelected() {\n this.indexItemSelected = this.items.findIndex(item => item.selected);\n }\n\n // ControlValueAccessor methods\n\n onChange: (selectItem: SelectItem) => void = () => {};\n onTouch: any = () => {}\n\n writeValue(selectItem: any){\n if (!selectItem) {\n return;\n }\n this.unselectAll();\n selectItem.selected = true;\n this.setIndexItemSelectedById(selectItem.id);\n }\n\n registerOnChange(fn: any){\n this.onChange = fn;\n }\n registerOnTouched(fn: any){\n this.onTouch = fn;\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'wac-multiple-search',\n templateUrl: './multiple-search.component.html'\n})\nexport class MultipleSearchComponent implements OnInit {\n @Input() options = {};\n @Input() alwaysOpen = false;\n label = '';\n placeholder = '';\n icon = '';\n query = '';\n search: any = '';\n openSelect = false;\n error = 'wac.simpleSearchComponent.error';\n showError = false;\n constructor(private translateService: TranslateService) {}\n\n ngOnInit(): void {\n this.setPlaceholder();\n this.setLabel();\n this.setQuery();\n this.setIcon();\n }\n\n setSearchValueToQuery(value) {\n if (value.code !== 'Enter') {\n this.search = encodeURI(value.target.value);\n } else {\n this.submitForm();\n }\n }\n\n submitForm() {\n if (this.search) {\n if (this.search.length > 0) {\n window.location.href = this.query.replace('{s}', this.search);\n } else {\n this.displayError();\n }\n } else {\n this.displayError();\n }\n }\n\n setPlaceholder(value?) {\n if (value) {\n this.placeholder = this.options[value].placeholder;\n } else {\n this.placeholder = this.options[0].placeholder;\n }\n }\n\n setLabel(value?) {\n if (value) {\n this.label = this.options[value].label;\n } else {\n this.label = this.options[0].label;\n }\n }\n\n setQuery(value?) {\n if (value) {\n this.query = this.options[value].queries;\n } else {\n this.query = this.options[0].queries;\n }\n }\n\n displayError() {\n this.showError = true;\n setTimeout(() => {\n this.hideError();\n }, 2000);\n }\n\n hideError() {\n this.showError = false;\n }\n\n setIcon(value?) {\n if (value) {\n this.icon = this.options[value].icon;\n } else {\n this.icon = this.options[0].icon;\n }\n }\n\n openFuncSelect() {\n this.openSelect = !this.openSelect;\n }\n\n closeSelect() {\n this.openSelect = false;\n }\n\n resetAllVue(value) {\n this.setPlaceholder(value);\n this.setLabel(value);\n this.setQuery(value);\n this.setIcon(value);\n this.search = '';\n this.closeSelect();\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MultipleSearchPlusOption } from './shared/multiple-search-plus-option.model';\nimport { MultipleSearchPlusResults } from './shared/multiple-search-plus-results.model';\n\n@Component({\n selector: 'wac-multiple-search-plus',\n templateUrl: './multiple-search-plus.component.html'\n})\nexport class MultipleSearchPlusComponent implements OnInit {\n\n currentOption:number;\n label = '';\n placeholder = '';\n openSelect = false;\n openSearchResults = false;\n\n isLoading = true;\n\n @Input() options:MultipleSearchPlusOption[];\n @Input() searchResults:MultipleSearchPlusResults[];\n\n @Output() searchValue = new EventEmitter();\n @Output() optionsChange = new EventEmitter();\n\n constructor() {}\n\n ngOnInit(): void {\n this.setCurrentOption();\n this.setPlaceholder();\n this.setLabel();\n }\n\n setSearchValue(value:any) {\n if(value.target.value != ''){\n this.openSearchResults = true;\n } else {\n this.openSearchResults = false;\n }\n this.searchValue.emit({ currentOption: this.options[this.currentOption].code, value: value.target.value });\n }\n\n setCurrentOption(value?:number) {\n this.currentOption = value || 0;\n }\n\n setPlaceholder(value?:number) {\n this.placeholder = value ? this.options[value].placeholder : this.options[0].placeholder;\n }\n\n setLabel(value?:number) {\n this.label = value ? this.options[value].label : this.options[0].label;\n }\n\n onToggleSelect() {\n this.openSelect = !this.openSelect;\n }\n\n closeSelect() {\n this.openSelect = false;\n }\n\n closeSearchResults() {\n this.openSearchResults = false;\n }\n\n resetAllVue(value:number) {\n this.searchResults = undefined;\n this.setCurrentOption(value);\n this.setPlaceholder(value);\n this.setLabel(value);\n this.openSearchResults = false;\n this.closeSelect();\n }\n\n addResult(index:number) {\n let alreadyExist = false;\n this.options[this.currentOption].table.forEach(elem => {\n if(elem.id == this.searchResults[index].id){\n alreadyExist = true;\n }\n });\n if(!alreadyExist) {\n this.options[this.currentOption].table.push(this.searchResults[index]);\n }\n this.resetAllVue(this.currentOption);\n this.optionsChange.emit({ currentOption: this.options[this.currentOption].code, action: 'add'});\n }\n\n deleteResult(indexItem:number, index:number) {\n this.options[index].table.splice(indexItem,1);\n this.optionsChange.emit({ currentOption: this.options[index].code, action: 'delete'});\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { OptionItem } from './option-item.dto';\n\n@Component({\n selector: 'wac-input-with-select',\n templateUrl: './input-with-select.component.html'\n})\nexport class InputWithSelectComponent implements OnInit {\n // todo add ngmodel for input\n @Input()\n label: string;\n\n @Input()\n text: string;\n\n @Input()\n options: OptionItem[];\n\n @Input()\n placeholder: string;\n\n @Input()\n id: string;\n\n currentLabel: string;\n showSelect = false;\n\n @Output() inputValueChange = new EventEmitter<string>();\n @Output() selectValueChange = new EventEmitter<number>();\n\n constructor() {}\n\n ngOnInit() {\n this.options.forEach((item) => {\n if (item.active) {\n this.currentLabel = item.label;\n }\n });\n }\n\n onClickItem(index: number) {\n this.unActiveAll();\n const optionSelected: OptionItem = this.options[index];\n optionSelected.active = true;\n this.currentLabel = optionSelected.label;\n this.showSelect = false;\n this.selectValueChange.emit(index);\n }\n\n onToggleSelect() {\n this.showSelect = !this.showSelect;\n }\n\n onCloseSelect() {\n this.showSelect = false;\n }\n\n onChangeInputValue(e: any) {\n this.inputValueChange.emit(e.target.value);\n }\n\n private unActiveAll() {\n this.options.forEach((item) => {\n item.active = false;\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DomService } from '../../services/dom.service';\n\n@Component({\n selector: 'wac-popin',\n templateUrl: './popin.component.html'\n})\nexport class PopinComponent implements OnInit {\n @Input()\n title: string;\n\n @Input()\n content: string;\n\n @Input()\n imgSrc: string;\n\n @Input()\n okButtonLabel: string;\n\n @Input()\n koButtonLabel: string;\n\n @Input()\n okButtonClass: string;\n\n @Input()\n koButtonClass: string;\n\n @Input()\n visible = false;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Output()\n response = new EventEmitter();\n\n @Input()\n background = true;\n\n firstOpen = true;\n\n constructor(private domService: DomService) { }\n\n ngOnInit() {\n this.domService.setDocumentEventListener();\n }\n\n validatePopin() {\n this.response.emit(true);\n this.closePopin();\n }\n\n refusePopin(){\n this.response.emit(false);\n this.closePopin();\n }\n\n closePopin() {\n if(!this.firstOpen){ //trick for auto-hide directive that close immediatly the pop-in\n this.visible = false;\n this.visibleChange.emit(this.visible);\n this.firstOpen = true;\n } else {\n this.firstOpen = false;\n }\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { DomService } from '../../services/dom.service';\n\n@Component({\n selector: 'wac-free-popin',\n templateUrl: './free-popin.component.html'\n})\nexport class FreePopinComponent implements OnInit {\n @Input()\n okButtonLabel: string;\n\n @Input()\n koButtonLabel: string;\n\n @Input()\n visible = false;\n\n @Input()\n disableCloseOutside = false;\n\n @Output()\n visibleChange = new EventEmitter();\n\n @Output()\n response = new EventEmitter();\n\n @Input()\n background = true;\n\n @Input()\n zIndex: number = 9999;\n\n firstOpen = true;\n\n constructor(private domService: DomService) { }\n\n ngOnInit() {\n this.domService.setDocumentEventListener();\n }\n\n validatePopin() {\n this.response.emit(true);\n this.closePopin();\n }\n\n refusePopin(){\n this.response.emit(false);\n this.closePopin();\n }\n\n closePopin() {\n if (!this.firstOpen || this.disableCloseOutside) {\n this.visible = false;\n this.visibleChange.emit(this.visible);\n this.firstOpen = true;\n } else {\n this.firstOpen = false;\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'wac-block',\n templateUrl: './block.component.html'\n})\nexport class BlockComponent {\n @Input()\n titleBlock = ''; // Titre interne au block\n\n @Input()\n titleExternalBlock = false; // Titre externe au block\n\n @Input()\n sticky = false; // add sticky to block\n\n @Input()\n simple = false;\n\n @Input()\n noFullHeight = false; // not full height\n\n @Input()\n icon = '';\n\n @Input()\n titleUppercase = true;\n\n @Input()\n borderRadius = false;\n\n @Input()\n removePadding = false;\n\n @Input()\n stretchHeight = false;\n\n constructor() {}\n}\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-wrapper',\n templateUrl: './wrapper.component.html'\n})\nexport class WrapperComponent implements OnInit {\n @Input()\n size = 'fullsize';\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FilterItem } from './filter-item.dto';\n\n@Component({\n selector: 'wac-filters',\n templateUrl: './filters.component.html'\n})\nexport class FiltersComponent implements OnInit {\n\n @Input()\n options: FilterItem[];\n\n @Input()\n labelRestart: string = 'Afficher toutes les catégories';\n\n @Output()\n filterChange = new EventEmitter<number>();\n\n filterActiveIndex?: string;\n\n constructor() {}\n\n ngOnInit(): void {\n this.options.forEach((item, index) => {\n\n if (item.active) {\n this.filterActiveIndex = '' + index;\n }\n });\n\n }\n\n activeFilter(index: number) {\n this.options[index].active = true;\n this.filterActiveIndex = '' + index;\n this.filterChange.emit(index);\n }\n\n resetFilter() {\n this.options.forEach((item) => {\n item.active = false;\n });\n this.filterActiveIndex = null;\n this.filterChange.emit(-1);\n }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'wac-wrapper-blocs',\n templateUrl: './wrapper-blocs.component.html'\n})\nexport class WrapperBlocsComponent implements OnInit {\n @Input()\n sidebar = false;\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, Input, OnInit, Output, ViewEncapsulation, EventEmitter } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\n\n@Component({\n selector: 'wac-snackbar',\n templateUrl: './snackbar.component.html',\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('state', [\n state(\n 'void',\n style({\n bottom: '-100px'\n })\n ),\n state(\n 'inactive',\n style({\n bottom: '-100px'\n })\n ),\n state(\n 'active',\n style({\n bottom: '0px'\n })\n ),\n transition('void => active', animate(300)),\n transition('active => inactive', animate(300))\n ])\n ]\n})\nexport class SnackbarComponent implements OnInit {\n\n @Input() message: string;\n @Input() textButtonOk?: string;\n @Input() textButtonKo?: string;\n @Input() duration?: number;\n @Input() color?: string;\n @Input() buttonColor?: string;\n\n @Input() visible = false;\n @Output() visibleChange = new EventEmitter();\n\n @Output() response = new EventEmitter();\n\n private manualClose = false;\n\n private timer: any;\n\n ngOnInit() {\n if (this.duration > 0) {\n this.timer = setTimeout(() => this.manualClose = true, this.duration);\n }\n }\n\n validate(){\n this.response.emit(true);\n this.closeSnackbar();\n this.manualClose = true;\n }\n\n refuse(){\n this.response.emit(false);\n this.closeSnackbar();\n this.manualClose = true;\n }\n\n closeSnackbar(){\n this.visible = false;\n this.visibleChange.emit(this.visible);\n }\n\n}\n","import { Observable, Subject } from 'rxjs';\nimport { AlertPopupConfig } from './alert-popup.service';\nimport { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'wac-alert-popup',\n templateUrl: './alert-popup.component.html',\n host: {\n class: 'wac-alert-popup'\n },\n encapsulation: ViewEncapsulation.None\n})\nexport class AlertPopupComponent implements OnInit {\n config: AlertPopupConfig;\n\n /** Subject for notifying the user that the dialog has finished closing. */\n private afterClosedPopup: Subject<any> = new Subject();\n\n open = false;\n\n private timer: any;\n\n ngOnInit() {\n setTimeout(() => {\n this.open = true;\n }, 50);\n\n if (this.config.duration > 0) {\n this.timer = setTimeout(() => this.dismiss(), this.config.duration);\n }\n }\n\n dismiss() {\n this.open = false;\n\n setTimeout(() => {\n this.afterClosedPopup.next(true);\n this.afterClosedPopup.complete();\n }, 200);\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed(): Observable<any> {\n return this.afterClosedPopup.asObservable();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AlertPopupComponent } from './alert-popup.component';\nimport {DomService} from '../../services/dom.service';\n\n@Injectable()\nexport class AlertPopupService {\n constructor(private domService: DomService) {}\n\n open(config: AlertPopupConfig): AlertPopupComponent {\n const componentRef = this.getComponentRef(config);\n\n return componentRef.instance;\n }\n\n private getComponentRef(config: AlertPopupConfig) {\n const componentRef = this.domService.attachComponentPortal(AlertPopupComponent);\n\n config = Object.assign(\n {\n position: 'is-top'\n },\n config\n );\n\n componentRef.instance.config = config;\n\n componentRef.instance.afterClosed().subscribe(() => {\n componentRef.destroy();\n });\n\n return componentRef;\n }\n}\n\nexport interface AlertPopupConfig {\n message: string;\n title?: string;\n icon?: string;\n color?: string;\n position?: string;\n duration?: number;\n extraClasses?: string;\n fullsize?: boolean;\n opacity?: boolean;\n small?: boolean;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AlertPopupService } from './alert-popup.service';\nimport { AlertPopupComponent } from './alert-popup.component';\n\n@NgModule({\n imports: [CommonModule],\n providers: [AlertPopupService],\n entryComponents: [AlertPopupComponent],\n declarations: [AlertPopupComponent],\n exports: [AlertPopupComponent]\n})\nexport class AlertPopupModule {}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {SearchOption} from './shared/search-option.model';\nimport {SelectItem} from '../selects/select-items.dto';\n\n@Component({\n selector: 'wac-search',\n templateUrl: './search.component.html'\n})\nexport class SearchComponent implements OnInit {\n\n @Input() placeholder: string;\n @Input() alwaysOpen = false;\n @Input() label: string;\n @Input() options: SearchOption[];\n @Input() disableSearchIn = false;\n @Input() emptyResult = '';\n search: any = '';\n openSelect = false;\n triggerOptions: SearchOption[];\n @Output() selectValue = new EventEmitter<number>();\n @Output() searchKeyUp = new EventEmitter<string>();\n @Output() searchFocusOut = new EventEmitter<string>();\n constructor() {}\n\n ngOnInit() {\n this.triggerOptions = this.options;\n }\n\n onClose() {\n this.openSelect = false;\n }\n\n setSearchValueToQuery(value) {\n this.search = value.target.value;\n if (this.disableSearchIn) {\n this.triggerOptions = this.options;\n } else {\n if (this.search.length > 0) {\n this.openSelect = true;\n this.triggerOptions = this.options.filter(element => element.label.toLowerCase().indexOf(this.search.toLowerCase()) !== -1);\n } else {\n this.triggerOptions = this.options;\n }\n }\n this.searchKeyUp.emit(this.search);\n }\n\n sendEventFocusOut() {\n this.searchFocusOut.emit(this.search);\n }\n\n closeSelect() {\n this.openSelect = false;\n }\n\n onSelectItem(index: number, value: number, label: string) {\n this.search = '';\n this.openSelect = false;\n if (this.disableSearchIn) {\n this.selectValue.emit(index);\n } else {\n const findInOption = this.options.findIndex(element => element.label === label && element.id === value);\n this.selectValue.emit(findInOption);\n }\n }\n\n resetAllVue() {\n this.search = '';\n this.closeSelect();\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {SelectedListOption} from './shared/selected-list-option.model';\n\n@Component({\n selector: 'wac-selected-list',\n templateUrl: './selected-list.component.html',\n})\nexport class SelectedListComponent implements OnInit {\n\n @Input() options: SelectedListOption[] = [];\n @Input() label: string;\n @Input() textSelectAll: string;\n @Input() textUnSelectAll: string;\n @Input() enableSelectAll = true;\n @Output() selectedItemsIndex = new EventEmitter<number>();\n @Output() selectedItemsAll = new EventEmitter<number[]>();\n @Output() unSelectedItemsAll = new EventEmitter<number[]>();\n\n selectedOptionIndex = [];\n\n ngOnInit() {\n }\n\n onSelectAll() {\n this.selectedOptionIndex = this.options.map((option, index) => {\n option.checked = true;\n return index;\n });\n this.selectedItemsAll.emit(this.selectedOptionIndex);\n }\n\n onUnSelectAll() {\n this.selectedOptionIndex = this.options.map((option, index) => {\n option.checked = false;\n return index;\n });\n this.unSelectedItemsAll.emit(this.selectedOptionIndex);\n }\n\n onSelectItem(index: number) {\n this.options[index].checked = !this.options[index].checked;\n this.selectedItemsIndex.emit(index);\n }\n\n areAllOptionsChecked() {\n return !this.options.some(option => !option.checked);\n }\n\n}\n","import { Component, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n selector: 'wac-tree',\n templateUrl: 'tree.component.html'\n})\n\nexport class TreeComponent implements OnInit {\n\n // https://indepth.dev/posts/1405/ngtemplateoutlet\n\n\n /**\n *! items sould include RecursifDto interface\n */\n @Input() items: any[];\n @Input() treeDepth:number = 0;\n @Input(\"optionTemplate\")\n optionTemplate: TemplateRef<any>;\n\n constructor() { }\n\n ngOnInit() { }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatObjectToRecursifTree'\n})\n\nexport class FormatObjectToRecursifTreePipe implements PipeTransform {\n\n childrenProperties: string[] = [];\n\n transform(objectList:any[], childrenProperties: string[]): any {\n this.childrenProperties = childrenProperties;\n const treeDepth = 0;\n\n objectList.forEach(object => this.recursiveFormatObjectToRecursifTree(object, treeDepth));\n\n return objectList;\n }\n\n private recursiveFormatObjectToRecursifTree(object: any, treeDepth:number): any {\n for (const childrenProperty of this.childrenProperties) {\n\n object.hasTreeChildren = true;\n\n if (!object.hasOwnProperty(childrenProperty)) {\n // No more chrildren\n object.hasTreeChildren = false;\n continue;\n }\n\n if (!Array.isArray(object[childrenProperty])) {\n throw `Property : \"${childrenProperty}\", is not an array. it could not be transform to a recursive list.`;\n }\n // Add treeChildren property filled with name children property\n object.treeChildren = object[childrenProperty];\n // call this function recursively until no children can be generated\n this.recursiveFormatObjectToRecursifTree(object.treeChildren, treeDepth++);\n break;\n }\n\n object.treeDepth = treeDepth;\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'formatObjectToSimpleTree'\n})\n\nexport class FormatObjectToSimpleTreePipe implements PipeTransform {\n\n private childrenProperties: string[] = [];\n private labelProperties: string[] = [];\n\n transform(objectList:any[], childrenProperties: string[], labelProperties: string[]): any {\n\n this.childrenProperties = childrenProperties;\n this.labelProperties = labelProperties;\n const treeDepth = 0;\n\n objectList.forEach(object => this.recursiveFormatObjectToSimpleTree(object, treeDepth));\n\n return objectList;\n }\n\n private recursiveFormatObjectToSimpleTree(object: any, treeDepth:number): any {\n for (const property in object) {\n\n if (!Object.prototype.hasOwnProperty.call(object, property)) {\n continue;\n }\n\n if (this.labelProperties.includes(property)) {\n object.treeLabel = object[property];\n continue;\n }\n\n object.hasTreeChildren = true;\n\n if (!this.childrenProperties.includes(property)) {\n // No more chrildren\n object.hasTreeChildren = false;\n continue;\n }\n\n if (!Array.isArray(object[property])) {\n throw `Property : \"${property}\", is not an array. it could not be transform to a recursive list.`;\n }\n // Add treeChildren property filled with name children property\n object.treeChildren = object[property];\n // call this function recursively until no children can be generated\n this.recursiveFormatObjectToSimpleTree(object.treeChildren, treeDepth++);\n break;\n }\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { SelectItem } from '../../components/selects/select-items.dto';\n\n@Pipe({\n name: 'selectFilters'\n})\n\nexport class SelectFiltersPipe implements PipeTransform {\n transform(items: SelectItem[], filterName: string): any {\n return items.filter(item => {\n const regexp = new RegExp(filterName, 'i');\n return regexp.test(item.name);\n });\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport { SelectedListOption } from '../../components/selected-list/shared/selected-list-option.model';\n\n@Pipe({\n name: 'areAllOptionsSelected',\n pure: false\n})\n\nexport class AreAllOptionsSelectedPipe implements PipeTransform {\n transform(options: SelectedListOption[]): boolean {\n return !options.some(option => !option.checked);\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { FormatObjectToRecursifTreePipe } from './tree/format-object-to-recursif-tree.pipe';\nimport { FormatObjectToSimpleTreePipe } from './tree/format-object-to-simple-tree.pipe';\nimport { SelectFiltersPipe } from './select/select-filters.pipe';\nimport { AreAllOptionsSelectedPipe } from './selected-list/are-all-options-selected.pipe';\n\nconst exportedPipes = [FormatObjectToRecursifTreePipe, FormatObjectToSimpleTreePipe];\n\nconst pipes = [\n SelectFiltersPipe,\n AreAllOptionsSelectedPipe\n]\n\n@NgModule({\n imports: [CommonModule, FormsModule],\n declarations: [...exportedPipes, ...pipes],\n exports: [...exportedPipes, ...pipes]\n})\nexport class SharedPipes {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SharedPipes } from '../../pipes/shared-pipes.module';\nimport { TreeComponent } from './tree.component';\n\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n SharedPipes\n ],\n exports: [TreeComponent],\n declarations: [TreeComponent],\n providers: [],\n})\nexport class TreeModule { }\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'wac-wrapper-sidebar',\n templateUrl: './wrapper-sidebar.component.html'\n})\nexport class WrapperSidebarComponent implements OnInit {\n\n @Input() reverse = false;\n @Input() hideBackground = false;\n @Input() backgroundGrey: string;\n @Input() backgroundWidth: string;\n @Input() stickySidebar = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {BreadcrumbsDto} from './breadcrumbs.dto';\n\n@Component({\n selector: 'wac-breadcrumbs',\n templateUrl: './breadcrumbs.component.html',\n})\nexport class BreadcrumbsComponent implements OnInit {\n\n @Input()\n breadcrumbs: BreadcrumbsDto[];\n\n @Input()\n noResponsive = false;\n\n index: number = 0;\n\n @Output()\n indexChange = new EventEmitter<any>();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n valueChanged(i) {\n this.index = i;\n this.indexChange.emit(this.index);\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'wac-card-price',\n templateUrl: './card-price.component.html',\n})\nexport class CardPriceComponent implements OnInit {\n\n @Input()\n amount: string;\n\n @Input()\n title: string;\n\n @Input()\n selected = false;\n\n @Input()\n btnLabelSelected: string;\n\n @Input()\n price: string | number;\n\n @Input()\n currency: string;\n\n @Input()\n priceWording: string;\n\n @Input()\n subtitle: string;\n\n @Input()\n btnLabel: string;\n\n @Input()\n packageSubtitle: string;\n\n @Input()\n linkPackageLabel: string;\n\n @Input()\n disabled: boolean = false;\n\n @Input()\n btnTextcolor = '#ffffff';\n\n @Input()\n extraClasses = 'is-success';\n\n @Input()\n extraClassesSelected = 'is-success is-outlined';\n\n @Input()\n hideButton = false;\n\n @Output() public confirm: EventEmitter<any> = new EventEmitter();\n\n @Output() public cancel: EventEmitter<any> = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n triggerClick() {\n this.confirm.emit(true);\n }\n\n removePackageTrigger() {\n this.cancel.emit(true);\n }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'wac-token-check',\n templateUrl: './token-check.component.html',\n})\nexport class TokenCheckComponent implements OnInit {\n\n @Input()\n label: string;\n\n @Input()\n value: number;\n\n @Input()\n max: number;\n\n warning = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'wac-block-with-checkbox',\n templateUrl: './block-with-checkbox.component.html',\n})\nexport class BlockWithCheckboxComponent implements OnInit {\n\n @Input()\n selected = false;\n\n @Input()\n disabled = false;\n\n @Output()\n checkboxAction = new EventEmitter<boolean>();\n\n randomLabelName: string;\n\n @Input()\n nameRadio = 'wacBlockCheckboxRadio';\n\n @Input()\n isFirst = false;\n\n @Input()\n opacity = '.45';\n\n constructor() { }\n\n ngOnInit(): void {\n this.randomLabelName = 'radioBlock' + Math.random() * (900 - 700) + 700;\n }\n\n eventSelected(event) {\n if (!this.disabled) {\n this.selected = event.target.checked;\n this.checkboxAction.emit(this.selected);\n this.isFirst = false;\n }\n }\n\n removeFirstClass() {\n if (typeof document.querySelectorAll('.firstWacRadioBLock')[0] !== typeof undefined) {\n document.querySelectorAll('.firstWacRadioBLock')[0].classList.remove('firstWacRadioBLock');\n }\n }\n}\n","import {AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild} from '@angular/core';\n\n@Component({\n selector: 'wac-confirm-delete',\n templateUrl: './confirm-delete.component.html'\n})\nexport class ConfirmDeleteComponent implements OnInit, AfterViewInit {\n\n @Input()\n open = false;\n\n @Input()\n label: string;\n\n @Input()\n labelCancel: string;\n\n @Input()\n labelConfirm: string;\n\n @Output()\n confirm = new EventEmitter<boolean>();\n\n @Input()\n backgroundColor = '#fff';\n\n @Input()\n borderRadius = '0px';\n\n hideText = false;\n\n @ViewChild('container') container: ElementRef;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n eventCancel(event) {\n this.confirm.emit(false);\n this.open = false;\n }\n\n eventConfirm(event) {\n this.confirm.emit(true);\n this.open = false;\n }\n\n responsiveControl(size) {\n if (size < 342) {\n this.hideText = true;\n } else {\n this.hideText = false;\n }\n }\n\n @HostListener('window:resize')\n onResize(): void {\n this.responsiveControl(this.container.nativeElement.offsetWidth);\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.responsiveControl(this.container.nativeElement.offsetWidth);\n }, 100);\n }\n\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output, SimpleChanges, TemplateRef, ViewEncapsulation} from '@angular/core';\n\nexport type ImageSource = string;\nexport type ImageAlt = string;\n\nexport type MosaicImage = {\n src: ImageSource,\n alt: ImageAlt\n}\n\nexport type MosaicImages = Readonly<MosaicImage[]>;\n\n@Component({\n selector: 'wac-mosaic',\n templateUrl: './mosaic.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MosaicComponent {\n\n @Input() imagesList: MosaicImages = [];\n\n @Input() isLoading = false;\n\n @Input() numberOfColumn = 3;\n\n @Input() hoverImageTemplate: TemplateRef<any>;\n\n @Output() importImageSrc = new EventEmitter<ImageSource>();\n\n @Output() loadMoreImages = new EventEmitter<void>();\n\n columns: MosaicImages[];\n\n trackColumn(index: number ) {\n return index;\n }\n\n trackImage(index: number, image: MosaicImage ) {\n return image.src;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n console.log('changes', changes);\n const isNumberOfColumnChange = changes.numberOfColumn && (changes.numberOfColumn.currentValue !== changes.numberOfColumn.previousValue);\n if (changes.imagesList) {\n this.generateColumns(changes.imagesList.previousValue, changes.imagesList.currentValue, isNumberOfColumnChange);\n return;\n }\n\n if (isNumberOfColumnChange) {\n this.generateColumns(null, this.imagesList, isNumberOfColumnChange);\n }\n }\n\n generateColumns(previousList: MosaicImages, currentList: MosaicImages, isNumberOfColumnChange: boolean) {\n const isNewListSmaller = (currentList && previousList) && (currentList.length < previousList.length);\n const resetColumns = isNumberOfColumnChange || isNewListSmaller;\n const isPreviousListExisting = previousList?.length;\n const newImagesToDisplay = !isPreviousListExisting || resetColumns ? currentList : currentList.slice(previousList.length);\n let columns = this.separateImagesIntoColumns(newImagesToDisplay);\n\n if (isPreviousListExisting && !resetColumns) {\n const existingColumns = this.columns;\n columns = this.concatColumns(existingColumns, columns);\n }\n\n this.columns = columns;\n }\n\n separateImagesIntoColumns(newImagesToDisplay: MosaicImages): MosaicImages[] { // https://stackoverflow.com/questions/8495687/split-array-into-chunks\n const columns = [];\n const numberOfImagePerColumn = Math.floor(newImagesToDisplay.length / this.numberOfColumn);\n for (let i = 0; i < newImagesToDisplay.length; i += numberOfImagePerColumn) {\n const chunk = newImagesToDisplay.slice(i, i + numberOfImagePerColumn);\n columns.push(chunk);\n }\n return columns;\n }\n\n concatColumns(oldColumns: MosaicImages[], newColumns: MosaicImages[]): MosaicImages[] {\n return oldColumns.map((oldColumn, columnIndex) => [...oldColumn, ...newColumns[columnIndex]]);\n }\n\n onBottomReached() {\n this.loadMoreImages.emit();\n }\n\n onImportImage(src: ImageSource) {\n this.importImageSrc.emit(src);\n }\n}\n","import {AfterContentInit, AfterViewInit, Component, ContentChild, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n selector: 'wac-content-with-buttons',\n templateUrl: './content-with-buttons.component.html',\n})\nexport class ContentWithButtonsComponent implements OnInit, AfterViewInit {\n\n @Input()\n iconCopy = 'fa-duotone fa-copy';\n\n @Input()\n iconTranslate = 'fa-regular fa-globe';\n\n @Input()\n tooltipCopy = '';\n\n @Input()\n tooltipTranslate = '';\n\n @Input()\n count = true;\n\n @Input()\n countCharacterLabel = 'caractères';\n\n @Input()\n countWordsLabel = 'mots';\n\n @Input()\n reportLabel: string;\n\n @Output()\n copyAction = new EventEmitter<boolean>();\n\n @Output()\n reportAction = new EventEmitter<boolean>();\n\n @Output()\n translateAction = new EventEmitter<boolean>();\n\n countWords: number;\n\n countIsReady = false;\n\n countCharacter: number;\n\n randomLabelName: string;\n\n\n ngOnInit() {\n this.randomLabelName = 'content-' + Math.random() * (900 - 700) + 700;\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n const content = document.getElementById(this.randomLabelName).innerHTML.replace(/(<([^>]+)>)/gi, '').replace(/[.,\\/#!$%\\^&\\*;:{}=\\-_`~()]/g, '');\n this.countCharacter = content.trim().split(' ').join('').length;\n this.countWords = content.trim().split(' ').length;\n this.countIsReady = true;\n });\n }\n\n eventCopy() {\n this.copyAction.emit(true);\n }\n\n eventTranslate() {\n this.translateAction.emit(true);\n }\n\n eventReport() {\n this.reportAction.emit(true);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'wac-wrapper-multiple-block',\n templateUrl: './wrapper-multiple-block.component.html',\n})\nexport class WrapperMultipleBlockComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop';\n\n@Component({\n selector: 'wac-draganddrop-list',\n templateUrl: './draganddrop-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DraganddropListComponent implements OnInit {\n\n @Input()\n label = '';\n\n @Input()\n items: Array<string>;\n\n @Input()\n disabled = false;\n\n @Input()\n max: number;\n\n @Input()\n labelBtnAdd: string;\n\n @Input()\n backgroundColor = '#fff';\n\n showTriggerSave = false;\n\n @Output()\n itemsChange = new EventEmitter<Array<string>>();\n\n ngOnInit() {\n }\n\n drop(event: CdkDragDrop<string[]>) {\n if (!this.disabled) {\n moveItemInArray(this.items, event.previousIndex, event.currentIndex);\n this.itemsChange.emit(Object.values(this.items));\n }\n }\n\n delete(index) {\n if (!this.disabled) {\n this.items = this.items.filter((value, i) => i !== index );\n this.itemsChange.emit(Object.values(this.items));\n }\n }\n\n saveFieldEnd(index, event) {\n this.items[index] = event.target.value;\n this.itemsChange.emit(Object.values(this.items));\n }\n\n addField() {\n this.showTriggerSave = true;\n }\n\n saveNewField(event) {\n this.items.push(event.target.value);\n this.itemsChange.emit(Object.values(this.items));\n this.showTriggerSave = false;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';\nimport { LoaderComponent } from './loader/loader.component';\nimport { InputSearchComponent } from './inputs/input-search/input-search.component';\nimport { SharedDirectives } from '../directives/shared-directives.module';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { TagInputModule } from 'ngx-chips';\nimport { TableComponent } from './table/table.component';\nimport { TagComponent } from './tag/tag.component';\nimport { TabComponent } from './tab/tab.component';\nimport { ButtonComponent } from './button/button.component';\nimport { InfoComponent } from './info/info.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { DeleteComponent } from './delete/delete.component';\nimport { DropdownComponent } from './dropdown/dropdown.component';\nimport { ImageComponent } from './image/image.component';\nimport { BackComponent } from './back/back.component';\nimport { SeparatorComponent } from './separator/separator.component';\nimport { LogoComponent } from './logo/logo.component';\nimport { RadioComponent } from './radio/radio.component';\nimport { StateComponent } from './state/state.component';\nimport { LabelComponent } from './label/label.component';\nimport { CalendarComponent } from './calendar/calendar.component';\nimport { WzEditInPlaceComponent } from './edit-in-place/edit-in-place.component';\nimport { TextAreaComponent } from './text-area/text-area.component';\nimport { H1Component } from './hn/h1/h1.component';\nimport { H2Component } from './hn/h2/h2.component';\nimport { H3Component } from './hn/h3/h3.component';\nimport { HeaderPageComponent } from './header-page/header-page.component';\nimport { InputComponent } from './inputs/input/input.component';\nimport { LinkComponent } from './link/link.component';\nimport { ProgressBarComponent } from './progress-bar/progress-bar.component';\nimport { SwitchComponent } from './switch/switch.component';\nimport { TooltipComponent } from './tooltip/tooltip.component';\nimport { AlertComponent } from './alert/alert.component';\nimport { TextComponent } from './text/text.component';\nimport { PaginationModule } from './pagination/pagination.module';\nimport { PaginationComponent } from './pagination/pagination.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TableModule } from './table/table.module';\nimport { CheckBoxRow } from './table/directives/checkBoxRow.directive';\nimport { TableColumn } from './table/directives/column.directive';\nimport { TableColumnHeader } from './table/directives/columnHeader.directive';\nimport { TableRow } from './table/directives/raw.directive';\nimport { InputSearchModule } from './inputs/input-search/input-search.module';\nimport { TooltipModule } from './tooltip/tooltip.module';\nimport { LoaderModule } from './loader/loader.module';\nimport { CheckboxModule } from './checkbox/checkbox.module';\nimport { InputModule } from './inputs/input/input.module';\nimport { ProgressBarModule } from './progress-bar/progress-bar.module';\nimport { UploadComponent } from './upload/upload.component';\nimport { H4Component } from './hn/h4/h4.component';\nimport { SelectInTextComponent } from './selects/select-in-text/select-in-text.component';\nimport { SelectComponent } from './selects/select/select.component';\nimport { MultipleSearchComponent } from './multiple-search/multiple-search.component';\nimport { MultipleSearchPlusComponent } from './multiple-search-plus/multiple-search-plus.component';\nimport { InputWithSelectComponent } from './inputs/input-with-select/input-with-select.component';\nimport { PopinComponent } from './popin/popin.component';\nimport { FreePopinComponent } from './free-popin/free-popin.component';\nimport { BlockComponent } from './block/block.component';\nimport { WrapperComponent } from './wrapper/wrapper.component';\nimport { FiltersComponent } from './filters/filters.component';\nimport { WrapperBlocsComponent } from './wrapper-blocs/wrapper-blocs.component';\nimport { SnackbarComponent } from './snackbar/snackbar.component';\nimport { RouterModule, Routes } from '@angular/router';\nimport {AlertPopupModule} from './alert-popup/alert-popup-module';\nimport {SearchComponent} from './search/search.component';\nimport {SelectedListComponent} from './selected-list/selected-list.component';\nimport { TreeComponent } from './tree/tree.component';\nimport { TreeModule } from './tree/tree.module';\nimport { SharedPipes } from '../pipes/shared-pipes.module';\nimport {WrapperSidebarComponent} from './wrapper-sidebar/wrapper-sidebar.component';\nimport {AutosizeModule} from 'ngx-autosize';\nimport {BreadcrumbsComponent} from './breadcrumbs/breadcrumbs.component';\nimport {CardPriceComponent} from './card-price/card-price.component';\nimport {TokenCheckComponent} from './token-check/token-check.component';\nimport {BlockWithCheckboxComponent} from './block-with-checkbox/block-with-checkbox.component';\nimport {ConfirmDeleteComponent} from './confirm-delete/confirm-delete.component';\nimport {MosaicComponent} from './mosaic/mosaic.component';\nimport {NgScrollbarModule} from 'ngx-scrollbar';\nimport {NgScrollbarReachedModule} from 'ngx-scrollbar/reached-event';\nimport {ContentWithButtonsComponent} from './content-with-buttons/content-with-buttons.component';\nimport {WrapperMultipleBlockComponent} from './wrapper-multiple-block/wrapper-multiple-block.component';\nimport {DraganddropListComponent} from './draganddrop-list/draganddrop-list.component';\nimport {DragDrop, DragDropModule} from '@angular/cdk/drag-drop';\n\nconst components = [\n TagComponent,\n TabComponent,\n ButtonComponent,\n InfoComponent,\n SettingsComponent,\n DeleteComponent,\n DropdownComponent,\n ImageComponent,\n BackComponent,\n SeparatorComponent,\n LogoComponent,\n RadioComponent,\n StateComponent,\n LabelComponent,\n CalendarComponent,\n WzEditInPlaceComponent,\n AlertComponent,\n HeaderPageComponent,\n SwitchComponent,\n LinkComponent,\n H1Component,\n H2Component,\n H3Component,\n H4Component,\n TextComponent,\n TextAreaComponent,\n UploadComponent,\n SelectInTextComponent,\n SelectComponent,\n MultipleSearchComponent,\n MultipleSearchPlusComponent,\n InputWithSelectComponent,\n PopinComponent,\n FreePopinComponent,\n BlockComponent,\n WrapperComponent,\n FiltersComponent,\n WrapperBlocsComponent,\n SnackbarComponent,\n SearchComponent,\n SelectedListComponent,\n WrapperSidebarComponent,\n BreadcrumbsComponent,\n CardPriceComponent,\n TokenCheckComponent,\n BlockWithCheckboxComponent,\n ConfirmDeleteComponent,\n MosaicComponent,\n ContentWithButtonsComponent,\n WrapperMultipleBlockComponent,\n DraganddropListComponent\n];\n\nconst exportsFromModule = [\n PaginationComponent,\n TableComponent,\n TableColumn,\n CheckBoxRow,\n TableColumnHeader,\n TableRow,\n InputSearchComponent,\n InputComponent,\n TooltipComponent,\n CheckboxComponent,\n LoaderComponent,\n ProgressBarComponent,\n TreeComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NwbAllModule,\n TranslateModule.forChild(),\n ReactiveFormsModule,\n SharedDirectives,\n SharedPipes,\n CdkTableModule,\n TagInputModule,\n DragDropModule,\n PaginationModule,\n TableModule,\n InputSearchModule,\n TooltipModule,\n CheckboxModule,\n InputModule,\n LoaderModule,\n ProgressBarModule,\n PerfectScrollbarModule,\n AlertPopupModule,\n RouterModule,\n AutosizeModule,\n NgScrollbarModule,\n NgScrollbarReachedModule,\n TreeModule\n ],\n declarations: components,\n exports: [...components, ...exportsFromModule]\n})\nexport class SharedComponentsModule {}\n","import { NwbAllModule } from '@wizishop/ng-wizi-bulma';\nimport { NgModule } from '@angular/core';\nimport { SharedComponentsModule } from './components/shared-components.module';\nimport { CommonModule } from '@angular/common';\nimport { SharedDirectives } from './directives/shared-directives.module';\nimport { SharedPipes } from './pipes/shared-pipes.module';\n\n@NgModule({\n imports: [\n CommonModule,\n SharedComponentsModule,\n SharedDirectives,\n SharedPipes,\n NwbAllModule],\n exports: [SharedComponentsModule, SharedDirectives, SharedPipes]\n})\nexport class WiziComponentsModule {}\n","import { NwbFilterGroup } from \"@wizishop/ng-wizi-bulma\";\nimport { Observable, ReplaySubject } from \"rxjs\";\nimport { TableFilters } from \"./table-filters.model\";\n\nexport class TableFiltersGroup extends NwbFilterGroup {\n tableFiltersValuesChange$: ReplaySubject<TableFilters>;\n tableFiltersValuesDebouncedChange$: Observable<TableFilters>;\n\n set(key: \"sort\" | \"order\" | \"searchValue\" | \"totalItems\" | \"itemsPerPage\" | \"currentPage\", value: any): void {\n super.set(key, value);\n }\n\n resetToFirstPage(): void {\n this.set(\"currentPage\", 1);\n }\n}"]}
|