{"version":3,"sources":["webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agColorPicker.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agAbstractInputField.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agInputRange.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agAbstractLabel.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agPanel.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agDialog.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agPickerField.js","webpack:///./node_modules/ag-grid-community/dist/lib/vanillaFrameworkOverrides.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agGroupComponent.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/touchListener.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/componentAnnotations.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/popupService.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/tooltipManager.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agRadioButton.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agInputTextArea.js","webpack:///./node_modules/ag-grid-community/dist/lib/valueService/valueService.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/component.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agToggleButton.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agInputNumberField.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/messageBox.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agInputTextField.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agCheckbox.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/popupComponent.js","webpack:///./node_modules/ag-grid-community/dist/lib/valueService/changeDetectionService.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agColorPanel.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agSlider.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agAngleSelect.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agSelect.js","webpack:///./node_modules/ag-grid-community/dist/lib/valueService/valueCache.js","webpack:///./node_modules/ag-grid-community/dist/lib/valueService/expressionService.js","webpack:///./node_modules/ag-grid-community/dist/lib/widgets/agAbstractField.js"],"names":["__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","constructor","prototype","create","defineProperty","exports","value","agColorPanel_1","agDialog_1","agPickerField_1","agAbstractField_1","utils_1","AgColorPicker","_super","config","_this","call","displayTag","className","pickerIcon","setTemplate","TEMPLATE","replace","color","postConstruct","_","addCssClass","getGui","addDestroyableEventListener","eDisplayField","showPicker","setValue","displayedPicker","eGuiRect","getBoundingClientRect","colorDialog","AgDialog","closable","modal","hideTitleBar","minWidth","width","height","x","right","y","top","getContext","wireBean","colorPanel","AgColorPanel","picker","addDestroyFunc","isAlive","destroy","setParentComponent","setBodyComponent","getValue","wasDestroying","isDestroyingPicker","style","backgroundColor","dispatchEvent","type","AgAbstractField","EVENT_CHANGED","AgPickerField","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","__metadata","k","v","metadata","componentAnnotations_1","AgAbstractInputField","apply","setInputType","_a","setWidth","addInputListeners","eInput","e","inputType","setAttribute","getInputElement","setInputWidth","setElementWidth","eWrapper","setInputName","name","RefSelector","HTMLElement","agAbstractInputField_1","AgInputRange","min","max","step","setMinValue","setMaxValue","setStep","isIE","isBrowserIE","eventName","toString","silent","Math","parseFloat","ret","component_1","context_1","AgAbstractLabel","labelSeparator","labelAlignment","label","labelWidth","setLabelSeparator","setLabel","setLabelWidth","setLabelAlignment","refreshLabel","eLabel","innerText","addOrRemoveCssClass","alignment","eGui","PostConstruct","Function","Component","popupService_1","gridOptionsWrapper_1","AgPanel","positioned","dragStartPosition","position","size","undefined","component","title","minHeight","centered","eTitleBar","setTitle","setClosable","contains","relatedTarget","document","activeElement","eTitleBarButtons","preventDefault","focusEl","eContentWrapper","querySelector","focus","popupParent","popupService","getPopupParent","setHeight","renderComponent","refreshSize","center","offsetElement","close","parentElement","removeChild","updateDragStartPosition","calculateMouseMovement","params","parentRect","isLeft","isTop","anywhereWithin","topBuffer","movementX","clientX","movementY","clientY","getWidth","getHeight","skipX","left","skipY","bottom","offsetWidth","offsetHeight","ePopup","positionPopup","keepWithinBounds","parseInt","isPercent","indexOf","setFixedHeight","getAbsoluteHeight","offsetParent","clientHeight","maxHeight","setFixedWidth","getAbsoluteWidth","clientWidth","maxWidth","closeButtonComp","CLOSE_BTN_TEMPLATE","appendChild","createIconNoSpan","gridOptionsWrapper","addTitleBarButton","onBtClose","bind","bodyComponent","button","buttons","children","len","insertAdjacentElement","getBodyHeight","getInnerHeight","getBodyWidth","getInnerWidth","eTitle","Autowired","PopupService","GridOptionsWrapper","dragService_1","agPanel_1","RESIZE_TEMPLATE","MAXIMIZE_BTN_TEMPLATE","resizable","isResizable","movable","isMoving","isMaximizable","isMaximized","maximizeListeners","resizeListenerDestroy","isResizing","lastPosition","maximizable","moveElement","bringPopupToFront","setMovable","setMaximizable","addResizers","setResizable","alwaysOnTop","addPopup","parser","DOMParser","resizers","parseFromString","body","firstChild","createMap","resizerMap","topLeft","element","topRight","bottomRight","bottomLeft","getResizerElement","side","onResizeStart","onResize","match","isRight","isBottom","isHorizontal","isVertical","offsetLeft","offsetTop","direction","oldWidth","newWidth","skipWidth","oldHeight","newHeight","skipHeight","onResizeEnd","api","getApi","columnApi","getColumnApi","localEventService","onMoveStart","onMove","_b","onMoveEnd","toggleMaximize","refreshMaximizeIcon","maximizeIcon","minimizeIcon","clearMaximizebleListeners","forEach","destroyListener","maximizeButtonComp","keys","s","val","el","dragSource","eElement","onDragStart","onDragging","onDragStop","dragService","addDragSource","pointerEvents","removeDragSource","moveElementDragListener","push","DragService","eButton","HTMLButtonElement","VanillaFrameworkOverrides","setTimeout","action","timeout","window","addEventListenerOutsideAngular","listener","useCapture","addEventListener","agCheckbox_1","AgGroupComponent","suppressEnabledCheckbox","suppressOpenCloseIcons","enabled","items","initialItems","addItems","localeTextFunc","getLocaleTextFunc","cbGroupEnabled","setEnabled","hideEnabledCheckbox","hideOpenCloseIcons","setupExpandContract","eGroupClosedIcon","createIcon","eGroupOpenedIcon","setOpenClosedIcons","groupTitle","toggleGroupExpand","folderOpen","expanded","setDisplayed","isExpanded","removeCssClass","event_1","item","addItem","container","groupContainer","lbGroupTitle","skipToggle","isEnabled","onEnableChange","callbackFn","onValueChange","newSelection","hide","eToolbar","AgCheckbox","eventService_1","TouchListener","preventMouseClick","destroyFuncs","touching","eventService","EventService","startListener","onTouchStart","moveListener","onTouchMove","endListener","onTouchEnd","passive","removeEventListener","getActiveTouch","touchList","matches","identifier","touchStart","eventType","touchEvent","touches","moved","touchStartCopy","touchesMatch","EVENT_LONG_TAP","touch","eventIsFarAway","areEventsNear","event_2","EVENT_TAP","checkForDoubleTap","now","Date","getTime","lastTapTime","interval","DOUBLE_TAP_MILLIS","event_3","EVENT_DOUBLE_TAP","func","QuerySelector","selector","querySelectorFunc","ref","classPrototype","methodOrAttributeName","index","addToObjectProps","attributeName","console","error","Listener","listenerFunc","methodName","Method","methodFunc","alias","props","getOrCreateProps","instanceName","__agComponentMetaData","constants_1","environment_1","events_1","popupList","registerGridCore","gridCore","getDocument","ePopupParent","getRootGui","positionPopupForMenu","sourceRect","eventSource","eDocument","documentElement","keepYWithinBounds","widthOfParent","maxX","xRightPosition","xLeftPosition","isEnableRtl","positionPopupUnderMouseEvent","calculatePointerAlign","mouseEvent","nudgeX","nudgeY","callPostProcessPopup","column","rowNode","documentRect","positionPopupUnderComponent","alignSide","positionPopupOverComponent","callback","getPostProcessPopupFunc","keepXWithinBounds","docElement","isBody","defaultPadding","diff","heightOfParent","scrollTop","abs","maxY","scrollLeft","addAsModalPopup","eChild","closeOnEsc","closedCallback","click","warn","pos","findIndex","popup","hideFunc","createElement","theme","environment","getTheme","setAlwaysOnTop","popupHidden","hidePopupOnKeyboardEvent","event","which","keyCode","Constants","KEY_ESCAPE","hidePopup","hidePopupOnMouseEvent","hidePopupOnTouchEvent","isEventFromCurrentPopup","isEventSameChainAsOriginalEvent","Events","EVENT_DRAG_STARTED","filter","indexOfThisChild","isElementInEventPath","classList","originalClick","mouseEventOrTouch","screenX_1","screenX","screenY_1","screenY","xMatch","yMatch","getWrapper","containsClass","parent","slice","querySelectorAll","popupLen","alwaysOnTopList","onTopLength","isPopupAlwaysOnTop","last","Environment","Bean","userComponentFactory_1","columnApi_1","gridApi_1","TooltipManager","DEFAULT_HIDE_TOOLTIP_TIMEOUT","MOUSEOUT_HIDE_TOOLTIP_TIMEOUT","MOUSEOVER_SHOW_TOOLTIP_TIMEOUT","HIDE_SHOW_ONLY","showTimeoutId","hideTimeoutId","registeredComponents","registerTooltip","targetCmp","id","getCompId","tooltipComp","destroyFunc","eventDestroyFuncs","processMouseOver","processMouseMove","hideTooltip","processMouseOut","unregisterTooltip","registeredComponent","activeComponent","delay","lastHoveredComponent","clearTimers","lastMouseEvent","showTooltip","containsElement","cellComp","gridApi","colDef","getComponentHolder","getColumn","context","rowIndex","getCellPosition","getTooltipText","createTooltipComponent","cmp","userComponentFactory","newTooltipComponent","then","closeFnc","clearRegisteredComponent","showOnly","clearTimeout","UserComponentFactory","ColumnApi","GridApi","AgRadioButton","iconMap","selected","unselected","toggle","nextValue","getNextValue","getIconName","prop","readOnlyStr","isReadOnly","AgInputTextArea","expressionService_1","columnController_1","valueCache_1","ValueService","initialised","init","cellExpressions","isEnableCellExpressions","forFilter","ignoreAggData","result","getColDef","field","colId","getId","data","groupDataExists","groupData","aggDataExists","aggData","filterValueGetter","executeFilterValueGetter","isTreeData","valueGetter","executeValueGetter","getValueUsingField","isFieldContainsDots","cellValueGetter","substring","colKey","newValue","columnController","getPrimaryColumn","missing","newValueHandler","valueSetter","valueWasDifferent","node","oldValue","exists","expressionService","evaluate","setValueUsingField","resetQuickFilterAggregateText","valueCache","onDataChanged","onCellValueChanged","EVENT_CELL_VALUE_CHANGED","rowPinned","valuesAreSame","fieldPieces","split","currentObject","fieldPiece","shift","getValueCallback","valueFromCache","otherColumn","getKeyForNode","col","keyCreator","String","doOnce","ExpressionService","ColumnController","ValueCache","beanStub_1","compIdSequence","NumberSequence","template","childComponents","annotatedEventListeners","displayed","visible","compId","next","createChildComponentsFromTags","parentNode","childNodeList","copyNodeList","childNodes","childNode","childComp","createComponentFromElement","copyAttributesFromNode","swapComponentForNode","source","dest","iterateNamedNodeMap","attributes","newComponent","eComponent","replaceChild","insertBefore","createComment","nodeName","swapInComponentForQuerySelectors","thisProto","getPrototypeOf","thisNoType","metaData","currentProtoName","querySelectors","loadTemplate","setTemplateFromElement","__agComponent","addAnnotatedEventListeners","wireQuerySelectors","contextIsAvailable","createChildComponentsPreConstruct","uiExists","_loop_1","thisNoType_1","this_1","resultOfQuery","backingComponent","removeAnnotatedEventListeners","listenerMethods","getAgComponentMetaData","missingOrEmpty","eventListener","res","funcNameRegex","results","exec","trim","concat","parentComponent","getParentComponent","setGui","queryForHtmlElement","cssSelector","queryForHtmlInputElement","newChild","isNodeOrElement","childComponent","addFeature","feature","isDisplayed","setVisible","EVENT_DISPLAYED_CHANGED","addOrRemove","addGuiEventListener","getAttribute","getRefElement","refName","PreConstruct","BeanStub","agRadioButton_1","AgToggleButton","eIconEl","updateIcons","agInputTextField_1","AgInputNumberField","normalizeValue","precision","adjustPrecision","floatString","toFixed","setMin","removeAttribute","setMax","setPrecision","normalizedValue","AgInputTextField","MessageBox","message","messageBodyComp","MessageBody","setMessage","eCenter","eOk","onBtOk","indeterminate","readOnly","addIconsPlaceholder","onClick","checked","iconDiv","addAgGridEventPath","setPassive","setReadOnly","isSelected","setSelected","clearElement","PopupComponent","isPopup","parentComp","hasParent","changedPath_1","rowRenderer_1","ChangeDetectionService","rowModel","getType","ROW_MODEL_TYPE_CLIENT_SIDE","clientSideRowModel","doChangeDetection","isSuppressChangeDetection","clipboardService","isPasteOperationActive","isRowPinned","onlyChangedColumns","isAggregateOnlyChangedColumns","changedPath","ChangedPath","getRootNode","addParentNode","doAggregate","rowRenderer","refreshCells","RowRenderer","Optional","H","S","B","A","isSpectrumDragging","isSpectrumHueDragging","isSpectrumAlphaDragging","colorChanged","initRecentColors","spectrumVal","onSpectrumDraggerDown","onSpectrumDraggerMove","spectrumHue","onSpectrumHueDown","onSpectrumHueMove","spectrumAlpha","onSpectrumAlphaDown","onSpectrumAlphaMove","onMouseUp","recentColors","onRecentColorClick","refreshSpectrumRect","spectrumValRect","refreshHueRect","spectrumHueRect","refreshAlphaRect","spectrumAlphaRect","moveDragger","moveHueSlider","moveAlphaSlider","valRect","setSpectrumValue","hueRect","slider","spectrumHueSlider","sliderRect","update","alphaRect","spectrumAlphaSlider","Color","fromHSB","spectrumColor","rgbaColor","toRgbaString","colorPicker","existingColor","fromString","spectrumDragger","saturation","brightness","dragger","draggerRect","innerHtml","map","innerHTML","join","toHSB","h","isNaN","a","addRecentColor","maxRecentColors","agInputRange_1","agAbstractLabel_1","agInputNumberField_1","AgSlider","eventChanged","eText","textValue","eSlider","sliderValue","setSliderWidth","setTextFieldWidth","minValue","maxValue","AgAngleSelect","radius","offsetX","offsetY","dragListener","eParentCircle","dragStartPixels","parentCircleRect","calculateAngleDrag","eAngleValue","degrees","floatValue","updateNumberInput","normalizeNegativeValue","positionChildCircle","radians","rect","eChildCircle","centerX","centerY","cos","sin","calculatePolar","atan2","toDegrees","sqrt","calculateCartesian","toRadians","getRadius","setOffsetX","setOffsetY","offset","dx","dy","PI","normalizeAngle180","setRadius","radiansValue","floor","AgSelect","addOptions","options","option","addOption","optionEl","text","cacheVersion","active","isValueCache","neverExpires","isValueCacheNeverExpires","expire","__cacheVersion","__cacheData","valueInCache","__param","paramIndex","decorator","logger_1","context_2","expressionToFunctionCache","setBeans","loggerFactory","logger","expressionOrFunc","expression","evaluateExpression","javaScriptFunction","createExpressionFunction","columnGroup","log","functionBody","createFunctionBody","theFunction","Qualifier","LoggerFactory"],"mappings":"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","file":"js/chunk-vendors~2fcdd671.760d207d.js","sourcesContent":["/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agColorPanel_1 = require(\"./agColorPanel\");\nvar agDialog_1 = require(\"./agDialog\");\nvar agPickerField_1 = require(\"./agPickerField\");\nvar agAbstractField_1 = require(\"./agAbstractField\");\nvar utils_1 = require(\"../utils\");\nvar AgColorPicker = /** @class */ (function (_super) {\n __extends(AgColorPicker, _super);\n function AgColorPicker(config) {\n var _this = _super.call(this) || this;\n _this.displayTag = 'div';\n _this.className = 'ag-color-picker';\n _this.pickerIcon = 'colorPicker';\n _this.setTemplate(_this.TEMPLATE.replace(/%displayField%/g, _this.displayTag));\n if (config && config.color) {\n _this.value = config.color;\n }\n return _this;\n }\n AgColorPicker.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n utils_1._.addCssClass(this.getGui(), this.className);\n this.addDestroyableEventListener(this.eDisplayField, 'click', function () { return _this.showPicker(); });\n if (this.value) {\n this.setValue(this.value);\n }\n };\n AgColorPicker.prototype.showPicker = function () {\n var _this = this;\n if (this.displayedPicker) {\n this.displayedPicker = false;\n return;\n }\n var eGuiRect = this.getGui().getBoundingClientRect();\n var colorDialog = new agDialog_1.AgDialog({\n closable: false,\n modal: true,\n hideTitleBar: true,\n minWidth: 190,\n width: 190,\n height: 250,\n x: eGuiRect.right - 190,\n y: eGuiRect.top - 250\n });\n this.getContext().wireBean(colorDialog);\n utils_1._.addCssClass(colorDialog.getGui(), 'ag-color-dialog');\n var colorPanel = new agColorPanel_1.AgColorPanel({\n picker: this\n });\n this.getContext().wireBean(colorPanel);\n colorPanel.addDestroyFunc(function () {\n if (colorDialog.isAlive()) {\n colorDialog.destroy();\n }\n });\n colorDialog.setParentComponent(this);\n colorDialog.setBodyComponent(colorPanel);\n colorPanel.setValue(this.getValue());\n colorDialog.addDestroyFunc(function () {\n var wasDestroying = _this.isDestroyingPicker;\n _this.displayedPicker = false;\n // here we check if the picker was already being\n // destroyed to avoid a stackoverflow\n if (!wasDestroying) {\n _this.isDestroyingPicker = true;\n if (colorPanel.isAlive()) {\n colorPanel.destroy();\n }\n }\n else {\n _this.isDestroyingPicker = false;\n }\n });\n };\n AgColorPicker.prototype.setValue = function (color) {\n if (this.value === color) {\n return this;\n }\n this.value = color;\n this.eDisplayField.style.backgroundColor = color;\n this.dispatchEvent({ type: agAbstractField_1.AgAbstractField.EVENT_CHANGED });\n return this;\n };\n AgColorPicker.prototype.getValue = function () {\n return this.value;\n };\n return AgColorPicker;\n}(agPickerField_1.AgPickerField));\nexports.AgColorPicker = AgColorPicker;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar componentAnnotations_1 = require(\"./componentAnnotations\");\nvar agAbstractField_1 = require(\"./agAbstractField\");\nvar utils_1 = require(\"../utils\");\nvar AgAbstractInputField = /** @class */ (function (_super) {\n __extends(AgAbstractInputField, _super);\n function AgAbstractInputField() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.config = {};\n _this.TEMPLATE = \"
\\n \\n
\\n <%displayField% ref=\\\"eInput\\\">\\n
\\n
\";\n return _this;\n }\n AgAbstractInputField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setInputType();\n utils_1._.addCssClass(this.getGui(), this.className);\n var _a = this.config, width = _a.width, value = _a.value;\n if (width != null) {\n this.setWidth(width);\n }\n if (value != null) {\n this.setValue(value);\n }\n this.addInputListeners();\n };\n AgAbstractInputField.prototype.addInputListeners = function () {\n var _this = this;\n this.addDestroyableEventListener(this.eInput, 'input', function (e) {\n var value = e.target.value;\n _this.setValue(value);\n });\n };\n AgAbstractInputField.prototype.setInputType = function () {\n if (this.inputType) {\n this.eInput.setAttribute('type', this.inputType);\n }\n };\n AgAbstractInputField.prototype.getInputElement = function () {\n return this.eInput;\n };\n AgAbstractInputField.prototype.setInputWidth = function (width) {\n utils_1._.setElementWidth(this.eWrapper, width);\n return this;\n };\n AgAbstractInputField.prototype.setInputName = function (name) {\n this.getInputElement().setAttribute('name', name);\n return this;\n };\n __decorate([\n componentAnnotations_1.RefSelector('eLabel'),\n __metadata(\"design:type\", HTMLElement)\n ], AgAbstractInputField.prototype, \"eLabel\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eWrapper'),\n __metadata(\"design:type\", HTMLElement)\n ], AgAbstractInputField.prototype, \"eWrapper\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eInput'),\n __metadata(\"design:type\", Object)\n ], AgAbstractInputField.prototype, \"eInput\", void 0);\n return AgAbstractInputField;\n}(agAbstractField_1.AgAbstractField));\nexports.AgAbstractInputField = AgAbstractInputField;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agAbstractInputField_1 = require(\"./agAbstractInputField\");\nvar utils_1 = require(\"../utils\");\nvar AgInputRange = /** @class */ (function (_super) {\n __extends(AgInputRange, _super);\n function AgInputRange(config) {\n var _this = _super.call(this) || this;\n _this.className = 'ag-range-field';\n _this.displayTag = 'input';\n _this.inputType = 'range';\n _this.setTemplate(_this.TEMPLATE.replace(/%displayField%/g, _this.displayTag));\n if (config) {\n _this.config = config;\n }\n return _this;\n }\n AgInputRange.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n var _a = this.config, min = _a.min, max = _a.max, step = _a.step;\n if (min != null) {\n this.setMinValue(min);\n }\n if (max != null) {\n this.setMaxValue(max);\n }\n this.setStep(step || 1);\n };\n AgInputRange.prototype.addInputListeners = function () {\n var _this = this;\n var isIE = utils_1._.isBrowserIE();\n var eventName = isIE ? 'change' : 'input';\n this.addDestroyableEventListener(this.eInput, eventName, function (e) {\n var value = e.target.value;\n _this.setValue(value);\n });\n };\n AgInputRange.prototype.setMinValue = function (value) {\n this.min = value;\n this.eInput.setAttribute('min', value.toString());\n return this;\n };\n AgInputRange.prototype.setMaxValue = function (value) {\n this.max = value;\n this.eInput.setAttribute('max', value.toString());\n return this;\n };\n AgInputRange.prototype.setStep = function (value) {\n this.step = value;\n this.eInput.setAttribute('step', value.toString());\n return this;\n };\n AgInputRange.prototype.setValue = function (value, silent) {\n if (this.min != null) {\n value = Math.max(parseFloat(value), this.min).toString();\n }\n if (this.max != null) {\n value = Math.min(parseFloat(value), this.max).toString();\n }\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n return AgInputRange;\n}(agAbstractInputField_1.AgAbstractInputField));\nexports.AgInputRange = AgInputRange;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"./component\");\nvar context_1 = require(\"../context/context\");\nvar utils_1 = require(\"../utils\");\nvar AgAbstractLabel = /** @class */ (function (_super) {\n __extends(AgAbstractLabel, _super);\n function AgAbstractLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.labelSeparator = '';\n _this.labelAlignment = 'left';\n _this.config = {};\n _this.label = '';\n return _this;\n }\n AgAbstractLabel.prototype.postConstruct = function () {\n utils_1._.addCssClass(this.getGui(), 'ag-labeled');\n var _a = this.config, labelSeparator = _a.labelSeparator, label = _a.label, labelWidth = _a.labelWidth, labelAlignment = _a.labelAlignment;\n if (labelSeparator != null) {\n this.setLabelSeparator(labelSeparator);\n }\n if (label != null) {\n this.setLabel(label);\n }\n if (labelWidth != null) {\n this.setLabelWidth(labelWidth);\n }\n this.setLabelAlignment(labelAlignment || this.labelAlignment);\n this.refreshLabel();\n };\n AgAbstractLabel.prototype.refreshLabel = function () {\n this.eLabel.innerText = this.label + this.labelSeparator;\n utils_1._.addOrRemoveCssClass(this.eLabel, 'ag-hidden', this.label === '');\n };\n AgAbstractLabel.prototype.setLabelSeparator = function (labelSeparator) {\n if (this.labelSeparator === labelSeparator) {\n return this;\n }\n this.labelSeparator = labelSeparator;\n if (this.label != null) {\n this.refreshLabel();\n }\n return this;\n };\n AgAbstractLabel.prototype.setLabel = function (label) {\n if (this.label === label) {\n return this;\n }\n this.label = label;\n this.refreshLabel();\n return this;\n };\n AgAbstractLabel.prototype.setLabelAlignment = function (alignment) {\n var eGui = this.getGui();\n utils_1._.addOrRemoveCssClass(eGui, 'ag-label-align-left', alignment === 'left');\n utils_1._.addOrRemoveCssClass(eGui, 'ag-label-align-right', alignment === 'right');\n utils_1._.addOrRemoveCssClass(eGui, 'ag-label-align-top', alignment === 'top');\n return this;\n };\n AgAbstractLabel.prototype.setLabelWidth = function (width) {\n if (this.label == null) {\n return this;\n }\n utils_1._.setElementWidth(this.eLabel, width);\n return this;\n };\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], AgAbstractLabel.prototype, \"postConstruct\", null);\n return AgAbstractLabel;\n}(component_1.Component));\nexports.AgAbstractLabel = AgAbstractLabel;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar componentAnnotations_1 = require(\"./componentAnnotations\");\nvar context_1 = require(\"../context/context\");\nvar component_1 = require(\"./component\");\nvar popupService_1 = require(\"./popupService\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar utils_1 = require(\"../utils\");\nvar AgPanel = /** @class */ (function (_super) {\n __extends(AgPanel, _super);\n function AgPanel(config) {\n var _this = _super.call(this, AgPanel.TEMPLATE) || this;\n _this.closable = true;\n _this.positioned = false;\n _this.dragStartPosition = {\n x: 0,\n y: 0\n };\n _this.position = {\n x: 0,\n y: 0\n };\n _this.size = {\n width: undefined,\n height: undefined\n };\n _this.config = config;\n return _this;\n }\n AgPanel.prototype.postConstruct = function () {\n var _this = this;\n var _a = this.config, component = _a.component, closable = _a.closable, hideTitleBar = _a.hideTitleBar, title = _a.title, minWidth = _a.minWidth, width = _a.width, minHeight = _a.minHeight, height = _a.height, centered = _a.centered, x = _a.x, y = _a.y;\n var eGui = this.getGui();\n if (component) {\n this.setBodyComponent(component);\n }\n if (!hideTitleBar) {\n if (title) {\n this.setTitle(title);\n }\n this.setClosable(closable != null ? closable : this.closable);\n }\n else {\n utils_1._.addCssClass(this.eTitleBar, 'ag-hidden');\n }\n this.addDestroyableEventListener(this.eTitleBar, 'mousedown', function (e) {\n if (eGui.contains(e.relatedTarget) ||\n eGui.contains(document.activeElement) ||\n _this.eTitleBarButtons.contains(e.target)) {\n e.preventDefault();\n return;\n }\n var focusEl = _this.eContentWrapper.querySelector('button, [href], input, select, textarea, [tabindex]');\n if (focusEl) {\n focusEl.focus();\n }\n });\n if (this.positioned) {\n return;\n }\n this.minHeight = minHeight != null ? minHeight : 250;\n this.minWidth = minWidth != null ? minWidth : 250;\n this.popupParent = this.popupService.getPopupParent();\n if (width) {\n this.setWidth(width);\n }\n if (height) {\n this.setHeight(height);\n }\n if (this.renderComponent) {\n this.renderComponent();\n }\n if (!width || !height) {\n this.refreshSize();\n }\n if (centered) {\n this.center();\n }\n else if (x || y) {\n this.offsetElement(x, y);\n }\n this.positioned = true;\n this.eContentWrapper.style.height = '0';\n };\n AgPanel.prototype.renderComponent = function () {\n var _this = this;\n var eGui = this.getGui();\n eGui.focus();\n this.close = function () {\n eGui.parentElement.removeChild(eGui);\n _this.destroy();\n };\n };\n AgPanel.prototype.updateDragStartPosition = function (x, y) {\n this.dragStartPosition = { x: x, y: y };\n };\n AgPanel.prototype.calculateMouseMovement = function (params) {\n var parentRect = this.popupParent.getBoundingClientRect();\n var e = params.e, isLeft = params.isLeft, isTop = params.isTop, anywhereWithin = params.anywhereWithin, topBuffer = params.topBuffer;\n var movementX = e.clientX - this.dragStartPosition.x;\n var movementY = e.clientY - this.dragStartPosition.y;\n var width = this.getWidth();\n var height = this.getHeight();\n // skip if cursor is outside of popupParent horizontally\n var skipX = (parentRect.left >= e.clientX && this.position.x <= 0 ||\n parentRect.right <= e.clientX && parentRect.right <= this.position.x + parentRect.left + width);\n if (!skipX) {\n if (isLeft) {\n skipX = (\n // skip if we are moving to the left and the cursor\n // is positioned to the right of the left side anchor\n (movementX < 0 && e.clientX > this.position.x + parentRect.left) ||\n // skip if we are moving to the right and the cursor\n // is positioned to the left of the dialog\n (movementX > 0 && e.clientX < this.position.x + parentRect.left));\n }\n else {\n if (anywhereWithin) {\n // if anywhereWithin is true, we allow to move\n // as long as the cursor is within the dialog\n skipX = ((movementX < 0 && e.clientX > this.position.x + parentRect.left + width) ||\n (movementX > 0 && e.clientX < this.position.x + parentRect.left));\n }\n else {\n skipX = (\n // if the movement is bound to the right side of the dialog\n // we skip if we are moving to the left and the cursor\n // is to the right of the dialog\n (movementX < 0 && e.clientX > this.position.x + parentRect.left + width) ||\n // or skip if we are moving to the right and the cursor\n // is to the left of the right side anchor\n (movementX > 0 && e.clientX < this.position.x + parentRect.left + width));\n }\n }\n }\n movementX = skipX ? 0 : movementX;\n var skipY = (\n // skip if cursor is outside of popupParent vertically\n parentRect.top >= e.clientY && this.position.y <= 0 ||\n parentRect.bottom <= e.clientY && parentRect.bottom <= this.position.y + parentRect.top + height ||\n isTop && (\n // skip if we are moving to towards top and the cursor is\n // below the top anchor + topBuffer\n // note: topBuffer is used when moving the dialog using the title bar\n (movementY < 0 && e.clientY > this.position.y + parentRect.top + (topBuffer || 0)) ||\n // skip if we are moving to the bottom and the cursor is\n // above the top anchor\n (movementY > 0 && e.clientY < this.position.y + parentRect.top)) ||\n // we are anchored to the bottom of the dialog\n !isTop && (\n // skip if we are moving towards the top and the cursor\n // is below the bottom anchor\n (movementY < 0 && e.clientY > this.position.y + parentRect.top + height) ||\n // skip if we are moving towards the bottom and the cursor\n // is above the bottom anchor\n (movementY > 0 && e.clientY < this.position.y + parentRect.top + height)));\n movementY = skipY ? 0 : movementY;\n return { movementX: movementX, movementY: movementY };\n };\n AgPanel.prototype.refreshSize = function () {\n var _a = this.size, width = _a.width, height = _a.height;\n if (!width) {\n this.setWidth(this.getGui().offsetWidth);\n }\n if (!height) {\n this.setHeight(this.getGui().offsetHeight);\n }\n };\n AgPanel.prototype.offsetElement = function (x, y) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n var ePopup = this.getGui();\n this.popupService.positionPopup({\n ePopup: ePopup,\n x: x,\n y: y,\n minWidth: this.minWidth,\n minHeight: this.minHeight,\n keepWithinBounds: true\n });\n this.position.x = parseInt(ePopup.style.left, 10);\n this.position.y = parseInt(ePopup.style.top, 10);\n };\n AgPanel.prototype.getHeight = function () {\n return this.size.height;\n };\n AgPanel.prototype.setHeight = function (height) {\n var eGui = this.getGui();\n var isPercent = false;\n if (typeof height === 'string' && height.indexOf('%') !== -1) {\n utils_1._.setFixedHeight(eGui, height);\n height = utils_1._.getAbsoluteHeight(eGui);\n isPercent = true;\n }\n else {\n height = Math.max(this.minHeight, height);\n var offsetParent = eGui.offsetParent;\n if (offsetParent && offsetParent.clientHeight && (height + this.position.y > offsetParent.clientHeight)) {\n height = offsetParent.clientHeight - this.position.y;\n }\n }\n if (this.size.height === height) {\n return;\n }\n this.size.height = height;\n if (!isPercent) {\n utils_1._.setFixedHeight(eGui, height);\n }\n else {\n eGui.style.maxHeight = 'unset';\n eGui.style.minHeight = 'unset';\n }\n };\n AgPanel.prototype.getWidth = function () {\n return this.size.width;\n };\n AgPanel.prototype.setWidth = function (width) {\n var eGui = this.getGui();\n var isPercent = false;\n if (typeof width === 'string' && width.indexOf('%') !== -1) {\n utils_1._.setFixedWidth(eGui, width);\n width = utils_1._.getAbsoluteWidth(eGui);\n isPercent = true;\n }\n else {\n width = Math.max(this.minWidth, width);\n var offsetParent = eGui.offsetParent;\n if (offsetParent && offsetParent.clientWidth && (width + this.position.x > offsetParent.clientWidth)) {\n width = offsetParent.clientWidth - this.position.x;\n }\n }\n if (this.size.width === width) {\n return;\n }\n this.size.width = width;\n if (!isPercent) {\n utils_1._.setFixedWidth(eGui, width);\n }\n else {\n eGui.style.maxWidth = 'unset';\n eGui.style.minWidth = 'unset';\n }\n };\n AgPanel.prototype.center = function () {\n var eGui = this.getGui();\n var x = (eGui.offsetParent.clientWidth / 2) - (this.getWidth() / 2);\n var y = (eGui.offsetParent.clientHeight / 2) - (this.getHeight() / 2);\n this.offsetElement(x, y);\n };\n AgPanel.prototype.setClosable = function (closable) {\n if (closable !== this.closable) {\n this.closable = closable;\n }\n if (closable) {\n var closeButtonComp = this.closeButtonComp = new component_1.Component(AgPanel.CLOSE_BTN_TEMPLATE);\n this.getContext().wireBean(closeButtonComp);\n var eGui = closeButtonComp.getGui();\n eGui.appendChild(utils_1._.createIconNoSpan('close', this.gridOptionsWrapper));\n this.addTitleBarButton(closeButtonComp);\n closeButtonComp.addDestroyableEventListener(eGui, 'click', this.onBtClose.bind(this));\n }\n else if (this.closeButtonComp) {\n var eGui = this.closeButtonComp.getGui();\n eGui.parentElement.removeChild(eGui);\n this.closeButtonComp.destroy();\n this.closeButtonComp = undefined;\n }\n };\n AgPanel.prototype.setBodyComponent = function (bodyComponent) {\n bodyComponent.setParentComponent(this);\n this.eContentWrapper.appendChild(bodyComponent.getGui());\n };\n AgPanel.prototype.addTitleBarButton = function (button, position) {\n var eTitleBarButtons = this.eTitleBarButtons;\n var buttons = eTitleBarButtons.children;\n var len = buttons.length;\n if (position == null) {\n position = len;\n }\n position = Math.max(0, Math.min(position, len));\n var eGui = button.getGui();\n utils_1._.addCssClass(eGui, 'ag-button');\n if (position === 0) {\n eTitleBarButtons.insertAdjacentElement('afterbegin', eGui);\n }\n else if (position === len) {\n eTitleBarButtons.insertAdjacentElement('beforeend', eGui);\n }\n else {\n buttons[position - 1].insertAdjacentElement('afterend', eGui);\n }\n button.setParentComponent(this);\n };\n AgPanel.prototype.getBodyHeight = function () {\n return utils_1._.getInnerHeight(this.eContentWrapper);\n };\n AgPanel.prototype.getBodyWidth = function () {\n return utils_1._.getInnerWidth(this.eContentWrapper);\n };\n AgPanel.prototype.setTitle = function (title) {\n this.eTitle.innerText = title;\n };\n // called when user hits the 'x' in the top right\n AgPanel.prototype.onBtClose = function () {\n this.close();\n };\n AgPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.closeButtonComp) {\n this.closeButtonComp.destroy();\n this.closeButtonComp = undefined;\n }\n var eGui = this.getGui();\n if (eGui && eGui.offsetParent) {\n this.close();\n }\n };\n AgPanel.TEMPLATE = \"
\\n
\\n \\n
\\n
\\n
\\n
\";\n AgPanel.CLOSE_BTN_TEMPLATE = \"
\";\n __decorate([\n context_1.Autowired('popupService'),\n __metadata(\"design:type\", popupService_1.PopupService)\n ], AgPanel.prototype, \"popupService\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], AgPanel.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eContentWrapper'),\n __metadata(\"design:type\", HTMLElement)\n ], AgPanel.prototype, \"eContentWrapper\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eTitleBar'),\n __metadata(\"design:type\", HTMLElement)\n ], AgPanel.prototype, \"eTitleBar\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eTitleBarButtons'),\n __metadata(\"design:type\", HTMLElement)\n ], AgPanel.prototype, \"eTitleBarButtons\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eTitle'),\n __metadata(\"design:type\", HTMLElement)\n ], AgPanel.prototype, \"eTitle\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], AgPanel.prototype, \"postConstruct\", null);\n return AgPanel;\n}(component_1.Component));\nexports.AgPanel = AgPanel;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar dragService_1 = require(\"../dragAndDrop/dragService\");\nvar context_1 = require(\"../context/context\");\nvar agPanel_1 = require(\"./agPanel\");\nvar component_1 = require(\"./component\");\nvar utils_1 = require(\"../utils\");\nvar AgDialog = /** @class */ (function (_super) {\n __extends(AgDialog, _super);\n function AgDialog(config) {\n var _this = _super.call(this, config) || this;\n _this.RESIZE_TEMPLATE = \"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \";\n _this.MAXIMIZE_BTN_TEMPLATE = \"
\";\n _this.resizable = {};\n _this.isResizable = false;\n _this.movable = false;\n _this.isMoving = false;\n _this.isMaximizable = false;\n _this.isMaximized = false;\n _this.maximizeListeners = [];\n _this.resizeListenerDestroy = null;\n _this.isResizing = false;\n _this.lastPosition = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n return _this;\n }\n AgDialog.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var _a = this.config, movable = _a.movable, resizable = _a.resizable, maximizable = _a.maximizable;\n utils_1._.addCssClass(eGui, 'ag-dialog');\n this.moveElement = this.eTitleBar;\n _super.prototype.postConstruct.call(this);\n this.addDestroyableEventListener(eGui, 'focusin', function (e) {\n if (eGui.contains(e.relatedTarget)) {\n return;\n }\n _this.popupService.bringPopupToFront(eGui);\n });\n if (movable) {\n this.setMovable(movable);\n }\n if (maximizable) {\n this.setMaximizable(maximizable);\n }\n this.addResizers();\n if (resizable) {\n this.setResizable(resizable);\n }\n };\n AgDialog.prototype.renderComponent = function () {\n var eGui = this.getGui();\n var _a = this.config, alwaysOnTop = _a.alwaysOnTop, modal = _a.modal;\n this.close = this.popupService.addPopup(modal, eGui, true, this.destroy.bind(this), undefined, alwaysOnTop);\n eGui.focus();\n };\n AgDialog.prototype.addResizers = function () {\n var eGui = this.getGui();\n if (!eGui) {\n return;\n }\n var parser = new DOMParser();\n var resizers = parser.parseFromString(this.RESIZE_TEMPLATE, 'text/html').body;\n eGui.appendChild(resizers.firstChild);\n this.createMap();\n };\n AgDialog.prototype.createMap = function () {\n var eGui = this.getGui();\n this.resizerMap = {\n topLeft: { element: eGui.querySelector('[ref=eTopLeftResizer]') },\n top: { element: eGui.querySelector('[ref=eTopResizer]') },\n topRight: { element: eGui.querySelector('[ref=eTopRightResizer]') },\n right: { element: eGui.querySelector('[ref=eRightResizer]') },\n bottomRight: { element: eGui.querySelector('[ref=eBottomRightResizer]') },\n bottom: { element: eGui.querySelector('[ref=eBottomResizer]') },\n bottomLeft: { element: eGui.querySelector('[ref=eBottomLeftResizer]') },\n left: { element: eGui.querySelector('[ref=eLeftResizer]') }\n };\n };\n AgDialog.prototype.getResizerElement = function (side) {\n return this.resizerMap[side].element;\n };\n AgDialog.prototype.onResizeStart = function (e) {\n this.isResizing = true;\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n AgDialog.prototype.onResize = function (e, side) {\n if (!this.isResizing) {\n return;\n }\n var isLeft = !!side.match(/left/i);\n var isRight = !!side.match(/right/i);\n var isTop = !!side.match(/top/i);\n var isBottom = !!side.match(/bottom/i);\n var isHorizontal = isLeft || isRight;\n var isVertical = isTop || isBottom;\n var _a = this.calculateMouseMovement({ e: e, isLeft: isLeft, isTop: isTop }), movementX = _a.movementX, movementY = _a.movementY;\n var offsetLeft = 0;\n var offsetTop = 0;\n if (isHorizontal && movementX) {\n var direction = isLeft ? -1 : 1;\n var oldWidth = this.getWidth();\n var newWidth = oldWidth + (movementX * direction);\n var skipWidth = false;\n if (isLeft) {\n offsetLeft = oldWidth - newWidth;\n if (this.position.x + offsetLeft <= 0 || newWidth <= this.minWidth) {\n skipWidth = true;\n offsetLeft = 0;\n }\n }\n if (!skipWidth) {\n this.setWidth(newWidth);\n }\n }\n if (isVertical && movementY) {\n var direction = isTop ? -1 : 1;\n var oldHeight = this.getHeight();\n var newHeight = oldHeight + (movementY * direction);\n var skipHeight = false;\n if (isTop) {\n offsetTop = oldHeight - newHeight;\n if (this.position.y + offsetTop <= 0 || newHeight <= this.minHeight) {\n skipHeight = true;\n offsetTop = 0;\n }\n }\n if (!skipHeight) {\n this.setHeight(newHeight);\n }\n }\n this.updateDragStartPosition(e.clientX, e.clientY);\n if (offsetLeft || offsetTop) {\n this.offsetElement(this.position.x + offsetLeft, this.position.y + offsetTop);\n }\n };\n AgDialog.prototype.onResizeEnd = function () {\n this.isResizing = false;\n var params = {\n type: 'resize',\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n if (this.localEventService) {\n this.localEventService.dispatchEvent(params);\n }\n };\n AgDialog.prototype.onMoveStart = function (e) {\n this.isMoving = true;\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n AgDialog.prototype.onMove = function (e) {\n if (!this.isMoving) {\n return;\n }\n var _a = this.position, x = _a.x, y = _a.y;\n var _b = this.calculateMouseMovement({\n e: e,\n isTop: true,\n anywhereWithin: true,\n topBuffer: this.getHeight() - this.getBodyHeight()\n }), movementX = _b.movementX, movementY = _b.movementY;\n this.offsetElement(x + movementX, y + movementY);\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n AgDialog.prototype.onMoveEnd = function () {\n this.isMoving = false;\n };\n AgDialog.prototype.toggleMaximize = function () {\n if (this.isMaximized) {\n var _a = this.lastPosition, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n this.setWidth(width);\n this.setHeight(height);\n this.offsetElement(x, y);\n }\n else {\n this.lastPosition.width = this.getWidth();\n this.lastPosition.height = this.getHeight();\n this.lastPosition.x = this.position.x;\n this.lastPosition.y = this.position.y;\n this.offsetElement(0, 0);\n this.setHeight('100%');\n this.setWidth('100%');\n }\n this.isMaximized = !this.isMaximized;\n this.refreshMaximizeIcon();\n };\n AgDialog.prototype.refreshMaximizeIcon = function () {\n utils_1._.addOrRemoveCssClass(this.maximizeIcon, 'ag-hidden', this.isMaximized);\n utils_1._.addOrRemoveCssClass(this.minimizeIcon, 'ag-hidden', !this.isMaximized);\n };\n AgDialog.prototype.clearMaximizebleListeners = function () {\n if (this.maximizeListeners.length) {\n this.maximizeListeners.forEach(function (destroyListener) { return destroyListener(); });\n this.maximizeListeners.length = 0;\n }\n if (this.resizeListenerDestroy) {\n this.resizeListenerDestroy();\n this.resizeListenerDestroy = null;\n }\n };\n AgDialog.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.setResizable(false);\n this.setMovable(false);\n if (this.maximizeButtonComp) {\n this.maximizeButtonComp.destroy();\n this.maximizeButtonComp = undefined;\n }\n this.clearMaximizebleListeners();\n };\n AgDialog.prototype.setResizable = function (resizable) {\n var _this = this;\n var isResizable = false;\n if (typeof resizable === 'boolean') {\n resizable = {\n topLeft: resizable,\n top: resizable,\n topRight: resizable,\n right: resizable,\n bottomRight: resizable,\n bottom: resizable,\n bottomLeft: resizable,\n left: resizable\n };\n }\n Object.keys(resizable).forEach(function (side) {\n var r = resizable;\n var s = side;\n var val = !!r[s];\n var el = _this.getResizerElement(s);\n var params = _this.resizerMap[s].dragSource || {\n eElement: el,\n onDragStart: _this.onResizeStart.bind(_this),\n onDragging: function (e) { return _this.onResize(e, s); },\n onDragStop: _this.onResizeEnd.bind(_this),\n };\n if (!!_this.resizable[s] !== val || (!_this.isAlive() && !val)) {\n if (val) {\n _this.dragService.addDragSource(params);\n el.style.pointerEvents = 'all';\n isResizable = true;\n }\n else {\n _this.dragService.removeDragSource(params);\n el.style.pointerEvents = 'none';\n }\n _this.resizerMap[s].dragSource = val ? params : undefined;\n }\n });\n this.isResizable = isResizable;\n };\n AgDialog.prototype.setMovable = function (movable) {\n if (movable !== this.movable) {\n this.movable = movable;\n var params = this.moveElementDragListener || {\n eElement: this.moveElement,\n onDragStart: this.onMoveStart.bind(this),\n onDragging: this.onMove.bind(this),\n onDragStop: this.onMoveEnd.bind(this)\n };\n if (movable) {\n this.dragService.addDragSource(params);\n this.moveElementDragListener = params;\n }\n else {\n this.dragService.removeDragSource(params);\n this.moveElementDragListener = undefined;\n }\n }\n };\n AgDialog.prototype.setMaximizable = function (maximizable) {\n var _this = this;\n if (maximizable === false) {\n this.clearMaximizebleListeners();\n if (this.maximizeButtonComp) {\n this.maximizeButtonComp.destroy();\n this.maximizeButtonComp = this.maximizeIcon = this.minimizeIcon = undefined;\n }\n return;\n }\n var eTitleBar = this.eTitleBar;\n if (!eTitleBar || maximizable === this.isMaximizable) {\n return;\n }\n var maximizeButtonComp = this.maximizeButtonComp = new component_1.Component(this.MAXIMIZE_BTN_TEMPLATE);\n this.getContext().wireBean(maximizeButtonComp);\n var eGui = maximizeButtonComp.getGui();\n eGui.appendChild(this.maximizeIcon = utils_1._.createIconNoSpan('maximize', this.gridOptionsWrapper));\n eGui.appendChild(this.minimizeIcon = utils_1._.createIconNoSpan('minimize', this.gridOptionsWrapper));\n utils_1._.addCssClass(this.minimizeIcon, 'ag-hidden');\n maximizeButtonComp.addDestroyableEventListener(eGui, 'click', this.toggleMaximize.bind(this));\n this.addTitleBarButton(maximizeButtonComp, 0);\n this.maximizeListeners.push(this.addDestroyableEventListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));\n this.resizeListenerDestroy = this.addDestroyableEventListener(this, 'resize', function () {\n _this.isMaximized = false;\n _this.refreshMaximizeIcon();\n });\n };\n __decorate([\n context_1.Autowired('dragService'),\n __metadata(\"design:type\", dragService_1.DragService)\n ], AgDialog.prototype, \"dragService\", void 0);\n return AgDialog;\n}(agPanel_1.AgPanel));\nexports.AgDialog = AgDialog;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar componentAnnotations_1 = require(\"./componentAnnotations\");\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar agAbstractField_1 = require(\"./agAbstractField\");\nvar utils_1 = require(\"../utils\");\nvar AgPickerField = /** @class */ (function (_super) {\n __extends(AgPickerField, _super);\n function AgPickerField() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.TEMPLATE = \"
\\n \\n
\\n <%displayField% ref=\\\"eDisplayField\\\">\\n \\n
\\n
\";\n _this.displayedPicker = false;\n _this.isDestroyingPicker = false;\n return _this;\n }\n AgPickerField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.addDestroyableEventListener(this.eButton, 'click', function () {\n _this.showPicker();\n });\n if (this.pickerIcon) {\n this.eButton.appendChild(utils_1._.createIconNoSpan(this.pickerIcon, this.gridOptionsWrapper, null));\n }\n };\n AgPickerField.prototype.setInputWidth = function (width) {\n utils_1._.setElementWidth(this.eWrapper, width);\n return this;\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], AgPickerField.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eLabel'),\n __metadata(\"design:type\", HTMLElement)\n ], AgPickerField.prototype, \"eLabel\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eWrapper'),\n __metadata(\"design:type\", HTMLElement)\n ], AgPickerField.prototype, \"eWrapper\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eDisplayField'),\n __metadata(\"design:type\", Object)\n ], AgPickerField.prototype, \"eDisplayField\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eButton'),\n __metadata(\"design:type\", HTMLButtonElement)\n ], AgPickerField.prototype, \"eButton\", void 0);\n return AgPickerField;\n}(agAbstractField_1.AgAbstractField));\nexports.AgPickerField = AgPickerField;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/** The base frameworks, eg React & Angular 2, override this bean with implementations specific to their requirement. */\nvar VanillaFrameworkOverrides = /** @class */ (function () {\n function VanillaFrameworkOverrides() {\n }\n // for Vanilla JS, we use simple timeout\n VanillaFrameworkOverrides.prototype.setTimeout = function (action, timeout) {\n window.setTimeout(action, timeout);\n };\n // for Vanilla JS, we just add the event to the element\n VanillaFrameworkOverrides.prototype.addEventListenerOutsideAngular = function (element, type, listener, useCapture) {\n element.addEventListener(type, listener, useCapture);\n };\n return VanillaFrameworkOverrides;\n}());\nexports.VanillaFrameworkOverrides = VanillaFrameworkOverrides;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"./component\");\nvar componentAnnotations_1 = require(\"./componentAnnotations\");\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar agCheckbox_1 = require(\"./agCheckbox\");\nvar utils_1 = require(\"../utils\");\nvar AgGroupComponent = /** @class */ (function (_super) {\n __extends(AgGroupComponent, _super);\n function AgGroupComponent(params) {\n var _this = _super.call(this, AgGroupComponent.TEMPLATE) || this;\n _this.suppressEnabledCheckbox = true;\n _this.suppressOpenCloseIcons = false;\n if (!params) {\n params = {};\n }\n var title = params.title, enabled = params.enabled, items = params.items, suppressEnabledCheckbox = params.suppressEnabledCheckbox, suppressOpenCloseIcons = params.suppressOpenCloseIcons;\n _this.title = title;\n _this.enabled = enabled != null ? enabled : true;\n _this.items = items || [];\n if (suppressEnabledCheckbox != null) {\n _this.suppressEnabledCheckbox = suppressEnabledCheckbox;\n }\n if (suppressOpenCloseIcons != null) {\n _this.suppressOpenCloseIcons = suppressOpenCloseIcons;\n }\n return _this;\n }\n AgGroupComponent.prototype.postConstruct = function () {\n if (this.items.length) {\n var initialItems = this.items;\n this.items = [];\n this.addItems(initialItems);\n }\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.cbGroupEnabled.setLabel(localeTextFunc('enabled', 'Enabled'));\n if (this.title) {\n this.setTitle(this.title);\n }\n if (this.enabled) {\n this.setEnabled(this.enabled);\n }\n this.hideEnabledCheckbox(this.suppressEnabledCheckbox);\n this.hideOpenCloseIcons(this.suppressOpenCloseIcons);\n this.setupExpandContract();\n };\n AgGroupComponent.prototype.setupExpandContract = function () {\n var _this = this;\n this.eGroupClosedIcon.appendChild(utils_1._.createIcon('columnSelectClosed', this.gridOptionsWrapper, null));\n this.eGroupOpenedIcon.appendChild(utils_1._.createIcon('columnSelectOpen', this.gridOptionsWrapper, null));\n this.setOpenClosedIcons();\n this.addDestroyableEventListener(this.groupTitle, 'click', function () { return _this.toggleGroupExpand(); });\n };\n AgGroupComponent.prototype.setOpenClosedIcons = function () {\n var folderOpen = this.expanded;\n utils_1._.setDisplayed(this.eGroupClosedIcon, !folderOpen);\n utils_1._.setDisplayed(this.eGroupOpenedIcon, folderOpen);\n };\n AgGroupComponent.prototype.isExpanded = function () {\n return this.expanded;\n };\n AgGroupComponent.prototype.toggleGroupExpand = function (expanded) {\n var eGui = this.getGui();\n if (this.suppressOpenCloseIcons) {\n this.expanded = true;\n utils_1._.removeCssClass(eGui, 'ag-collapsed');\n return this;\n }\n expanded = expanded != null ? expanded : !this.expanded;\n if (this.expanded === expanded) {\n return this;\n }\n this.expanded = expanded;\n this.setOpenClosedIcons();\n utils_1._.addOrRemoveCssClass(eGui, 'ag-collapsed', !expanded);\n if (this.expanded) {\n var event_1 = {\n type: 'expanded',\n };\n this.dispatchEvent(event_1);\n }\n return this;\n };\n AgGroupComponent.prototype.addItems = function (items) {\n var _this = this;\n items.forEach(function (item) { return _this.addItem(item); });\n };\n AgGroupComponent.prototype.addItem = function (item) {\n var container = this.groupContainer;\n var el = item instanceof component_1.Component ? item.getGui() : item;\n utils_1._.addCssClass(el, 'ag-group-item');\n container.appendChild(el);\n this.items.push(el);\n };\n AgGroupComponent.prototype.setTitle = function (title) {\n this.lbGroupTitle.innerText = title;\n return this;\n };\n AgGroupComponent.prototype.setEnabled = function (enabled, skipToggle) {\n this.enabled = enabled;\n utils_1._.addOrRemoveCssClass(this.getGui(), 'ag-disabled', !enabled);\n this.toggleGroupExpand(enabled);\n if (!skipToggle) {\n this.cbGroupEnabled.setValue(enabled);\n }\n return this;\n };\n AgGroupComponent.prototype.isEnabled = function () {\n return this.enabled;\n };\n AgGroupComponent.prototype.onEnableChange = function (callbackFn) {\n var _this = this;\n this.cbGroupEnabled.onValueChange(function (newSelection) {\n _this.setEnabled(newSelection, true);\n callbackFn(newSelection);\n });\n return this;\n };\n AgGroupComponent.prototype.hideEnabledCheckbox = function (hide) {\n utils_1._.addOrRemoveCssClass(this.eToolbar, 'ag-hidden', hide);\n return this;\n };\n AgGroupComponent.prototype.hideOpenCloseIcons = function (hide) {\n this.suppressOpenCloseIcons = hide;\n utils_1._.addOrRemoveCssClass(this.getGui(), 'ag-collapsible', !hide);\n if (hide) {\n this.toggleGroupExpand(true);\n }\n return this;\n };\n AgGroupComponent.TEMPLATE = \"
\\n
\\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\";\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], AgGroupComponent.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('groupTitle'),\n __metadata(\"design:type\", HTMLElement)\n ], AgGroupComponent.prototype, \"groupTitle\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eGroupOpenedIcon'),\n __metadata(\"design:type\", HTMLElement)\n ], AgGroupComponent.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eGroupClosedIcon'),\n __metadata(\"design:type\", HTMLElement)\n ], AgGroupComponent.prototype, \"eGroupClosedIcon\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eToolbar'),\n __metadata(\"design:type\", HTMLElement)\n ], AgGroupComponent.prototype, \"eToolbar\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('cbGroupEnabled'),\n __metadata(\"design:type\", agCheckbox_1.AgCheckbox)\n ], AgGroupComponent.prototype, \"cbGroupEnabled\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector(\"lbGroupTitle\"),\n __metadata(\"design:type\", HTMLElement)\n ], AgGroupComponent.prototype, \"lbGroupTitle\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector(\"eContainer\"),\n __metadata(\"design:type\", HTMLElement)\n ], AgGroupComponent.prototype, \"groupContainer\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], AgGroupComponent.prototype, \"postConstruct\", null);\n return AgGroupComponent;\n}(component_1.Component));\nexports.AgGroupComponent = AgGroupComponent;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar eventService_1 = require(\"../eventService\");\nvar utils_1 = require(\"../utils\");\nvar TouchListener = /** @class */ (function () {\n function TouchListener(eElement, preventMouseClick) {\n var _this = this;\n if (preventMouseClick === void 0) { preventMouseClick = false; }\n this.destroyFuncs = [];\n this.touching = false;\n this.eventService = new eventService_1.EventService();\n this.eElement = eElement;\n this.preventMouseClick = preventMouseClick;\n var startListener = this.onTouchStart.bind(this);\n var moveListener = this.onTouchMove.bind(this);\n var endListener = this.onTouchEnd.bind(this);\n this.eElement.addEventListener(\"touchstart\", startListener, { passive: true });\n this.eElement.addEventListener(\"touchmove\", moveListener, { passive: true });\n // we set passive=false, as we want to prevent default on this event\n this.eElement.addEventListener(\"touchend\", endListener, { passive: false });\n this.destroyFuncs.push(function () {\n _this.eElement.removeEventListener(\"touchstart\", startListener, { passive: true });\n _this.eElement.removeEventListener(\"touchmove\", moveListener, { passive: true });\n _this.eElement.removeEventListener(\"touchend\", endListener, { passive: false });\n });\n }\n TouchListener.prototype.getActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n var matches = touchList[i].identifier === this.touchStart.identifier;\n if (matches) {\n return touchList[i];\n }\n }\n return null;\n };\n TouchListener.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n TouchListener.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n TouchListener.prototype.onTouchStart = function (touchEvent) {\n var _this = this;\n // only looking at one touch point at any time\n if (this.touching) {\n return;\n }\n this.touchStart = touchEvent.touches[0];\n this.touching = true;\n this.moved = false;\n var touchStartCopy = this.touchStart;\n window.setTimeout(function () {\n var touchesMatch = _this.touchStart === touchStartCopy;\n if (_this.touching && touchesMatch && !_this.moved) {\n _this.moved = true;\n var event_1 = {\n type: TouchListener.EVENT_LONG_TAP,\n touchStart: _this.touchStart,\n touchEvent: touchEvent\n };\n _this.eventService.dispatchEvent(event_1);\n }\n }, 500);\n };\n TouchListener.prototype.onTouchMove = function (touchEvent) {\n if (!this.touching) {\n return;\n }\n var touch = this.getActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n var eventIsFarAway = !utils_1._.areEventsNear(touch, this.touchStart, 4);\n if (eventIsFarAway) {\n this.moved = true;\n }\n };\n TouchListener.prototype.onTouchEnd = function (touchEvent) {\n if (!this.touching) {\n return;\n }\n if (!this.moved) {\n var event_2 = {\n type: TouchListener.EVENT_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event_2);\n this.checkForDoubleTap();\n }\n // stops the tap from also been processed as a mouse click\n if (this.preventMouseClick) {\n touchEvent.preventDefault();\n }\n this.touching = false;\n };\n TouchListener.prototype.checkForDoubleTap = function () {\n var now = new Date().getTime();\n if (this.lastTapTime && this.lastTapTime > 0) {\n // if previous tap, see if duration is short enough to be considered double tap\n var interval = now - this.lastTapTime;\n if (interval > TouchListener.DOUBLE_TAP_MILLIS) {\n // dispatch double tap event\n var event_3 = {\n type: TouchListener.EVENT_DOUBLE_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event_3);\n // this stops a tripple tap ending up as two double taps\n this.lastTapTime = null;\n }\n else {\n this.lastTapTime = now;\n }\n }\n else {\n this.lastTapTime = now;\n }\n };\n TouchListener.prototype.destroy = function () {\n this.destroyFuncs.forEach(function (func) { return func(); });\n };\n TouchListener.EVENT_TAP = \"tap\";\n TouchListener.EVENT_DOUBLE_TAP = \"doubleTap\";\n TouchListener.EVENT_LONG_TAP = \"longTap\";\n TouchListener.DOUBLE_TAP_MILLIS = 500;\n return TouchListener;\n}());\nexports.TouchListener = TouchListener;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction QuerySelector(selector) {\n return querySelectorFunc.bind(this, selector);\n}\nexports.QuerySelector = QuerySelector;\nfunction RefSelector(ref) {\n return querySelectorFunc.bind(this, \"[ref=\" + ref + \"]\");\n}\nexports.RefSelector = RefSelector;\nfunction querySelectorFunc(selector, classPrototype, methodOrAttributeName, index) {\n if (selector === null) {\n console.error(\"ag-Grid: QuerySelector selector should not be null\");\n return;\n }\n if (typeof index === \"number\") {\n console.error(\"ag-Grid: QuerySelector should be on an attribute\");\n return;\n }\n addToObjectProps(classPrototype, 'querySelectors', {\n attributeName: methodOrAttributeName,\n querySelector: selector\n });\n}\n// think we should take this out, put property bindings on the\nfunction Listener(eventName) {\n return listenerFunc.bind(this, eventName);\n}\nexports.Listener = Listener;\nfunction listenerFunc(eventName, target, methodName) {\n if (eventName === null) {\n console.error(\"ag-Grid: EventListener eventName should not be null\");\n return;\n }\n addToObjectProps(target, 'listenerMethods', {\n methodName: methodName,\n eventName: eventName\n });\n}\n// think we should take this out, put property bindings on the\nfunction Method(eventName) {\n return methodFunc.bind(this, eventName);\n}\nexports.Method = Method;\nfunction methodFunc(alias, target, methodName) {\n if (alias === null) {\n console.error(\"ag-Grid: EventListener eventName should not be null\");\n return;\n }\n addToObjectProps(target, 'methods', {\n methodName: methodName,\n alias: alias\n });\n}\nfunction addToObjectProps(target, key, value) {\n // it's an attribute on the class\n var props = getOrCreateProps(target, target.constructor.name);\n if (!props[key]) {\n props[key] = [];\n }\n props[key].push(value);\n}\nfunction getOrCreateProps(target, instanceName) {\n if (!target.__agComponentMetaData) {\n target.__agComponentMetaData = {};\n }\n if (!target.__agComponentMetaData[instanceName]) {\n target.__agComponentMetaData[instanceName] = {};\n }\n return target.__agComponentMetaData[instanceName];\n}\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants_1 = require(\"../constants\");\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar environment_1 = require(\"../environment\");\nvar eventService_1 = require(\"../eventService\");\nvar events_1 = require(\"../events\");\nvar utils_1 = require(\"../utils\");\nvar PopupService = /** @class */ (function () {\n function PopupService() {\n this.popupList = [];\n }\n PopupService.prototype.registerGridCore = function (gridCore) {\n this.gridCore = gridCore;\n };\n PopupService.prototype.getDocument = function () {\n return this.gridOptionsWrapper.getDocument();\n };\n PopupService.prototype.getPopupParent = function () {\n var ePopupParent = this.gridOptionsWrapper.getPopupParent();\n if (ePopupParent) {\n return ePopupParent;\n }\n return this.gridCore.getRootGui();\n };\n PopupService.prototype.positionPopupForMenu = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var eDocument = this.getDocument();\n var popupParent = this.getPopupParent();\n var parentRect;\n if (popupParent === eDocument.body) {\n parentRect = eDocument.documentElement.getBoundingClientRect();\n }\n else {\n parentRect = popupParent.getBoundingClientRect();\n }\n var y = sourceRect.top - parentRect.top;\n y = this.keepYWithinBounds(params, y);\n var minWidth = (params.ePopup.clientWidth > 0) ? params.ePopup.clientWidth : 200;\n params.ePopup.style.minWidth = minWidth + \"px\";\n var widthOfParent = parentRect.right - parentRect.left;\n var maxX = widthOfParent - minWidth;\n // the x position of the popup depends on RTL or LTR. for normal cases, LTR, we put the child popup\n // to the right, unless it doesn't fit and we then put it to the left. for RTL it's the other way around,\n // we try place it first to the left, and then if not to the right.\n var x;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, try left first\n x = xLeftPosition();\n if (x < 0) {\n x = xRightPosition();\n }\n if (x > maxX) {\n x = 0;\n }\n }\n else {\n // for LTR, try right first\n x = xRightPosition();\n if (x > maxX) {\n x = xLeftPosition();\n }\n if (x < 0) {\n x = 0;\n }\n }\n params.ePopup.style.left = x + \"px\";\n params.ePopup.style.top = y + \"px\";\n function xRightPosition() {\n return sourceRect.right - parentRect.left - 2;\n }\n function xLeftPosition() {\n return sourceRect.left - parentRect.left - minWidth;\n }\n };\n PopupService.prototype.positionPopupUnderMouseEvent = function (params) {\n var _a = this.calculatePointerAlign(params.mouseEvent), x = _a.x, y = _a.y;\n var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY;\n this.positionPopup({\n ePopup: ePopup,\n x: x,\n y: y,\n nudgeX: nudgeX,\n nudgeY: nudgeY,\n keepWithinBounds: true\n });\n this.callPostProcessPopup(params.ePopup, null, params.mouseEvent, params.type, params.column, params.rowNode);\n };\n PopupService.prototype.calculatePointerAlign = function (e) {\n var eDocument = this.getDocument();\n var popupParent = this.getPopupParent();\n var parentRect = popupParent.getBoundingClientRect();\n var documentRect = eDocument.documentElement.getBoundingClientRect();\n return {\n x: e.clientX - (popupParent === eDocument.body ? documentRect.left : parentRect.left),\n y: e.clientY - (popupParent === eDocument.body ? documentRect.top : parentRect.top)\n };\n };\n PopupService.prototype.positionPopupUnderComponent = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var eDocument = this.getDocument();\n var popupParent = this.getPopupParent();\n var alignSide = params.alignSide || 'left';\n var parentRect;\n if (popupParent === eDocument.body) {\n parentRect = eDocument.documentElement.getBoundingClientRect();\n }\n else {\n parentRect = popupParent.getBoundingClientRect();\n }\n var x = sourceRect.left - parentRect.left;\n if (alignSide === 'right') {\n x -= (params.ePopup.offsetWidth - sourceRect.width);\n }\n this.positionPopup({\n ePopup: params.ePopup,\n minWidth: params.minWidth,\n minHeight: params.minHeight,\n nudgeX: params.nudgeX,\n nudgeY: params.nudgeY,\n x: x,\n y: sourceRect.top - parentRect.top + sourceRect.height,\n keepWithinBounds: params.keepWithinBounds\n });\n this.callPostProcessPopup(params.ePopup, params.eventSource, null, params.type, params.column, params.rowNode);\n };\n PopupService.prototype.positionPopupOverComponent = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var eDocument = this.getDocument();\n var popupParent = this.getPopupParent();\n var parentRect;\n if (popupParent === eDocument.body) {\n parentRect = eDocument.documentElement.getBoundingClientRect();\n }\n else {\n parentRect = popupParent.getBoundingClientRect();\n }\n this.positionPopup({\n ePopup: params.ePopup,\n minWidth: params.minWidth,\n nudgeX: params.nudgeX,\n nudgeY: params.nudgeY,\n x: sourceRect.left - parentRect.left,\n y: sourceRect.top - parentRect.top,\n keepWithinBounds: params.keepWithinBounds\n });\n this.callPostProcessPopup(params.ePopup, params.eventSource, null, params.type, params.column, params.rowNode);\n };\n PopupService.prototype.callPostProcessPopup = function (ePopup, eventSource, mouseEvent, type, column, rowNode) {\n var callback = this.gridOptionsWrapper.getPostProcessPopupFunc();\n if (callback) {\n var params = {\n column: column,\n rowNode: rowNode,\n ePopup: ePopup,\n type: type,\n eventSource: eventSource,\n mouseEvent: mouseEvent\n };\n callback(params);\n }\n };\n PopupService.prototype.positionPopup = function (params) {\n var x = params.x;\n var y = params.y;\n if (params.nudgeX) {\n x += params.nudgeX;\n }\n if (params.nudgeY) {\n y += params.nudgeY;\n }\n // if popup is overflowing to the bottom, move it up\n if (params.keepWithinBounds) {\n x = this.keepXWithinBounds(params, x);\n y = this.keepYWithinBounds(params, y);\n }\n params.ePopup.style.left = x + \"px\";\n params.ePopup.style.top = y + \"px\";\n };\n PopupService.prototype.keepYWithinBounds = function (params, y) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var docElement = eDocument.documentElement;\n var popupParent = this.getPopupParent();\n var parentRect = popupParent.getBoundingClientRect();\n var documentRect = eDocument.documentElement.getBoundingClientRect();\n var isBody = popupParent === eDocument.body;\n var defaultPadding = 3;\n var minHeight = Math.min(200, parentRect.height);\n var diff = 0;\n if (params.minHeight && params.minHeight < minHeight) {\n minHeight = params.minHeight;\n }\n else if (params.ePopup.offsetHeight > 0) {\n minHeight = params.ePopup.clientHeight;\n diff = utils_1._.getAbsoluteHeight(params.ePopup) - minHeight;\n }\n var heightOfParent = isBody ? (utils_1._.getAbsoluteHeight(docElement) + docElement.scrollTop) : parentRect.height;\n if (isBody) {\n heightOfParent -= Math.abs(documentRect.top - parentRect.top);\n }\n var maxY = heightOfParent - minHeight - diff - defaultPadding;\n return Math.min(Math.max(y, 0), Math.abs(maxY));\n };\n PopupService.prototype.keepXWithinBounds = function (params, x) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var docElement = eDocument.documentElement;\n var popupParent = this.getPopupParent();\n var parentRect = popupParent.getBoundingClientRect();\n var documentRect = eDocument.documentElement.getBoundingClientRect();\n var isBody = popupParent === eDocument.body;\n var defaultPadding = 3;\n var ePopup = params.ePopup;\n var minWidth = Math.min(200, parentRect.width);\n var diff = 0;\n if (params.minWidth && params.minWidth < minWidth) {\n minWidth = params.minWidth;\n }\n else if (ePopup.offsetWidth > 0) {\n minWidth = ePopup.offsetWidth;\n ePopup.style.minWidth = minWidth + \"px\";\n diff = utils_1._.getAbsoluteWidth(ePopup) - minWidth;\n }\n var widthOfParent = isBody ? (utils_1._.getAbsoluteWidth(docElement) + docElement.scrollLeft) : parentRect.width;\n if (isBody) {\n widthOfParent -= Math.abs(documentRect.left - parentRect.left);\n }\n var maxX = widthOfParent - minWidth - diff - defaultPadding;\n return Math.min(Math.max(x, 0), Math.abs(maxX));\n };\n // adds an element to a div, but also listens to background checking for clicks,\n // so that when the background is clicked, the child is removed again, giving\n // a model look to popups.\n PopupService.prototype.addAsModalPopup = function (eChild, closeOnEsc, closedCallback, click) {\n return this.addPopup(true, eChild, closeOnEsc, closedCallback, click);\n };\n PopupService.prototype.addPopup = function (modal, eChild, closeOnEsc, closedCallback, click, alwaysOnTop) {\n var _this = this;\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (!eDocument) {\n console.warn('ag-grid: could not find the document, document is empty');\n return function () { };\n }\n var pos = utils_1._.findIndex(this.popupList, function (popup) { return popup.element === eChild; });\n if (pos !== -1) {\n var popup = this.popupList[pos];\n return popup.hideFunc;\n }\n var ePopupParent = this.getPopupParent();\n // for angular specifically, but shouldn't cause an issue with js or other fw's\n // https://github.com/angular/angular/issues/8563\n ePopupParent.appendChild(eChild);\n eChild.style.top = '0px';\n eChild.style.left = '0px';\n // add env CSS class to child, in case user provided a popup parent, which means\n // theme class may be missing\n var eWrapper = document.createElement('div');\n var theme = this.environment.getTheme().theme;\n if (theme) {\n utils_1._.addCssClass(eWrapper, theme);\n }\n utils_1._.addCssClass(eWrapper, 'ag-popup');\n utils_1._.addCssClass(eChild, this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr');\n eWrapper.appendChild(eChild);\n ePopupParent.appendChild(eWrapper);\n if (alwaysOnTop) {\n this.setAlwaysOnTop(eWrapper, true);\n }\n else {\n this.bringPopupToFront(eWrapper);\n }\n var popupHidden = false;\n var hidePopupOnKeyboardEvent = function (event) {\n var key = event.which || event.keyCode;\n if (key === constants_1.Constants.KEY_ESCAPE && eWrapper.contains(document.activeElement)) {\n hidePopup(null);\n }\n };\n var hidePopupOnMouseEvent = function (event) {\n hidePopup(event);\n };\n var hidePopupOnTouchEvent = function (event) {\n hidePopup(null, event);\n };\n var hidePopup = function (mouseEvent, touchEvent) {\n if (\n // we don't hide popup if the event was on the child, or any\n // children of this child\n _this.isEventFromCurrentPopup(mouseEvent, touchEvent, eChild) ||\n // if the event to close is actually the open event, then ignore it\n _this.isEventSameChainAsOriginalEvent(click, mouseEvent, touchEvent) ||\n // this method should only be called once. the client can have different\n // paths, each one wanting to close, so this method may be called multiple times.\n popupHidden) {\n return;\n }\n popupHidden = true;\n ePopupParent.removeChild(eWrapper);\n eDocument.removeEventListener('keydown', hidePopupOnKeyboardEvent);\n eDocument.removeEventListener('mousedown', hidePopupOnMouseEvent);\n eDocument.removeEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.removeEventListener('contextmenu', hidePopupOnMouseEvent);\n _this.eventService.removeEventListener(events_1.Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n if (closedCallback) {\n closedCallback();\n }\n _this.popupList = _this.popupList.filter(function (popup) { return popup.element !== eChild; });\n };\n // if we add these listeners now, then the current mouse\n // click will be included, which we don't want\n window.setTimeout(function () {\n if (closeOnEsc) {\n eDocument.addEventListener('keydown', hidePopupOnKeyboardEvent);\n }\n if (modal) {\n eDocument.addEventListener('mousedown', hidePopupOnMouseEvent);\n _this.eventService.addEventListener(events_1.Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);\n }\n }, 0);\n this.popupList.push({\n element: eChild,\n hideFunc: hidePopup\n });\n return hidePopup;\n };\n PopupService.prototype.isEventFromCurrentPopup = function (mouseEvent, touchEvent, eChild) {\n var event = mouseEvent ? mouseEvent : touchEvent;\n if (!event) {\n return false;\n }\n var indexOfThisChild = utils_1._.findIndex(this.popupList, function (popup) { return popup.element === eChild; });\n if (indexOfThisChild === -1) {\n return false;\n }\n for (var i = indexOfThisChild; i < this.popupList.length; i++) {\n var popup = this.popupList[i];\n if (utils_1._.isElementInEventPath(popup.element, event)) {\n return true;\n }\n }\n // if the user did not write their own Custom Element to be rendered as popup\n // and this component has additional popup element, they should have the\n // `ag-custom-component-popup` class to be detected as part of the Custom Component\n var el = event.target;\n while (el && el != document.body) {\n if (el.classList.contains('ag-custom-component-popup') || el.parentElement === null) {\n return true;\n }\n el = el.parentElement;\n }\n };\n // in some browsers, the context menu event can be fired before the click event, which means\n // the context menu event could open the popup, but then the click event closes it straight away.\n PopupService.prototype.isEventSameChainAsOriginalEvent = function (originalClick, mouseEvent, touchEvent) {\n // we check the coordinates of the event, to see if it's the same event. there is a 1 / 1000 chance that\n // the event is a different event, however that is an edge case that is not very relevant (the user clicking\n // twice on the same location isn't a normal path).\n // event could be mouse event or touch event.\n var mouseEventOrTouch = null;\n if (mouseEvent) {\n // mouse event can be used direction, it has coordinates\n mouseEventOrTouch = mouseEvent;\n }\n else if (touchEvent) {\n // touch event doesn't have coordinates, need it's touch object\n mouseEventOrTouch = touchEvent.touches[0];\n }\n if (mouseEventOrTouch && originalClick) {\n // for x, allow 4px margin, to cover iPads, where touch (which opens menu) is followed\n // by browser click (when you life finger up, touch is interrupted as click in browser)\n var screenX_1 = mouseEvent ? mouseEvent.screenX : 0;\n var screenY_1 = mouseEvent ? mouseEvent.screenY : 0;\n var xMatch = Math.abs(originalClick.screenX - screenX_1) < 5;\n var yMatch = Math.abs(originalClick.screenY - screenY_1) < 5;\n if (xMatch && yMatch) {\n return true;\n }\n }\n return false;\n };\n PopupService.prototype.getWrapper = function (ePopup) {\n while (!utils_1._.containsClass(ePopup, 'ag-popup') && ePopup.parentElement) {\n ePopup = ePopup.parentElement;\n }\n return utils_1._.containsClass(ePopup, 'ag-popup') ? ePopup : null;\n };\n PopupService.prototype.setAlwaysOnTop = function (ePopup, alwaysOnTop) {\n var eWrapper = this.getWrapper(ePopup);\n if (!eWrapper) {\n return;\n }\n utils_1._.addOrRemoveCssClass(eWrapper, 'ag-always-on-top', !!alwaysOnTop);\n if (alwaysOnTop) {\n this.bringPopupToFront(eWrapper);\n }\n };\n PopupService.prototype.bringPopupToFront = function (ePopup) {\n var parent = this.getPopupParent();\n var popupList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup'));\n var popupLen = popupList.length;\n var alwaysOnTopList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup.ag-always-on-top'));\n var onTopLength = alwaysOnTopList.length;\n var eWrapper = this.getWrapper(ePopup);\n if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {\n return;\n }\n var pos = popupList.indexOf(eWrapper);\n if (onTopLength) {\n var isPopupAlwaysOnTop = utils_1._.containsClass(eWrapper, 'ag-always-on-top');\n if (isPopupAlwaysOnTop) {\n if (pos !== popupLen - 1) {\n utils_1._.last(alwaysOnTopList).insertAdjacentElement('afterend', eWrapper);\n }\n }\n else if (pos !== popupLen - onTopLength - 1) {\n alwaysOnTopList[0].insertAdjacentElement('beforebegin', eWrapper);\n }\n }\n else if (pos !== popupLen - 1) {\n utils_1._.last(popupList).insertAdjacentElement('afterend', eWrapper);\n }\n var params = {\n type: 'popupToFront',\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n eWrapper: eWrapper\n };\n this.eventService.dispatchEvent(params);\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], PopupService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('environment'),\n __metadata(\"design:type\", environment_1.Environment)\n ], PopupService.prototype, \"environment\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], PopupService.prototype, \"eventService\", void 0);\n PopupService = __decorate([\n context_1.Bean('popupService')\n ], PopupService);\n return PopupService;\n}());\nexports.PopupService = PopupService;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar popupService_1 = require(\"./popupService\");\nvar userComponentFactory_1 = require(\"../components/framework/userComponentFactory\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar columnApi_1 = require(\"../columnController/columnApi\");\nvar gridApi_1 = require(\"../gridApi\");\nvar utils_1 = require(\"../utils\");\nvar TooltipManager = /** @class */ (function () {\n function TooltipManager() {\n this.DEFAULT_HIDE_TOOLTIP_TIMEOUT = 10000;\n this.MOUSEOUT_HIDE_TOOLTIP_TIMEOUT = 1000;\n this.MOUSEOVER_SHOW_TOOLTIP_TIMEOUT = 2000;\n this.HIDE_SHOW_ONLY = true;\n this.showTimeoutId = 0;\n this.hideTimeoutId = 0;\n // map of compId to [tooltip component, close function]\n this.registeredComponents = {};\n }\n TooltipManager.prototype.registerTooltip = function (targetCmp) {\n var _this = this;\n var el = targetCmp.getGui();\n var id = targetCmp.getCompId();\n this.registeredComponents[id] = {\n tooltipComp: undefined,\n destroyFunc: undefined,\n eventDestroyFuncs: [\n targetCmp.addDestroyableEventListener(el, 'mouseover', function (e) { return _this.processMouseOver(e, targetCmp); }),\n targetCmp.addDestroyableEventListener(el, 'mousemove', function (e) { return _this.processMouseMove(e); }),\n targetCmp.addDestroyableEventListener(el, 'mousedown', this.hideTooltip.bind(this)),\n targetCmp.addDestroyableEventListener(el, 'mouseout', this.processMouseOut.bind(this))\n ]\n };\n targetCmp.addDestroyFunc(function () { return _this.unregisterTooltip(targetCmp); });\n };\n TooltipManager.prototype.unregisterTooltip = function (targetCmp) {\n var id = targetCmp.getCompId();\n var registeredComponent = this.registeredComponents[id];\n // hide the tooltip if it's being displayed while unregistering the component\n if (this.activeComponent === targetCmp) {\n this.hideTooltip();\n }\n if (targetCmp.isAlive() && registeredComponent && registeredComponent.eventDestroyFuncs.length) {\n registeredComponent.eventDestroyFuncs.forEach(function (func) { return func(); });\n }\n delete this.registeredComponents[id];\n };\n TooltipManager.prototype.processMouseOver = function (e, targetCmp) {\n var delay = this.MOUSEOVER_SHOW_TOOLTIP_TIMEOUT;\n if (this.activeComponent) {\n // lastHoveredComponent will be the activeComponent when we are hovering\n // a component with many child elements like the grid header\n if (this.lastHoveredComponent === this.activeComponent) {\n return;\n }\n delay = 200;\n }\n else if (this.showTimeoutId && this.lastHoveredComponent === targetCmp) {\n return;\n }\n this.clearTimers(this.HIDE_SHOW_ONLY);\n // lastHoveredComponent will be the targetCmp when a click hid the tooltip\n // and the lastHoveredComponent has many child elements\n if (this.lastHoveredComponent === targetCmp) {\n return;\n }\n this.lastHoveredComponent = targetCmp;\n this.lastMouseEvent = e;\n this.showTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay, e);\n };\n TooltipManager.prototype.processMouseOut = function (e) {\n var activeComponent = this.activeComponent;\n var relatedTarget = e.relatedTarget;\n if (!activeComponent) {\n if (this.lastHoveredComponent) {\n var containsElement = this.lastHoveredComponent.getGui().contains(relatedTarget);\n if (this.showTimeoutId && containsElement) {\n // if we are hovering within a component with multiple child elements before\n // the tooltip has been displayed, we should cancel this event\n return;\n }\n else if (!containsElement) {\n // when a click hides the tooltip we need to reset the lastHoveredComponent\n // otherwise the tooltip won't appear until another registered component is hovered.\n this.lastHoveredComponent = undefined;\n }\n }\n this.clearTimers();\n return;\n }\n // the mouseout was called from within the activeComponent so we do nothing\n if (activeComponent.getGui().contains(relatedTarget)) {\n return;\n }\n var registeredComponent = this.registeredComponents[activeComponent.getCompId()];\n utils_1._.addCssClass(registeredComponent.tooltipComp.getGui(), 'ag-tooltip-hiding');\n this.lastHoveredComponent = undefined;\n this.clearTimers();\n this.hideTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.MOUSEOUT_HIDE_TOOLTIP_TIMEOUT);\n };\n TooltipManager.prototype.processMouseMove = function (e) {\n // there is a delay from the time we mouseOver a component and the time the\n // tooltip is displayed, so we need to track mousemove to be able to correctly\n // position the tooltip when showTooltip is called.\n this.lastMouseEvent = e;\n };\n TooltipManager.prototype.showTooltip = function (e) {\n var targetCmp = this.lastHoveredComponent;\n var cellComp = targetCmp;\n var registeredComponent = this.registeredComponents[targetCmp.getCompId()];\n this.hideTooltip();\n var params = {\n api: this.gridApi,\n columnApi: this.columnApi,\n colDef: targetCmp.getComponentHolder(),\n column: cellComp.getColumn && cellComp.getColumn(),\n context: this.gridOptionsWrapper.getContext(),\n rowIndex: cellComp.getCellPosition && cellComp.getCellPosition().rowIndex,\n value: targetCmp.getTooltipText()\n };\n this.createTooltipComponent(params, registeredComponent, e);\n };\n TooltipManager.prototype.createTooltipComponent = function (params, cmp, e) {\n var _this = this;\n this.userComponentFactory.newTooltipComponent(params).then(function (tooltipComp) {\n // if the component was unregistered while creating\n // the tooltip (async) we should return undefined here.\n if (!cmp) {\n return;\n }\n cmp.tooltipComp = tooltipComp;\n var eGui = tooltipComp.getGui();\n if (!utils_1._.containsClass(eGui, 'ag-tooltip')) {\n utils_1._.addCssClass(eGui, 'ag-tooltip-custom');\n }\n var closeFnc = _this.popupService.addPopup(false, eGui, false);\n cmp.destroyFunc = function () {\n closeFnc();\n if (tooltipComp.destroy) {\n tooltipComp.destroy();\n }\n };\n _this.popupService.positionPopupUnderMouseEvent({\n type: 'tooltip',\n mouseEvent: _this.lastMouseEvent,\n ePopup: eGui,\n nudgeY: 18\n });\n _this.activeComponent = _this.lastHoveredComponent;\n _this.hideTimeoutId = window.setTimeout(_this.hideTooltip.bind(_this), _this.DEFAULT_HIDE_TOOLTIP_TIMEOUT);\n });\n };\n TooltipManager.prototype.hideTooltip = function () {\n var activeComponent = this.activeComponent;\n this.clearTimers();\n if (!activeComponent) {\n return;\n }\n var id = activeComponent.getCompId();\n var registeredComponent = this.registeredComponents[id];\n this.activeComponent = undefined;\n if (!registeredComponent) {\n return;\n }\n if (registeredComponent.destroyFunc) {\n registeredComponent.destroyFunc();\n }\n this.clearRegisteredComponent(registeredComponent);\n };\n TooltipManager.prototype.clearRegisteredComponent = function (registeredComponent) {\n delete registeredComponent.destroyFunc;\n delete registeredComponent.tooltipComp;\n };\n TooltipManager.prototype.clearTimers = function (showOnly) {\n if (showOnly === void 0) { showOnly = false; }\n if (this.hideTimeoutId && !showOnly) {\n window.clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = 0;\n }\n if (this.showTimeoutId) {\n window.clearTimeout(this.showTimeoutId);\n this.showTimeoutId = 0;\n }\n };\n __decorate([\n context_1.Autowired('popupService'),\n __metadata(\"design:type\", popupService_1.PopupService)\n ], TooltipManager.prototype, \"popupService\", void 0);\n __decorate([\n context_1.Autowired('userComponentFactory'),\n __metadata(\"design:type\", userComponentFactory_1.UserComponentFactory)\n ], TooltipManager.prototype, \"userComponentFactory\", void 0);\n __decorate([\n context_1.Autowired('columnApi'),\n __metadata(\"design:type\", columnApi_1.ColumnApi)\n ], TooltipManager.prototype, \"columnApi\", void 0);\n __decorate([\n context_1.Autowired('gridApi'),\n __metadata(\"design:type\", gridApi_1.GridApi)\n ], TooltipManager.prototype, \"gridApi\", void 0);\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], TooltipManager.prototype, \"gridOptionsWrapper\", void 0);\n TooltipManager = __decorate([\n context_1.Bean('tooltipManager')\n ], TooltipManager);\n return TooltipManager;\n}());\nexports.TooltipManager = TooltipManager;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agCheckbox_1 = require(\"./agCheckbox\");\nvar AgRadioButton = /** @class */ (function (_super) {\n __extends(AgRadioButton, _super);\n function AgRadioButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.className = 'ag-radio-button';\n _this.inputType = 'radio';\n _this.iconMap = {\n selected: 'radioButtonOn',\n unselected: 'radioButtonOff'\n };\n return _this;\n }\n AgRadioButton.prototype.toggle = function () {\n var nextValue = this.getNextValue();\n this.setValue(nextValue);\n };\n AgRadioButton.prototype.getIconName = function () {\n var value = this.getValue();\n var prop = value ? 'selected' : 'unselected';\n var readOnlyStr = this.isReadOnly() ? 'ReadOnly' : '';\n return \"\" + this.iconMap[prop] + readOnlyStr;\n };\n return AgRadioButton;\n}(agCheckbox_1.AgCheckbox));\nexports.AgRadioButton = AgRadioButton;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agAbstractInputField_1 = require(\"./agAbstractInputField\");\nvar AgInputTextArea = /** @class */ (function (_super) {\n __extends(AgInputTextArea, _super);\n function AgInputTextArea(config) {\n var _this = _super.call(this) || this;\n _this.className = 'ag-text-area';\n _this.displayTag = 'textarea';\n _this.inputType = '';\n _this.setTemplate(_this.TEMPLATE.replace(/%displayField%/g, _this.displayTag));\n if (config) {\n _this.config = config;\n }\n return _this;\n }\n AgInputTextArea.prototype.setValue = function (value, silent) {\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n return AgInputTextArea;\n}(agAbstractInputField_1.AgAbstractInputField));\nexports.AgInputTextArea = AgInputTextArea;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar expressionService_1 = require(\"./expressionService\");\nvar columnController_1 = require(\"../columnController/columnController\");\nvar context_1 = require(\"../context/context\");\nvar events_1 = require(\"../events\");\nvar eventService_1 = require(\"../eventService\");\nvar valueCache_1 = require(\"./valueCache\");\nvar utils_1 = require(\"../utils\");\nvar ValueService = /** @class */ (function () {\n function ValueService() {\n this.initialised = false;\n }\n ValueService.prototype.init = function () {\n this.cellExpressions = this.gridOptionsWrapper.isEnableCellExpressions();\n this.initialised = true;\n };\n ValueService.prototype.getValue = function (column, rowNode, forFilter, ignoreAggData) {\n // console.log(`turnActive = ${this.turnActive}`);\n if (forFilter === void 0) { forFilter = false; }\n if (ignoreAggData === void 0) { ignoreAggData = false; }\n // hack - the grid is getting refreshed before this bean gets initialised, race condition.\n // really should have a way so they get initialised in the right order???\n if (!this.initialised) {\n this.init();\n }\n if (!rowNode) {\n return;\n }\n // pull these out to make code below easier to read\n var colDef = column.getColDef();\n var field = colDef.field;\n var colId = column.getId();\n var data = rowNode.data;\n var result;\n // if there is a value getter, this gets precedence over a field\n var groupDataExists = rowNode.groupData && rowNode.groupData[colId] !== undefined;\n var aggDataExists = !ignoreAggData && rowNode.aggData && rowNode.aggData[colId] !== undefined;\n if (forFilter && colDef.filterValueGetter) {\n result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);\n }\n else if (this.gridOptionsWrapper.isTreeData() && aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (this.gridOptionsWrapper.isTreeData() && colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (this.gridOptionsWrapper.isTreeData() && (field && data)) {\n result = utils_1._.getValueUsingField(data, field, column.isFieldContainsDots());\n }\n else if (groupDataExists) {\n result = rowNode.groupData[colId];\n }\n else if (aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (field && data) {\n result = utils_1._.getValueUsingField(data, field, column.isFieldContainsDots());\n }\n // the result could be an expression itself, if we are allowing cell values to be expressions\n if (this.cellExpressions && (typeof result === 'string') && result.indexOf('=') === 0) {\n var cellValueGetter = result.substring(1);\n result = this.executeValueGetter(cellValueGetter, data, column, rowNode);\n }\n return result;\n };\n ValueService.prototype.setValue = function (rowNode, colKey, newValue) {\n var column = this.columnController.getPrimaryColumn(colKey);\n if (!rowNode || !column) {\n return;\n }\n // this will only happen if user is trying to paste into a group row, which doesn't make sense\n // the user should not be trying to paste into group rows\n var data = rowNode.data;\n if (utils_1._.missing(data)) {\n rowNode.data = {};\n }\n // for backwards compatibility we are also retrieving the newValueHandler as well as the valueSetter\n var _a = column.getColDef(), field = _a.field, newValueHandler = _a.newValueHandler, valueSetter = _a.valueSetter;\n // need either a field or a newValueHandler for this to work\n if (utils_1._.missing(field) && utils_1._.missing(newValueHandler) && utils_1._.missing(valueSetter)) {\n // we don't tell user about newValueHandler, as that is deprecated\n console.warn(\"ag-Grid: you need either field or valueSetter set on colDef for editing to work\");\n return;\n }\n var params = {\n node: rowNode,\n data: rowNode.data,\n oldValue: this.getValue(column, rowNode),\n newValue: newValue,\n colDef: column.getColDef(),\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n params.newValue = newValue;\n var valueWasDifferent;\n if (newValueHandler && utils_1._.exists(newValueHandler)) {\n valueWasDifferent = newValueHandler(params);\n }\n else if (utils_1._.exists(valueSetter)) {\n valueWasDifferent = this.expressionService.evaluate(valueSetter, params);\n }\n else {\n valueWasDifferent = this.setValueUsingField(data, field, newValue, column.isFieldContainsDots());\n }\n // in case user forgot to return something (possible if they are not using TypeScript\n // and just forgot, or using an old newValueHandler we didn't always expect a return\n // value here), we default the return value to true, so we always refresh.\n if (valueWasDifferent === undefined) {\n valueWasDifferent = true;\n }\n // if no change to the value, then no need to do the updating, or notifying via events.\n // otherwise the user could be tabbing around the grid, and cellValueChange would get called\n // all the time.\n if (!valueWasDifferent) {\n return;\n }\n // reset quick filter on this row\n rowNode.resetQuickFilterAggregateText();\n this.valueCache.onDataChanged();\n params.newValue = this.getValue(column, rowNode);\n var onCellValueChanged = column.getColDef().onCellValueChanged;\n if (typeof onCellValueChanged === 'function') {\n // to make callback async, do in a timeout\n setTimeout(function () { return onCellValueChanged(params); }, 0);\n }\n var event = {\n type: events_1.Events.EVENT_CELL_VALUE_CHANGED,\n event: null,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n column: params.column,\n api: params.api,\n colDef: params.colDef,\n columnApi: params.columnApi,\n context: params.context,\n data: rowNode.data,\n node: rowNode,\n oldValue: params.oldValue,\n newValue: params.newValue,\n value: params.newValue\n };\n this.eventService.dispatchEvent(event);\n };\n ValueService.prototype.setValueUsingField = function (data, field, newValue, isFieldContainsDots) {\n if (!field) {\n return false;\n }\n // if no '.', then it's not a deep value\n var valuesAreSame = false;\n if (!isFieldContainsDots) {\n data[field] = newValue;\n }\n else {\n // otherwise it is a deep value, so need to dig for it\n var fieldPieces = field.split('.');\n var currentObject = data;\n while (fieldPieces.length > 0 && currentObject) {\n var fieldPiece = fieldPieces.shift();\n if (fieldPieces.length === 0) {\n currentObject[fieldPiece] = newValue;\n }\n else {\n currentObject = currentObject[fieldPiece];\n }\n }\n }\n return !valuesAreSame;\n };\n ValueService.prototype.executeFilterValueGetter = function (valueGetter, data, column, rowNode) {\n var params = {\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n return this.expressionService.evaluate(valueGetter, params);\n };\n ValueService.prototype.executeValueGetter = function (valueGetter, data, column, rowNode) {\n var colId = column.getId();\n // if inside the same turn, just return back the value we got last time\n var valueFromCache = this.valueCache.getValue(rowNode, colId);\n if (valueFromCache !== undefined) {\n return valueFromCache;\n }\n var params = {\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n var result = this.expressionService.evaluate(valueGetter, params);\n // if a turn is active, store the value in case the grid asks for it again\n this.valueCache.setValue(rowNode, colId, result);\n return result;\n };\n ValueService.prototype.getValueCallback = function (node, field) {\n var otherColumn = this.columnController.getPrimaryColumn(field);\n if (otherColumn) {\n return this.getValue(otherColumn, node);\n }\n return null;\n };\n // used by row grouping and pivot, to get key for a row. col can be a pivot col or a row grouping col\n ValueService.prototype.getKeyForNode = function (col, rowNode) {\n var value = this.getValue(col, rowNode);\n var keyCreator = col.getColDef().keyCreator;\n var result = keyCreator ? keyCreator({ value: value }) : value;\n // if already a string, or missing, just return it\n if (typeof result === 'string' || result == null) {\n return result;\n }\n result = String(result);\n if (result === '[object Object]') {\n utils_1._.doOnce(function () {\n console.warn('ag-Grid: a column you are grouping or pivoting by has objects as values. If you want to group by complex objects then either a) use a colDef.keyCreator (se ag-Grid docs) or b) to toString() on the object to return a key');\n }, 'getKeyForNode - warn about [object,object]');\n }\n return result;\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], ValueService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('expressionService'),\n __metadata(\"design:type\", expressionService_1.ExpressionService)\n ], ValueService.prototype, \"expressionService\", void 0);\n __decorate([\n context_1.Autowired('columnController'),\n __metadata(\"design:type\", columnController_1.ColumnController)\n ], ValueService.prototype, \"columnController\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], ValueService.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Autowired('valueCache'),\n __metadata(\"design:type\", valueCache_1.ValueCache)\n ], ValueService.prototype, \"valueCache\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], ValueService.prototype, \"init\", null);\n ValueService = __decorate([\n context_1.Bean('valueService')\n ], ValueService);\n return ValueService;\n}());\nexports.ValueService = ValueService;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar beanStub_1 = require(\"../context/beanStub\");\nvar utils_1 = require(\"../utils\");\nvar compIdSequence = new utils_1.NumberSequence();\nvar Component = /** @class */ (function (_super) {\n __extends(Component, _super);\n function Component(template) {\n var _this = _super.call(this) || this;\n _this.childComponents = [];\n _this.annotatedEventListeners = [];\n // if false, then CSS class \"ag-hidden\" is applied, which sets \"display: none\"\n _this.displayed = true;\n // if false, then CSS class \"ag-invisible\" is applied, which sets \"visibility: hidden\"\n _this.visible = true;\n // unique id for this row component. this is used for getting a reference to the HTML dom.\n // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying\n // around as we create a new rowComp instance for the same row node).\n _this.compId = compIdSequence.next();\n if (template) {\n _this.setTemplate(template);\n }\n return _this;\n }\n Component.prototype.getCompId = function () {\n return this.compId;\n };\n // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag\n Component.prototype.createChildComponentsFromTags = function (parentNode) {\n var _this = this;\n // we MUST take a copy of the list first, as the 'swapComponentForNode' adds comments into the DOM\n // which messes up the traversal order of the children.\n var childNodeList = utils_1._.copyNodeList(parentNode.childNodes);\n childNodeList.forEach(function (childNode) {\n var childComp = _this.getContext().createComponentFromElement(childNode, function (childComp) {\n // copy over all attributes, including css classes, so any attributes user put on the tag\n // wll be carried across\n _this.copyAttributesFromNode(childNode, childComp.getGui());\n });\n if (childComp) {\n if (childComp.addItems && childNode.children.length) {\n _this.createChildComponentsFromTags(childNode);\n // converting from HTMLCollection to Array\n var items = Array.prototype.slice.call(childNode.children);\n childComp.addItems(items);\n }\n // replace the tag (eg ag-checkbox) with the proper HTMLElement (eg 'div') in the dom\n _this.swapComponentForNode(childComp, parentNode, childNode);\n }\n else if (childNode.childNodes) {\n _this.createChildComponentsFromTags(childNode);\n }\n });\n };\n Component.prototype.copyAttributesFromNode = function (source, dest) {\n utils_1._.iterateNamedNodeMap(source.attributes, function (name, value) {\n dest.setAttribute(name, value);\n });\n };\n Component.prototype.swapComponentForNode = function (newComponent, parentNode, childNode) {\n var eComponent = newComponent.getGui();\n parentNode.replaceChild(eComponent, childNode);\n parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);\n this.childComponents.push(newComponent);\n this.swapInComponentForQuerySelectors(newComponent, childNode);\n };\n Component.prototype.swapInComponentForQuerySelectors = function (newComponent, childNode) {\n var thisProto = Object.getPrototypeOf(this);\n var thisNoType = this;\n while (thisProto != null) {\n var metaData = thisProto.__agComponentMetaData;\n var currentProtoName = (thisProto.constructor).name;\n if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {\n metaData[currentProtoName].querySelectors.forEach(function (querySelector) {\n if (thisNoType[querySelector.attributeName] === childNode) {\n thisNoType[querySelector.attributeName] = newComponent;\n }\n });\n }\n thisProto = Object.getPrototypeOf(thisProto);\n }\n };\n Component.prototype.setTemplate = function (template) {\n var eGui = utils_1._.loadTemplate(template);\n this.setTemplateFromElement(eGui);\n };\n Component.prototype.setTemplateFromElement = function (element) {\n this.eGui = element;\n this.eGui.__agComponent = this;\n this.addAnnotatedEventListeners();\n this.wireQuerySelectors();\n // context will not be available when user sets template in constructor\n var contextIsAvailable = !!this.getContext();\n if (contextIsAvailable) {\n this.createChildComponentsFromTags(this.getGui());\n }\n };\n Component.prototype.createChildComponentsPreConstruct = function () {\n // ui exists if user sets template in constructor. when this happens, we have to wait for the context\n // to be autoWired first before we can create child components.\n var uiExists = !!this.getGui();\n if (uiExists) {\n this.createChildComponentsFromTags(this.getGui());\n }\n };\n Component.prototype.wireQuerySelectors = function () {\n var _this = this;\n if (!this.eGui) {\n return;\n }\n var thisProto = Object.getPrototypeOf(this);\n var _loop_1 = function () {\n var metaData = thisProto.__agComponentMetaData;\n var currentProtoName = (thisProto.constructor).name;\n if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {\n var thisNoType_1 = this_1;\n metaData[currentProtoName].querySelectors.forEach(function (querySelector) {\n var resultOfQuery = _this.eGui.querySelector(querySelector.querySelector);\n if (resultOfQuery) {\n var backingComponent = resultOfQuery.__agComponent;\n if (backingComponent) {\n thisNoType_1[querySelector.attributeName] = backingComponent;\n }\n else {\n thisNoType_1[querySelector.attributeName] = resultOfQuery;\n }\n }\n else {\n // put debug msg in here if query selector fails???\n }\n });\n }\n thisProto = Object.getPrototypeOf(thisProto);\n };\n var this_1 = this;\n while (thisProto != null) {\n _loop_1();\n }\n };\n Component.prototype.addAnnotatedEventListeners = function () {\n var _this = this;\n this.removeAnnotatedEventListeners();\n if (!this.eGui) {\n return;\n }\n var listenerMethods = this.getAgComponentMetaData('listenerMethods');\n if (utils_1._.missingOrEmpty(listenerMethods)) {\n return;\n }\n if (!this.annotatedEventListeners) {\n this.annotatedEventListeners = [];\n }\n listenerMethods.forEach(function (eventListener) {\n var listener = _this[eventListener.methodName].bind(_this);\n _this.eGui.addEventListener(eventListener.eventName, listener);\n _this.annotatedEventListeners.push({ eventName: eventListener.eventName, listener: listener });\n });\n };\n Component.prototype.getAgComponentMetaData = function (key) {\n var res = [];\n var thisProto = Object.getPrototypeOf(this);\n while (thisProto != null) {\n var metaData = thisProto.__agComponentMetaData;\n var currentProtoName = (thisProto.constructor).name;\n // IE does not support Function.prototype.name, so we need to extract\n // the name using a RegEx\n // from: https://matt.scharley.me/2012/03/monkey-patch-name-ie.html\n if (currentProtoName === undefined) {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = funcNameRegex.exec(thisProto.constructor.toString());\n if (results && results.length > 1) {\n currentProtoName = results[1].trim();\n }\n }\n if (metaData && metaData[currentProtoName] && metaData[currentProtoName][key]) {\n res = res.concat(metaData[currentProtoName][key]);\n }\n thisProto = Object.getPrototypeOf(thisProto);\n }\n return res;\n };\n Component.prototype.removeAnnotatedEventListeners = function () {\n var _this = this;\n if (!this.annotatedEventListeners || !this.eGui) {\n return;\n }\n this.annotatedEventListeners.forEach(function (eventListener) {\n _this.eGui.removeEventListener(eventListener.eventName, eventListener.listener);\n });\n this.annotatedEventListeners = [];\n };\n Component.prototype.getGui = function () {\n return this.eGui;\n };\n Component.prototype.setParentComponent = function (component) {\n this.parentComponent = component;\n };\n Component.prototype.getParentComponent = function () {\n return this.parentComponent;\n };\n // this method is for older code, that wants to provide the gui element,\n // it is not intended for this to be in ag-Stack\n Component.prototype.setGui = function (eGui) {\n this.eGui = eGui;\n };\n Component.prototype.queryForHtmlElement = function (cssSelector) {\n return this.eGui.querySelector(cssSelector);\n };\n Component.prototype.queryForHtmlInputElement = function (cssSelector) {\n return this.eGui.querySelector(cssSelector);\n };\n Component.prototype.appendChild = function (newChild) {\n if (utils_1._.isNodeOrElement(newChild)) {\n this.eGui.appendChild(newChild);\n }\n else {\n var childComponent = newChild;\n this.eGui.appendChild(childComponent.getGui());\n this.childComponents.push(childComponent);\n }\n };\n Component.prototype.addFeature = function (context, feature) {\n context.wireBean(feature);\n if (feature.destroy) {\n this.addDestroyFunc(feature.destroy.bind(feature));\n }\n };\n Component.prototype.isDisplayed = function () {\n return this.displayed;\n };\n Component.prototype.setVisible = function (visible) {\n if (visible !== this.visible) {\n this.visible = visible;\n utils_1._.setVisible(this.eGui, visible);\n }\n };\n Component.prototype.setDisplayed = function (displayed) {\n if (displayed !== this.displayed) {\n this.displayed = displayed;\n utils_1._.setDisplayed(this.eGui, displayed);\n var event_1 = {\n type: Component.EVENT_DISPLAYED_CHANGED,\n visible: this.displayed\n };\n this.dispatchEvent(event_1);\n }\n };\n /* public setVisible(visible: boolean, visibilityMode?: 'display' | 'visibility'): void {\n const isDisplay = visibilityMode !== 'visibility';\n if (visible !== this.visible) {\n this.visible = visible;\n \n // ag-hidden: display: none -> setDisplayed();\n // ag-invisible: visibility: hidden => setVisible();\n \n _.addOrRemoveCssClass(this.eGui, isDisplay ? 'ag-hidden' : 'ag-invisible', !visible);\n const event: VisibleChangedEvent = {\n type: Component.EVENT_VISIBLE_CHANGED,\n visible: this.visible\n };\n this.dispatchEvent(event);\n }\n }*/\n Component.prototype.addOrRemoveCssClass = function (className, addOrRemove) {\n utils_1._.addOrRemoveCssClass(this.eGui, className, addOrRemove);\n };\n Component.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.childComponents.forEach(function (childComponent) {\n if (childComponent && childComponent.destroy) {\n childComponent.destroy();\n }\n });\n this.childComponents.length = 0;\n this.removeAnnotatedEventListeners();\n };\n Component.prototype.addGuiEventListener = function (event, listener) {\n var _this = this;\n this.getGui().addEventListener(event, listener);\n this.addDestroyFunc(function () { return _this.getGui().removeEventListener(event, listener); });\n };\n Component.prototype.addCssClass = function (className) {\n utils_1._.addCssClass(this.getGui(), className);\n };\n Component.prototype.removeCssClass = function (className) {\n utils_1._.removeCssClass(this.getGui(), className);\n };\n Component.prototype.getAttribute = function (key) {\n var eGui = this.getGui();\n return eGui ? eGui.getAttribute(key) : null;\n };\n Component.prototype.getRefElement = function (refName) {\n return this.queryForHtmlElement('[ref=\"' + refName + '\"]');\n };\n Component.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n __decorate([\n context_1.PreConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], Component.prototype, \"createChildComponentsPreConstruct\", null);\n return Component;\n}(beanStub_1.BeanStub));\nexports.Component = Component;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agRadioButton_1 = require(\"./agRadioButton\");\nvar utils_1 = require(\"../utils\");\nvar AgToggleButton = /** @class */ (function (_super) {\n __extends(AgToggleButton, _super);\n function AgToggleButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.className = 'ag-toggle-button';\n return _this;\n }\n AgToggleButton.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n utils_1._.addCssClass(this.eIconEl, 'ag-icon');\n };\n AgToggleButton.prototype.updateIcons = function () {\n var value = this.getValue();\n utils_1._.addOrRemoveCssClass(this.eIconEl, 'ag-icon-toggle-on', value);\n utils_1._.addOrRemoveCssClass(this.eIconEl, 'ag-icon-toggle-off', !value);\n };\n AgToggleButton.prototype.setValue = function (value, silent) {\n _super.prototype.setValue.call(this, value, silent);\n utils_1._.addOrRemoveCssClass(this.getGui(), 'ag-selected', this.getValue());\n return this;\n };\n return AgToggleButton;\n}(agRadioButton_1.AgRadioButton));\nexports.AgToggleButton = AgToggleButton;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agInputTextField_1 = require(\"./agInputTextField\");\nvar AgInputNumberField = /** @class */ (function (_super) {\n __extends(AgInputNumberField, _super);\n function AgInputNumberField() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.className = 'ag-number-field';\n _this.inputType = 'number';\n return _this;\n }\n AgInputNumberField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.addDestroyableEventListener(this.eInput, 'blur', function () {\n var value = _this.normalizeValue(_this.eInput.value);\n if (_this.value !== value) {\n _this.setValue(value);\n }\n });\n };\n AgInputNumberField.prototype.normalizeValue = function (value) {\n if (value === '') {\n return '';\n }\n if (this.precision) {\n value = this.adjustPrecision(value);\n }\n var val = parseFloat(value);\n if (this.min != null && val < this.min) {\n value = this.min.toString();\n }\n else if (this.max != null && val > this.max) {\n value = this.max.toString();\n }\n return value;\n };\n AgInputNumberField.prototype.adjustPrecision = function (value) {\n if (this.precision) {\n var floatString = parseFloat(value).toFixed(this.precision);\n value = parseFloat(floatString).toString();\n }\n return value;\n };\n AgInputNumberField.prototype.setMin = function (min) {\n if (this.min === min) {\n return this;\n }\n this.min = min;\n if (this.min != null) {\n this.eInput.setAttribute('min', min.toString());\n }\n else {\n this.eInput.removeAttribute('min');\n }\n return this;\n };\n AgInputNumberField.prototype.setMax = function (max) {\n if (this.max === max) {\n return this;\n }\n this.max = max;\n if (this.max != null) {\n this.eInput.setAttribute('max', max.toString());\n }\n else {\n this.eInput.removeAttribute('max');\n }\n return this;\n };\n AgInputNumberField.prototype.setPrecision = function (precision) {\n this.precision = precision;\n return this;\n };\n AgInputNumberField.prototype.setStep = function (step) {\n if (this.step === step) {\n return this;\n }\n this.step = step;\n if (step != null) {\n this.eInput.setAttribute('step', step.toString());\n }\n else {\n this.eInput.removeAttribute('step');\n }\n return this;\n };\n AgInputNumberField.prototype.setValue = function (value, silent) {\n value = this.adjustPrecision(value);\n var normalizedValue = this.normalizeValue(value);\n if (value != normalizedValue) {\n return this;\n }\n return _super.prototype.setValue.call(this, value, silent);\n };\n return AgInputNumberField;\n}(agInputTextField_1.AgInputTextField));\nexports.AgInputNumberField = AgInputNumberField;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agDialog_1 = require(\"./agDialog\");\nvar context_1 = require(\"../context/context\");\nvar component_1 = require(\"./component\");\nvar componentAnnotations_1 = require(\"./componentAnnotations\");\nvar MessageBox = /** @class */ (function (_super) {\n __extends(MessageBox, _super);\n function MessageBox(config) {\n var _this = _super.call(this, config) || this;\n _this.message = config.message;\n return _this;\n }\n MessageBox.prototype.postConstruct = function () {\n var _this = this;\n var messageBodyComp = new MessageBody();\n this.addFeature(this.getContext(), messageBodyComp);\n messageBodyComp.setMessage(this.message);\n this.setBodyComponent(messageBodyComp);\n _super.prototype.postConstruct.call(this);\n this.addDestroyableEventListener(messageBodyComp, 'onBtOk', function () { return _this.close(); });\n };\n return MessageBox;\n}(agDialog_1.AgDialog));\nexports.MessageBox = MessageBox;\nvar MessageBody = /** @class */ (function (_super) {\n __extends(MessageBody, _super);\n function MessageBody() {\n return _super.call(this, MessageBody.TEMPLATE) || this;\n }\n MessageBody.prototype.setMessage = function (message) {\n this.eCenter.innerText = message;\n };\n MessageBody.prototype.postConstruct = function () {\n this.addDestroyableEventListener(this.eOk, 'click', this.onBtOk.bind(this));\n };\n MessageBody.prototype.onBtOk = function () {\n this.dispatchEvent({ type: 'onBtOk' });\n };\n MessageBody.TEMPLATE = \"
\\n
\\n
\\n \\n
\\n
\";\n __decorate([\n componentAnnotations_1.RefSelector('eCenter'),\n __metadata(\"design:type\", HTMLElement)\n ], MessageBody.prototype, \"eCenter\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eOk'),\n __metadata(\"design:type\", HTMLElement)\n ], MessageBody.prototype, \"eOk\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], MessageBody.prototype, \"postConstruct\", null);\n return MessageBody;\n}(component_1.Component));\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agAbstractInputField_1 = require(\"./agAbstractInputField\");\nvar AgInputTextField = /** @class */ (function (_super) {\n __extends(AgInputTextField, _super);\n function AgInputTextField(config) {\n var _this = _super.call(this) || this;\n _this.className = 'ag-text-field';\n _this.displayTag = 'input';\n _this.inputType = 'text';\n _this.setTemplate(_this.TEMPLATE.replace(/%displayField%/g, _this.displayTag));\n if (config) {\n _this.config = config;\n }\n return _this;\n }\n AgInputTextField.prototype.setValue = function (value, silent) {\n var ret = _super.prototype.setValue.call(this, value, silent);\n if (this.eInput.value !== value) {\n this.eInput.value = value;\n }\n return ret;\n };\n return AgInputTextField;\n}(agAbstractInputField_1.AgAbstractInputField));\nexports.AgInputTextField = AgInputTextField;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar agAbstractInputField_1 = require(\"./agAbstractInputField\");\nvar agAbstractField_1 = require(\"./agAbstractField\");\nvar utils_1 = require(\"../utils\");\nvar AgCheckbox = /** @class */ (function (_super) {\n __extends(AgCheckbox, _super);\n function AgCheckbox() {\n var _this = _super.call(this) || this;\n _this.className = 'ag-checkbox';\n _this.displayTag = 'input';\n _this.inputType = 'checkbox';\n _this.labelAlignment = 'right';\n _this.iconMap = {\n selected: 'checkboxChecked',\n unselected: 'checkboxUnchecked',\n indeterminate: 'checkboxIndeterminate'\n };\n _this.selected = false;\n _this.readOnly = false;\n _this.passive = false;\n _this.setTemplate(_this.TEMPLATE.replace(/%displayField%/g, _this.displayTag));\n return _this;\n }\n AgCheckbox.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n utils_1._.addCssClass(this.eInput, 'ag-hidden');\n this.addIconsPlaceholder();\n this.updateIcons();\n };\n AgCheckbox.prototype.addInputListeners = function () {\n var _this = this;\n this.addDestroyableEventListener(this.getGui(), 'click', function (e) { return _this.onClick(e); });\n this.addDestroyableEventListener(this.eInput, 'change', function (e) { return _this.setValue(e.target.checked, true); });\n };\n AgCheckbox.prototype.addIconsPlaceholder = function () {\n var iconDiv = document.createElement('div');\n this.eWrapper.appendChild(iconDiv);\n this.eIconEl = iconDiv;\n };\n AgCheckbox.prototype.onClick = function (event) {\n // if we don't set the path, then won't work in Edge, as once the is removed from the dom,\n // it's not possible to calculate the path by following the parent's chain. in other browser (eg\n // chrome) there is event.path for this purpose, but missing in Edge.\n utils_1._.addAgGridEventPath(event);\n if (!this.readOnly) {\n this.toggle();\n }\n };\n AgCheckbox.prototype.getNextValue = function () {\n return this.selected === undefined ? true : !this.selected;\n };\n AgCheckbox.prototype.setPassive = function (passive) {\n this.passive = passive;\n };\n AgCheckbox.prototype.setReadOnly = function (readOnly) {\n this.readOnly = readOnly;\n this.updateIcons();\n };\n AgCheckbox.prototype.isReadOnly = function () {\n return this.readOnly;\n };\n AgCheckbox.prototype.isSelected = function () {\n return this.selected;\n };\n AgCheckbox.prototype.toggle = function () {\n var nextValue = this.getNextValue();\n if (this.passive) {\n var event_1 = {\n type: AgCheckbox.EVENT_CHANGED,\n selected: nextValue\n };\n this.dispatchEvent(event_1);\n }\n else {\n this.setValue(nextValue);\n }\n };\n AgCheckbox.prototype.setSelected = function (selected, silent) {\n if (this.selected === selected) {\n return;\n }\n this.selected = typeof selected === 'boolean' ? selected : undefined;\n this.eInput.checked = this.selected;\n this.updateIcons();\n if (!silent) {\n var event_2 = {\n type: agAbstractField_1.AgAbstractField.EVENT_CHANGED,\n selected: this.selected\n };\n this.dispatchEvent(event_2);\n }\n };\n AgCheckbox.prototype.getIconName = function () {\n var value = this.getValue();\n var prop = value === undefined ? 'indeterminate' : (value ? 'selected' : 'unselected');\n var readOnlyStr = this.isReadOnly() ? 'ReadOnly' : '';\n return \"\" + this.iconMap[prop] + readOnlyStr;\n };\n AgCheckbox.prototype.updateIcons = function () {\n utils_1._.clearElement(this.eIconEl);\n this.eIconEl.appendChild(utils_1._.createIconNoSpan(this.getIconName(), this.gridOptionsWrapper, null));\n };\n AgCheckbox.prototype.getValue = function () {\n return this.isSelected();\n };\n AgCheckbox.prototype.setValue = function (value, silent) {\n this.setSelected(value, silent);\n return this;\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], AgCheckbox.prototype, \"gridOptionsWrapper\", void 0);\n return AgCheckbox;\n}(agAbstractInputField_1.AgAbstractInputField));\nexports.AgCheckbox = AgCheckbox;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"./component\");\nvar utils_1 = require(\"../utils\");\nvar PopupComponent = /** @class */ (function (_super) {\n __extends(PopupComponent, _super);\n function PopupComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PopupComponent.prototype.isPopup = function () {\n return true;\n };\n PopupComponent.prototype.setParentComponent = function (container) {\n utils_1._.addCssClass(container.getGui(), 'ag-has-popup');\n _super.prototype.setParentComponent.call(this, container);\n };\n PopupComponent.prototype.destroy = function () {\n var parentComp = this.parentComponent;\n var hasParent = parentComp && parentComp.isAlive();\n if (hasParent) {\n utils_1._.removeCssClass(parentComp.getGui(), 'ag-has-popup');\n }\n _super.prototype.destroy.call(this);\n };\n return PopupComponent;\n}(component_1.Component));\nexports.PopupComponent = PopupComponent;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar changedPath_1 = require(\"../rowModels/clientSide/changedPath\");\nvar rowRenderer_1 = require(\"../rendering/rowRenderer\");\nvar eventService_1 = require(\"../eventService\");\nvar constants_1 = require(\"../constants\");\nvar beanStub_1 = require(\"../context/beanStub\");\nvar events_1 = require(\"../events\");\nvar ChangeDetectionService = /** @class */ (function (_super) {\n __extends(ChangeDetectionService, _super);\n function ChangeDetectionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChangeDetectionService.prototype.init = function () {\n if (this.rowModel.getType() === constants_1.Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n this.addDestroyableEventListener(this.eventService, events_1.Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));\n };\n ChangeDetectionService.prototype.onCellValueChanged = function (event) {\n this.doChangeDetection(event.node, event.column);\n };\n ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {\n if (this.gridOptionsWrapper.isSuppressChangeDetection()) {\n return;\n }\n // clipboard service manages it's own change detection, so no need to do it here.\n // the clipboard manages it own, as otherwise this would happen once for every cell\n // that got updated as part of a paste operation. so eg if 100 cells in a paste operation,\n // this doChangeDetection would get called 100 times (once for each cell), instead clipboard\n // service executes the logic we have here once (in essence batching up all cell changes\n // into one change detection).\n if (this.clipboardService && this.clipboardService.isPasteOperationActive()) {\n return;\n }\n // step 1 of change detection is to update the aggregated values\n if (this.clientSideRowModel && !rowNode.isRowPinned()) {\n var onlyChangedColumns = this.gridOptionsWrapper.isAggregateOnlyChangedColumns();\n var changedPath = new changedPath_1.ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n changedPath.addParentNode(rowNode.parent, [column]);\n this.clientSideRowModel.doAggregate(changedPath);\n }\n // step 2 of change detection is to refresh the cells\n this.rowRenderer.refreshCells();\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], ChangeDetectionService.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.Autowired('rowModel'),\n __metadata(\"design:type\", Object)\n ], ChangeDetectionService.prototype, \"rowModel\", void 0);\n __decorate([\n context_1.Autowired('rowRenderer'),\n __metadata(\"design:type\", rowRenderer_1.RowRenderer)\n ], ChangeDetectionService.prototype, \"rowRenderer\", void 0);\n __decorate([\n context_1.Autowired('eventService'),\n __metadata(\"design:type\", eventService_1.EventService)\n ], ChangeDetectionService.prototype, \"eventService\", void 0);\n __decorate([\n context_1.Optional('clipboardService'),\n __metadata(\"design:type\", Object)\n ], ChangeDetectionService.prototype, \"clipboardService\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], ChangeDetectionService.prototype, \"init\", null);\n ChangeDetectionService = __decorate([\n context_1.Bean('changeDetectionService')\n ], ChangeDetectionService);\n return ChangeDetectionService;\n}(beanStub_1.BeanStub));\nexports.ChangeDetectionService = ChangeDetectionService;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"./component\");\nvar utils_1 = require(\"../utils\");\nvar componentAnnotations_1 = require(\"./componentAnnotations\");\nvar context_1 = require(\"../context/context\");\nvar AgColorPanel = /** @class */ (function (_super) {\n __extends(AgColorPanel, _super);\n function AgColorPanel(config) {\n var _this = _super.call(this, AgColorPanel.TEMPLATE) || this;\n _this.H = 1; // in the [0, 1] range\n _this.S = 1; // in the [0, 1] range\n _this.B = 1; // in the [0, 1] range\n _this.A = 1; // in the [0, 1] range\n _this.isSpectrumDragging = false;\n _this.isSpectrumHueDragging = false;\n _this.isSpectrumAlphaDragging = false;\n _this.colorChanged = false;\n _this.picker = config.picker;\n return _this;\n }\n AgColorPanel.prototype.postConstruct = function () {\n var eGui = this.getGui();\n this.initRecentColors();\n this.addDestroyableEventListener(this.spectrumVal, 'mousedown', this.onSpectrumDraggerDown.bind(this));\n this.addDestroyableEventListener(eGui, 'mousemove', this.onSpectrumDraggerMove.bind(this));\n this.addDestroyableEventListener(this.spectrumHue, 'mousedown', this.onSpectrumHueDown.bind(this));\n this.addDestroyableEventListener(eGui, 'mousemove', this.onSpectrumHueMove.bind(this));\n this.addDestroyableEventListener(this.spectrumAlpha, 'mousedown', this.onSpectrumAlphaDown.bind(this));\n this.addDestroyableEventListener(eGui, 'mousemove', this.onSpectrumAlphaMove.bind(this));\n // Listening to `mouseup` on the document on purpose. The user might release the mouse button\n // outside the UI control. When the mouse returns back to the control's area, the dragging\n // of the thumb is not expected and seen as a bug.\n this.addDestroyableEventListener(document, 'mouseup', this.onMouseUp.bind(this));\n this.addDestroyableEventListener(this.recentColors, 'click', this.onRecentColorClick.bind(this));\n };\n AgColorPanel.prototype.refreshSpectrumRect = function () {\n return this.spectrumValRect = this.spectrumVal.getBoundingClientRect();\n };\n AgColorPanel.prototype.refreshHueRect = function () {\n return this.spectrumHueRect = this.spectrumHue.getBoundingClientRect();\n };\n AgColorPanel.prototype.refreshAlphaRect = function () {\n return this.spectrumAlphaRect = this.spectrumAlpha.getBoundingClientRect();\n };\n AgColorPanel.prototype.onSpectrumDraggerDown = function (e) {\n this.refreshSpectrumRect();\n this.isSpectrumDragging = true;\n this.moveDragger(e);\n };\n AgColorPanel.prototype.onSpectrumDraggerMove = function (e) {\n if (this.isSpectrumDragging) {\n this.moveDragger(e);\n }\n };\n AgColorPanel.prototype.onSpectrumHueDown = function (e) {\n this.refreshHueRect();\n this.isSpectrumHueDragging = true;\n this.moveHueSlider(e);\n };\n AgColorPanel.prototype.onSpectrumHueMove = function (e) {\n if (this.isSpectrumHueDragging) {\n this.moveHueSlider(e);\n }\n };\n AgColorPanel.prototype.onSpectrumAlphaDown = function (e) {\n this.refreshAlphaRect();\n this.isSpectrumAlphaDragging = true;\n this.moveAlphaSlider(e);\n };\n AgColorPanel.prototype.onSpectrumAlphaMove = function (e) {\n if (this.isSpectrumAlphaDragging) {\n this.moveAlphaSlider(e);\n }\n };\n AgColorPanel.prototype.onMouseUp = function () {\n this.isSpectrumDragging = false;\n this.isSpectrumHueDragging = false;\n this.isSpectrumAlphaDragging = false;\n };\n AgColorPanel.prototype.moveDragger = function (e) {\n var valRect = this.spectrumValRect;\n if (valRect) {\n var x = e.clientX - valRect.left;\n var y = e.clientY - valRect.top;\n x = Math.max(x, 0);\n x = Math.min(x, valRect.width);\n y = Math.max(y, 0);\n y = Math.min(y, valRect.height);\n this.setSpectrumValue(x / valRect.width, 1 - y / valRect.height);\n }\n };\n AgColorPanel.prototype.moveHueSlider = function (e) {\n var hueRect = this.spectrumHueRect;\n if (hueRect) {\n var slider = this.spectrumHueSlider;\n var sliderRect = slider.getBoundingClientRect();\n var x = e.clientX - hueRect.left;\n x = Math.max(x, 0);\n x = Math.min(x, hueRect.width);\n this.H = 1 - x / hueRect.width;\n slider.style.left = (x + sliderRect.width / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.moveAlphaSlider = function (e) {\n var alphaRect = this.spectrumAlphaRect;\n if (alphaRect) {\n var slider = this.spectrumAlphaSlider;\n var sliderRect = slider.getBoundingClientRect();\n var x = e.clientX - alphaRect.left;\n x = Math.max(x, 0);\n x = Math.min(x, alphaRect.width);\n this.A = x / alphaRect.width;\n slider.style.left = (x + sliderRect.width / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.update = function () {\n var color = utils_1.Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var spectrumColor = utils_1.Color.fromHSB(this.H * 360, 1, 1);\n var rgbaColor = color.toRgbaString();\n // the recent color list needs to know color has actually changed\n var colorPicker = this.picker;\n var existingColor = utils_1.Color.fromString(colorPicker.getValue());\n if (existingColor.toRgbaString() !== rgbaColor) {\n this.colorChanged = true;\n }\n colorPicker.setValue(rgbaColor);\n this.spectrumColor.style.backgroundColor = spectrumColor.toRgbaString();\n this.spectrumDragger.style.backgroundColor = rgbaColor;\n };\n /**\n * @param saturation In the [0, 1] interval.\n * @param brightness In the [0, 1] interval.\n */\n AgColorPanel.prototype.setSpectrumValue = function (saturation, brightness) {\n var valRect = this.spectrumValRect || this.refreshSpectrumRect();\n if (valRect) {\n var dragger = this.spectrumDragger;\n var draggerRect = dragger.getBoundingClientRect();\n saturation = Math.max(0, saturation);\n saturation = Math.min(1, saturation);\n brightness = Math.max(0, brightness);\n brightness = Math.min(1, brightness);\n this.S = saturation;\n this.B = brightness;\n dragger.style.left = (saturation * valRect.width - draggerRect.width / 2) + 'px';\n dragger.style.top = ((1 - brightness) * valRect.height - draggerRect.height / 2) + 'px';\n this.update();\n }\n };\n AgColorPanel.prototype.initRecentColors = function () {\n var recentColors = AgColorPanel.recentColors;\n var innerHtml = recentColors.map(function (color, index) {\n return \"
\";\n });\n this.recentColors.innerHTML = innerHtml.join('');\n };\n AgColorPanel.prototype.setValue = function (val) {\n var color = utils_1.Color.fromString(val);\n var _a = color.toHSB(), h = _a[0], s = _a[1], b = _a[2];\n this.H = (isNaN(h) ? 0 : h) / 360;\n this.A = color.a;\n var spectrumHueRect = this.spectrumHueRect || this.refreshHueRect();\n var spectrumAlphaRect = this.spectrumAlphaRect || this.refreshAlphaRect();\n this.spectrumHueSlider.style.left = ((this.H - 1) * -spectrumHueRect.width) + \"px\";\n this.spectrumAlphaSlider.style.left = (this.A * spectrumAlphaRect.width) + \"px\";\n this.setSpectrumValue(s, b);\n };\n AgColorPanel.prototype.onRecentColorClick = function (e) {\n var target = e.target;\n if (!utils_1._.exists(target.id)) {\n return;\n }\n var id = parseInt(target.id, 10);\n this.setValue(AgColorPanel.recentColors[id]);\n this.destroy();\n };\n AgColorPanel.prototype.addRecentColor = function () {\n var color = utils_1.Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var rgbaColor = color.toRgbaString();\n var recentColors = AgColorPanel.recentColors;\n if (!this.colorChanged || recentColors[0] === rgbaColor) {\n return;\n }\n // remove duplicate color\n recentColors = recentColors.filter(function (color) { return color != rgbaColor; });\n // add color to head\n recentColors = [rgbaColor].concat(recentColors);\n // ensure we don't exceed max number of recent colors\n if (recentColors.length > AgColorPanel.maxRecentColors) {\n recentColors = recentColors.slice(0, AgColorPanel.maxRecentColors);\n }\n AgColorPanel.recentColors = recentColors;\n };\n AgColorPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.addRecentColor();\n };\n AgColorPanel.maxRecentColors = 8;\n AgColorPanel.recentColors = [];\n AgColorPanel.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate([\n componentAnnotations_1.RefSelector('spectrumColor'),\n __metadata(\"design:type\", HTMLElement)\n ], AgColorPanel.prototype, \"spectrumColor\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('spectrumVal'),\n __metadata(\"design:type\", HTMLElement)\n ], AgColorPanel.prototype, \"spectrumVal\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('spectrumDragger'),\n __metadata(\"design:type\", HTMLElement)\n ], AgColorPanel.prototype, \"spectrumDragger\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('spectrumHue'),\n __metadata(\"design:type\", HTMLElement)\n ], AgColorPanel.prototype, \"spectrumHue\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('spectrumHueSlider'),\n __metadata(\"design:type\", HTMLElement)\n ], AgColorPanel.prototype, \"spectrumHueSlider\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('spectrumAlpha'),\n __metadata(\"design:type\", HTMLElement)\n ], AgColorPanel.prototype, \"spectrumAlpha\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('spectrumAlphaSlider'),\n __metadata(\"design:type\", HTMLElement)\n ], AgColorPanel.prototype, \"spectrumAlphaSlider\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('recentColors'),\n __metadata(\"design:type\", HTMLElement)\n ], AgColorPanel.prototype, \"recentColors\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], AgColorPanel.prototype, \"postConstruct\", null);\n return AgColorPanel;\n}(component_1.Component));\nexports.AgColorPanel = AgColorPanel;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar componentAnnotations_1 = require(\"./componentAnnotations\");\nvar agInputRange_1 = require(\"./agInputRange\");\nvar agAbstractLabel_1 = require(\"./agAbstractLabel\");\nvar agInputNumberField_1 = require(\"./agInputNumberField\");\nvar agAbstractField_1 = require(\"./agAbstractField\");\nvar AgSlider = /** @class */ (function (_super) {\n __extends(AgSlider, _super);\n function AgSlider() {\n var _this = _super.call(this, AgSlider.TEMPLATE) || this;\n _this.labelAlignment = 'top';\n return _this;\n }\n AgSlider.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setMinValue(0);\n };\n AgSlider.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n var eventChanged = agAbstractField_1.AgAbstractField.EVENT_CHANGED;\n this.addDestroyableEventListener(this.eText, eventChanged, function () {\n var textValue = parseFloat(_this.eText.getValue());\n _this.eSlider.setValue(textValue.toString(), true);\n callbackFn(textValue || 0);\n });\n this.addDestroyableEventListener(this.eSlider, eventChanged, function () {\n var sliderValue = _this.eSlider.getValue();\n _this.eText.setValue(sliderValue, true);\n callbackFn(parseFloat(sliderValue));\n });\n return this;\n };\n AgSlider.prototype.setSliderWidth = function (width) {\n this.eSlider.setWidth(width);\n return this;\n };\n AgSlider.prototype.setTextFieldWidth = function (width) {\n this.eText.setWidth(width);\n return this;\n };\n AgSlider.prototype.setMinValue = function (minValue) {\n this.eSlider.setMinValue(minValue);\n this.eText.setMin(minValue);\n return this;\n };\n AgSlider.prototype.setMaxValue = function (maxValue) {\n this.eSlider.setMaxValue(maxValue);\n this.eText.setMax(maxValue);\n return this;\n };\n AgSlider.prototype.getValue = function () {\n return this.eText.getValue();\n };\n AgSlider.prototype.setValue = function (value) {\n if (this.getValue() === value) {\n return this;\n }\n this.eText.setValue(value, true);\n this.eSlider.setValue(value, true);\n this.dispatchEvent({ type: agAbstractField_1.AgAbstractField.EVENT_CHANGED });\n return this;\n };\n AgSlider.prototype.setStep = function (step) {\n this.eSlider.setStep(step);\n this.eText.setStep(step);\n return this;\n };\n AgSlider.TEMPLATE = \"
\\n \\n
\\n \\n \\n
\\n
\";\n __decorate([\n componentAnnotations_1.RefSelector('eLabel'),\n __metadata(\"design:type\", HTMLElement)\n ], AgSlider.prototype, \"eLabel\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eSlider'),\n __metadata(\"design:type\", agInputRange_1.AgInputRange)\n ], AgSlider.prototype, \"eSlider\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eText'),\n __metadata(\"design:type\", agInputNumberField_1.AgInputNumberField)\n ], AgSlider.prototype, \"eText\", void 0);\n return AgSlider;\n}(agAbstractLabel_1.AgAbstractLabel));\nexports.AgSlider = AgSlider;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agAbstractLabel_1 = require(\"./agAbstractLabel\");\nvar componentAnnotations_1 = require(\"./componentAnnotations\");\nvar context_1 = require(\"../context/context\");\nvar dragService_1 = require(\"../dragAndDrop/dragService\");\nvar agInputNumberField_1 = require(\"./agInputNumberField\");\nvar agAbstractField_1 = require(\"./agAbstractField\");\nvar utils_1 = require(\"../utils\");\nvar AgAngleSelect = /** @class */ (function (_super) {\n __extends(AgAngleSelect, _super);\n function AgAngleSelect() {\n var _this = _super.call(this, AgAngleSelect.TEMPLATE) || this;\n _this.radius = 0;\n _this.offsetX = 0;\n _this.offsetY = 0;\n return _this;\n }\n AgAngleSelect.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.dragListener = {\n eElement: this.eParentCircle,\n dragStartPixels: 0,\n onDragStart: function (e) {\n _this.parentCircleRect = _this.eParentCircle.getBoundingClientRect();\n },\n onDragging: function (e) { return _this.calculateAngleDrag(e); },\n onDragStop: function () { }\n };\n this.dragService.addDragSource(this.dragListener);\n this.eAngleValue\n .setLabel('')\n .setLabelWidth(5)\n .setInputWidth(45)\n .setMin(0)\n .setMax(360)\n .setValue(\"\" + this.degrees)\n .onValueChange(function (value) {\n if (value == null || value === '') {\n value = '0';\n }\n value = _this.eAngleValue.normalizeValue(value);\n var floatValue = parseFloat(value);\n if (floatValue > 180) {\n floatValue = floatValue - 360;\n }\n _this.setValue(floatValue);\n });\n this.updateNumberInput();\n if (utils_1._.exists(this.getValue())) {\n this.eAngleValue.setValue(this.normalizeNegativeValue(this.getValue()).toString());\n }\n this.addDestroyableEventListener(this, agAbstractField_1.AgAbstractField.EVENT_CHANGED, function () {\n if (_this.eAngleValue.getInputElement().contains(document.activeElement)) {\n return;\n }\n _this.updateNumberInput();\n });\n };\n AgAngleSelect.prototype.updateNumberInput = function () {\n var normalizedValue = this.normalizeNegativeValue(this.getValue());\n this.eAngleValue.setValue(normalizedValue.toString());\n };\n AgAngleSelect.prototype.positionChildCircle = function (radians) {\n var rect = this.parentCircleRect || { width: 24, height: 24 };\n var eChildCircle = this.eChildCircle;\n var centerX = rect.width / 2;\n var centerY = rect.height / 2;\n eChildCircle.style.left = centerX + Math.cos(radians) * 8 + \"px\";\n eChildCircle.style.top = centerY + Math.sin(radians) * 8 + \"px\";\n };\n AgAngleSelect.prototype.calculatePolar = function () {\n var x = this.offsetX;\n var y = this.offsetY;\n var radians = Math.atan2(y, x);\n this.degrees = this.toDegrees(radians);\n this.radius = Math.sqrt((x * x) + (y * y));\n this.positionChildCircle(radians);\n };\n AgAngleSelect.prototype.calculateCartesian = function () {\n var radians = this.toRadians(this.getValue());\n var radius = this.getRadius();\n this\n .setOffsetX(Math.cos(radians) * radius)\n .setOffsetY(Math.sin(radians) * radius);\n };\n AgAngleSelect.prototype.setOffsetX = function (offset) {\n if (this.offsetX !== offset) {\n this.offsetX = offset;\n this.calculatePolar();\n }\n return this;\n };\n AgAngleSelect.prototype.setOffsetY = function (offset) {\n if (this.offsetY !== offset) {\n this.offsetY = offset;\n this.calculatePolar();\n }\n return this;\n };\n AgAngleSelect.prototype.calculateAngleDrag = function (e) {\n var rect = this.parentCircleRect;\n var centerX = rect.width / 2;\n var centerY = rect.height / 2;\n var x = e.clientX - rect.left;\n var y = e.clientY - rect.top;\n var dx = x - centerX;\n var dy = y - centerY;\n var radians = Math.atan2(dy, dx);\n this.setValue(radians, true);\n };\n AgAngleSelect.prototype.toDegrees = function (radians) {\n return radians / Math.PI * 180;\n };\n AgAngleSelect.prototype.toRadians = function (degrees) {\n return degrees / 180 * Math.PI;\n };\n AgAngleSelect.prototype.normalizeNegativeValue = function (degrees) {\n return degrees < 0 ? 360 + degrees : degrees;\n };\n AgAngleSelect.prototype.normalizeAngle180 = function (radians) {\n radians %= Math.PI * 2;\n if (radians < -Math.PI) {\n radians += Math.PI * 2;\n }\n else if (radians >= Math.PI) {\n radians -= Math.PI * 2;\n }\n return radians;\n };\n AgAngleSelect.prototype.getRadius = function () {\n return this.radius;\n };\n AgAngleSelect.prototype.setRadius = function (r) {\n if (this.radius === r) {\n return this;\n }\n this.radius = r;\n this.calculateCartesian();\n return this;\n };\n AgAngleSelect.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addDestroyableEventListener(this, agAbstractField_1.AgAbstractField.EVENT_CHANGED, function () {\n callbackFn(_this.degrees);\n });\n return this;\n };\n AgAngleSelect.prototype.getValue = function (radians) {\n return radians ? this.toRadians(this.degrees) : this.degrees;\n };\n AgAngleSelect.prototype.setValue = function (degrees, radians) {\n var radiansValue;\n if (!radians) {\n radiansValue = this.normalizeAngle180(this.toRadians(degrees));\n }\n else {\n radiansValue = degrees;\n }\n degrees = this.toDegrees(radiansValue);\n if (this.degrees !== degrees) {\n this.degrees = Math.floor(degrees);\n this.calculateCartesian();\n this.positionChildCircle(radiansValue);\n this.dispatchEvent({ type: agAbstractField_1.AgAbstractField.EVENT_CHANGED });\n }\n return this;\n };\n AgAngleSelect.prototype.setWidth = function (width) {\n utils_1._.setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAngleSelect.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.dragService.removeDragSource(this.dragListener);\n };\n AgAngleSelect.TEMPLATE = \"
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\";\n __decorate([\n componentAnnotations_1.RefSelector('eLabel'),\n __metadata(\"design:type\", HTMLElement)\n ], AgAngleSelect.prototype, \"eLabel\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eParentCircle'),\n __metadata(\"design:type\", HTMLElement)\n ], AgAngleSelect.prototype, \"eParentCircle\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eChildCircle'),\n __metadata(\"design:type\", HTMLElement)\n ], AgAngleSelect.prototype, \"eChildCircle\", void 0);\n __decorate([\n componentAnnotations_1.RefSelector('eAngleValue'),\n __metadata(\"design:type\", agInputNumberField_1.AgInputNumberField)\n ], AgAngleSelect.prototype, \"eAngleValue\", void 0);\n __decorate([\n context_1.Autowired(\"dragService\"),\n __metadata(\"design:type\", dragService_1.DragService)\n ], AgAngleSelect.prototype, \"dragService\", void 0);\n return AgAngleSelect;\n}(agAbstractLabel_1.AgAbstractLabel));\nexports.AgAngleSelect = AgAngleSelect;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agAbstractInputField_1 = require(\"./agAbstractInputField\");\nvar AgSelect = /** @class */ (function (_super) {\n __extends(AgSelect, _super);\n function AgSelect() {\n var _this = _super.call(this) || this;\n _this.className = 'ag-select';\n _this.displayTag = 'select';\n _this.inputType = '';\n _this.setTemplate(_this.TEMPLATE.replace(/%displayField%/g, _this.displayTag));\n return _this;\n }\n AgSelect.prototype.addOptions = function (options) {\n var _this = this;\n options.forEach(function (option) { return _this.addOption(option); });\n return this;\n };\n AgSelect.prototype.addOption = function (option) {\n var optionEl = document.createElement('option');\n optionEl.value = option.value;\n optionEl.text = option.text || option.value;\n this.eInput.appendChild(optionEl);\n return this;\n };\n AgSelect.prototype.setValue = function (value, silent) {\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n return AgSelect;\n}(agAbstractInputField_1.AgAbstractInputField));\nexports.AgSelect = AgSelect;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar context_1 = require(\"../context/context\");\nvar gridOptionsWrapper_1 = require(\"../gridOptionsWrapper\");\nvar ValueCache = /** @class */ (function () {\n function ValueCache() {\n this.cacheVersion = 0;\n }\n ValueCache.prototype.init = function () {\n this.active = this.gridOptionsWrapper.isValueCache();\n this.neverExpires = this.gridOptionsWrapper.isValueCacheNeverExpires();\n };\n ValueCache.prototype.onDataChanged = function () {\n if (this.neverExpires) {\n return;\n }\n this.expire();\n };\n ValueCache.prototype.expire = function () {\n this.cacheVersion++;\n };\n ValueCache.prototype.setValue = function (rowNode, colId, value) {\n if (this.active) {\n if (rowNode.__cacheVersion !== this.cacheVersion) {\n rowNode.__cacheVersion = this.cacheVersion;\n rowNode.__cacheData = {};\n }\n rowNode.__cacheData[colId] = value;\n }\n };\n ValueCache.prototype.getValue = function (rowNode, colId) {\n var valueInCache = this.active\n && rowNode.__cacheVersion === this.cacheVersion\n && rowNode.__cacheData[colId] !== undefined;\n if (valueInCache) {\n return rowNode.__cacheData[colId];\n }\n else {\n return undefined;\n }\n };\n __decorate([\n context_1.Autowired('gridOptionsWrapper'),\n __metadata(\"design:type\", gridOptionsWrapper_1.GridOptionsWrapper)\n ], ValueCache.prototype, \"gridOptionsWrapper\", void 0);\n __decorate([\n context_1.PostConstruct,\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], ValueCache.prototype, \"init\", null);\n ValueCache = __decorate([\n context_1.Bean('valueCache')\n ], ValueCache);\n return ValueCache;\n}());\nexports.ValueCache = ValueCache;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __metadata = (this && this.__metadata) || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar logger_1 = require(\"../logger\");\nvar context_1 = require(\"../context/context\");\nvar context_2 = require(\"../context/context\");\nvar ExpressionService = /** @class */ (function () {\n function ExpressionService() {\n this.expressionToFunctionCache = {};\n }\n ExpressionService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ExpressionService');\n };\n ExpressionService.prototype.evaluate = function (expressionOrFunc, params) {\n if (typeof expressionOrFunc === 'function') {\n // valueGetter is a function, so just call it\n var func = expressionOrFunc;\n return func(params);\n }\n else if (typeof expressionOrFunc === 'string') {\n // valueGetter is an expression, so execute the expression\n var expression = expressionOrFunc;\n return this.evaluateExpression(expression, params);\n }\n else {\n console.error('ag-Grid: value should be either a string or a function', expressionOrFunc);\n }\n };\n ExpressionService.prototype.evaluateExpression = function (expression, params) {\n try {\n var javaScriptFunction = this.createExpressionFunction(expression);\n // the params don't have all these values, rather we add every possible\n // value a params can have, which makes whatever is in the params available.\n var result = javaScriptFunction(params.value, params.context, params.oldValue, params.newValue, params.value, params.node, params.data, params.colDef, params.rowIndex, params.api, params.columnApi, params.getValue, params.column, params.columnGroup);\n return result;\n }\n catch (e) {\n // the expression failed, which can happen, as it's the client that\n // provides the expression. so print a nice message\n // tslint:disable-next-line\n console.log('Processing of the expression failed');\n // tslint:disable-next-line\n console.log('Expression = ' + expression);\n // tslint:disable-next-line\n console.log('Exception = ' + e);\n return null;\n }\n };\n ExpressionService.prototype.createExpressionFunction = function (expression) {\n // check cache first\n if (this.expressionToFunctionCache[expression]) {\n return this.expressionToFunctionCache[expression];\n }\n // if not found in cache, return the function\n var functionBody = this.createFunctionBody(expression);\n var theFunction = new Function('x, ctx, oldValue, newValue, value, node, data, colDef, rowIndex, api, columnApi, getValue, column, columnGroup', functionBody);\n // store in cache\n this.expressionToFunctionCache[expression] = theFunction;\n return theFunction;\n };\n ExpressionService.prototype.createFunctionBody = function (expression) {\n // if the expression has the 'return' word in it, then use as is,\n // if not, then wrap it with return and ';' to make a function\n if (expression.indexOf('return') >= 0) {\n return expression;\n }\n else {\n return 'return ' + expression + ';';\n }\n };\n __decorate([\n __param(0, context_2.Qualifier('loggerFactory')),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [logger_1.LoggerFactory]),\n __metadata(\"design:returntype\", void 0)\n ], ExpressionService.prototype, \"setBeans\", null);\n ExpressionService = __decorate([\n context_1.Bean('expressionService')\n ], ExpressionService);\n return ExpressionService;\n}());\nexports.ExpressionService = ExpressionService;\n","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v21.2.2\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar agAbstractLabel_1 = require(\"./agAbstractLabel\");\nvar utils_1 = require(\"../utils\");\nvar AgAbstractField = /** @class */ (function (_super) {\n __extends(AgAbstractField, _super);\n function AgAbstractField() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AgAbstractField.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addDestroyableEventListener(this, AgAbstractField.EVENT_CHANGED, function () {\n callbackFn(_this.getValue());\n });\n return this;\n };\n AgAbstractField.prototype.getWidth = function () {\n return this.getGui().clientWidth;\n };\n AgAbstractField.prototype.setWidth = function (width) {\n utils_1._.setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAbstractField.prototype.getValue = function () {\n return this.value;\n };\n AgAbstractField.prototype.setValue = function (value, silent) {\n if (this.value === value) {\n return this;\n }\n this.value = value;\n if (!silent) {\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n }\n return this;\n };\n AgAbstractField.EVENT_CHANGED = 'valueChange';\n return AgAbstractField;\n}(agAbstractLabel_1.AgAbstractLabel));\nexports.AgAbstractField = AgAbstractField;\n"],"sourceRoot":""}