{"version":3,"sources":["node_modules/angular-split/fesm2022/angular-split.mjs","src/app/services/models/user-status-map.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { InjectionToken, Directive, Injector, Input, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, ContentChild, Output, ViewChildren, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { Observable, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nconst _c0 = [\"gutterEls\"];\nfunction SplitComponent_ng_template_1_div_0_ng_container_2_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c1 = (a0, a1, a2, a3, a4, a5) => ({\n areaBefore: a0,\n areaAfter: a1,\n gutterNum: a2,\n first: a3,\n last: a4,\n isDragged: a5\n});\nfunction SplitComponent_ng_template_1_div_0_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, SplitComponent_ng_template_1_div_0_ng_container_2_ng_container_1_ng_container_1_Template, 1, 0, \"ng-container\", 7);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const injector_r11 = ctx.$implicit;\n const ctx_r13 = i0.ɵɵnextContext(3);\n const area_r1 = ctx_r13.$implicit;\n const index_r2 = ctx_r13.index;\n const first_r3 = ctx_r13.first;\n const ctx_r10 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r10.customGutter.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction6(3, _c1, area_r1, ctx_r10.displayedAreas[index_r2 + 1], index_r2 + 1, first_r3, index_r2 === ctx_r10.displayedAreas.length - 2, ctx_r10.draggedGutterNum === index_r2 + 1))(\"ngTemplateOutletInjector\", injector_r11);\n }\n}\nfunction SplitComponent_ng_template_1_div_0_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, SplitComponent_ng_template_1_div_0_ng_container_2_ng_container_1_Template, 2, 10, \"ng-container\", 6);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const index_r2 = i0.ɵɵnextContext(2).index;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"asSplitGutterDynamicInjector\", index_r2 + 1);\n }\n}\nfunction SplitComponent_ng_template_1_div_0_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 8);\n }\n}\nfunction SplitComponent_ng_template_1_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2, 3);\n i0.ɵɵlistener(\"keydown\", function SplitComponent_ng_template_1_div_0_Template_div_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const index_r2 = i0.ɵɵnextContext().index;\n const ctx_r15 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r15.startKeyboardDrag($event, index_r2 * 2 + 1, index_r2 + 1));\n })(\"mousedown\", function SplitComponent_ng_template_1_div_0_Template_div_mousedown_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const index_r2 = i0.ɵɵnextContext().index;\n const ctx_r18 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r18.startMouseDrag($event, index_r2 * 2 + 1, index_r2 + 1));\n })(\"touchstart\", function SplitComponent_ng_template_1_div_0_Template_div_touchstart_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const index_r2 = i0.ɵɵnextContext().index;\n const ctx_r20 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r20.startMouseDrag($event, index_r2 * 2 + 1, index_r2 + 1));\n })(\"mouseup\", function SplitComponent_ng_template_1_div_0_Template_div_mouseup_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const index_r2 = i0.ɵɵnextContext().index;\n const ctx_r22 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r22.clickGutter($event, index_r2 + 1));\n })(\"touchend\", function SplitComponent_ng_template_1_div_0_Template_div_touchend_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const index_r2 = i0.ɵɵnextContext().index;\n const ctx_r24 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r24.clickGutter($event, index_r2 + 1));\n });\n i0.ɵɵtemplate(2, SplitComponent_ng_template_1_div_0_ng_container_2_Template, 2, 1, \"ng-container\", 4)(3, SplitComponent_ng_template_1_div_0_ng_template_3_Template, 1, 0, \"ng-template\", null, 5, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r9 = i0.ɵɵreference(4);\n const ctx_r26 = i0.ɵɵnextContext();\n const index_r2 = ctx_r26.index;\n const area_r1 = ctx_r26.$implicit;\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"flex-basis\", ctx_r5.gutterSize, \"px\")(\"order\", index_r2 * 2 + 1);\n i0.ɵɵclassProp(\"as-dragged\", ctx_r5.draggedGutterNum === index_r2 + 1);\n i0.ɵɵattribute(\"aria-label\", ctx_r5.gutterAriaLabel)(\"aria-orientation\", ctx_r5.direction)(\"aria-valuemin\", area_r1.minSize)(\"aria-valuemax\", area_r1.maxSize)(\"aria-valuenow\", area_r1.size === \"*\" ? null : area_r1.size)(\"aria-valuetext\", ctx_r5.getAriaAreaSizeText(area_r1.size));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r5.customGutter == null ? null : ctx_r5.customGutter.template)(\"ngIfElse\", _r9);\n }\n}\nfunction SplitComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, SplitComponent_ng_template_1_div_0_Template, 5, 14, \"div\", 1);\n }\n if (rf & 2) {\n const last_r4 = ctx.last;\n i0.ɵɵproperty(\"ngIf\", last_r4 === false);\n }\n}\nconst _c2 = [\"*\"];\nfunction getPointFromEvent(event) {\n // TouchEvent\n if (event.changedTouches !== undefined && event.changedTouches.length > 0) {\n return {\n x: event.changedTouches[0].clientX,\n y: event.changedTouches[0].clientY\n };\n }\n // MouseEvent\n else if (event.clientX !== undefined && event.clientY !== undefined) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n // KeyboardEvent\n else if (event.currentTarget !== undefined) {\n const gutterEl = event.currentTarget;\n return {\n x: gutterEl.offsetLeft,\n y: gutterEl.offsetTop\n };\n }\n return null;\n}\nfunction pointDeltaEquals(lhs, rhs, deltaPx) {\n return Math.abs(lhs.x - rhs.x) <= deltaPx && Math.abs(lhs.y - rhs.y) <= deltaPx;\n}\nfunction getKeyboardEndpoint(event, direction) {\n // Return null if direction keys on the opposite axis were pressed\n if (direction === 'horizontal') {\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'PageUp':\n case 'PageDown':\n break;\n default:\n return null;\n }\n }\n if (direction === 'vertical') {\n switch (event.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n case 'PageUp':\n case 'PageDown':\n break;\n default:\n return null;\n }\n }\n const gutterEl = event.currentTarget;\n const offset = event.key === 'PageUp' || event.key === 'PageDown' ? 50 * 10 : 50;\n let offsetX = gutterEl.offsetLeft,\n offsetY = gutterEl.offsetTop;\n switch (event.key) {\n case 'ArrowLeft':\n offsetX -= offset;\n break;\n case 'ArrowRight':\n offsetX += offset;\n break;\n case 'ArrowUp':\n offsetY -= offset;\n break;\n case 'ArrowDown':\n offsetY += offset;\n break;\n case 'PageUp':\n if (direction === 'vertical') {\n offsetY -= offset;\n } else {\n offsetX += offset;\n }\n break;\n case 'PageDown':\n if (direction === 'vertical') {\n offsetY += offset;\n } else {\n offsetX -= offset;\n }\n break;\n default:\n return null;\n }\n return {\n x: offsetX,\n y: offsetY\n };\n}\nfunction getElementPixelSize(elRef, direction) {\n const rect = elRef.nativeElement.getBoundingClientRect();\n return direction === 'horizontal' ? rect.width : rect.height;\n}\nfunction getInputBoolean(v) {\n return typeof v === 'boolean' ? v : v !== 'false';\n}\nfunction getInputPositiveNumber(v, defaultValue) {\n if (v === null || v === undefined) return defaultValue;\n v = Number(v);\n return !isNaN(v) && v >= 0 ? v : defaultValue;\n}\nfunction isUserSizesValid(unit, sizes) {\n // All sizes total must be 100 unless there are wildcards.\n // While having wildcards all other sizes sum should be less than 100.\n // There should be maximum one wildcard.\n if (unit === 'percent') {\n const total = sizes.reduce((total, s) => s !== '*' ? total + s : total, 0);\n const wildcardSizeAreas = sizes.filter(size => size === '*');\n if (wildcardSizeAreas.length > 1) {\n return false;\n }\n if (wildcardSizeAreas.length === 1) {\n return total < 100.1;\n }\n return total > 99.9 && total < 100.1;\n }\n // A size at null is mandatory but only one.\n if (unit === 'pixel') {\n return sizes.filter(s => s === '*').length === 1;\n }\n}\nfunction getAreaMinSize(a) {\n if (a.size === '*') {\n return null;\n }\n if (a.component.lockSize === true) {\n return a.size;\n }\n if (a.component.minSize === null) {\n return null;\n }\n return a.component.minSize;\n}\nfunction getAreaMaxSize(a) {\n if (a.size === '*') {\n return null;\n }\n if (a.component.lockSize === true) {\n return a.size;\n }\n if (a.component.maxSize === null) {\n return null;\n }\n if (a.component.maxSize < a.size) {\n return a.size;\n }\n return a.component.maxSize;\n}\nfunction getGutterSideAbsorptionCapacity(unit, sideAreas, pixels, allAreasSizePixel) {\n return sideAreas.reduce((acc, area) => {\n const res = getAreaAbsorptionCapacity(unit, area, acc.remain, allAreasSizePixel);\n acc.list.push(res);\n acc.remain = res.pixelRemain;\n return acc;\n }, {\n remain: pixels,\n list: []\n });\n}\nfunction getAreaAbsorptionCapacity(unit, areaSnapshot, pixels, allAreasSizePixel) {\n // No pain no gain\n if (pixels === 0) {\n return {\n areaSnapshot,\n pixelAbsorb: 0,\n percentAfterAbsorption: areaSnapshot.sizePercentAtStart,\n pixelRemain: 0\n };\n }\n // Area start at zero and need to be reduced, not possible\n if (areaSnapshot.sizePixelAtStart === 0 && pixels < 0) {\n return {\n areaSnapshot,\n pixelAbsorb: 0,\n percentAfterAbsorption: 0,\n pixelRemain: pixels\n };\n }\n if (unit === 'percent') {\n return getAreaAbsorptionCapacityPercent(areaSnapshot, pixels, allAreasSizePixel);\n }\n if (unit === 'pixel') {\n return getAreaAbsorptionCapacityPixel(areaSnapshot, pixels);\n }\n}\nfunction getAreaAbsorptionCapacityPercent(areaSnapshot, pixels, allAreasSizePixel) {\n const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;\n const tempPercentSize = tempPixelSize / allAreasSizePixel * 100;\n // ENLARGE AREA\n if (pixels > 0) {\n // If maxSize & newSize bigger than it > absorb to max and return remaining pixels\n if (areaSnapshot.area.maxSize !== null && tempPercentSize > areaSnapshot.area.maxSize) {\n // Use area.area.maxSize as newPercentSize and return calculate pixels remaining\n const maxSizePixel = areaSnapshot.area.maxSize / 100 * allAreasSizePixel;\n return {\n areaSnapshot,\n pixelAbsorb: maxSizePixel,\n percentAfterAbsorption: areaSnapshot.area.maxSize,\n pixelRemain: areaSnapshot.sizePixelAtStart + pixels - maxSizePixel\n };\n }\n return {\n areaSnapshot,\n pixelAbsorb: pixels,\n percentAfterAbsorption: tempPercentSize > 100 ? 100 : tempPercentSize,\n pixelRemain: 0\n };\n }\n // REDUCE AREA\n else if (pixels < 0) {\n // If minSize & newSize smaller than it > absorb to min and return remaining pixels\n if (areaSnapshot.area.minSize !== null && tempPercentSize < areaSnapshot.area.minSize) {\n // Use area.area.minSize as newPercentSize and return calculate pixels remaining\n const minSizePixel = areaSnapshot.area.minSize / 100 * allAreasSizePixel;\n return {\n areaSnapshot,\n pixelAbsorb: minSizePixel,\n percentAfterAbsorption: areaSnapshot.area.minSize,\n pixelRemain: areaSnapshot.sizePixelAtStart + pixels - minSizePixel\n };\n }\n // If reduced under zero > return remaining pixels\n else if (tempPercentSize < 0) {\n // Use 0 as newPercentSize and return calculate pixels remaining\n return {\n areaSnapshot,\n pixelAbsorb: -areaSnapshot.sizePixelAtStart,\n percentAfterAbsorption: 0,\n pixelRemain: pixels + areaSnapshot.sizePixelAtStart\n };\n }\n return {\n areaSnapshot,\n pixelAbsorb: pixels,\n percentAfterAbsorption: tempPercentSize,\n pixelRemain: 0\n };\n }\n}\nfunction getAreaAbsorptionCapacityPixel(areaSnapshot, pixels) {\n const tempPixelSize = areaSnapshot.sizePixelAtStart + pixels;\n // ENLARGE AREA\n if (pixels > 0) {\n // If maxSize & newSize bigger than it > absorb to max and return remaining pixels\n if (areaSnapshot.area.maxSize !== null && tempPixelSize > areaSnapshot.area.maxSize) {\n return {\n areaSnapshot,\n pixelAbsorb: areaSnapshot.area.maxSize - areaSnapshot.sizePixelAtStart,\n percentAfterAbsorption: -1,\n pixelRemain: tempPixelSize - areaSnapshot.area.maxSize\n };\n }\n return {\n areaSnapshot,\n pixelAbsorb: pixels,\n percentAfterAbsorption: -1,\n pixelRemain: 0\n };\n }\n // REDUCE AREA\n else if (pixels < 0) {\n // If minSize & newSize smaller than it > absorb to min and return remaining pixels\n if (areaSnapshot.area.minSize !== null && tempPixelSize < areaSnapshot.area.minSize) {\n return {\n areaSnapshot,\n pixelAbsorb: areaSnapshot.area.minSize + pixels - tempPixelSize,\n percentAfterAbsorption: -1,\n pixelRemain: tempPixelSize - areaSnapshot.area.minSize\n };\n }\n // If reduced under zero > return remaining pixels\n else if (tempPixelSize < 0) {\n return {\n areaSnapshot,\n pixelAbsorb: -areaSnapshot.sizePixelAtStart,\n percentAfterAbsorption: -1,\n pixelRemain: pixels + areaSnapshot.sizePixelAtStart\n };\n }\n return {\n areaSnapshot,\n pixelAbsorb: pixels,\n percentAfterAbsorption: -1,\n pixelRemain: 0\n };\n }\n}\nfunction updateAreaSize(unit, item) {\n // Update size except for the wildcard size area\n if (item.areaSnapshot.area.size !== '*') {\n if (unit === 'percent') {\n item.areaSnapshot.area.size = item.percentAfterAbsorption;\n } else if (unit === 'pixel') {\n item.areaSnapshot.area.size = item.areaSnapshot.sizePixelAtStart + item.pixelAbsorb;\n }\n }\n}\nconst ANGULAR_SPLIT_DEFAULT_OPTIONS = new InjectionToken('angular-split-global-config');\nlet SplitGutterDirective = /*#__PURE__*/(() => {\n class SplitGutterDirective {\n constructor(template) {\n this.template = template;\n /**\n * The map holds reference to the drag handle elements inside instances\n * of the provided template.\n */\n this.gutterToHandleElementMap = new Map();\n /**\n * The map holds reference to the excluded drag elements inside instances\n * of the provided template.\n */\n this.gutterToExcludeDragElementMap = new Map();\n }\n canStartDragging(originElement, gutterNum) {\n if (this.gutterToExcludeDragElementMap.has(gutterNum)) {\n const isInsideExclude = this.gutterToExcludeDragElementMap.get(gutterNum).some(gutterExcludeElement => gutterExcludeElement.nativeElement.contains(originElement));\n if (isInsideExclude) {\n return false;\n }\n }\n if (this.gutterToHandleElementMap.has(gutterNum)) {\n return this.gutterToHandleElementMap.get(gutterNum).some(gutterHandleElement => gutterHandleElement.nativeElement.contains(originElement));\n }\n return true;\n }\n addToMap(map, gutterNum, elementRef) {\n if (map.has(gutterNum)) {\n map.get(gutterNum).push(elementRef);\n } else {\n map.set(gutterNum, [elementRef]);\n }\n }\n removedFromMap(map, gutterNum, elementRef) {\n const elements = map.get(gutterNum);\n elements.splice(elements.indexOf(elementRef), 1);\n if (elements.length === 0) {\n map.delete(gutterNum);\n }\n }\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function SplitGutterDirective_Factory(t) {\n return new (t || SplitGutterDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n /** @nocollapse */\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SplitGutterDirective,\n selectors: [[\"\", \"asSplitGutter\", \"\"]]\n });\n }\n }\n return SplitGutterDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Identifies the gutter by number through DI\n * to allow SplitGutterDragHandleDirective and SplitGutterExcludeFromDragDirective to know\n * the gutter template context without inputs\n */\nconst GUTTER_NUM_TOKEN = new InjectionToken('Gutter num');\n\n/**\n * This directive allows creating a dynamic injector inside ngFor\n * with dynamic gutter num and expose the injector for ngTemplateOutlet usage\n */\nlet SplitGutterDynamicInjectorDirective = /*#__PURE__*/(() => {\n class SplitGutterDynamicInjectorDirective {\n set gutterNum(value) {\n this.vcr.clear();\n const injector = Injector.create({\n providers: [{\n provide: GUTTER_NUM_TOKEN,\n useValue: value\n }],\n parent: this.vcr.injector\n });\n this.vcr.createEmbeddedView(this.templateRef, {\n $implicit: injector\n });\n }\n constructor(vcr, templateRef) {\n this.vcr = vcr;\n this.templateRef = templateRef;\n }\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function SplitGutterDynamicInjectorDirective_Factory(t) {\n return new (t || SplitGutterDynamicInjectorDirective)(i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n /** @nocollapse */\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SplitGutterDynamicInjectorDirective,\n selectors: [[\"\", \"asSplitGutterDynamicInjector\", \"\"]],\n inputs: {\n gutterNum: [i0.ɵɵInputFlags.None, \"asSplitGutterDynamicInjector\", \"gutterNum\"]\n }\n });\n }\n }\n return SplitGutterDynamicInjectorDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * angular-split\n *\n *\n * PERCENT MODE ([unit]=\"'percent'\")\n * ___________________________________________________________________________________________\n * | A [g1] B [g2] C [g3] D [g4] E |\n * |-------------------------------------------------------------------------------------------|\n * | 20 30 20 15 15 | <-- [size]=\"x\"\n * | 10px 10px 10px 10px | <-- [gutterSize]=\"10\"\n * |calc(20% - 8px) calc(30% - 12px) calc(20% - 8px) calc(15% - 6px) calc(15% - 6px)| <-- CSS flex-basis property (with flex-grow&shrink at 0)\n * | 152px 228px 152px 114px 114px | <-- el.getBoundingClientRect().width\n * |___________________________________________________________________________________________|\n * 800px <-- el.getBoundingClientRect().width\n * flex-basis = calc( { area.size }% - { area.size/100 * nbGutter*gutterSize }px );\n *\n *\n * PIXEL MODE ([unit]=\"'pixel'\")\n * ___________________________________________________________________________________________\n * | A [g1] B [g2] C [g3] D [g4] E |\n * |-------------------------------------------------------------------------------------------|\n * | 100 250 * 150 100 | <-- [size]=\"y\"\n * | 10px 10px 10px 10px | <-- [gutterSize]=\"10\"\n * | 0 0 100px 0 0 250px 1 1 auto 0 0 150px 0 0 100px | <-- CSS flex property (flex-grow/flex-shrink/flex-basis)\n * | 100px 250px 200px 150px 100px | <-- el.getBoundingClientRect().width\n * |___________________________________________________________________________________________|\n * 800px <-- el.getBoundingClientRect().width\n *\n */\nlet SplitComponent = /*#__PURE__*/(() => {\n class SplitComponent {\n set direction(v) {\n this._direction = v === 'vertical' ? 'vertical' : 'horizontal';\n this.renderer.addClass(this.elRef.nativeElement, `as-${this._direction}`);\n this.renderer.removeClass(this.elRef.nativeElement, `as-${this._direction === 'vertical' ? 'horizontal' : 'vertical'}`);\n this.build(false, false);\n }\n get direction() {\n return this._direction;\n }\n set unit(v) {\n this._unit = v === 'pixel' ? 'pixel' : 'percent';\n this.renderer.addClass(this.elRef.nativeElement, `as-${this._unit}`);\n this.renderer.removeClass(this.elRef.nativeElement, `as-${this._unit === 'pixel' ? 'percent' : 'pixel'}`);\n this.build(false, true);\n }\n get unit() {\n return this._unit;\n }\n set gutterSize(v) {\n this._gutterSize = getInputPositiveNumber(v, 11);\n this.build(false, false);\n }\n get gutterSize() {\n return this._gutterSize;\n }\n set gutterStep(v) {\n this._gutterStep = getInputPositiveNumber(v, 1);\n }\n get gutterStep() {\n return this._gutterStep;\n }\n set restrictMove(v) {\n this._restrictMove = getInputBoolean(v);\n }\n get restrictMove() {\n return this._restrictMove;\n }\n set useTransition(v) {\n this._useTransition = getInputBoolean(v);\n if (this._useTransition) {\n this.renderer.addClass(this.elRef.nativeElement, 'as-transition');\n } else {\n this.renderer.removeClass(this.elRef.nativeElement, 'as-transition');\n }\n }\n get useTransition() {\n return this._useTransition;\n }\n set disabled(v) {\n this._disabled = getInputBoolean(v);\n if (this._disabled) {\n this.renderer.addClass(this.elRef.nativeElement, 'as-disabled');\n } else {\n this.renderer.removeClass(this.elRef.nativeElement, 'as-disabled');\n }\n }\n get disabled() {\n return this._disabled;\n }\n set dir(v) {\n this._dir = v === 'rtl' ? 'rtl' : 'ltr';\n this.renderer.setAttribute(this.elRef.nativeElement, 'dir', this._dir);\n }\n get dir() {\n return this._dir;\n }\n set gutterDblClickDuration(v) {\n this._gutterDblClickDuration = getInputPositiveNumber(v, 0);\n }\n get gutterDblClickDuration() {\n return this._gutterDblClickDuration;\n }\n get transitionEnd() {\n return new Observable(subscriber => this.transitionEndSubscriber = subscriber).pipe(debounceTime(20));\n }\n constructor(ngZone, elRef, cdRef, renderer, globalConfig) {\n this.ngZone = ngZone;\n this.elRef = elRef;\n this.cdRef = cdRef;\n this.renderer = renderer;\n this.gutterClickDeltaPx = 2;\n this._config = {\n direction: 'horizontal',\n unit: 'percent',\n gutterSize: 11,\n gutterStep: 1,\n restrictMove: false,\n useTransition: false,\n disabled: false,\n dir: 'ltr',\n gutterDblClickDuration: 0\n };\n this.dragStart = new EventEmitter(false);\n this.dragEnd = new EventEmitter(false);\n this.gutterClick = new EventEmitter(false);\n this.gutterDblClick = new EventEmitter(false);\n this.dragProgressSubject = new Subject();\n this.dragProgress$ = this.dragProgressSubject.asObservable();\n this.isDragging = false;\n this.isWaitingClear = false;\n this.isWaitingInitialMove = false;\n this.dragListeners = [];\n this.snapshot = null;\n this.startPoint = null;\n this.endPoint = null;\n this.displayedAreas = [];\n this.hiddenAreas = [];\n this._clickTimeout = null;\n this.draggedGutterNum = undefined;\n // To force adding default class, could be override by user @Input() or not\n this.direction = this._direction;\n this._config = globalConfig ? Object.assign(this._config, globalConfig) : this._config;\n Object.keys(this._config).forEach(property => {\n this[property] = this._config[property];\n });\n }\n ngAfterViewInit() {\n this.ngZone.runOutsideAngular(() => {\n // To avoid transition at first rendering\n setTimeout(() => this.renderer.addClass(this.elRef.nativeElement, 'as-init'));\n });\n }\n getNbGutters() {\n return this.displayedAreas.length === 0 ? 0 : this.displayedAreas.length - 1;\n }\n addArea(component) {\n const newArea = {\n component,\n order: 0,\n size: 0,\n minSize: null,\n maxSize: null,\n sizeBeforeCollapse: null,\n gutterBeforeCollapse: 0\n };\n if (component.visible === true) {\n this.displayedAreas.push(newArea);\n this.build(true, true);\n } else {\n this.hiddenAreas.push(newArea);\n }\n }\n removeArea(component) {\n if (this.displayedAreas.some(a => a.component === component)) {\n const area = this.displayedAreas.find(a => a.component === component);\n this.displayedAreas.splice(this.displayedAreas.indexOf(area), 1);\n this.build(true, true);\n } else if (this.hiddenAreas.some(a => a.component === component)) {\n const area = this.hiddenAreas.find(a => a.component === component);\n this.hiddenAreas.splice(this.hiddenAreas.indexOf(area), 1);\n }\n }\n updateArea(component, resetOrders, resetSizes) {\n if (component.visible === true) {\n this.build(resetOrders, resetSizes);\n }\n }\n showArea(component) {\n const area = this.hiddenAreas.find(a => a.component === component);\n if (area === undefined) {\n return;\n }\n const areas = this.hiddenAreas.splice(this.hiddenAreas.indexOf(area), 1);\n this.displayedAreas.push(...areas);\n this.build(true, true);\n }\n hideArea(comp) {\n const area = this.displayedAreas.find(a => a.component === comp);\n if (area === undefined) {\n return;\n }\n const areas = this.displayedAreas.splice(this.displayedAreas.indexOf(area), 1);\n areas.forEach(item => {\n item.order = 0;\n item.size = 0;\n });\n this.hiddenAreas.push(...areas);\n this.build(true, true);\n }\n getVisibleAreaSizes() {\n return this.displayedAreas.map(a => a.size);\n }\n setVisibleAreaSizes(sizes) {\n if (sizes.length !== this.displayedAreas.length) {\n return false;\n }\n const formattedSizes = sizes.map(s => getInputPositiveNumber(s, '*'));\n const isValid = isUserSizesValid(this.unit, formattedSizes);\n if (isValid === false) {\n return false;\n }\n // @@ts-expect-error\n this.displayedAreas.forEach((area, i) => area.component.size = formattedSizes[i]);\n this.build(false, true);\n return true;\n }\n build(resetOrders, resetSizes) {\n this.stopDragging();\n // ¤ AREAS ORDER\n if (resetOrders === true) {\n // If user provided 'order' for each area, use it to sort them.\n if (this.displayedAreas.every(a => a.component.order !== null)) {\n this.displayedAreas.sort((a, b) => a.component.order - b.component.order);\n }\n // Then set real order with multiples of 2, numbers between will be used by gutters.\n this.displayedAreas.forEach((area, i) => {\n area.order = i * 2;\n area.component.setStyleOrder(area.order);\n });\n }\n // ¤ AREAS SIZE\n if (resetSizes === true) {\n const useUserSizes = isUserSizesValid(this.unit, this.displayedAreas.map(a => a.component.size));\n switch (this.unit) {\n case 'percent':\n {\n const defaultSize = 100 / this.displayedAreas.length;\n this.displayedAreas.forEach(area => {\n area.size = useUserSizes ? area.component.size : defaultSize;\n area.minSize = getAreaMinSize(area);\n area.maxSize = getAreaMaxSize(area);\n });\n break;\n }\n case 'pixel':\n {\n if (useUserSizes) {\n this.displayedAreas.forEach(area => {\n area.size = area.component.size;\n area.minSize = getAreaMinSize(area);\n area.maxSize = getAreaMaxSize(area);\n });\n } else {\n const wildcardSizeAreas = this.displayedAreas.filter(a => a.component.size === '*');\n // No wildcard area > Need to select one arbitrarily > first\n if (wildcardSizeAreas.length === 0 && this.displayedAreas.length > 0) {\n this.displayedAreas.forEach((area, i) => {\n area.size = i === 0 ? '*' : area.component.size;\n area.minSize = i === 0 ? area.component.minSize : getAreaMinSize(area);\n area.maxSize = i === 0 ? null : getAreaMaxSize(area);\n });\n } else if (wildcardSizeAreas.length > 1) {\n // More than one wildcard area > Need to keep only one arbitrarily > first\n let alreadyGotOne = false;\n this.displayedAreas.forEach(area => {\n if (area.component.size === '*') {\n if (alreadyGotOne === false) {\n area.size = '*';\n area.minSize = null;\n area.maxSize = null;\n alreadyGotOne = true;\n } else {\n area.size = 100;\n area.minSize = null;\n area.maxSize = null;\n }\n } else {\n area.size = area.component.size;\n area.minSize = getAreaMinSize(area);\n area.maxSize = getAreaMaxSize(area);\n }\n });\n }\n }\n break;\n }\n }\n }\n this.refreshStyleSizes();\n this.cdRef.markForCheck();\n }\n refreshStyleSizes() {\n ///////////////////////////////////////////\n // PERCENT MODE\n if (this.unit === 'percent') {\n // Only one area > flex-basis 100%\n if (this.displayedAreas.length === 1) {\n this.displayedAreas[0].component.setStyleFlex(0, 0, `100%`, false, false);\n } else {\n // Multiple areas > use each percent basis\n const sumGutterSize = this.getNbGutters() * this.gutterSize;\n this.displayedAreas.forEach(area => {\n // Area with wildcard size\n if (area.size === '*') {\n if (this.displayedAreas.length === 1) {\n area.component.setStyleFlex(1, 1, `100%`, false, false);\n } else {\n area.component.setStyleFlex(1, 1, `auto`, false, false);\n }\n } else {\n area.component.setStyleFlex(0, 0, `calc( ${area.size}% - ${area.size / 100 * sumGutterSize}px )`, area.minSize !== null && area.minSize === area.size, area.maxSize !== null && area.maxSize === area.size);\n }\n });\n }\n } else if (this.unit === 'pixel') {\n ///////////////////////////////////////////\n // PIXEL MODE\n this.displayedAreas.forEach(area => {\n // Area with wildcard size\n if (area.size === '*') {\n if (this.displayedAreas.length === 1) {\n area.component.setStyleFlex(1, 1, `100%`, false, false);\n } else {\n area.component.setStyleFlex(1, 1, `auto`, false, false);\n }\n } else {\n // Area with pixel size\n // Only one area > flex-basis 100%\n if (this.displayedAreas.length === 1) {\n area.component.setStyleFlex(0, 0, `100%`, false, false);\n } else {\n // Multiple areas > use each pixel basis\n area.component.setStyleFlex(0, 0, `${area.size}px`, area.minSize !== null && area.minSize === area.size, area.maxSize !== null && area.maxSize === area.size);\n }\n }\n });\n }\n }\n clickGutter(event, gutterNum) {\n const tempPoint = getPointFromEvent(event);\n // Be sure mouseup/touchend happened if touch/cursor is not moved.\n if (this.startPoint && pointDeltaEquals(this.startPoint, tempPoint, this.gutterClickDeltaPx) && (!this.isDragging || this.isWaitingInitialMove)) {\n // If timeout in progress and new click > clearTimeout & dblClickEvent\n if (this._clickTimeout !== null) {\n window.clearTimeout(this._clickTimeout);\n this._clickTimeout = null;\n this.notify('dblclick', gutterNum);\n this.stopDragging();\n } else {\n // Else start timeout to call clickEvent at end\n this._clickTimeout = window.setTimeout(() => {\n this._clickTimeout = null;\n this.notify('click', gutterNum);\n this.stopDragging();\n }, this.gutterDblClickDuration);\n }\n }\n }\n startKeyboardDrag(event, gutterOrder, gutterNum) {\n if (this.disabled === true || this.isWaitingClear === true) {\n return;\n }\n const endPoint = getKeyboardEndpoint(event, this.direction);\n if (endPoint === null) {\n return;\n }\n this.endPoint = endPoint;\n this.startPoint = getPointFromEvent(event);\n event.preventDefault();\n event.stopPropagation();\n this.setupForDragEvent(gutterOrder, gutterNum);\n this.startDragging();\n this.drag();\n this.stopDragging();\n }\n startMouseDrag(event, gutterOrder, gutterNum) {\n if (this.customGutter && !this.customGutter.canStartDragging(event.target, gutterNum)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.startPoint = getPointFromEvent(event);\n if (this.startPoint === null || this.disabled === true || this.isWaitingClear === true) {\n return;\n }\n this.setupForDragEvent(gutterOrder, gutterNum);\n this.dragListeners.push(this.renderer.listen('document', 'mouseup', this.stopDragging.bind(this)));\n this.dragListeners.push(this.renderer.listen('document', 'touchend', this.stopDragging.bind(this)));\n this.dragListeners.push(this.renderer.listen('document', 'touchcancel', this.stopDragging.bind(this)));\n this.ngZone.runOutsideAngular(() => {\n this.dragListeners.push(this.renderer.listen('document', 'mousemove', this.mouseDragEvent.bind(this)));\n this.dragListeners.push(this.renderer.listen('document', 'touchmove', this.mouseDragEvent.bind(this)));\n });\n this.startDragging();\n }\n setupForDragEvent(gutterOrder, gutterNum) {\n this.snapshot = {\n gutterNum,\n lastSteppedOffset: 0,\n allAreasSizePixel: getElementPixelSize(this.elRef, this.direction) - this.getNbGutters() * this.gutterSize,\n allInvolvedAreasSizePercent: 100,\n areasBeforeGutter: [],\n areasAfterGutter: []\n };\n this.displayedAreas.forEach(area => {\n const areaSnapshot = {\n area,\n sizePixelAtStart: getElementPixelSize(area.component.elRef, this.direction),\n sizePercentAtStart: this.unit === 'percent' ? area.size : -1 // If pixel mode, anyway, will not be used.\n };\n if (area.order < gutterOrder) {\n if (this.restrictMove === true) {\n this.snapshot.areasBeforeGutter = [areaSnapshot];\n } else {\n this.snapshot.areasBeforeGutter.unshift(areaSnapshot);\n }\n } else if (area.order > gutterOrder) {\n if (this.restrictMove === true) {\n if (this.snapshot.areasAfterGutter.length === 0) {\n this.snapshot.areasAfterGutter = [areaSnapshot];\n }\n } else {\n this.snapshot.areasAfterGutter.push(areaSnapshot);\n }\n }\n });\n // allInvolvedAreasSizePercent is only relevant if there is restrictMove as otherwise the sum\n // is always 100.\n // Pixel mode doesn't have browser % problem which is the origin of allInvolvedAreasSizePercent.\n if (this.restrictMove && this.unit === 'percent') {\n const areaSnapshotBefore = this.snapshot.areasBeforeGutter[0];\n const areaSnapshotAfter = this.snapshot.areasAfterGutter[0];\n // We have a wildcard size area beside the dragged gutter.\n // In this case we can only calculate the size based on the move restricted areas.\n if (areaSnapshotBefore.area.size === '*' || areaSnapshotAfter.area.size === '*') {\n const notInvolvedAreasSizesPercent = this.displayedAreas.reduce((accum, area) => {\n if (areaSnapshotBefore.area !== area && areaSnapshotAfter.area !== area) {\n return accum + area.size;\n }\n return accum;\n }, 0);\n this.snapshot.allInvolvedAreasSizePercent = 100 - notInvolvedAreasSizesPercent;\n } else {\n // No wildcard or not beside the gutter - we can just sum the areas beside gutter percents.\n this.snapshot.allInvolvedAreasSizePercent = [...this.snapshot.areasBeforeGutter, ...this.snapshot.areasAfterGutter].reduce((t, a) => t + a.sizePercentAtStart, 0);\n }\n }\n if (this.snapshot.areasBeforeGutter.length === 0 || this.snapshot.areasAfterGutter.length === 0) {\n return;\n }\n }\n startDragging() {\n this.displayedAreas.forEach(area => area.component.lockEvents());\n this.isDragging = true;\n this.isWaitingInitialMove = true;\n }\n mouseDragEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n const tempPoint = getPointFromEvent(event);\n if (this._clickTimeout !== null && !pointDeltaEquals(this.startPoint, tempPoint, this.gutterClickDeltaPx)) {\n window.clearTimeout(this._clickTimeout);\n this._clickTimeout = null;\n }\n if (this.isDragging === false) {\n return;\n }\n this.endPoint = getPointFromEvent(event);\n if (this.endPoint === null) {\n return;\n }\n this.drag();\n }\n drag() {\n if (this.isWaitingInitialMove) {\n if (this.startPoint.x !== this.endPoint.x || this.startPoint.y !== this.endPoint.y) {\n this.ngZone.run(() => {\n this.isWaitingInitialMove = false;\n this.renderer.addClass(this.elRef.nativeElement, 'as-dragging');\n this.draggedGutterNum = this.snapshot.gutterNum;\n this.cdRef.markForCheck();\n this.notify('start', this.snapshot.gutterNum);\n });\n } else {\n return;\n }\n }\n // Calculate steppedOffset\n let offset = this.direction === 'horizontal' ? this.startPoint.x - this.endPoint.x : this.startPoint.y - this.endPoint.y;\n // RTL requires negative offset only in horizontal mode as in vertical\n // RTL has no effect on drag direction.\n if (this.dir === 'rtl' && this.direction === 'horizontal') {\n offset = -offset;\n }\n const steppedOffset = Math.round(offset / this.gutterStep) * this.gutterStep;\n if (steppedOffset === this.snapshot.lastSteppedOffset) {\n return;\n }\n this.snapshot.lastSteppedOffset = steppedOffset;\n // Need to know if each gutter side areas could reacts to steppedOffset\n let areasBefore = getGutterSideAbsorptionCapacity(this.unit, this.snapshot.areasBeforeGutter, -steppedOffset, this.snapshot.allAreasSizePixel);\n let areasAfter = getGutterSideAbsorptionCapacity(this.unit, this.snapshot.areasAfterGutter, steppedOffset, this.snapshot.allAreasSizePixel);\n // Each gutter side areas can't absorb all offset\n if (areasBefore.remain !== 0 && areasAfter.remain !== 0) {\n // TODO: fix this emty block\n if (Math.abs(areasBefore.remain) === Math.abs(areasAfter.remain)) {\n /* empty */\n } else if (Math.abs(areasBefore.remain) > Math.abs(areasAfter.remain)) {\n areasAfter = getGutterSideAbsorptionCapacity(this.unit, this.snapshot.areasAfterGutter, steppedOffset + areasBefore.remain, this.snapshot.allAreasSizePixel);\n } else {\n areasBefore = getGutterSideAbsorptionCapacity(this.unit, this.snapshot.areasBeforeGutter, -(steppedOffset - areasAfter.remain), this.snapshot.allAreasSizePixel);\n }\n } else if (areasBefore.remain !== 0) {\n // Areas before gutter can't absorbs all offset > need to recalculate sizes for areas after gutter.\n areasAfter = getGutterSideAbsorptionCapacity(this.unit, this.snapshot.areasAfterGutter, steppedOffset + areasBefore.remain, this.snapshot.allAreasSizePixel);\n } else if (areasAfter.remain !== 0) {\n // Areas after gutter can't absorbs all offset > need to recalculate sizes for areas before gutter.\n areasBefore = getGutterSideAbsorptionCapacity(this.unit, this.snapshot.areasBeforeGutter, -(steppedOffset - areasAfter.remain), this.snapshot.allAreasSizePixel);\n }\n if (this.unit === 'percent') {\n // Hack because of browser messing up with sizes using calc(X% - Ypx) -> el.getBoundingClientRect()\n // If not there, playing with gutters makes total going down to 99.99875% then 99.99286%, 99.98986%,..\n const all = [...areasBefore.list, ...areasAfter.list];\n const wildcardArea = all.find(a => a.percentAfterAbsorption === '*');\n // In case we have a wildcard area - always align the percents on the wildcard area.\n const areaToReset = wildcardArea ?? all.find(a => a.percentAfterAbsorption !== 0 && a.percentAfterAbsorption !== a.areaSnapshot.area.minSize && a.percentAfterAbsorption !== a.areaSnapshot.area.maxSize);\n if (areaToReset) {\n areaToReset.percentAfterAbsorption = this.snapshot.allInvolvedAreasSizePercent - all.filter(a => a !== areaToReset).reduce((total, a) => total + a.percentAfterAbsorption, 0);\n }\n }\n // Now we know areas could absorb steppedOffset, time to really update sizes\n areasBefore.list.forEach(item => updateAreaSize(this.unit, item));\n areasAfter.list.forEach(item => updateAreaSize(this.unit, item));\n this.refreshStyleSizes();\n this.notify('progress', this.snapshot.gutterNum);\n }\n stopDragging(event) {\n if (event) {\n event.preventDefault();\n event.stopPropagation();\n }\n if (this.isDragging === false) {\n return;\n }\n this.displayedAreas.forEach(area => area.component.unlockEvents());\n while (this.dragListeners.length > 0) {\n const fct = this.dragListeners.pop();\n if (fct) {\n fct();\n }\n }\n // Warning: Have to be before \"notify('end')\"\n // because \"notify('end')\"\" can be linked to \"[size]='x'\" > \"build()\" > \"stopDragging()\"\n this.isDragging = false;\n // If moved from starting point, notify end\n if (this.isWaitingInitialMove === false) {\n this.notify('end', this.snapshot.gutterNum);\n }\n this.renderer.removeClass(this.elRef.nativeElement, 'as-dragging');\n this.draggedGutterNum = undefined;\n this.cdRef.markForCheck();\n this.snapshot = null;\n this.isWaitingClear = true;\n // Needed to let (click)=\"clickGutter(...)\" event run and verify if mouse moved or not\n this.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.startPoint = null;\n this.endPoint = null;\n this.isWaitingClear = false;\n });\n });\n }\n notify(type, gutterNum) {\n const sizes = this.getVisibleAreaSizes();\n if (type === 'start') {\n this.dragStart.emit({\n gutterNum,\n sizes\n });\n } else if (type === 'end') {\n this.dragEnd.emit({\n gutterNum,\n sizes\n });\n } else if (type === 'click') {\n this.gutterClick.emit({\n gutterNum,\n sizes\n });\n } else if (type === 'dblclick') {\n this.gutterDblClick.emit({\n gutterNum,\n sizes\n });\n } else if (type === 'transitionEnd') {\n if (this.transitionEndSubscriber) {\n this.ngZone.run(() => this.transitionEndSubscriber.next(sizes));\n }\n } else if (type === 'progress') {\n // Stay outside zone to allow users do what they want about change detection mechanism.\n this.dragProgressSubject.next({\n gutterNum,\n sizes\n });\n }\n }\n ngOnDestroy() {\n this.stopDragging();\n }\n collapseArea(comp, newSize, gutter) {\n const area = this.displayedAreas.find(a => a.component === comp);\n if (area === undefined) {\n return;\n }\n const whichGutter = gutter === 'right' ? 1 : -1;\n if (!area.sizeBeforeCollapse) {\n area.sizeBeforeCollapse = area.size;\n area.gutterBeforeCollapse = whichGutter;\n }\n area.size = newSize;\n const gtr = this.gutterEls.find(f => f.nativeElement.style.order === `${area.order + whichGutter}`);\n if (gtr) {\n this.renderer.addClass(gtr.nativeElement, 'as-split-gutter-collapsed');\n }\n this.updateArea(comp, false, false);\n }\n expandArea(comp) {\n const area = this.displayedAreas.find(a => a.component === comp);\n if (area === undefined) {\n return;\n }\n if (!area.sizeBeforeCollapse) {\n return;\n }\n area.size = area.sizeBeforeCollapse;\n area.sizeBeforeCollapse = null;\n const gtr = this.gutterEls.find(f => f.nativeElement.style.order === `${area.order + area.gutterBeforeCollapse}`);\n if (gtr) {\n this.renderer.removeClass(gtr.nativeElement, 'as-split-gutter-collapsed');\n }\n this.updateArea(comp, false, false);\n }\n getAriaAreaSizeText(size) {\n if (size === '*') {\n return null;\n }\n return size.toFixed(0) + ' ' + this.unit;\n }\n /** @nocollapse */\n static {\n this.ɵfac = function SplitComponent_Factory(t) {\n return new (t || SplitComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(ANGULAR_SPLIT_DEFAULT_OPTIONS, 8));\n };\n }\n /** @nocollapse */\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SplitComponent,\n selectors: [[\"as-split\"]],\n contentQueries: function SplitComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, SplitGutterDirective, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customGutter = _t.first);\n }\n },\n viewQuery: function SplitComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.gutterEls = _t);\n }\n },\n inputs: {\n direction: \"direction\",\n unit: \"unit\",\n gutterSize: \"gutterSize\",\n gutterStep: \"gutterStep\",\n restrictMove: \"restrictMove\",\n useTransition: \"useTransition\",\n disabled: \"disabled\",\n dir: \"dir\",\n gutterDblClickDuration: \"gutterDblClickDuration\",\n gutterClickDeltaPx: \"gutterClickDeltaPx\",\n gutterAriaLabel: \"gutterAriaLabel\"\n },\n outputs: {\n transitionEnd: \"transitionEnd\",\n dragStart: \"dragStart\",\n dragEnd: \"dragEnd\",\n gutterClick: \"gutterClick\",\n gutterDblClick: \"gutterDblClick\"\n },\n exportAs: [\"asSplit\"],\n ngContentSelectors: _c2,\n decls: 2,\n vars: 1,\n consts: [[\"ngFor\", \"\", 3, \"ngForOf\"], [\"role\", \"separator\", \"tabindex\", \"0\", \"class\", \"as-split-gutter\", 3, \"as-dragged\", \"flex-basis\", \"order\", \"keydown\", \"mousedown\", \"touchstart\", \"mouseup\", \"touchend\", 4, \"ngIf\"], [\"role\", \"separator\", \"tabindex\", \"0\", 1, \"as-split-gutter\", 3, \"keydown\", \"mousedown\", \"touchstart\", \"mouseup\", \"touchend\"], [\"gutterEls\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [\"defaultGutterTpl\", \"\"], [4, \"asSplitGutterDynamicInjector\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", \"ngTemplateOutletInjector\"], [1, \"as-split-gutter-icon\"]],\n template: function SplitComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, SplitComponent_ng_template_1_Template, 1, 1, \"ng-template\", 0);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.displayedAreas);\n }\n },\n dependencies: [i1.NgForOf, i1.NgIf, i1.NgTemplateOutlet, SplitGutterDynamicInjectorDirective],\n styles: [\"[_nghost-%COMP%]{display:flex;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;overflow:hidden;width:100%;height:100%}[_nghost-%COMP%] > .as-split-gutter[_ngcontent-%COMP%]{border:none;flex-grow:0;flex-shrink:0;background-color:#eee;display:flex;align-items:center;justify-content:center}[_nghost-%COMP%] > .as-split-gutter.as-split-gutter-collapsed[_ngcontent-%COMP%]{flex-basis:1px!important;pointer-events:none}[_nghost-%COMP%] > .as-split-gutter[_ngcontent-%COMP%] > .as-split-gutter-icon[_ngcontent-%COMP%]{width:100%;height:100%;background-position:center center;background-repeat:no-repeat}[_nghost-%COMP%] >.as-split-area{flex-grow:0;flex-shrink:0;overflow-x:hidden;overflow-y:auto}[_nghost-%COMP%] >.as-split-area.as-hidden{flex:0 1 0px!important;overflow-x:hidden;overflow-y:hidden}[_nghost-%COMP%] >.as-split-area .iframe-fix{position:absolute;top:0;left:0;width:100%;height:100%}.as-horizontal[_nghost-%COMP%]{flex-direction:row}.as-horizontal[_nghost-%COMP%] > .as-split-gutter[_ngcontent-%COMP%]{flex-direction:row;cursor:col-resize;height:100%}.as-horizontal[_nghost-%COMP%] > .as-split-gutter[_ngcontent-%COMP%] > .as-split-gutter-icon[_ngcontent-%COMP%]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==)}.as-horizontal[_nghost-%COMP%] >.as-split-area{height:100%}.as-vertical[_nghost-%COMP%]{flex-direction:column}.as-vertical[_nghost-%COMP%] > .as-split-gutter[_ngcontent-%COMP%]{flex-direction:column;cursor:row-resize;width:100%}.as-vertical[_nghost-%COMP%] > .as-split-gutter[_ngcontent-%COMP%] .as-split-gutter-icon[_ngcontent-%COMP%]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAFCAMAAABl/6zIAAAABlBMVEUAAADMzMzIT8AyAAAAAXRSTlMAQObYZgAAABRJREFUeAFjYGRkwIMJSeMHlBkOABP7AEGzSuPKAAAAAElFTkSuQmCC)}.as-vertical[_nghost-%COMP%] >.as-split-area{width:100%}.as-vertical[_nghost-%COMP%] >.as-split-area.as-hidden{max-width:0}.as-disabled[_nghost-%COMP%] > .as-split-gutter[_ngcontent-%COMP%]{cursor:default}.as-disabled[_nghost-%COMP%] > .as-split-gutter[_ngcontent-%COMP%] .as-split-gutter-icon[_ngcontent-%COMP%]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAeCAYAAADkftS9AAAAIklEQVQoU2M4c+bMfxAGAgYYmwGrIIiDjrELjpo5aiZeMwF+yNnOs5KSvgAAAABJRU5ErkJggg==)}.as-transition.as-init[_nghost-%COMP%]:not(.as-dragging) > .as-split-gutter[_ngcontent-%COMP%], .as-transition.as-init[_nghost-%COMP%]:not(.as-dragging) >.as-split-area{transition:flex-basis .3s}\"],\n changeDetection: 0\n });\n }\n }\n return SplitComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SplitAreaDirective = /*#__PURE__*/(() => {\n class SplitAreaDirective {\n set order(v) {\n this._order = getInputPositiveNumber(v, null);\n this.split.updateArea(this, true, false);\n }\n get order() {\n return this._order;\n }\n set size(v) {\n this._size = getInputPositiveNumber(v, '*');\n this.split.updateArea(this, false, true);\n }\n get size() {\n return this._size;\n }\n set minSize(v) {\n this._minSize = getInputPositiveNumber(v, null);\n this.split.updateArea(this, false, true);\n }\n get minSize() {\n return this._minSize;\n }\n set maxSize(v) {\n this._maxSize = getInputPositiveNumber(v, null);\n this.split.updateArea(this, false, true);\n }\n get maxSize() {\n return this._maxSize;\n }\n set lockSize(v) {\n this._lockSize = getInputBoolean(v);\n this.split.updateArea(this, false, true);\n }\n get lockSize() {\n return this._lockSize;\n }\n set visible(v) {\n this._visible = getInputBoolean(v);\n if (this._visible) {\n this.split.showArea(this);\n this.renderer.removeClass(this.elRef.nativeElement, 'as-hidden');\n } else {\n this.split.hideArea(this);\n this.renderer.addClass(this.elRef.nativeElement, 'as-hidden');\n }\n }\n get visible() {\n return this._visible;\n }\n constructor(ngZone, renderer, split, elRef) {\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.split = split;\n this.elRef = elRef;\n this._order = null;\n this._size = '*';\n this._minSize = null;\n this._maxSize = null;\n this._lockSize = false;\n this._visible = true;\n this.lockListeners = [];\n this.renderer.addClass(this.elRef.nativeElement, 'as-split-area');\n }\n ngOnInit() {\n this.split.addArea(this);\n this.ngZone.runOutsideAngular(() => {\n this.transitionListener = this.renderer.listen(this.elRef.nativeElement, 'transitionend', event => {\n // Limit only flex-basis transition to trigger the event\n if (event.propertyName === 'flex-basis') {\n this.split.notify('transitionEnd', -1);\n }\n });\n });\n const iframeFixDiv = this.renderer.createElement('div');\n this.renderer.addClass(iframeFixDiv, 'iframe-fix');\n this.dragStartSubscription = this.split.dragStart.subscribe(() => {\n this.renderer.setStyle(this.elRef.nativeElement, 'position', 'relative');\n this.renderer.appendChild(this.elRef.nativeElement, iframeFixDiv);\n });\n this.dragEndSubscription = this.split.dragEnd.subscribe(() => {\n this.renderer.removeStyle(this.elRef.nativeElement, 'position');\n this.renderer.removeChild(this.elRef.nativeElement, iframeFixDiv);\n });\n }\n setStyleOrder(value) {\n this.renderer.setStyle(this.elRef.nativeElement, 'order', value);\n }\n setStyleFlex(grow, shrink, basis, isMin, isMax) {\n // Need 3 separated properties to work on IE11 (https://github.com/angular/flex-layout/issues/323)\n this.renderer.setStyle(this.elRef.nativeElement, 'flex-grow', grow);\n this.renderer.setStyle(this.elRef.nativeElement, 'flex-shrink', shrink);\n this.renderer.setStyle(this.elRef.nativeElement, 'flex-basis', basis);\n if (isMin === true) {\n this.renderer.addClass(this.elRef.nativeElement, 'as-min');\n } else {\n this.renderer.removeClass(this.elRef.nativeElement, 'as-min');\n }\n if (isMax === true) {\n this.renderer.addClass(this.elRef.nativeElement, 'as-max');\n } else {\n this.renderer.removeClass(this.elRef.nativeElement, 'as-max');\n }\n }\n lockEvents() {\n this.ngZone.runOutsideAngular(() => {\n this.lockListeners.push(this.renderer.listen(this.elRef.nativeElement, 'selectstart', () => false));\n this.lockListeners.push(this.renderer.listen(this.elRef.nativeElement, 'dragstart', () => false));\n });\n }\n unlockEvents() {\n while (this.lockListeners.length > 0) {\n const fct = this.lockListeners.pop();\n if (fct) {\n fct();\n }\n }\n }\n ngOnDestroy() {\n this.unlockEvents();\n if (this.transitionListener) {\n this.transitionListener();\n }\n this.dragStartSubscription?.unsubscribe();\n this.dragEndSubscription?.unsubscribe();\n this.split.removeArea(this);\n }\n collapse(newSize = 0, gutter = 'right') {\n this.split.collapseArea(this, newSize, gutter);\n }\n expand() {\n this.split.expandArea(this);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function SplitAreaDirective_Factory(t) {\n return new (t || SplitAreaDirective)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(SplitComponent), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n /** @nocollapse */\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SplitAreaDirective,\n selectors: [[\"as-split-area\"], [\"\", \"as-split-area\", \"\"]],\n inputs: {\n order: \"order\",\n size: \"size\",\n minSize: \"minSize\",\n maxSize: \"maxSize\",\n lockSize: \"lockSize\",\n visible: \"visible\"\n },\n exportAs: [\"asSplitArea\"]\n });\n }\n }\n return SplitAreaDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SplitGutterDragHandleDirective = /*#__PURE__*/(() => {\n class SplitGutterDragHandleDirective {\n constructor(gutterNum, elementRef, gutterDir) {\n this.gutterNum = gutterNum;\n this.elementRef = elementRef;\n this.gutterDir = gutterDir;\n }\n ngOnInit() {\n this.gutterDir.addToMap(this.gutterDir.gutterToHandleElementMap, this.gutterNum, this.elementRef);\n }\n ngOnDestroy() {\n this.gutterDir.removedFromMap(this.gutterDir.gutterToHandleElementMap, this.gutterNum, this.elementRef);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function SplitGutterDragHandleDirective_Factory(t) {\n return new (t || SplitGutterDragHandleDirective)(i0.ɵɵdirectiveInject(GUTTER_NUM_TOKEN), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(SplitGutterDirective));\n };\n }\n /** @nocollapse */\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SplitGutterDragHandleDirective,\n selectors: [[\"\", \"asSplitGutterDragHandle\", \"\"]]\n });\n }\n }\n return SplitGutterDragHandleDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SplitGutterExcludeFromDragDirective = /*#__PURE__*/(() => {\n class SplitGutterExcludeFromDragDirective {\n constructor(gutterNum, elementRef, gutterDir) {\n this.gutterNum = gutterNum;\n this.elementRef = elementRef;\n this.gutterDir = gutterDir;\n }\n ngOnInit() {\n this.gutterDir.addToMap(this.gutterDir.gutterToExcludeDragElementMap, this.gutterNum, this.elementRef);\n }\n ngOnDestroy() {\n this.gutterDir.removedFromMap(this.gutterDir.gutterToExcludeDragElementMap, this.gutterNum, this.elementRef);\n }\n /** @nocollapse */\n static {\n this.ɵfac = function SplitGutterExcludeFromDragDirective_Factory(t) {\n return new (t || SplitGutterExcludeFromDragDirective)(i0.ɵɵdirectiveInject(GUTTER_NUM_TOKEN), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(SplitGutterDirective));\n };\n }\n /** @nocollapse */\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SplitGutterExcludeFromDragDirective,\n selectors: [[\"\", \"asSplitGutterExcludeFromDrag\", \"\"]]\n });\n }\n }\n return SplitGutterExcludeFromDragDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AngularSplitModule = /*#__PURE__*/(() => {\n class AngularSplitModule {\n /** @nocollapse */static {\n this.ɵfac = function AngularSplitModule_Factory(t) {\n return new (t || AngularSplitModule)();\n };\n }\n /** @nocollapse */\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: AngularSplitModule\n });\n }\n /** @nocollapse */\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return AngularSplitModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of angular-split\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ANGULAR_SPLIT_DEFAULT_OPTIONS, AngularSplitModule, SplitAreaDirective, SplitComponent, SplitGutterDirective, SplitGutterDragHandleDirective, SplitGutterExcludeFromDragDirective };\n","import { UserStatus } from '../../services/models/portal-user';\r\nimport { SelectItem } from 'primeng/api';\r\n\r\nexport class UserStatusMap {\r\n public static statusItems: SelectItem[] = [\r\n { value: UserStatus.All, label: 'All' },\r\n { value: UserStatus.Pending, label: 'Pending', icon: 'fa fa-hourglass-start' },\r\n { value: UserStatus.Incomplete, label: 'Incomplete', icon: 'fa fa-clipboard' },\r\n { value: UserStatus.Approved, label: 'Approved', icon: 'fa fa-check' },\r\n { value: UserStatus.Active, label: 'Active', icon: 'fa fa-bolt' },\r\n { value: UserStatus.Declined, label: 'Declined', icon: 'fa fa-times' },\r\n { value: UserStatus.Deactivated, label: 'Deactivated', icon: 'fa fa-user-times' },\r\n { value: UserStatus.Inactive, label: 'Inactive', icon: 'fa fa-user-times'},\r\n { value: UserStatus.AdminLocked, label: 'Admin Locked', icon: 'fa fa-lock'},\r\n { value: UserStatus.Reinstated, label: 'Reinstated', icon: 'fa fa-user'},\r\n { value: UserStatus.LOCKED, label: 'Locked', icon: 'fa fa-lock'},\r\n\r\n ];\r\n\r\n public static mapStatustoIcon(status: UserStatus): string\r\n {\r\n let cssClass = \"\";\r\n UserStatusMap.statusItems.forEach(item => {\r\n if (item.value == status) {\r\n cssClass = item.icon;\r\n }\r\n })\r\n return cssClass;\r\n }\r\n\r\n public static mapStatusToSelectItem(status: UserStatus): SelectItem {\r\n let item: SelectItem = null;\r\n UserStatusMap.statusItems.forEach(x => {\r\n if (x.value == status) {\r\n item = x;\r\n }\r\n });\r\n return item;\r\n }\r\n\r\n public static getPortalUserStatusItems(): SelectItem[] {\r\n return UserStatusMap.statusItems.filter (status => {\r\n return status.value === UserStatus.All ||\r\n status.value === UserStatus.Pending ||\r\n status.value === UserStatus.Active ||\r\n status.value === UserStatus.Approved ||\r\n status.value === UserStatus.Declined;\r\n });\r\n }\r\n}\r\n"],"mappings":"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","names":["_c0","SplitComponent_ng_template_1_div_0_ng_container_2_ng_container_1_ng_container_1_Template","rf","ctx","ɵɵelementContainer","_c1","a0","a1","a2","a3","a4","a5","SplitComponent_ng_template_1_div_0_ng_container_2_ng_container_1_Template","ɵɵelementContainerStart","ɵɵtemplate","ɵɵelementContainerEnd","injector_r11","ctx_r13","ɵɵnextContext","area_r1","index_r2","first_r3","ctx_r10","ɵɵadvance","ɵɵproperty","ɵɵpureFunction6","SplitComponent_ng_template_1_div_0_ng_container_2_Template","SplitComponent_ng_template_1_div_0_ng_template_3_Template","ɵɵelement","SplitComponent_ng_template_1_div_0_Template","_r17","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","ctx_r15","ɵɵresetView","ctx_r18","ctx_r20","ctx_r22","ctx_r24","ɵɵtemplateRefExtractor","ɵɵelementEnd","_r9","ɵɵreference","ctx_r26","ctx_r5","ɵɵstyleProp","ɵɵclassProp","ɵɵattribute","SplitComponent_ng_template_1_Template","last_r4","_c2","getPointFromEvent","event","gutterEl","pointDeltaEquals","lhs","rhs","deltaPx","getKeyboardEndpoint","direction","offset","offsetX","offsetY","getElementPixelSize","elRef","rect","getInputBoolean","v","getInputPositiveNumber","defaultValue","isUserSizesValid","unit","sizes","total","wildcardSizeAreas","size","s","getAreaMinSize","a","getAreaMaxSize","getGutterSideAbsorptionCapacity","sideAreas","pixels","allAreasSizePixel","acc","area","res","getAreaAbsorptionCapacity","areaSnapshot","getAreaAbsorptionCapacityPercent","getAreaAbsorptionCapacityPixel","tempPercentSize","maxSizePixel","minSizePixel","tempPixelSize","updateAreaSize","item","ANGULAR_SPLIT_DEFAULT_OPTIONS","InjectionToken","SplitGutterDirective","template","originElement","gutterNum","gutterExcludeElement","gutterHandleElement","map","elementRef","elements","dir","ɵɵdirectiveInject","TemplateRef","ɵɵdefineDirective","GUTTER_NUM_TOKEN","SplitGutterDynamicInjectorDirective","value","injector","Injector","vcr","templateRef","ViewContainerRef","InputFlags","SplitComponent","Observable","subscriber","debounceTime","ngZone","cdRef","renderer","globalConfig","EventEmitter","Subject","property","component","newArea","resetOrders","resetSizes","areas","comp","formattedSizes","i","b","useUserSizes","defaultSize","alreadyGotOne","sumGutterSize","tempPoint","gutterOrder","endPoint","areaSnapshotBefore","areaSnapshotAfter","notInvolvedAreasSizesPercent","accum","t","steppedOffset","areasBefore","areasAfter","all","areaToReset","fct","type","newSize","gutter","whichGutter","gtr","f","NgZone","ElementRef","ChangeDetectorRef","Renderer2","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","ɵɵprojectionDef","ɵɵprojection","NgForOf","NgIf","NgTemplateOutlet","SplitAreaDirective","split","iframeFixDiv","grow","shrink","basis","isMin","isMax","AngularSplitModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","UserStatusMap","statusItems","value","UserStatus","All","label","Pending","icon","Incomplete","Approved","Active","Declined","Deactivated","Inactive","AdminLocked","Reinstated","LOCKED","mapStatustoIcon","status","cssClass","forEach","item","mapStatusToSelectItem","x","getPortalUserStatusItems","filter"],"x_google_ignoreList":[0]}