{"version":3,"sources":["./node_modules/ag-grid-angular/__ivy_ngcc__/fesm2015/ag-grid-angular.js","./node_modules/ag-grid-community/dist/ag-grid-community.cjs.js","./node_modules/clone-deep/index.js","./node_modules/d3-array/src/ascending.js","./node_modules/d3-array/src/bisect.js","./node_modules/d3-array/src/bisector.js","./node_modules/d3-array/src/max.js","./node_modules/d3-array/src/min.js","./node_modules/d3-array/src/number.js","./node_modules/d3-array/src/quantile.js","./node_modules/d3-array/src/quickselect.js","./node_modules/d3-array/src/range.js","./node_modules/d3-array/src/ticks.js","./node_modules/d3-brush/src/brush.js","./node_modules/d3-brush/src/constant.js","./node_modules/d3-brush/src/event.js","./node_modules/d3-brush/src/index.js","./node_modules/d3-brush/src/noevent.js","./node_modules/d3-color/src/color.js","./node_modules/d3-color/src/define.js","./node_modules/d3-dispatch/src/dispatch.js","./node_modules/d3-drag/src/nodrag.js","./node_modules/d3-drag/src/noevent.js","./node_modules/d3-ease/src/cubic.js","./node_modules/d3-ease/src/sin.js","./node_modules/d3-format/src/defaultLocale.js","./node_modules/d3-format/src/exponent.js","./node_modules/d3-format/src/formatDecimal.js","./node_modules/d3-format/src/formatGroup.js","./node_modules/d3-format/src/formatNumerals.js","./node_modules/d3-format/src/formatPrefixAuto.js","./node_modules/d3-format/src/formatRounded.js","./node_modules/d3-format/src/formatSpecifier.js","./node_modules/d3-format/src/formatTrim.js","./node_modules/d3-format/src/formatTypes.js","./node_modules/d3-format/src/identity.js","./node_modules/d3-format/src/locale.js","./node_modules/d3-format/src/precisionFixed.js","./node_modules/d3-format/src/precisionPrefix.js","./node_modules/d3-format/src/precisionRound.js","./node_modules/d3-hierarchy/src/accessors.js","./node_modules/d3-hierarchy/src/constant.js","./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","./node_modules/d3-hierarchy/src/hierarchy/count.js","./node_modules/d3-hierarchy/src/hierarchy/descendants.js","./node_modules/d3-hierarchy/src/hierarchy/each.js","./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","./node_modules/d3-hierarchy/src/hierarchy/find.js","./node_modules/d3-hierarchy/src/hierarchy/index.js","./node_modules/d3-hierarchy/src/hierarchy/iterator.js","./node_modules/d3-hierarchy/src/hierarchy/leaves.js","./node_modules/d3-hierarchy/src/hierarchy/links.js","./node_modules/d3-hierarchy/src/hierarchy/path.js","./node_modules/d3-hierarchy/src/hierarchy/sort.js","./node_modules/d3-hierarchy/src/hierarchy/sum.js","./node_modules/d3-hierarchy/src/stratify.js","./node_modules/d3-hierarchy/src/treemap/dice.js","./node_modules/d3-hierarchy/src/treemap/index.js","./node_modules/d3-hierarchy/src/treemap/round.js","./node_modules/d3-hierarchy/src/treemap/slice.js","./node_modules/d3-hierarchy/src/treemap/squarify.js","./node_modules/d3-interpolate/src/array.js","./node_modules/d3-interpolate/src/basis.js","./node_modules/d3-interpolate/src/basisClosed.js","./node_modules/d3-interpolate/src/color.js","./node_modules/d3-interpolate/src/constant.js","./node_modules/d3-interpolate/src/date.js","./node_modules/d3-interpolate/src/number.js","./node_modules/d3-interpolate/src/numberArray.js","./node_modules/d3-interpolate/src/object.js","./node_modules/d3-interpolate/src/rgb.js","./node_modules/d3-interpolate/src/round.js","./node_modules/d3-interpolate/src/string.js","./node_modules/d3-interpolate/src/transform/decompose.js","./node_modules/d3-interpolate/src/transform/index.js","./node_modules/d3-interpolate/src/transform/parse.js","./node_modules/d3-interpolate/src/value.js","./node_modules/d3-path/src/path.js","./node_modules/d3-scale/src/band.js","./node_modules/d3-scale/src/constant.js","./node_modules/d3-scale/src/continuous.js","./node_modules/d3-scale/src/init.js","./node_modules/d3-scale/src/linear.js","./node_modules/d3-scale/src/nice.js","./node_modules/d3-scale/src/number.js","./node_modules/d3-scale/src/ordinal.js","./node_modules/d3-scale/src/quantile.js","./node_modules/d3-scale/src/tickFormat.js","./node_modules/d3-scale/src/time.js","./node_modules/d3-selection/src/array.js","./node_modules/d3-selection/src/constant.js","./node_modules/d3-selection/src/creator.js","./node_modules/d3-selection/src/matcher.js","./node_modules/d3-selection/src/namespace.js","./node_modules/d3-selection/src/namespaces.js","./node_modules/d3-selection/src/pointer.js","./node_modules/d3-selection/src/select.js","./node_modules/d3-selection/src/selection/append.js","./node_modules/d3-selection/src/selection/attr.js","./node_modules/d3-selection/src/selection/call.js","./node_modules/d3-selection/src/selection/classed.js","./node_modules/d3-selection/src/selection/clone.js","./node_modules/d3-selection/src/selection/data.js","./node_modules/d3-selection/src/selection/datum.js","./node_modules/d3-selection/src/selection/dispatch.js","./node_modules/d3-selection/src/selection/each.js","./node_modules/d3-selection/src/selection/empty.js","./node_modules/d3-selection/src/selection/enter.js","./node_modules/d3-selection/src/selection/exit.js","./node_modules/d3-selection/src/selection/filter.js","./node_modules/d3-selection/src/selection/html.js","./node_modules/d3-selection/src/selection/index.js","./node_modules/d3-selection/src/selection/insert.js","./node_modules/d3-selection/src/selection/iterator.js","./node_modules/d3-selection/src/selection/join.js","./node_modules/d3-selection/src/selection/lower.js","./node_modules/d3-selection/src/selection/merge.js","./node_modules/d3-selection/src/selection/node.js","./node_modules/d3-selection/src/selection/nodes.js","./node_modules/d3-selection/src/selection/on.js","./node_modules/d3-selection/src/selection/order.js","./node_modules/d3-selection/src/selection/property.js","./node_modules/d3-selection/src/selection/raise.js","./node_modules/d3-selection/src/selection/remove.js","./node_modules/d3-selection/src/selection/select.js","./node_modules/d3-selection/src/selection/selectAll.js","./node_modules/d3-selection/src/selection/selectChild.js","./node_modules/d3-selection/src/selection/selectChildren.js","./node_modules/d3-selection/src/selection/size.js","./node_modules/d3-selection/src/selection/sort.js","./node_modules/d3-selection/src/selection/sparse.js","./node_modules/d3-selection/src/selection/style.js","./node_modules/d3-selection/src/selection/text.js","./node_modules/d3-selection/src/selector.js","./node_modules/d3-selection/src/selectorAll.js","./node_modules/d3-selection/src/sourceEvent.js","./node_modules/d3-selection/src/window.js","./node_modules/d3-shape/src/arc.js","./node_modules/d3-shape/src/area.js","./node_modules/d3-shape/src/array.js","./node_modules/d3-shape/src/constant.js","./node_modules/d3-shape/src/curve/cardinal.js","./node_modules/d3-shape/src/curve/cardinalClosed.js","./node_modules/d3-shape/src/curve/linear.js","./node_modules/d3-shape/src/curve/radial.js","./node_modules/d3-shape/src/descending.js","./node_modules/d3-shape/src/identity.js","./node_modules/d3-shape/src/line.js","./node_modules/d3-shape/src/lineRadial.js","./node_modules/d3-shape/src/math.js","./node_modules/d3-shape/src/noop.js","./node_modules/d3-shape/src/pie.js","./node_modules/d3-shape/src/point.js","./node_modules/d3-time-format/src/defaultLocale.js","./node_modules/d3-time-format/src/locale.js","./node_modules/d3-time/src/day.js","./node_modules/d3-time/src/duration.js","./node_modules/d3-time/src/hour.js","./node_modules/d3-time/src/interval.js","./node_modules/d3-time/src/millisecond.js","./node_modules/d3-time/src/minute.js","./node_modules/d3-time/src/month.js","./node_modules/d3-time/src/second.js","./node_modules/d3-time/src/ticks.js","./node_modules/d3-time/src/utcDay.js","./node_modules/d3-time/src/utcHour.js","./node_modules/d3-time/src/utcMinute.js","./node_modules/d3-time/src/utcMonth.js","./node_modules/d3-time/src/utcWeek.js","./node_modules/d3-time/src/utcYear.js","./node_modules/d3-time/src/week.js","./node_modules/d3-time/src/year.js","./node_modules/d3-timer/src/timeout.js","./node_modules/d3-timer/src/timer.js","./node_modules/d3-transition/src/active.js","./node_modules/d3-transition/src/index.js","./node_modules/d3-transition/src/interrupt.js","./node_modules/d3-transition/src/selection/index.js","./node_modules/d3-transition/src/selection/interrupt.js","./node_modules/d3-transition/src/selection/transition.js","./node_modules/d3-transition/src/transition/attr.js","./node_modules/d3-transition/src/transition/attrTween.js","./node_modules/d3-transition/src/transition/delay.js","./node_modules/d3-transition/src/transition/duration.js","./node_modules/d3-transition/src/transition/ease.js","./node_modules/d3-transition/src/transition/easeVarying.js","./node_modules/d3-transition/src/transition/end.js","./node_modules/d3-transition/src/transition/filter.js","./node_modules/d3-transition/src/transition/index.js","./node_modules/d3-transition/src/transition/interpolate.js","./node_modules/d3-transition/src/transition/merge.js","./node_modules/d3-transition/src/transition/on.js","./node_modules/d3-transition/src/transition/remove.js","./node_modules/d3-transition/src/transition/schedule.js","./node_modules/d3-transition/src/transition/select.js","./node_modules/d3-transition/src/transition/selectAll.js","./node_modules/d3-transition/src/transition/selection.js","./node_modules/d3-transition/src/transition/style.js","./node_modules/d3-transition/src/transition/styleTween.js","./node_modules/d3-transition/src/transition/text.js","./node_modules/d3-transition/src/transition/textTween.js","./node_modules/d3-transition/src/transition/transition.js","./node_modules/d3-transition/src/transition/tween.js","./node_modules/is-plain-object/index.js","./node_modules/isobject/index.js","./node_modules/kind-of/index.js","./node_modules/shallow-clone/index.js","./node_modules/xng-breadcrumb/__ivy_ngcc__/fesm2015/xng-breadcrumb.js","./src/app/core/permissions/portal-permission.ts","./src/app/customer/models/customer.model.ts","./src/app/customer/services/customer.service.ts","./src/app/formiobuilder/components/formbuilder-recurring-payments-list/payment-schedule/payment-schedule.component.ts","./src/app/formiobuilder/components/formbuilder-recurring-payments-list/payment-schedule/payment-schedule.component.html","./src/app/formiobuilder/components/formbuilder-recurring-payments-list/recurring-payment-detail/recurring-payment-detail.component.ts","./src/app/formiobuilder/components/formbuilder-recurring-payments-list/recurring-payment-detail/recurring-payment-detail.component.html","./src/app/invoice/customer-invoice-details/recurring-invoice-cancellation/subscription-cancellation.component.ts","./src/app/invoice/customer-invoice-details/recurring-invoice-cancellation/subscription-cancellation.component.html","./src/app/invoice/invoice-auto-send-schedule/invoice-auto-send-schedule.component.ts","./src/app/invoice/invoice-auto-send-schedule/invoice-auto-send-schedule.component.html","./src/app/invoice/invoice-detail-view/pause-recurring-invoice-dialog/pause-subscription-dialog.component.ts","./src/app/invoice/invoice-detail-view/pause-recurring-invoice-dialog/pause-subscription-dialog.component.html","./src/app/invoice/invoice-detail-view/recurring-invoice-suspension-form/subscription-suspension-form.component.ts","./src/app/invoice/invoice-detail-view/recurring-invoice-suspension-form/subscription-suspension-form.component.html","./src/app/invoice/invoice-notes/invoice-notes.component.html","./src/app/invoice/invoice-notes/invoice-notes.component.ts","./src/app/invoice/invoice-summary/components/print-preview/print-preview.component.ts","./src/app/invoice/invoice-summary/components/print-preview/print-preview.component.html","./src/app/invoice/invoice-summary/invoice-summary.component.ts","./src/app/invoice/invoice-summary/invoice-summary.component.html","./src/app/invoice/invoice-templates/default/invoice-template-default-component.html","./src/app/invoice/invoice-templates/default/invoice-template-default-component.ts","./src/app/invoice/invoice-templates/template1/invoice-template-1-component.html","./src/app/invoice/invoice-templates/template1/invoice-template-1-component.ts","./src/app/invoice/invoice-templates/template2/invoice-template-2-component.html","./src/app/invoice/invoice-templates/template2/invoice-template-2-component.ts","./src/app/invoice/invoice-templates/template3/invoice-template-3-component.html","./src/app/invoice/invoice-templates/template3/invoice-template-3-component.ts","./src/app/invoice/invoice-templates/template4/invoice-template-4-component.html","./src/app/invoice/invoice-templates/template4/invoice-template-4-component.ts","./src/app/invoice/invoice-templates/template5/invoice-template-5-component.html","./src/app/invoice/invoice-templates/template5/invoice-template-5-component.ts","./src/app/invoice/models/estimate.model.ts","./src/app/invoice/models/invoice-template.model.ts","./src/app/invoice/models/invoice.model.ts","./src/app/invoice/send-multiple-invoice/send-multiple-invoice.component.ts","./src/app/invoice/send-multiple-invoice/send-multiple-invoice.component.html","./src/app/invoice/services/estimate-service.service.ts","./src/app/invoice/services/invoice-service.service.ts","./src/app/invoice/services/recurring-invoice.service.ts","./src/app/invoice/utilities.ts","./src/app/reports/services/creditpayment.service.ts","./src/app/shared/components/ag-grid-controls/customer-lookup-ag-grid-control/customer-lookup-ag-grid-control.component.ts","./src/app/shared/components/ag-grid-controls/customer-lookup-ag-grid-control/customer-lookup-ag-grid-control.component.html","./src/app/shared/components/ag-grid-controls/item-lookup-ag-grid-control/item-lookup-ag-grid-control.component.ts","./src/app/shared/components/ag-grid-controls/item-lookup-ag-grid-control/item-lookup-ag-grid-control.component.html","./src/app/shared/components/amount-toggle/amount-toggle.component.ts","./src/app/shared/components/amount-toggle/amount-toggle.component.html","./src/app/shared/components/android-mobile-url/android-mobile-url.component.ts","./src/app/shared/components/android-mobile-url/android-mobile-url.component.html","./src/app/shared/components/breadcrumb/breadcrumb.component.ts","./src/app/shared/components/breadcrumb/breadcrumb.component.html","./src/app/shared/components/cj-grid/cj-grid.component.html","./src/app/shared/components/cj-grid/cj-grid.component.ts","./src/app/shared/components/cj-svg-icon/cj-svg-icon.component.ts","./src/app/shared/components/cj-svg-icon/cj-svg-icon.component.html","./src/app/shared/components/cj-tags/cj-tags.component.ts","./src/app/shared/components/cj-tags/cj-tags.component.html","./src/app/shared/components/cj-typeahead/cj-typeahead.component.ts","./src/app/shared/components/cj-typeahead/cj-typeahead.component.html","./src/app/shared/components/csv-import/csv-column-mapping/csv-column-mapping.component.ts","./src/app/shared/components/csv-import/csv-column-mapping/csv-column-mapping.component.html","./src/app/shared/components/csv-import/csv-import-results-component/csv-import-results.component.ts","./src/app/shared/components/csv-import/csv-import-results-component/csv-import-results.component.html","./src/app/shared/components/csv-import/csv-import-validation-component/csv-import-validation.component.ts","./src/app/shared/components/csv-import/csv-import-validation-component/csv-import-validation.component.html","./src/app/shared/components/csv-import/csv-import-wizard-component/csv-import-wizard-component.ts","./src/app/shared/components/csv-import/csv-import-wizard-component/csv-import-wizard-component.html","./src/app/shared/components/customers/add-customer/add-customer.component.ts","./src/app/shared/components/customers/add-customer/add-customer.component.html","./src/app/shared/components/customers/card-update-form/card-update-form.component.html","./src/app/shared/components/customers/card-update-form/card-update-form.component.ts","./src/app/shared/components/customers/contact-form/contact-form.component.ts","./src/app/shared/components/customers/contact-form/contact-form.component.html","./src/app/shared/components/customers/customer-address-form/customer-address-form.component.ts","./src/app/shared/components/customers/customer-address-form/customer-address-form.component.html","./src/app/shared/components/customers/customercarddata-form/customercarddata-form.component.ts","./src/app/shared/components/customers/customercarddata-form/customercarddata-form.component.html","./src/app/shared/components/customers/search/search.component.ts","./src/app/shared/components/customers/search/search.component.html","./src/app/shared/components/filter/filter.component.ts","./src/app/shared/components/filter/filter.component.html","./src/app/shared/components/forbiddem-access/forbiddem-access.component.ts","./src/app/shared/components/forbiddem-access/forbiddem-access.component.html","./src/app/shared/components/frequency-form/frequency-form.component.ts","./src/app/shared/components/frequency-form/frequency-form.component.html","./src/app/shared/components/heartland-card-tokenizer/heartland-card-tokenizer.component.ts","./src/app/shared/components/heartland-card-tokenizer/heartland-card-tokenizer.component.html","./src/app/shared/components/input-currency/input-currency.component.ts","./src/app/shared/components/input-currency/input-currency.component.html","./src/app/shared/components/ios-mobile-url/ios-mobile-url.component.ts","./src/app/shared/components/ios-mobile-url/ios-mobile-url.component.html","./src/app/shared/components/loader/loader.component.ts","./src/app/shared/components/loader/loader.component.html","./src/app/shared/components/modal-loader/modal-loader.component.ts","./src/app/shared/components/modal-loader/modal-loader.component.html","./src/app/shared/components/notification-schedule-options/notification-schedule-options.component.ts","./src/app/shared/components/notification-schedule-options/notification-schedule-options.component.html","./src/app/shared/components/payment-options_revamp/ach-pay/ach-pay-tc/ach-pay-tc.component.ts","./src/app/shared/components/payment-options_revamp/ach-pay/ach-pay-tc/ach-pay-tc.component.html","./src/app/shared/components/payment-options_revamp/ach-pay/ach-pay.component.ts","./src/app/shared/components/payment-options_revamp/ach-pay/ach-pay.component.html","./src/app/shared/components/payment-options_revamp/card-pay/card-pay.component.ts","./src/app/shared/components/payment-options_revamp/card-pay/card-pay.component.html","./src/app/shared/components/payment-options_revamp/cash-pay/cash-pay.component.ts","./src/app/shared/components/payment-options_revamp/cash-pay/cash-pay.component.html","./src/app/shared/components/payment-options_revamp/manual-pay/manual-pay.component.ts","./src/app/shared/components/payment-options_revamp/manual-pay/manual-pay.component.html","./src/app/shared/components/payment-options_revamp/payment-options.component.ts","./src/app/shared/components/payment-options_revamp/payment-options.component.html","./src/app/shared/components/payment-options_revamp/payment-terms/payment-terms.component.ts","./src/app/shared/components/payment-options_revamp/payment-terms/payment-terms.component.html","./src/app/shared/components/payment/ach-payment/ach-payment.component.ts","./src/app/shared/components/payment/ach-payment/ach-payment.component.html","./src/app/shared/components/payment/card-form/card-form.component.ts","./src/app/shared/components/payment/card-form/card-form.component.html","./src/app/shared/components/payment/card-form/invoice-notes/invoice-notes.component.ts","./src/app/shared/components/payment/card-form/invoice-notes/invoice-notes.component.html","./src/app/shared/components/payment/cash-payment/cash-payment.component.ts","./src/app/shared/components/payment/cash-payment/cash-payment.component.html","./src/app/shared/components/payment/cash-payment/cash-payment.service.ts","./src/app/shared/components/payment/manual-payment/manual-payment.component.ts","./src/app/shared/components/payment/manual-payment/manual-payment.component.html","./src/app/shared/components/payment/payment-option/payment-option.component.html","./src/app/shared/components/payment/payment-option/payment-option.component.ts","./src/app/shared/dialogs/action-password/action-password.component.ts","./src/app/shared/dialogs/action-password/action-password.component.html","./src/app/shared/dialogs/payment-confirm-action/payment-confirm-action.component.ts","./src/app/shared/dialogs/payment-confirm-action/payment-confirm-action.component.html","./src/app/shared/dialogs/sender-dialog/sender-dialog.component.html","./src/app/shared/dialogs/sender-dialog/sender-dialog.component.ts","./src/app/shared/dialogs/yes-no-dialog/yes-no-dialog.component.ts","./src/app/shared/dialogs/yes-no-dialog/yes-no-dialog.component.html","./src/app/shared/dialogs/yes-no-remarks-dialog/yes-no-remarks-dialog.component.ts","./src/app/shared/dialogs/yes-no-remarks-dialog/yes-no-remarks-dialog.component.html","./src/app/shared/directives/autofocus.directive.ts","./src/app/shared/directives/click-outside.directive.ts","./src/app/shared/directives/digits-only.directive.ts","./src/app/shared/models/csv-import.model.ts","./src/app/shared/models/frequency.model.ts","./src/app/shared/models/invoice/manual-payment.model.ts","./src/app/shared/models/settings/notification-schedule-option.ts","./src/app/shared/models/work-order-enum.ts","./src/app/shared/pipes/permission.pipe.ts","./src/app/shared/pipes/safe-html.pipe.ts","./src/app/shared/pipes/safe.pipe.ts","./src/app/shared/pipes/slugify.pipe.ts","./src/app/shared/services/csv-import.service.ts","./src/app/shared/services/manual-payment.service.ts","./src/app/shared/services/service-work-order.service.ts","./src/app/shared/services/user.service.ts","./src/app/shared/shared.module.ts","./src/app/shared/validators/zip-code.validator.ts","./node_modules/@swimlane/ngx-charts/fesm2020/swimlane-ngx-charts.mjs","./node_modules/ag-grid-angular/node_modules/tslib/tslib.es6.js","tslib"],"names":["Object","value","makeNull","exists","allowEmptyString","missing","missingOrEmpty","length","toStringOrNull","toString","attrToNumber","undefined","isNaN","valueParsed","parseInt","attrToBoolean","test","attrToString","referenceCompare","left","right","jsonEquals","val1","val2","val1Json","JSON","stringify","val2Json","defaultComparator","valueA","valueB","accentedCompare","valueAMissing","valueBMissing","toNumber","doQuickCompare","a","b","localeCompare","e","find","collection","predicate","Array","isArray","objToArray","values","collectionAsArray","firstMatchingItem","i","item","callback","object","Set","Map","arr_1","forEach","push","keys","map","key","GenericUtils","freeze","__proto__","ColumnKeyCreator","existingKeys","prototype","addExistingKeys","getUniqueKey","colId","colField","count","idToTry","firstExistingValue","_i","arguments","anyExists","existsAndNotEmpty","last","arr","areEqual","comparator","every","index","compareArrays","array1","array2","shallowCompare","arr1","arr2","sortNumerically","array","sort","removeRepeatsFromArray","thisOneMatches","nextOneMatches","splice","removeFromArray","indexOf","removeAllFromArray","toRemove","insertIntoArray","toIndex","insertArrayIntoArray","dest","src","moveInArray","objectsToMove","slice","reverse","obj","includes","flatten","arrayOfArrays","concat","apply","pushAll","target","source","toStrings","findIndex","fill","start","end","list","some","action","forEachReverse","process","mapped","filter","filtered","reduce","step","initial","result","forEachSnapshotFirst","arrayCopy","ArrayUtils","iterateObject","cloneObject","copy","deepCloneObject","parse","deepCloneDefinition","keysToSkip","res","sourceIsSimpleObject","isNonNullObject","constructor","getProperty","setProperty","copyPropertiesIfPresent","properties","p","copyPropertyIfPresent","property","transform","getAllKeysInObjects","objects","allValues","getAllValuesInObject","anyObject","ret","hasOwnProperty","propertyIsEnumerable","mergeDeep","copyUndefined","makeCopyOfSimpleObjects","sourceValue","destValue","objectIsDueToBeCopied","dontCopy","assign","sources","missingOrEmptyObject","get","expression","defaultValue","split","objectToRead","shift","set","objectToUpdate","deepFreeze","v","getValueUsingField","data","field","fieldContainsDots","fields","currentObject","removeAllReferences","objectName","proto","getPrototypeOf","func","console","warn","writable","defineProperties","ObjectUtils","FUNCTION_STRIP_COMMENTS","FUNCTION_ARGUMENT_NAMES","doOnceFlags","doOnce","getFunctionName","funcConstructor","name","matches","exec","trim","getFunctionParameters","fnStr","replace","match","isFunction","val","call","executeInAWhile","funcs","executeAfter","executeNextVMTurnFuncs","executeNextVMTurnPending","executeNextVMTurn","window","setTimeout","funcsCopy","milliseconds","debounce","wait","immediate","timeout","args","context","callNow","clearTimeout","waitUntil","condition","timeoutMessage","timeStamp","Date","getTime","interval","executed","internalCallback","reachedTimeout","clearInterval","setInterval","compose","fns","arg","composed","f","callIfPresent","FunctionUtils","Context","params","logger","beanWrappers","destroyed","beanClasses","contextParams","log","createBeans","beanInstances","getBeanInstances","wireBeans","beanEntry","beanInstance","createBean","bean","afterPreCreateCallback","Error","autoWireBeans","methodWireBeans","callLifeCycleMethods","_this","createBeanWrapper","bind","constructorParamsMeta","__agBeanMetaData","autowireMethods","agConstructor","constructorParams","getBeansForParameters","newInstance","applyToConstructor","createdBeanNames","join","BeanClass","metaData","beanName","error","forEachMetaDataInHierarchy","attributes","agClassAttributes","attribute","otherBean","lookupBeanInstance","optional","attributeName","methodName","wireParams","initParams","getBeanName","constructorString","substring","parameters","beansList","paramIndex","otherBeanName","Number","wiringBean","providedBeanInstances","lifeCycleMethod","callLifeCycleMethodsOnBean","methodToIgnore","allMethods","methods","allMethodsList","getBean","destroy","destroyBeans","destroyBean","beans","beanAny","argArray","factoryFunction","PreConstruct","descriptor","props","getOrCreateProps","preConstructMethods","PostConstruct","postConstructMethods","PreDestroy","preDestroyMethods","Bean","classConstructor","Autowired","propertyKey","autowiredFunc","Optional","classPrototype","methodOrAttributeName","Qualifier","__decorate","decorators","desc","c","r","getOwnPropertyDescriptor","d","Reflect","decorate","defineProperty","__param","decorator","EventService","allSyncListeners","allAsyncListeners","globalSyncListeners","globalAsyncListeners","asyncFunctionsQueue","scheduled","firedEvents","setBeans","loggerFactory","gridOptionsWrapper","frameworkOverrides","globalEventListener","create","async","useAsyncEvents","addGlobalListener","getListeners","eventType","autoCreateListenerCollection","listenerMap","listeners","noRegisteredListenersExist","size","addEventListener","listener","add","removeEventListener","delete","removeGlobalListener","dispatchEvent","event","dispatchToListeners","type","dispatchEventOnce","processEventListeners","dispatchAsync","globalListeners","flushAsyncQueue","queueCopy","Constants","ROW_BUFFER_SIZE","LAYOUT_INTERVAL","BATCH_WAIT_MILLIS","EXPORT_TYPE_DRAG_COPY","EXPORT_TYPE_CLIPBOARD","EXPORT_TYPE_EXCEL","EXPORT_TYPE_CSV","ROW_MODEL_TYPE_INFINITE","ROW_MODEL_TYPE_VIEWPORT","ROW_MODEL_TYPE_CLIENT_SIDE","ROW_MODEL_TYPE_SERVER_SIDE","ALWAYS","ONLY_WHEN_GROUPING","PINNED_TOP","PINNED_BOTTOM","DOM_LAYOUT_NORMAL","DOM_LAYOUT_PRINT","DOM_LAYOUT_AUTO_HEIGHT","GROUP_AUTO_COLUMN_ID","SOURCE_PASTE","PINNED_RIGHT","PINNED_LEFT","SORT_ASC","SORT_DESC","INPUT_SELECTOR","FOCUSABLE_SELECTOR","FOCUSABLE_EXCLUDE","ModuleNames","exports","ModuleRegistry","register","module","moduleBased","modulesMap","moduleName","registerModules","modules","assertRegistered","reason","isRegistered","warningKey","warningMessage","getRegisteredModules","isPackageBased","__decorate$1","Column","colDef","userProvidedColDef","primary","moving","menuVisible","filterActive","eventService","rowGroupActive","pivotActive","aggregationActive","setState","initialSort","sortIndex","initialSortIndex","hide","initialHide","visible","pinned","setPinned","initialPinned","flex","initialFlex","setColDef","initMinAndMaxWidths","initDotNotation","getUserProvidedColDef","setParent","parent","getParent","setOriginalParent","originalParent","getOriginalParent","initialise","resetActualWidth","validate","suppressDotNotation","isSuppressFieldDotNotation","tooltipFieldContainsDots","tooltipField","minColWidth","getMinColWidth","maxColWidth","getMaxColWidth","minWidth","Math","max","maxWidth","initialWidth","columnUtils","calculateColInitialWidth","setActualWidth","isEmptyGroup","isRowGroupDisplayed","showRowGroup","showingAllGroups","showingThisGroup","getUniqueId","getId","isPrimary","isFilterAllowed","filterDefined","filterFramework","isFieldContainsDots","isTooltipFieldContainsDots","colDefAny","warnOnce","msg","usingCSRM","isRowModelDefault","RowGroupingModule","rowGroupingItems","RichSelectModule","cellEditor","DateTimeCellEditorModule","isTreeData","itemsNotAllowedWithTreeData","width","createColumnFunctionCallbackParams","rowNode","node","column","getContext","api","getApi","columnApi","getColumnApi","isSuppressNavigable","suppressNavigable","userFunc","isCellEditable","group","isEnableGroupEdit","isColumnFunc","editable","isRowDrag","rowDrag","isDndSource","dndSource","isCellCheckboxSelection","checkboxSelection","isSuppressPaste","suppressPaste","isResizable","resizable","editableFunc","setMoving","createColumnEvent","EVENT_MOVING_CHANGED","gridApi","columns","isMoving","getSort","setSort","EVENT_SORT_CHANGED","setMenuVisible","EVENT_MENU_VISIBLE_CHANGED","isMenuVisible","isSortAscending","isSortDescending","isSortNone","isSorting","getSortIndex","setSortIndex","sortOrder","setAggFunc","aggFunc","getAggFunc","getLeft","getOldLeft","oldLeft","getRight","actualWidth","setLeft","EVENT_LEFT_CHANGED","isFilterActive","setFilterActive","active","additionalEventAttributes","EVENT_FILTER_ACTIVE_CHANGED","filterChangedEvent","EVENT_FILTER_CHANGED","setFirstRightPinned","firstRightPinned","EVENT_FIRST_RIGHT_PINNED_CHANGED","setLastLeftPinned","lastLeftPinned","EVENT_LAST_LEFT_PINNED_CHANGED","isFirstRightPinned","isLastLeftPinned","isPinned","isPinnedLeft","isPinnedRight","getPinned","setVisible","newValue","EVENT_VISIBLE_CHANGED","isVisible","getColDef","getColumnGroupShow","columnGroupShow","getColId","getDefinition","getActualWidth","createBaseColDefParams","getColSpan","colSpan","getRowSpan","rowSpan","silent","min","fireColumnWidthChangedEvent","EVENT_WIDTH_CHANGED","isGreaterThanMax","getMinWidth","getMaxWidth","getFlex","setFlex","setMinimum","setRowGroupActive","rowGroup","EVENT_ROW_GROUP_CHANGED","isRowGroupActive","setPivotActive","pivot","EVENT_PIVOT_CHANGED","isPivotActive","isAnyFunctionActive","isValueActive","isAnyFunctionAllowed","isAllowPivot","isAllowRowGroup","isAllowValue","setValueActive","EVENT_VALUE_CHANGED","enablePivot","enableValue","enableRowGroup","getMenuTabs","defaultValues","menuTabs","isLockPosition","lockPosition","isLockVisible","lockVisible","isLockPinned","lockPinned","__decorate$2","ColumnGroup","originalColumnGroup","groupId","instanceId","displayedChildren","localEventService","createUniqueId","reset","children","allLeafColumns","getOriginalColumnGroup","getLeafColumns","col","checkLeft","child","isEnableRtl","lastChild","lastChildLeft","firstChildLeft","createAgEvent","getGroupId","getInstanceId","isChildInThisGroupDeepSearch","wantedChild","foundChild","groupActualWidth","groupChild","addChild","getDisplayedChildren","addLeafColumns","getDisplayedLeafColumns","addDisplayedLeafColumns","getColGroupDef","isPadding","isExpandable","isExpanded","setExpanded","expanded","leafColumns","getChildren","getPaddingLevel","calculateDisplayedColumns","parentWithExpansion","EVENT_DISPLAYED_CHILDREN_CHANGED","emptyGroup","headerGroupShow","HEADER_GROUP_SHOW_OPEN","HEADER_GROUP_SHOW_CLOSED","OriginalColumnGroup","colGroupDef","padding","level","expandable","openByDefault","getLevel","EVENT_EXPANDED_CHANGED","setChildren","setupExpandable","setExpandable","onColumnVisibilityChanged","atLeastOneShowingWhenOpen","atLeastOneShowingWhenClosed","atLeastOneChangeable","findChildrenRemovingPadding","j","abstractColumn","event_1","EVENT_EXPANDABLE_CHANGED","items","skipBecausePadding","DefaultColumnTypes","numericColumn","headerClass","cellClass","rightAligned","AG_GRID_STOP_PROPAGATION","PASSIVE_EVENTS","supports","stopPropagationForAgGrid","isStopPropagationForAgGrid","isEventSupported","tags","select","change","submit","load","abort","eventChecker","eventName","el","document","createElement","isSupported","setAttribute","getComponentForEvent","sourceElement","getTarget","renderedComp","getDomData","parentElement","addChangeListener","element","eventNoType","srcElement","isElementInEventPath","getEventPath","createEventPath","pointer","addAgGridEventPath","__agGridEventPath","deepPath","path","composedPath","addSafePassiveEventListener","eElement","isPassive","options","passive","EventUtils","__decorate$3","BeanStub","destroyFunctions","__v_skip","isAlive","getFrameworkOverrides","EVENT_DESTROYED","dispatchEventAsync","addManagedListener","HTMLElement","destroyFunc","fn","addDestroyFunc","createManagedBean","__extends","extendStatics","setPrototypeOf","__","__decorate$4","__param$1","ColumnFactory","_super","createColumnTree","defs","primaryColumns","existingTree","columnKeyCreator","_a","extractExistingTreeData","existingCols","existingGroups","existingColKeys","unbalancedTree","recursivelyCreateColumns","treeDept","findMaxDept","columnTree","balanceColumnTree","deptFirstCallback","depthFirstOriginalTreeSearch","createForAutoGroups","autoGroupCols","gridBalancedTree","autoColBalancedTree","fakeTreeItem","createAutoGroupTreeItem","balancedColumnTree","dept","findDepth","nextChild","autoGroup","currentDept","columnDept","originalGroup","newChildren","firstPaddedGroup","currentPaddedGroup","newColId","colGroupDefMerged","createMergedColGroupDef","paddedGroup","hasGroups","leaf","treeChildren","maxDeptThisLevel","newDept","existingColsCopy","def","newGroupOrColumn","isColumnGroup","createColumnGroup","createColumn","existingColumns","existingGroup","findExistingGroup","getDefaultColGroupDef","checkForDeprecatedItems","colDefMerged","mergeColDefs","findExistingColumn","applyColumnState","noFlexThisCol","widthBeforeUpdate","newColDef","existingCol","existingColDef","newHasId","newHasField","newGroupDef","existingDef","defaultColDef","getDefaultColDef","columnType","assignColumnTypes","typeKeys","invalidArray","allColumnTypes","userTypes","getColumnTypes","t","typeColDef","colDefNoType","headerGroup","suppressRowGroup","suppressAggregation","displayName","headerName","abstractColDef","Events","EVENT_COLUMN_EVERYTHING_CHANGED","EVENT_NEW_COLUMNS_LOADED","EVENT_COLUMN_PIVOT_MODE_CHANGED","EVENT_COLUMN_ROW_GROUP_CHANGED","EVENT_EXPAND_COLLAPSE_ALL","EVENT_COLUMN_PIVOT_CHANGED","EVENT_GRID_COLUMNS_CHANGED","EVENT_COLUMN_VALUE_CHANGED","EVENT_COLUMN_MOVED","EVENT_COLUMN_VISIBLE","EVENT_COLUMN_PINNED","EVENT_COLUMN_GROUP_OPENED","EVENT_COLUMN_RESIZED","EVENT_DISPLAYED_COLUMNS_CHANGED","EVENT_VIRTUAL_COLUMNS_CHANGED","EVENT_ASYNC_TRANSACTIONS_FLUSHED","EVENT_ROW_GROUP_OPENED","EVENT_ROW_DATA_CHANGED","EVENT_ROW_DATA_UPDATED","EVENT_PINNED_ROW_DATA_CHANGED","EVENT_RANGE_SELECTION_CHANGED","EVENT_CHART_CREATED","EVENT_CHART_RANGE_SELECTION_CHANGED","EVENT_CHART_OPTIONS_CHANGED","EVENT_CHART_DESTROYED","EVENT_TOOL_PANEL_VISIBLE_CHANGED","EVENT_MODEL_UPDATED","EVENT_PASTE_START","EVENT_PASTE_END","EVENT_FILL_START","EVENT_FILL_END","EVENT_CELL_CLICKED","EVENT_CELL_DOUBLE_CLICKED","EVENT_CELL_MOUSE_DOWN","EVENT_CELL_CONTEXT_MENU","EVENT_CELL_VALUE_CHANGED","EVENT_ROW_VALUE_CHANGED","EVENT_CELL_FOCUSED","EVENT_ROW_SELECTED","EVENT_SELECTION_CHANGED","EVENT_CELL_KEY_DOWN","EVENT_CELL_KEY_PRESS","EVENT_CELL_MOUSE_OVER","EVENT_CELL_MOUSE_OUT","EVENT_FILTER_MODIFIED","EVENT_FILTER_OPENED","EVENT_VIRTUAL_ROW_REMOVED","EVENT_ROW_CLICKED","EVENT_ROW_DOUBLE_CLICKED","EVENT_GRID_READY","EVENT_GRID_SIZE_CHANGED","EVENT_VIEWPORT_CHANGED","EVENT_SCROLLBAR_WIDTH_CHANGED","EVENT_FIRST_DATA_RENDERED","EVENT_DRAG_STARTED","EVENT_DRAG_STOPPED","EVENT_CHECKBOX_CHANGED","EVENT_ROW_EDITING_STARTED","EVENT_ROW_EDITING_STOPPED","EVENT_CELL_EDITING_STARTED","EVENT_CELL_EDITING_STOPPED","EVENT_BODY_SCROLL","EVENT_ANIMATION_QUEUE_EMPTY","EVENT_HEIGHT_SCALE_CHANGED","EVENT_PAGINATION_CHANGED","EVENT_COMPONENT_STATE_CHANGED","EVENT_BODY_HEIGHT_CHANGED","EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED","EVENT_SCROLL_VISIBILITY_CHANGED","EVENT_COLUMN_HOVER_CHANGED","EVENT_FLASH_CELLS","EVENT_PAGINATION_PIXEL_OFFSET_CHANGED","EVENT_DISPLAYED_ROWS_CHANGED","EVENT_LEFT_PINNED_WIDTH_CHANGED","EVENT_RIGHT_PINNED_WIDTH_CHANGED","EVENT_ROW_CONTAINER_HEIGHT_CHANGED","EVENT_ROW_DRAG_ENTER","EVENT_ROW_DRAG_MOVE","EVENT_ROW_DRAG_LEAVE","EVENT_ROW_DRAG_END","EVENT_POPUP_TO_FRONT","EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST","EVENT_COLUMN_PIVOT_CHANGE_REQUEST","EVENT_COLUMN_VALUE_CHANGE_REQUEST","EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST","EVENT_KEYBOARD_FOCUS","EVENT_MOUSE_FOCUS","EVENT_STORE_UPDATED","GroupInstanceIdCreator","existingIds","getInstanceIdForKey","lastResult","reUnescapedHtml","HTML_ESCAPES","utf8_encode","s","stringFromCharCode","String","fromCharCode","ucs2decode","string","output","len","counter","extra","charCodeAt","checkScalarValue","point","toUpperCase","createByte","encodeCodePoint","padStart","symbol","codePoints","codePoint","byteString","stringRepeat","str","floor","maxCount","totalLength","padStr","camelCaseToHyphen","g","toLowerCase","hyphenToCamelCase","capitalise","substr","escapeString","toEscape","chr","camelCaseToHumanText","camelCase","rex","words","word","startsWith","matchStart","StringUtils","convertToMap","pair","_","MapUtils","__extends$1","__decorate$5","__param$2","ColumnController","primaryHeaderRowCount","secondaryHeaderRowCount","secondaryColumnsPresent","gridHeaderRowCount","displayedColumnsLeft","displayedColumnsRight","displayedColumnsCenter","displayedColumns","displayedColumnsAndGroupsMap","viewportColumns","viewportColumnsCenter","rowGroupColumns","valueColumns","pivotColumns","ready","autoGroupsNeedBuilding","forceRecreateAutoGroups","pivotMode","bodyWidth","leftWidth","rightWidth","bodyWidthDirty","colDefVersion","flexColsCalculatedAtLestOnce","init","suppressColumnVirtualisation","isSuppressColumnVirtualisation","isPivotMode","isPivotSettingAllowed","usingTreeData","onAutoGroupColumnDefChanged","updateGridColumns","updateDisplayedColumns","getColDefVersion","setColumnDefs","columnDefs","colsPreviouslyExisted","raiseEventsFunc","compareColumnStatesAndRaiseEvents","valueCache","expire","oldPrimaryColumns","oldPrimaryTree","primaryColumnTree","balancedTreeResult","columnFactory","getColumnsFromTree","primaryColumnsMap","extractRowGroupColumns","extractPivotColumns","extractValueColumns","gridColsArePrimary","isApplyColumnDefOrder","orderGridColumnsLikePrimary","checkViewportColumns","dispatchEverythingChanged","dispatchNewColumnsLoaded","newColumnsLoadedEvent","eventEverythingChanged","gridColumns","colA","colB","primaryIndexA","primaryIndexB","indexAPresent","indexBPresent","gridIndexA","gridIndexB","isAutoRowHeightActive","autoRowHeightColumns","getAllAutoRowHeightCols","setViewport","viewportLeft","scrollPosition","scrollWidth","viewportRight","getDisplayedColumnsStartingAt","currentColumn","getDisplayedColAfter","hashBefore","extractViewport","hashAfter","setViewportPosition","setPivotMode","getSecondaryPivotColumn","pivotKeys","valueColKey","secondaryColumns","valueColumnToFind","getPrimaryColumn","foundColumn","thisPivotKeys","pivotValueColumn","pivotKeyMatches","pivotValueMatches","setFirstRightAndLastLeftPinned","lastLeft","firstRight","autoSizeColumns","skipHeader","animationFrameService","flushAllFrames","columnsAutosized","changesThisTimeAround","isSkipHeaderOnAutoSize","actionOnGridColumns","preferredWidth","autoWidthCalculator","getPreferredWidthForColumn","newWidth","normaliseColumnWidth","fireColumnResizedEvent","finished","flexColumns","event_2","autoSizeColumn","autoSizeAllColumns","allDisplayedColumns","getAllDisplayedColumns","rootColumns","recursiveFindColumns","childColumns","getAllDisplayedTrees","displayedTreeLeft","displayedTreeRight","displayedTreeCentre","getPrimaryColumnTree","getHeaderRowCount","getDisplayedTreeLeft","getDisplayedTreeRight","getDisplayedTreeCentre","isColumnDisplayed","getViewportColumns","getDisplayedLeftColumnsForRow","colSpanActive","getDisplayedColumnsForRow","getDisplayedRightColumnsForRow","filterCallback","emptySpaceBeforeColumn","lastConsideredCol","_loop_1","maxAllowedColSpan","columnsToCheckFilter","colsToRemove","filterPasses","colForFilter","gapBeforeColumn","out_i_1","getViewportCenterColumnsForRow","isColumnInViewport","getAriaColumnIndex","getAllGridColumns","columnLeft","columnRight","leftBounds","rightBounds","columnToMuchLeft","columnToMuchRight","getDisplayedColumnsLeftWidth","getWidthOfColsInList","getDisplayedColumnsRightWidth","updatePrimaryColumnList","masterList","actionIsAdd","columnCallback","atLeastOne","columnToAdd","setRowGroupColumns","colKeys","setPrimaryColumnList","isSuppressMakeColumnVisibleAfterUnGroup","addRowGroupColumn","addRowGroupColumns","removeRowGroupColumns","removeRowGroupColumn","addPivotColumns","setPivotColumns","added","addPivotColumn","removePivotColumns","removePivotColumn","fireColumnEvent","setValueColumns","initialAggFunc","aggFuncService","getDefaultAggFunc","addValueColumns","addValueColumn","colKey","removeValueColumn","removeValueColumns","getPrimaryOrGridColumn","getGridColumn","setColumnWidths","columnWidths","shiftKey","sets","columnWidth","ratios","defaultIsShift","getColResizeDefault","otherCol","widthDiff","otherColWidth","resizeColumnSets","checkMinAndMaxWidthsForSet","columnResizeSet","minWidthAccumulated","maxWidthAccumulated","maxWidthActive","minWidthPasses","maxWidthPasses","resizeSets","passMinMaxCheck","changedCols","allResizedCols","newWidths","finishedCols","finishedColsGrew","loopCount","_loop_2","subsetCols","subsetRatioTotal","pixelsToDistribute","thisColFinished","ratioThisCol","ratioScale","lastCol","colNewWidth","round","state_1","atLeastOneColChanged","flexedCols","refreshFlexedColumns","resizingCols","skipSetLeft","setLeftValues","updateBodyWidths","colsForEvent","setColumnAggFunc","moveRowGroupColumn","fromIndex","moveColumns","columnsToMoveKeys","columnAnimationService","columnsToMove","getGridColumns","failedRules","doesMovePassRules","finish","proposedColumnOrder","doesMovePassMarryChildren","doesMovePassLockedPositions","sortColumnsLikeGridColumns","cols","notAllColsInGridColumns","indexA","indexB","foundNonLocked","rulePassed","allColumnsCopy","columnGroup","marryChildren","newIndexes","newColIndex","maxIndex","minIndex","spread","maxSpread","moveColumn","moveColumnByIndex","getColumnDefs","lastPrimaryOrder","columnDefFactory","buildColumnDefs","getBodyContainerWidth","getContainerWidth","newBodyWidth","newLeftWidth","newRightWidth","atLeastOneChanged","event_3","getValueColumns","getPivotColumns","getRowGroupColumns","getDisplayedCenterColumns","getDisplayedLeftColumns","getDisplayedRightColumns","getDisplayedColumns","getAllPrimaryColumns","getSecondaryColumns","getAllColumnsForQuickFilter","columnsForQuickFilter","isEmpty","isRowGroupEmpty","setColumnVisible","setColumnsVisible","setColumnPinned","setColumnsPinned","getDomLayout","actualPinned","createEvent","updatedColumns","resultOfAction","event_4","getDisplayedColBefore","oldIndex","getDisplayedGroupAfter","getDisplayedGroupAtDirection","getDisplayedGroupBefore","direction","requiredLevel","colGroupLeafColumns","getDisplayColMethod","groupPointer","getColumnGroupAtLevel","originalGroupLevel","groupPointerLevel","groupPointerOriginalColumnGroup","isPinningLeft","isPinningRight","getPrimaryAndSecondaryAndAutoColumns","groupAutoColumns","createStateItemFromColumn","rowGroupIndex","pivotIndex","getColumnState","primaryColumnState","groupAutoColumnState","columnStateList","orderColumnStateList","gridColumnIdMap","itemA","itemB","posA","has","posB","resetColumnState","columnStates","letRowGroupIndex","letPivotIndex","colsToProcess","stateItem","state","applyOrder","columnsWithNoState","success","rowGroupIndexes","pivotIndexes","autoGroupColumnStates","previousRowGroupCols","previousPivotCols","groupAutoColumnId","isAutoGroupColumn","syncColumnWithStateItem","defaultState","applyDefaultsFunc","indexes","oldList","aHasIndex","bHasIndex","oldIndexA","oldIndexB","aHasOldIndex","bHasOldIndex","autoGroupColsCopy","autoCol","getAutoColumn","applyOrderAfterApplyState","newOrder","processedColIds","gridColumnsMap","putFixedColumnsFirst","startState","columnStateBefore","columnStateBeforeMap","isSuppressColumnStateEvents","raiseWhenListsDifferent","colsBefore","colsAfter","idMapper","beforeList","afterList","unchanged","getChangedColumns","changedPredicate","changedColumns","colStateBefore","columnIdMapper","valueChangePredicate","cs","oldActive","activeChanged","aggFuncChanged","changedValues","resizeChangePredicate","pinnedChangePredicate","raiseColumnPinnedEvent","visibilityChangePredicate","raiseColumnVisibleEvent","sortChangePredicate","sortController","dispatchSortChangedEvents","raiseColumnMovedEvent","getCommonValue","valueGetter","firstValue","colStateAfter","colStateAfterMapped","colsIntersectIds","beforeFiltered","afterFiltered","movedColumns","csAfter","csBefore","gridCol","getValue","key1","key2","stateAny","defaultAny","value1","value2","calculated","_b","getColumns","columnLookupCallback","foundColumns","getColumnWithValidation","getColumn","columnList","columnMap","columnsMatch","groupCol","columnMatches","colDefMatches","idMatches","getDisplayNameForColumn","location","includeAggFunc","getHeaderName","wrapHeaderNameWithAggFunc","getDisplayNameForOriginalColumnGroup","getDisplayNameForColumnGroup","headerValueGetter","expressionService","evaluate","isSuppressAggFuncInHeader","pivotActiveOnThisColumn","aggFuncFound","measureActive","aggregationPresent","aggFuncString","localeTextFunc","getLocaleTextFunc","aggFuncStringTranslated","getColumnGroup","allColumnGroups","checkInstanceId","depthFirstAllColumnTreeSearch","matched","isReady","extractColumns","flag","initialRowGroupIndex","initialRowGroup","previousCols","setFlagFunc","getIndexFunc","getInitialIndexFunc","getValueFunc","getInitialValueFunc","colsWithIndex","colsWithValue","colIsNew","initialValue","initialIndex","include","valuePresent","useIndex","getIndexForCol","defaultIndex","initialPivotIndex","initialPivot","resetColumnGroupState","stateItems","groupState","open","setColumnGroupState","getColumnGroupState","columnGroupState","impactedGroups","groupKey","updateGroupsAndDisplayedColumns","setColumnGroupOpened","keyAsString","calculateColumnsForDisplay","columnsForDisplay","isAutoGroupCol","isValueCol","checkColSpanActiveInCols","calculateColumnsForGroupDisplay","groupDisplayColumns","checkFunc","getGroupDisplayColumns","buildDisplayedTrees","isSecondaryColumnsPresent","setSecondaryColumns","colDefs","newColsPresent","processSecondaryColumnDefinitions","secondaryBalancedTree","getProcessSecondaryColDefFunc","groupCallback","getProcessSecondaryColGroupDefFunc","searchForColDefs","colDefs2","isGroup","orderGridColsLikeLastPrimary","addAutoGroupToGridColumns","autoHeight","setupQuickFilterColumns","clearDisplayedAndViewportColumns","lastPrimaryOrderMapped","noColsFound","gridColsMap","oldColsOrdered","oldColsMap","newColsOrdered","newGridColumns","newCol","siblings","leafCols","leafCol","presentInNewGriColumns","noYetInSiblings","lastIndex","isPrimaryColumnGroupsPresent","locked","unlocked","createGroupAutoColumnsIfNeeded","viewportRowLeft","viewportRowRight","viewportRowCenter","updateOpenClosedVisibilityInColumnGroups","deriveDisplayedColumns","derivedDisplayedColumnsFromDisplayedTree","joinDisplayedColumns","setLeftValuesOfColumns","setLeftValuesOfGroups","allColumns","doingRtl","left_1","left_2","tree","depthFirstDisplayedColumnTreeSearch","extractViewportColumns","filterOutColumnsWithinViewport","getVirtualHeaderGroupRow","extractViewportRows","virtualColIds","testGroup","returnValue","addThisItem","viewportWidth","flexViewportWidth","flexAfterDisplayIndex","indexOfCol","isColFlex","afterResizingCols","knownWidthColumns","flexingColumns","flexingColumnSizes","spaceForFlexingColumns","outer","totalFlex","widthByFlexRule","constrainedWidth","remainingSpace","fireResizedEvent","rowModel","resetRowHeights","sizeColumnsToFit","gridWidth","colsToSpread","colsToNotSpread","suppressSizeToFit","colsToFireEventFor","finishedResizing","moveToNotSpread","availablePixels","scale","pixelsForLastCol","visibleColumns","leftVisibleColumns","rightVisibleColumns","centerVisibleColumns","groupInstanceIdCreator","displayedGroupCreator","createDisplayedGroups","updateDisplayedMap","isDisplayed","fromMap","getGroupAutoColumns","groupFullWidthRow","isGroupUseEntireRow","suppressAutoColumn","isPivotSuppressAutoColumn","isGroupSuppressAutoColumn","groupingActive","needAutoColumns","newAutoGroupCols","autoGroupColService","createAutoGroupColumns","autoColsDifferent","autoColsEqual","colsA","colsB","getGridBalancedTree","hasFloatingFilters","floatingFilter","getFirstDisplayedColumn","isRtl","queryOrder","container","padStartWidthZeros","totalStringSize","createArrayOfNumbers","first","isNumeric","parseFloat","isFinite","getMaxSafeInteger","MAX_SAFE_INTEGER","cleanNumber","decToHex","number","bytes","hex","formatNumberTwoDecimalPlacesAndCommas","formatNumberCommas","sum","total","NumberUtils","__extends$2","__decorate$6","ColumnUtils","optionsWrapper","colDefWidth","colDefInitialWidth","getColWidth","getOriginalPathForColumn","originalBalancedTree","found","recursePath","nextNode","__extends$3","__decorate$7","DisplayedGroupCreator","sortedVisibleColumns","oldDisplayedGroups","previousRealPath","previousOriginalPath","oldColumnsMapped","mapOldGroupsById","currentOriginalPath","currentRealPath","firstColumn","newGroup","noColumnGroups","leafGroup","setupParentsIntoColumns","uniqueId","displayedGroups","recursive","columnsOrGroups","columnOrGroup","columnsOrGroup","__extends$4","__decorate$8","HeadlessService","HeadlessService_1","getHeaderRows","headerRows","getRows","rows","getCenterRowContainer","centerRowContainer","postConstruct","createHeaderRows","onPageLoaded","headerRowCount","columnController","groupLevel","createHeaderRow","EVENT_HEADERS_UPDATED","firstRow","paginationProxy","getPageFirstRow","lastRow","getPageLastRow","rowIndex","this_1","getRow","cells","rowVo","id","height","rowHeight","top","rowTop","valueService","EVENT_ROWS_UPDATED","getCurrentPageHeight","EVENT_ROW_CONTAINER_UPDATED","depth","mapColumn","isCol","headerRowIndex","isSafari","isIE","isEdge","isChrome","isFirefox","isIOS","invisibleScrollbar","browserScrollbarWidth","isBrowserIE","documentMode","isBrowserEdge","StyleMedia","isBrowserSafari","navigator","userAgent","isBrowserChrome","win","chrome","webstore","runtime","vendor","isBrowserFirefox","InstallTrigger","isIOSUserAgent","platform","maxTouchPoints","MSStream","getTabIndex","numberTabIndex","tabIndex","getAttribute","body","button","frame","iframe","img","input","isindex","textarea","nodeName","getMaxDivHeight","testUpTo","div","appendChild","style","clientHeight","removeChild","getScrollbarWidth","initScrollbarWidthAndVisibility","opacity","overflow","msOverflowStyle","position","offsetWidth","clientWidth","parentNode","isInvisibleScrollbar","hasOverflowScrolling","prefixes","getElementsByTagName","prefix","computedStyle","getComputedStyle","overflowScrolling","prefixes_1","getBodyWidth","innerHeight","innerWidth","documentElement","getBodyHeight","BrowserUtils","rtlNegativeScroll","addCssClass","className","classList","cssClasses","removeCssClass","remove","newClassName","addOrRemoveCssClass","addOrRemove","radioCssClass","elementClass","otherElementClass","sibling","firstChild","nextSibling","containsClass","contains","onlyClass","startsWithClass","endsWithClass","lastIndexOf","isFocusableFormField","Element","msMatchesSelector","isFocusable","isNotFocusable","isElementVisible","focusable","setDisplayed","displayed","setDisabled","disabled","addOrRemoveDisabledAttribute","removeAttribute","nodeListForEach","querySelectorAll","isElementChildOfClass","cls","maxNest","getElementSize","paddingTop","paddingRight","paddingBottom","paddingLeft","marginTop","marginRight","marginBottom","marginLeft","boxSizing","getInnerHeight","getInnerWidth","getAbsoluteHeight","ceil","offsetHeight","getAbsoluteWidth","marginWidth","isRtlNegativeScroll","template","dir","innerHTML","scrollLeft","getScrollLeft","rtl","abs","setScrollLeft","clearElement","removeElement","cssSelector","removeFromParent","querySelector","offsetParent","loadTemplate","tempDiv","appendHtml","eContainer","htmlTemplate","insertAdjacentHTML","getElementAttribute","ensureDomOrder","eChild","eChildBefore","insertBefore","insertAdjacentElement","setDomChildOrder","orderedChildren","correctCellAtIndex","actualCellAtIndex","insertWithDomOrder","eToInsert","prependDC","documentFragment","addStylesToElement","styles","keyCamelCase","isHorizontalScrollShowing","isVerticalScrollShowing","scrollHeight","setElementWidth","removeProperty","setFixedWidth","formatSize","setElementHeight","setFixedHeight","maxHeight","minHeight","isNode","o","Node","nodeType","isElement","isNodeOrElement","copyNodeList","nodeList","iterateNamedNodeMap","attr","setCheckboxState","eCheckbox","checked","indeterminate","addOrRemoveAttribute","DomUtils","TestHeadless","doSomething","eDiv","gridOptions","headlessService","eTable","headerRow","eTr","eTh","innerText","row","cell","eTd","append","__spreadArrays","il","k","jl","PropertyKeys","STRING_PROPERTIES","OBJECT_PROPERTIES","ARRAY_PROPERTIES","NUMBER_PROPERTIES","BOOLEAN_PROPERTIES","FUNCTION_PROPERTIES","ALL_PROPERTIES","FRAMEWORK_PROPERTIES","__assign","n","__spreadArrays$1","ComponentUtil","getEventCallbacks","EVENT_CALLBACKS","EVENTS","getCallbackForEvent","copyAttributesToGridOptions","component","skipEventDeprecationCheck","pGridOptions","keyExists","toBoolean","processOnChange","changes","changesToApply","currentValue","enableCellTextSelection","setEnableCellTextSelection","quickFilterText","setQuickFilter","autoGroupColumnDef","setAutoGroupColumnDef","paginationPageSize","paginationSetPageSize","groupRemoveSingleChildren","setGroupRemoveSingleChildren","suppressRowDrag","setSuppressRowDrag","suppressMoveWhenRowDragging","setSuppressMoveWhenRowDragging","suppressRowClickSelection","setSuppressRowClickSelection","suppressClipboardPaste","setSuppressClipboardPaste","headerHeight","setHeaderHeight","dynamicApi","setterName","charAt","__spreadArrays$2","ColDefUtil","Color","fromString","fromHexString","nameToHex","fromRgbaString","hexRe","shortHexRe","rgbRe","rgbaRe","fromArray","fromHSB","h","alpha","rgb","HSBtoRGB","padHex","toHexString","toRgbaString","fractionDigits","components","pow","toHSB","RGBtoHSB","S","H","NaN","delta","rc","gc","bc","B","q","derive","hueShift","saturationFactor","brightnessFactor","opacityFactor","hsb","rgba","brighter","darker","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","stringToArray","strData","delimiter","isNewline","char","insideQuotedField","previousChar","currentChar","nextChar","ensureDataExists","out_row_1","out_column_1","out_position_1","CsvUtils","getNameOfClass","theClass","funcNameRegex","funcAsString","results","findLineByLeastSquares","maxDecimals","sum_x","sum_y","sum_xy","sum_xx","y","x","m","toFixed","cssStyleObjectToMarkup","stylesToUse","resParts","styleKey","styleValue","styleKeyDashed","message","eMessage","eBox","bindCellRendererToHtmlElement","cellRendererPromise","eTarget","then","cellRenderer","gui","getGui","GeneralUtils","setAriaAttribute","ariaAttributeName","removeAriaAttribute","getAriaSortState","getAriaLevel","getAriaPosInSet","getAriaDescribedBy","setAriaLabel","label","setAriaLabelledBy","labelledBy","setAriaDescribedBy","describedby","setAriaLevel","setAriaDisabled","setAriaExpanded","removeAriaExpanded","setAriaSetSize","setsize","setAriaPosInSet","setAriaMultiSelectable","multiSelectable","setAriaRowCount","rowCount","setAriaRowIndex","setAriaColCount","colCount","setAriaColIndex","colIndex","setAriaColSpan","setAriaSort","removeAriaSort","setAriaSelected","selected","setAriaChecked","AriaUtils","serialiseDate","date","includeTime","separator","serialised","getFullYear","getMonth","getDate","part","getHours","getMinutes","getSeconds","parseDateTimeFromString","dateStr","timeStr","year","month","day","hours","minutes","seconds","setHours","setMinutes","setSeconds","DateUtils","fuzzyCheckStrings","inputValues","validValues","allSuggestions","fuzzyMatches","invalidInputs","inputValue","validValue","invalidInput","fuzzySuggestions","hideIrrelevant","weighted","search","string_weighted_distances","string_distances","thisSuggestions","text","relevance","toLocaleLowerCase","suggestion","get_bigrams","from","ref","str1","str2","pairs1","pairs2","union","hit_count","len1","weight","idx","FuzzyMatchUtils","iconNameClassMap","columnGroupOpened","columnGroupClosed","columnSelectClosed","columnSelectOpen","columnSelectIndeterminate","columnMovePin","columnMoveHide","columnMoveMove","columnMoveLeft","columnMoveRight","columnMoveGroup","columnMoveValue","columnMovePivot","dropNotAllowed","groupContracted","groupExpanded","chart","close","cancel","check","previous","next","linked","unlinked","colorPicker","groupLoading","menu","maximize","minimize","menuPin","menuValue","menuAddRowGroup","menuRemoveRowGroup","clipboardCopy","clipboardPaste","pivotPanel","rowGroupPanel","valuePanel","columnDrag","save","csvExport","excelExport","smallDown","smallLeft","smallRight","smallUp","sortAscending","sortDescending","sortUnSort","createIcon","iconName","iconContents","createIconNoSpan","eResult","forceCreate","userProvidedIcon","icons","optionsIcons","getIcons","rendererResult","span","cssClass","IconUtils","NUMPAD_DEL_NUMLOCK_ON_KEY","NUMPAD_DEL_NUMLOCK_ON_CHARCODE","isKeyPressed","keyToCheck","which","keyCode","isEventFromPrintableCharacter","altKey","ctrlKey","metaKey","printableCharacter","numpadDelWithNumlockOnForEdgeOrIe","isNumpadDelWithNumlockOnForEdgeOrIe","isUserSuppressingKeyboardEvent","keyboardEvent","editing","gridOptionsFunc","getSuppressKeyboardEventFunc","colDefFunc","suppressKeyboardEvent","colDefFuncResult","isUserSuppressingHeaderKeyboardEvent","suppressHeaderKeyboardEvent","charCode","KeyboardUtils","normalizeWheel","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","detail","wheelDelta","wheelDeltaY","wheelDeltaX","axis","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","isLeftClick","mouseEvent","buttons","areEventsNear","e1","e2","pixelCount","diffX","clientX","diffY","clientY","MouseUtils","sortRowNodesByOrder","rowNodes","rowNodeOrder","nodeA","nodeB","positionA","positionB","bothNodesAreUserNodes","bothNodesAreFillerNodes","__objectId","rowNodeA","rowNodeB","atLeastOneOutOfOrder","traverseNodesWithKey","nodes","keyParts","recursiveSearchNodes","currentNodes","hasChildren","childrenAfterGroup","pop","RowNodeUtils","convertToSet","SetUtils","__assign$1","utils","NumberSequence","initValue","nextValue","valToReturn","peek","skip","AgPromiseStatus","AgPromise","status","IN_PROGRESS","resolution","waiters","onDone","onReject","all","promises","resolve","remainingToResolve","combinedValues","promise","RESOLVED","resolveNow","ifNotResolvedValue","ifResolved","waiter","Timer","timestamp","print","duration","info","__extends$5","__assign$2","__decorate$9","TooltipStates","TooltipFeature","parentComp","DEFAULT_HIDE_TOOLTIP_TIMEOUT","SHOW_QUICK_TOOLTIP_DIFF","FADE_OUT_TOOLTIP_TIMEOUT","NOTHING","tooltipInstanceCount","tooltipMouseTrack","tooltipShowDelay","getTooltipShowDelay","isTooltipMouseTrack","onMouseEnter","onMouseLeave","onMouseMove","onMouseDown","onKeyDown","setToDoNothing","delay","isLastTooltipHiddenRecently","showTooltipTimeoutId","showTooltip","lastMouseEvent","WAITING_TO_SHOW","SHOWING","hideTooltip","clearTimeouts","tooltipComp","positionTooltipUnderLastMouseEvent","destroyTooltipComp","lastTooltipHideTime","tooltipPopupDestroyFunc","now","getTooltipParams","newTooltipComponentCallback","userComponentFactory","newTooltipComponent","tooltipInstanceCopy","compNoLongerNeeded","eGui","addPopupRes","popupService","addPopup","hideFunc","hideTooltipTimeoutId","positionPopupUnderMouseEvent","ePopup","nudgeY","__extends$6","__decorate$a","compIdSequence","elementGettingCreated","Component","annotatedGuiListeners","compId","cssClassStates","setTemplate","preConstructOnComponent","usingBrowserTooltips","isEnableBrowserTooltips","getCompId","tooltipText","setTooltip","newTooltipText","removeTooltip","tooltipFeature","addTooltip","createChildComponentsFromTags","paramsMap","childNodeList","childNodes","childNode","childComp","createComponentFromElement","comp","copyAttributesFromNode","addItems","swapComponentForNode","componentParams","ComponentClass","agStackComponentsRegistry","getComponentClass","newComponent","setParentComponent","eComponent","replaceChild","createComment","swapInComponentForQuerySelectors","thisNoType","iterateOverQuerySelectors","thisPrototype","__agComponentMetaData","currentProtoName","querySelectors","setTemplateFromElement","__agComponent","addAnnotatedGuiEventListeners","wireQuerySelectors","createChildComponentsPreConstruct","setResult","topLevelRefMatch","refSelector","resultOfQuery","removeAnnotatedGuiEventListeners","listenerMethods","getAgComponentMetaData","meta","getRefElement","addAnnotatedGridEventListeners","listenerMetas","thisProto","getFocusableElement","parentComponent","getParentComponent","setGui","queryForHtmlElement","queryForHtmlInputElement","newChild","childComponent","EVENT_DISPLAYED_CHANGED","addGuiEventListener","updateNeeded","refName","__extends$7","PopupComponent","isPopup","hasParent","QuerySelector","selector","querySelectorFunc","RefSelector","addToObjectProps","GridListener","gridListenerFunc","GuiListener","guiListenerFunc","getOrCreateProps$1","instanceName","KeyCode","BACKSPACE","TAB","ENTER","SHIFT","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","DELETE","A","C","V","D","Z","Y","F2","PAGE_UP","PAGE_DOWN","PAGE_HOME","PAGE_END","__extends$8","__decorate$b","TextCellEditor","TEMPLATE","eInput","startValue","cellStartedEdit","focusAfterAttached","keyPress","charPress","getStartValue","highlightAllOnFocus","setValue","preventDefault","afterGuiAttached","translate","setInputAriaLabel","focus","inputEl","getInputElement","setSelectionRange","focusIn","focusEl","focusOut","parseValue","formatValue","useFormatter","refData","DateCompWrapper","dateComponentParams","eParent","alive","newDateComponent","dateComp","tempValue","setDate","setInputPlaceholder","placeholder","OptionsFactory","customFilterOptions","defaultOptions","filterOptions","mapCustomOptions","selectDefaultItem","getFilterOptions","filterOption","requiredProperties","displayKey","defaultOption","firstFilterOption","getDefaultOption","getCustomOption","DEFAULT_FILTER_LOCALE_TEXT","applyFilter","clearFilter","resetFilter","cancelFilter","textFilter","numberFilter","dateFilter","setFilter","filterOoo","empty","equals","notEqual","lessThan","greaterThan","inRange","inRangeStart","inRangeEnd","lessThanOrEqual","greaterThanOrEqual","notContains","endsWith","andCondition","orCondition","dateFormatOoo","__extends$9","__decorate$c","ManagedFocusComponent","isFocusableContainer","skipTabGuardFocus","focusableElement","FOCUS_MANAGED_CLASS","topTabGuard","createTabGuard","bottomTabGuard","addTabGuards","activateTabGuards","forEachTabGuard","guard","onFocus","addKeyDownListeners","onFocusIn","onFocusOut","focusInnerElement","fromBottom","focusController","findFocusableElements","tabGuardsAreActive","onTabKeyDown","defaultPrevented","deactivateTabGuards","nextRoot","findNextFocusableElement","relatedTarget","forceFocusOutOfContainer","up","tabGuardToFocus","side","tabGuard","focusableEl","shouldStopEventPropagation","handleKeyDown","getGridTabIndex","hasAttribute","clearGui","__extends$a","__decorate$d","ProvidedFilter","filterNameKey","applyActive","hidePopup","appliedModel","getFilterTitle","onFilterChanged","providedFilterParams","filterChangedCallback","resetTemplate","templateString","getCssIdentifier","createBodyTemplate","setParams","resetUiToDefaults","updateUiVisibility","setupOnBtApplyDebounce","checkForDeprecatedParams","newRowsAction","newRowsActionKeep","modelsForKeep","getType","isUseApplyButton","createButtonPanel","eButtonsPanel","addButton","clickListener","onBtApply","onBtClear","onBtReset","onBtCancel","applyButton","resetButton","clearButton","getDefaultDebounceMs","debounceMs","getDebounceMs","onBtApplyDebounce","getModel","setModel","model","setModelIntoUi","applyModel","currentModel","afterAppliedFunc","onUiChanged","closeOnApply","newModel","getModelFromUi","isModelValid","previousModel","areModelsEqual","afterFloatingFilter","afterDataChange","onNewRowsLoaded","isNewRowsActionKeep","fromFloatingFilter","filterModifiedCallback","isValid","debounceDefault","__extends$b","__decorate$e","ConditionPosition","SimpleFilter","showValueFrom","doesFilterHaveHiddenInput","EMPTY","showValueTo","IN_RANGE","onFloatingFilterChanged","setTypeFromFloatingFilter","setValueFromFloatingFilter","eType1","eType2","optionsFactory","isDefaultOperator","eJoinOperatorAnd","eJoinOperatorOr","isConditionUiComplete","One","isAllowTwoConditions","Two","filterType","getFilterType","operator","getJoinOperator","condition1","createCondition","condition2","getCondition1Type","getCondition2Type","aIsSimple","bIsSimple","oneSimpleOneCombined","aSimple","bSimple","areSimpleModelsEqual","aCombined","bCombined","isCombined","combinedModel","orChecked","setConditionIntoUi","simpleModel","doesFilterPass","models","combineFunction","individualConditionPasses","getDefaultFilterOptions","allowTwoConditions","suppressAndOrCondition","alwaysShowBothConditions","defaultJoinOperator","getDefaultJoinOperator","putOptionsIntoDropdown","addChangedListeners","option","customOption","createOption","addOption","readOnly","createValueTemplate","isCondition2Enabled","eCondition2Body","eJoinOperatorPanel","filteringLabel","uniqueGroupId","setName","setLabel","onValueChange","customFilterOption","hideFilterInput","EQUALS","NOT_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","CONTAINS","NOT_CONTAINS","STARTS_WITH","ENDS_WITH","__extends$c","ScalarFilter","scalarFilterParams","checkDeprecatedParams","nullComparator","includeBlanksInEquals","includeBlanksInLessThan","includeBlanksInGreaterThan","filterModel","cellValue","range","mapRangeFromModel","filterValue","filterValueTo","to","includeBlanksInRange","compareResult","compareToResult","inRangeInclusive","__extends$d","__decorate$f","DateFilter","dateCondition1FromComp","dateFrom","dateTo","dateCondition1ToComp","dateCondition2FromComp","dateCondition2ToComp","getFromToComponents","compFrom","compTo","dateFilterParams","filterDate","cellAsDate","createDateComponents","createDateCompWrapper","onDateChanged","filterParams","eCondition1PanelFrom","eCondition1PanelTo","eCondition2PanelFrom","eCondition2PanelTo","DEFAULT_FILTER_OPTIONS","pos","positionOne","minValidYear","isValidDate","getUTCFullYear","resetPlaceholder","globalTranslate","ariaLabel","condition1Type","condition2Type","TouchListener","preventMouseClick","destroyFuncs","touching","startListener","onTouchStart","moveListener","onTouchMove","endListener","onTouchEnd","getActiveTouch","touchList","identifier","touchStart","touchEvent","touches","moved","touchStartCopy","touchesMatch","EVENT_LONG_TAP","touch","eventIsFarAway","EVENT_TAP","checkForDoubleTap","lastTapTime","DOUBLE_TAP_MILLIS","EVENT_DOUBLE_TAP","__extends$e","__decorate$g","HeaderComp","lastMovingChanged","refresh","workOutTemplate","currentTemplate","workOutShowMenu","currentShowMenu","workOutSort","currentSort","setDisplayName","setupTap","setupIcons","setMenu","setupSort","setupFilterIcon","currentDisplayName","displayNameSanitised","eText","addInIcon","eSortAsc","eSortDesc","eSortNone","eMenu","eFilter","eIcon","isSuppressTouch","touchListener","suppressMenuHide","isSuppressMenuHide","tapMenuButton","menuTouchListener","enableMenu","showMenuFn","showColumnMenuAfterMouseClick","enableSorting","tapListener","progressSort","menuHides","onIpadAndMenuHides","showMenu","eventSource","menuFactory","showMenuAfterButtonClick","removeSortIcons","eSortOrder","sortUsingCtrl","isMultiSortKeyCtrl","eLabel","nowTime","movedRecently","columnMoving","multiSort","onSortChanged","setMultiSortOrder","alwaysHideNoSort","unSortIcon","isUnSortIcon","allColumnsWithSorting","getColumnsWithSortingOrdered","indexThisCol","moreThanOneColSorting","showIndex","filterPresent","__extends$f","__decorate$h","HeaderGroupComp","checkWarnings","setupLabel","addGroupExpandIcon","setupExpandIcons","paramsAny","message_1","expandAction","newExpandedValue","addTouchAndClickListeners","eCloseIcon","eOpenIcon","stopPropagationAction","updateIconVisibility","__decorate$i","RowNode","childrenMapped","oldRowTop","selectable","OBJECT_ID_SEQUENCE","alreadyRendered","highlighted","setData","setDataCommon","updateData","update","oldData","onDataChanged","updateDataOnDetailNode","checkRowSelectable","createDataChangedEvent","dispatchLocalEvent","detailNode","newData","EVENT_DATA_CHANGED","createLocalRowEvent","getRowIndexString","rowPinned","createDaemonNode","oldNode","daemon","setDataAndId","setId","selectionController","syncInRowNode","isRowSelectableFunc","getIsRowSelectableFunc","setRowSelectable","newVal","EVENT_SELECTABLE_CHANGED","getRowNodeId","getRowNodeIdFunc","ID_PREFIX_ROW_GROUP","isPixelInRange","pixel","setFirstChild","EVENT_FIRST_CHILD_CHANGED","setLastChild","EVENT_LAST_CHILD_CHANGED","setChildIndex","childIndex","EVENT_CHILD_INDEX_CHANGED","setRowTop","EVENT_TOP_CHANGED","clearRowTopAndRowIndex","setRowIndex","setDragging","dragging","EVENT_DRAGGING_CHANGED","setHighlighted","EVENT_HIGHLIGHT_CHANGED","setAllChildrenCount","allChildrenCount","EVENT_ALL_CHILDREN_COUNT_CHANGED","setMaster","master","EVENT_MASTER_CHANGED","setRowHeight","estimated","rowHeightEstimated","EVENT_HEIGHT_CHANGED","EVENT_ROW_INDEX_CHANGED","setUiLevel","uiLevel","EVENT_UI_LEVEL_CHANGED","createGlobalRowEvent","mainEventService","isGroupIncludeFooter","rowRenderer","refreshCells","setDataValue","oldValue","dispatchCellChangedEvent","setGroupValue","groupData","columnId","setAggData","newAggData","colIds","aggData","oldAggData","updateHasChildren","footer","__hasChildren","EVENT_HAS_CHILDREN_CHANGED","isEmptyRowGroupNode","cellChangedEvent","EVENT_CELL_CHANGED","resetQuickFilterAggregateText","quickFilterAggregateText","isSelected","depthFirstSearch","calculateSelectedFromChildren","atLeastOneSelected","atLeastOneDeSelected","atLeastOneMixed","newSelectedValue","childState","selectThisNode","setSelectedInitialValue","setSelected","clearSelection","suppressFinishActions","setSelectedParams","rangeSelect","isRowPinned","groupSelectsChildren","isGroupSelectsChildren","groupSelectsFiltered","getLastSelectedNode","newRowClicked","allowMultiSelect","isRowSelectionMulti","nodesChanged","doRowRangeSelection","setLastSelectedNode","updatedCount","skipThisNode","thisNodeWasSelected","selectChildNodes","clearOtherNodes","updateGroupsFromChildrenSelections","groupsSelectChildren","lastSelectedNode","nodesToSelect","getNodesInRangeForSelection","nodeWasSelected","isParentOfNode","potentialParent","selectionNotAllowed","selectionNotChanged","childrenAfterFilter","EVENT_MOUSE_ENTER","EVENT_MOUSE_LEAVE","getFirstChildOfFirstChild","rowGroupColumn","currentRowNode","isCandidate","foundFirstChildPath","nodeToSwapIn","parentRowNode","isFullWidthCell","isFullWidthCellFunc","getIsFullWidthCellFunc","getRoute","ID_PREFIX_TOP_PINNED","ID_PREFIX_BOTTOM_PINNED","__extends$g","__decorate$j","CheckboxSelectionComponent","setPassive","getCheckboxId","onSelectionChanged","onSelectableChanged","showOrHideSelect","stateName","onCheckedClicked","isGroupSelectsFiltered","onUncheckedClicked","previousValue","getPreviousValue","checkboxVisibleIsDynamic","checkboxCallbackExists","showOrHideSelectListener","DateComponent","propertyName","isCellRenderer","HeaderComponent","HeaderGroupComponent","CellRendererComponent","PinnedRowCellRendererComponent","CellEditorComponent","InnerRendererComponent","LoadingOverlayComponent","NoRowsOverlayComponent","TooltipComponent","FilterComponent","FloatingFilterComponent","ToolPanelComponent","StatusPanelComponent","__extends$h","__decorate$k","ComponentSource","UserComponentFactory","createAndInitUserComponent","newHeaderComponent","newHeaderGroupComponent","newFullWidthGroupRowInnerCellRenderer","groupRowRendererParams","newFullWidthCellRenderer","cellRendererType","cellRendererName","newCellRenderer","newCellEditor","newInnerCellRenderer","newLoadingOverlayComponent","newNoRowsOverlayComponent","newFilterComponent","defaultFilter","newSetFilterCellRenderer","newFloatingFilterComponent","defaultFloatingFilter","newToolPanelComponent","toolPanelDef","newStatusPanelComponent","definitionObject","paramsFromGrid","componentType","defaultComponentName","componentAndParams","createComponentInstance","componentInstance","createFinalParams","paramsFromSelector","addReactHacks","deferredInit","initComponent","agGridReact","frameworkComponentWrapper","createUserComponentFromConcreteClass","clazz","agGridParams","internalComponent","lookupComponentClassDef","hardcodedNameComponent","HardcodedJsComponent","hardcodedJsFunction","HardcodedFwComponent","componentSelectorFunc","componentPropertyValue","usingDefaultComponent","agComponentUtils","doesImplementIComponent","componentFromFramework","HARDCODED","adaptFunction","selectorResult","componentNameToUse","registeredCompClassDef","lookupFromRegisteredComponents","componentNameOpt","componentName","registeredComponent","userComponentRegistry","retrieve","REGISTERED_BY_NAME","RegisteredComponentSource","REGISTERED","DEFAULT","userParams","userParamsFromFunc","holder","paramsForSelector","componentToUse","overrideName","nameToReport","FrameworkComponentRaw","thisComponentConfig","componentMetadataProvider","wrap","mandatoryMethodList","optionalMethodList","__extends$i","__decorate$l","DragSourceType","VerticalDirection","HorizontalDirection","DragAndDropService","dragSourceAndParamsList","dropTargets","DragAndDropService_1","ePinnedIcon","eHideIcon","eMoveIcon","eLeftIcon","eRightIcon","eGroupIcon","eAggregateIcon","ePivotIcon","eDropNotAllowedIcon","addDragSource","dragSource","allowTouch","dragStartPixels","onDragStart","onDragStop","onDragging","dragService","removeDragSource","sourceAndParams","clearDragSourceParamsList","nudge","eventLastTime","dragItem","getDragItem","lastDropTarget","dragSourceDropTarget","onDragStarted","createGhost","onDragStopped","draggingEvent","createDropTargetEvent","removeGhost","fromNudge","hDirection","getHorizontalDirection","vDirection","getVerticalDirection","positionGhost","validDropTargets","isMouseOnDropTarget","dropTarget","prevTarget","currTarget","prevContainer","getContainer","currContainer","leaveLastTargetIfExists","enterDragTargetIfExists","onDragEnter","dragEnterEvent","setGhostIcon","getIconName","onDragLeave","dragLeaveEvent","getAllContainersFromDropTarget","containers","secondaryContainers","getSecondaryContainers","mouseOverTarget","rect","getBoundingClientRect","horizontalFit","verticalFit","bottom","isInterestedIn","addDropTarget","removeDropTarget","hasExternalDropZones","zones","external","findExternalZone","externalTargets","zone","eClientX","Left","Right","eClientY","Up","Down","dropZoneTarget","ghost","eGhost","ghostRect","ghostHeight","browserWidth","browserHeight","pageY","pageX","usrDocument","getDocument","windowScrollY","pageYOffset","scrollTop","windowScrollX","pageXOffset","eGhostParent","GHOST_TEMPLATE","theme","environment","getTheme","eGhostIcon","dragItemName","targetEl","fullscreenElement","shake","defaultIconName","ICON_NOT_ALLOWED","ICON_PINNED","ICON_MOVE","ICON_LEFT","ICON_RIGHT","ICON_GROUP","ICON_AGGREGATE","ICON_PIVOT","ICON_HIDE","isSuppressDragLeaveHidesColumns","__extends$j","__decorate$m","RowDragComp","cellValueFn","customGui","isCustomGui","setDragElement","checkCompatibility","strategy","isRowDragManaged","ManagedVisibilityStrategy","NonManagedVisibilityStrategy","dragElement","getSelectedCount","multiRowEnabled","isEnableMultiRowDragging","selection","getSelectedNodes","managed","treeData","defaultTextValue","rowDragText","RowDrag","dragItemCount","dragSourceDomDataKey","getDomDataKey","dragAndDropService","VisibilityStrategy","setDisplayedOrVisible","neverDisplayed","shown","isShownSometimes","onSuppressRowDrag","workOutVisibility","isSuppressRowDrag","gridBodyCon","controllersService","getGridBodyController","rowDragFeature","getRowDragFeature","shouldPreventRowMove","__extends$k","__decorate$n","GroupCellRenderer","isTopLevelFooter","isGroupIncludeTotalFooter","doingFullWidth","rowGroupCols","firstRowGroupCol","topLevelFooter","embeddedRowMismatch","isEmbeddedRowMismatch","nullValue","skipCell","isGroupHideOpenParents","rowGroupColumnId","cellIsBlank","setupDragOpenParents","addFullWidthRowDraggerIfNeeded","addExpandAndContract","addCheckboxIfNeeded","addValueElement","setupIndent","fullWidth","isEmbedFullWidthRows","pinnedLeftCell","pinnedRightCell","bodyCell","setIndent","fullWithRow","manyDimensionThisColumn","paddingCount","userProvidedPaddingPixelsTheDeprecatedWay","setPaddingDeprecatedWay","indentClass","paddingPx","paddingSide","suppressPadding","displayedGroup","addFooterValue","addGroupValue","addChildCount","footerValueGetter","footerValue","paramsClone","eValue","columnToUse","groupName","valueFormatted","valueFormatterService","scope","rendererPromise","useFullWidth","useInnerRenderer","cellRendererParams","innerCellRenderer","groupCellRendererParams","groupedColumnDef","groupInnerRendererClass","groupColumnRendererClass","rendererToUse","rowDragComp","suppressCount","updateChildCount","showingGroupForThisNode","isShowRowGroupForThisRow","showCount","countString","eChildCount","isUserWantsSelected","paramsCheckbox","checkbox","checkboxNeeded","cbSelectionComponent_1","eGroupCell","eGridCell","eExpandedIcon","eContractedIcon","eExpanded","eContracted","onExpandClicked","showExpandAndContractIcons","expandableChangedListener","onRowNodeIsExpandableChanged","suppressDoubleClickExpand","onCellDblClicked","enterKeyPressed","suppressEnterExpand","cellEditable","onExpandOrContract","draggedFromHideOpenParents","targetIsExpandIcon","nextExpandState","thisColumnIsInterested","reducedLeafNode","expandableGroup","displayingForOneColumnOnly","showing","pivotModeAndLeafGroup","addExpandableCss","isTotalFooterNode","__extends$l","__decorate$o","ARROW_UP","ARROW_DOWN","AnimateShowChangeCellRenderer","refreshCount","eDelta","showDelta","absDelta","valueToUse","deltaUp","setTimerToRemoveDelta","refreshCountCopy","hideDeltaValue","lastValue","filterManager","isSuppressFlashingCellsBecauseFiltering","__extends$m","__decorate$p","AnimateSlideCellRenderer","eCurrent","addSlideAnimation","ePrevious","__extends$n","__decorate$q","LoadingCellRenderer","failedLoad","setupFailed","setupLoading","eLoadingText","eLoadingIcon","__extends$o","__decorate$r","SelectCellEditor","startedByEnter","hasValue","valueFormattedExits","eSelect","isFullRowEdit","stopEditing","showPicker","__extends$p","PopupTextCellEditor","__extends$q","PopupSelectCellEditor","__extends$r","__decorate$s","LargeTextCellEditor","eTextArea","setMaxLength","maxLength","setCols","setRows","stopPropagation","__extends$s","__decorate$t","NumberFilter","filterTo","eValueFrom1","eValueFrom2","eValueTo1","eValueTo2","eValueFrom","eValueTo","numberFilterParams","allowedCharPattern","getAllowedCharPattern","config","addValueChangedListeners","isRange1","isRange2","suppressFocus","agElementTag","stringToFloat","filterText","numberParser","valueTo","__extends$t","LoadingOverlayComponent$1","getOverlayLoadingTemplate","DEFAULT_LOADING_OVERLAY_TEMPLATE","localisedTemplate","__extends$u","NoRowsOverlayComponent$1","getOverlayNoRowsTemplate","DEFAULT_NO_ROWS_TEMPLATE","__extends$v","TooltipComponent$1","__extends$w","__decorate$u","DefaultDateComponent","inputElement","eDateInput","shouldUseBrowserDatePicker","activeElement","browserDatePicker","__extends$x","SimpleFloatingFilter","getTextFromModel","con1Str","conditionToString","con2Str","isEventFromFloatingFilter","getLastType","lastType","setLastTypeFromModel","canWeEditAfterModelFromParentFilter","isTypeEditable","setEditable","__extends$y","__decorate$v","DateFloatingFilter","createDateComponent","eReadOnlyText","eDateWrapper","onParentModelChanged","allowEditing","dateModel","filterValueDate","filterValueText","parentFilterInstance","filterInstance","simpleFilter","__extends$z","__decorate$w","TextFilter","trimInput","trimmedInput","getCleanValue","inputField","textFilterParams","eValue1","eValue2","textCustomComparator","DEFAULT_COMPARATOR","formatter","textFormatter","caseSensitive","DEFAULT_FORMATTER","DEFAULT_LOWERCASE_FORMATTER","forEachInput","eCondition1Body","cellValueFormatted","filterTextFormatted","__extends$A","__decorate$x","TextInputFloatingFilter","eFloatingFilterInput","toDebounce","syncUpWithParentFilter","filterGui","columnDef","__extends$B","NumberFloatingFilter","isRange","__extends$C","TextFloatingFilter","__extends$D","__decorate$y","UserComponentRegistry","agGridDefaults","agDateInput","agColumnHeader","agColumnGroupHeader","agTextColumnFloatingFilter","agNumberColumnFloatingFilter","agDateColumnFloatingFilter","agAnimateShowChangeCellRenderer","agAnimateSlideCellRenderer","agGroupCellRenderer","agGroupRowRenderer","agLoadingCellRenderer","agCellEditor","agTextCellEditor","agSelectCellEditor","agPopupTextCellEditor","agPopupSelectCellEditor","agLargeTextCellEditor","agTextColumnFilter","agNumberColumnFilter","agDateColumnFilter","agLoadingOverlay","agNoRowsOverlay","agTooltipComponent","agDeprecatedNames","newComponentName","propertyHolder","animateShowChange","animateSlide","largeText","popupSelect","popupText","richSelect","headerComponent","jsComponents","frameworkComponents","registerComponent","registerFwComponent","registerDefaultComponent","rawName","translateIfDeprecated","frameworkComponent","jsComponent","defaultComponent","raw","deprecatedInfo","SideBarDefParser","toParse","toolPanels","DEFAULT_COLUMN_COMP","DEFAULT_FILTER_COMP","defaultToolPanel","comps_1","lookupResult","DEFAULT_BY_KEY","parseComponents","hiddenByDefault","it","toAdd","labelDefault","labelKey","iconKey","toolPanel","filters","__decorate$z","__param$3","__spreadArrays$3","DEFAULT_ROW_HEIGHT","DEFAULT_DETAIL_ROW_HEIGHT","DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE","DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE","DEFAULT_KEEP_DETAIL_ROW_COUNT","isTrue","zeroOrGreater","oneOrGreater","valueNumber","GridOptionsWrapper","propertyEventService","domDataKey","random","GridOptionsWrapper_1","agWire","checkForDeprecated","checkForViolations","PROP_DOM_LAYOUT","updateLayoutClassesListener","suppressPropertyNamesCheck","checkGridOptionsProperties","checkColumnDefProperties","sideBar","globalEventHandler","isSuppressParentsInRowNodes","isRowModelServerSide","isGroupRemoveSingleChildren","prop","groupDefaultExpanded","isEnableRangeSelection","RangeSelectionModule","isEnableRangeHandle","isEnableFillHandle","warnOfDeprecaredIcon","userProperties","getOwnPropertyNames","validProperties","checkProperties","validPropertiesAndExceptions","containerName","docsUrl","invalidProperties","domData","setDomData","isRowSelection","rowSelection","isSuppressRowDeselection","suppressRowDeselection","isRowMultiSelectWithClick","rowMultiSelectWithClick","isSuppressExpandablePivotGroups","suppressExpandablePivotGroups","getPivotColumnGroupTotals","pivotColumnGroupTotals","getPivotRowTotals","pivotRowTotals","isRowModelInfinite","rowModelType","isRowModelViewport","editType","isSuppressFocusAfterRefresh","suppressFocusAfterRefresh","isSuppressBrowserResizeObserver","suppressBrowserResizeObserver","isSuppressMaintainUnsortedOrder","suppressMaintainUnsortedOrder","isSuppressClearOnFillReduction","suppressClearOnFillReduction","isShowToolPanel","getSideBar","suppressTouch","applyColumnDefOrder","isSuppressRowTransform","suppressRowTransform","suppressColumnStateEvents","isAllowDragFromColumnsToolPanel","allowDragFromColumnsToolPanel","suppressAsyncEvents","isEnableCellChangeFlash","enableCellChangeFlash","getCellFlashDelay","cellFlashDelay","getCellFadeDelay","cellFadeDelay","isSuppressRowHoverHighlight","suppressRowHoverHighlight","groupHideOpenParents","isGroupMultiAutoColumn","groupMultiAutoColumn","isGroupRemoveLowestSingleChildren","groupRemoveLowestSingleChildren","groupIncludeFooter","groupIncludeTotalFooter","isGroupSuppressBlankHeader","groupSuppressBlankHeader","isSuppressRowClickSelection","isSuppressCellSelection","suppressCellSelection","isSuppressMultiSort","suppressMultiSort","multiSortKey","groupSuppressAutoColumn","pivotSuppressAutoColumn","suppressDragLeaveHidesColumns","isSuppressScrollOnNewData","suppressScrollOnNewData","rowDragManaged","isSuppressMoveWhenRowDragging","enableMultiRowDragging","domLayout","validLayouts","isSuppressHorizontalScroll","suppressHorizontalScroll","isSuppressMaxRenderedRowRestriction","suppressMaxRenderedRowRestriction","isExcludeChildrenWhenTreeDataFiltering","excludeChildrenWhenTreeDataFiltering","isAlwaysShowHorizontalScroll","alwaysShowHorizontalScroll","isAlwaysShowVerticalScroll","alwaysShowVerticalScroll","isDebounceVerticalScrollbar","debounceVerticalScrollbar","isSuppressLoadingOverlay","suppressLoadingOverlay","isSuppressNoRowsOverlay","suppressNoRowsOverlay","suppressFieldDotNotation","getPinnedTopRowData","pinnedTopRowData","getPinnedBottomRowData","pinnedBottomRowData","isFunctionsPassive","functionsPassive","isSuppressChangeDetection","suppressChangeDetection","isSuppressAnimationFrame","suppressAnimationFrame","getQuickFilterText","isCacheQuickFilter","cacheQuickFilter","isEnterMovesDownAfterEdit","enterMovesDownAfterEdit","isEnterMovesDown","enterMovesDown","isUndoRedoCellEditing","undoRedoCellEditing","getUndoRedoCellEditingLimit","undoRedoCellEditingLimit","getRowStyle","rowStyle","getRowClass","rowClass","getRowStyleFunc","getRowClassFunc","rowClassRules","getServerSideStoreType","serverSideStoreType","getServerSideStoreParamsFunc","getServerSideStoreParams","getCreateChartContainerFunc","createChartContainer","getPopupParent","popupParent","getBlockLoadDebounceMillis","blockLoadDebounceMillis","getPostProcessPopupFunc","postProcessPopup","getPaginationNumberFormatterFunc","paginationNumberFormatter","getChildCountFunc","getChildCount","getIsApplyServerSideTransactionFunc","isApplyServerSideTransaction","getDefaultGroupSortComparator","defaultGroupSortComparator","getFullWidthCellRendererParams","fullWidthCellRendererParams","embedFullWidthRows","deprecatedEmbedFullWidthRows","isDetailRowAutoHeight","detailRowAutoHeight","getBusinessKeyForNodeFunc","getBusinessKeyForNode","isImmutableData","immutableData","isEnsureDomOrder","isEnableCharts","enableCharts","GridChartsModule","colResizeDefault","isSingleClickEdit","singleClickEdit","isSuppressClickEdit","suppressClickEdit","isStopEditingWhenCellsLoseFocus","stopEditingWhenCellsLoseFocus","getGroupDefaultExpanded","getMaxConcurrentDatasourceRequests","maxConcurrentDatasourceRequests","getMaxBlocksInCache","maxBlocksInCache","getCacheOverflowSize","cacheOverflowSize","getPaginationPageSize","isPaginateChildRows","shouldPaginate","paginateChildRows","getCacheBlockSize","cacheBlockSize","getInfiniteInitialRowCount","infiniteInitialRowCount","isPurgeClosedRowNodes","purgeClosedRowNodes","isSuppressPaginationPanel","suppressPaginationPanel","getRowData","rowData","groupUseEntireRow","enableRtl","getAutoGroupColumnDef","getRowGroupPanelShow","rowGroupPanelShow","getPivotPanelShow","pivotPanelShow","isAngularCompileRows","angularCompileRows","isAngularCompileFilters","angularCompileFilters","isDebug","debug","columnTypes","getDatasource","datasource","getViewportDatasource","viewportDatasource","getServerSideDatasource","serverSideDatasource","isAccentedSort","accentedSort","enableBrowserTooltips","isEnableCellExpressions","enableCellExpressions","enableGroupEdit","isSuppressMiddleClickScrolls","suppressMiddleClickScrolls","isPreventDefaultOnContextMenu","preventDefaultOnContextMenu","isSuppressPreventDefaultOnMouseWheel","suppressPreventDefaultOnMouseWheel","isSuppressContextMenu","suppressContextMenu","isAllowContextMenuWithControlKey","allowContextMenuWithControlKey","isSuppressCopyRowsToClipboard","suppressCopyRowsToClipboard","isCopyHeadersToClipboard","copyHeadersToClipboard","isSuppressClipboardPaste","isSuppressLastEmptyLineOnPaste","suppressLastEmptyLineOnPaste","isPagination","pagination","isSuppressEnterpriseResetOnNewColumns","suppressEnterpriseResetOnNewColumns","getProcessDataFromClipboardFunc","processDataFromClipboard","getAsyncTransactionWaitMillis","asyncTransactionWaitMillis","isSuppressMovableColumns","suppressMovableColumns","isAnimateRows","animateRows","isSuppressColumnMoveAnimation","suppressColumnMoveAnimation","suppressAggFuncInHeader","isSuppressAggAtRootLevel","suppressAggAtRootLevel","isSuppressAggFilteredOnly","suppressAggFilteredOnly","isShowOpenedGroup","showOpenedGroup","enableRangeSelection","enableRangeHandle","enableFillHandle","getFillHandleDirection","fillHandleDirection","getFillOperation","fillOperation","isSuppressMultiRangeSelection","suppressMultiRangeSelection","isPaginationAutoPageSize","paginationAutoPageSize","isRememberGroupStateWhenNewData","rememberGroupStateWhenNewData","getAggFuncs","aggFuncs","getSortingOrder","sortingOrder","getAlignedGrids","alignedGrids","isMasterDetail","masterDetail","MasterDetailModule","isKeepDetailRows","keepDetailRows","getKeepDetailRowsCount","keepDetailRowsCount","getIsRowMasterFunc","isRowMaster","isRowSelectable","getGroupRowRendererParams","overlayLoadingTemplate","overlayNoRowsTemplate","isSuppressAutoSize","suppressAutoSize","isEnableCellTextSelection","suppressParentsInRowNodes","isSuppressClipboardApi","suppressClipboardApi","isFunctionsReadOnly","functionsReadOnly","isFloatingFilter","isEnableCellTextSelect","isEnableOldSetFilterModel","enableOldSetFilterModel","defaultColGroupDef","getDefaultExportParams","defaultExportParams","defaultCsvExportParams","defaultExcelExportParams","isSuppressCsvExport","suppressCsvExport","isAllowShowChangeAfterFilter","allowShowChangeAfterFilter","isSuppressExcelExport","suppressExcelExport","suppressMakeColumnVisibleAfterUnGroup","getDataPathFunc","getDataPath","getIsServerSideGroupFunc","isServerSideGroup","getIsServerSideGroupOpenByDefaultFunc","isServerSideGroupOpenByDefault","getIsGroupOpenByDefaultFunc","isGroupOpenByDefault","getServerSideGroupKeyFunc","getServerSideGroupKey","getGroupRowAggNodesFunc","groupRowAggNodes","getContextMenuItemsFunc","getContextMenuItems","getMainMenuItemsFunc","getMainMenuItems","getNavigateToNextHeaderFunc","navigateToNextHeader","getTabToNextHeaderFunc","tabToNextHeader","getNavigateToNextCellFunc","navigateToNextCell","getTabToNextCellFunc","tabToNextCell","isValueCache","isValueCacheNeverExpires","valueCacheNeverExpires","isDeltaSort","deltaSort","isAggregateOnlyChangedColumns","aggregateOnlyChangedColumns","processSecondaryColDef","processSecondaryColGroupDef","getSendToClipboardFunc","sendToClipboard","getProcessRowPostCreateFunc","processRowPostCreate","getProcessCellForClipboardFunc","processCellForClipboard","getProcessHeaderForClipboardFunc","processHeaderForClipboard","getProcessCellFromClipboardFunc","processCellFromClipboard","getViewportRowModelPageSize","viewportRowModelPageSize","getViewportRowModelBufferSize","viewportRowModelBufferSize","isServerSideSortingAlwaysResets","serverSideSortingAlwaysResets","isServerSideFilteringAlwaysResets","serverSideFilteringAlwaysResets","getPostSortFunc","postSort","getChartToolbarItemsFunc","getChartToolbarItems","getChartThemeOverrides","chartThemeOverrides","getCustomChartThemes","customChartThemes","getChartThemes","chartThemes","getProcessChartOptionsFunc","processChartOptions","getClipboardDeliminator","clipboardDeliminator","force","gridOptionsNoType","skipHeaderOnAutoSize","getAutoSizePadding","autoSizePadding","getHeaderHeight","getFromTheme","getFloatingFiltersHeight","floatingFiltersHeight","getGroupHeaderHeight","groupHeaderHeight","getPivotHeaderHeight","pivotHeaderHeight","getPivotGroupHeaderHeight","pivotGroupHeaderHeight","isExternalFilterPresent","doesExternalFilterPass","isSuppressModelUpdateAfterUpdateTransaction","suppressModelUpdateAfterUpdateTransaction","MIN_COL_WIDTH","measuredMin","colWidth","getRowBuffer","rowBuffer","getRowBufferInPixels","rowsToBuffer","defaultRowHeight","getRowHeightAsNumber","scrollbarWidth","useGridOptions","rowDeselection","checkRenamedProperty","oldProp","newProp","version","immutableColumns","deltaColumnMode","groupRowInnerRenderer","groupRowInnerRendererParams","groupRowInnerRendererFramework","innerRenderer","innerRendererParams","innerRendererFramework","detailCellRendererParams","stopEditingWhenGridLosesFocus","treeDataViolations","localeText","callbackMethodName","getDefaultRowHeight","getRowHeightForNode","allowEstimate","getRowHeight","detailRowHeight","minRowHeight","autoHeightCalculator","getPreferredHeightForRow","isDynamicRowHeight","getListItemHeight","chartMenuPanelWidth","sassVariableName","getSassVariable","PROP_HEADER_HEIGHT","PROP_GROUP_REMOVE_SINGLE_CHILDREN","PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN","PROP_PIVOT_HEADER_HEIGHT","PROP_SUPPRESS_CLIPBOARD_PASTE","PROP_GROUP_HEADER_HEIGHT","PROP_PIVOT_GROUP_HEADER_HEIGHT","PROP_NAVIGATE_TO_NEXT_CELL","PROP_TAB_TO_NEXT_CELL","PROP_NAVIGATE_TO_NEXT_HEADER","PROP_TAB_TO_NEXT_HEADER","PROP_IS_EXTERNAL_FILTER_PRESENT","PROP_DOES_EXTERNAL_FILTER_PASS","PROP_FLOATING_FILTERS_HEIGHT","PROP_SUPPRESS_ROW_CLICK_SELECTION","PROP_SUPPRESS_ROW_DRAG","PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG","PROP_GET_ROW_CLASS","PROP_GET_ROW_STYLE","PROP_GET_ROW_HEIGHT","PROP_POPUP_PARENT","PROP_FILL_HANDLE_DIRECTION","PROP_GROUP_ROW_AGG_NODES","PROP_GET_BUSINESS_KEY_FOR_NODE","PROP_GET_CHILD_COUNT","PROP_PROCESS_ROW_POST_CREATE","PROP_GET_ROW_NODE_ID","PROP_IS_FULL_WIDTH_CELL","PROP_IS_ROW_SELECTABLE","PROP_IS_ROW_MASTER","PROP_POST_SORT","PROP_GET_DOCUMENT","PROP_POST_PROCESS_POPUP","PROP_DEFAULT_GROUP_SORT_COMPARATOR","PROP_PAGINATION_NUMBER_FORMATTER","PROP_GET_CONTEXT_MENU_ITEMS","PROP_GET_MAIN_MENU_ITEMS","PROP_PROCESS_CELL_FOR_CLIPBOARD","PROP_PROCESS_CELL_FROM_CLIPBOARD","PROP_SEND_TO_CLIPBOARD","PROP_PROCESS_TO_SECONDARY_COLDEF","PROP_PROCESS_SECONDARY_COL_GROUP_DEF","PROP_PROCESS_CHART_OPTIONS","PROP_GET_CHART_TOOLBAR_ITEMS","PROP_GET_SERVER_SIDE_STORE_PARAMS","PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT","PROP_IS_APPLY_SERVER_SIDE_TRANSACTION","PROP_IS_SERVER_SIDE_GROUP","PROP_GET_SERVER_SIDE_GROUP_KEY","ChangedPath","keepingColumns","rootNode","nodeIdsToColumns","mapToItems","pathRoot","setInactive","isActive","depthFirstSearchChangedPath","pathItem","depthFirstSearchEverything","traverseEverything","forEachChangedNodeDepthFirst","traverseLeafNodes","executeFromRootNode","createPathItems","newEntryCount","newEntry","populateColumnsMap","linkPathItems","thisItem","parentItem","addParentNode","canSkip","getValueColumnsForNode","colsForThisNode","getNotValueColumnsForNode","__extends$E","__decorate$A","__param$4","SelectionController","onRowSelected","selectedNodes","getSelectedRows","selectedRows","removeGroupsFromSelection","changedPath","clientSideRowModel","getRootNode","getNodeForIdIfSelected","rowNodeToKeepSelected","groupsToRefresh","otherRowNode","syncInOldRowNode","syncInNewRowNode","oldNodeHasDifferentId","oldNodeSelected","getBestCostNodeSelection","topLevelNodes","getTopLevelNodes","traverse","l","setRowModel","nodeId","deselectAllRowNodes","justFiltered","rowModelClientSide","forEachNodeAfterFilter","selectAllRowNodes","forEachNode","selectNode","tryMulti","deselectIndex","deselectNode","selectIndex","__decorate$B","ColumnApi","isPinning","getAllColumns","getAllDisplayedVirtualColumns","setColumnWidth","getLeftDisplayedColumnGroups","getCenterDisplayedColumnGroups","getRightDisplayedColumnGroups","getAllDisplayedColumnGroups","getPrimaryColumns","cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid","hideColumns","hideColumn","columnState","setColumnState","getState","resetState","getAggregationColumns","removeAggregationColumn","removeAggregationColumns","addAggregationColumn","addAggregationColumns","setColumnAggFunction","getDisplayNameForCol","__assign$3","AngularRowUtils","createChildScopeOrNull","parentScope","newChildScope","$new","$destroy","scopeDestroyFunc","__extends$F","RowType","FullWidthRenderers","FullWidthLoading","FullWidthGroup","FullWidthDetail","FullWidthKeys","FullWidth","instanceIdSequence","RowController","animateIn","useAnimationFrameForCreate","printLayout","allRowComps","centerCols","leftCols","rightCols","lastMouseDownOnDragger","updateColumnListsPending","rowIsEven","paginationPage","getCurrentPage","setAnimateFlags","rowFocused","isRowFocused","setupAngular1Scope","rowLevel","rowCssClassCalculator","calculateRowLevel","setRowType","updateColumnLists","addListeners","slideRowIn","onTopChanged","fadeRowIn","rowComp","setLeftRowComp","leftRowComp","setRightRowComp","rightRowComp","setCenterRowComp","centerRowComp","setFullWidthRowComp","fullWidthRowComp","getColsForRowComp","getScope","isPrintLayout","scopeResult","getCellForCol","cellComp","getRenderedCellForColumn","executeProcessRowPostCreateFunc","eRow","ePinnedLeftRow","ePinnedRightRow","addRenderedRowListener","isStub","stub","isDetailCell","doingMasterDetail","isGroupRow","isFullWidthGroup","rowType","Normal","isFullWidth","noAnimation","updateColumnListsImpl","taskQueue","createTask","onColumnChanged","oldRowTopExists","isEditing","editingRow","stopRowEditing","getRowType","refreshFullWidth","tryRefresh","getFullWidthRowComp","createFullWidthParams","refreshSucceeded","normalSuccess","bodySuccess","leftSuccess","rightSuccess","allFullWidthRowsRefreshed","onRowHeightChanged","onRowIndexChanged","updateExpandedCss","onRowNodeDataChanged","onRowNodeCellChanged","onRowNodeHighlightChanged","onRowNodeDraggingChanged","onUiLevelChanged","onPaginationPixelOffsetChanged","onDisplayedColumnsChanged","onVirtualColumnsChanged","onCellFocusChanged","onPaginationChanged","onModelUpdated","onColumnMoved","addListenersForCellComps","forEachCellComp","onCellChanged","refreshCell","suppressFlash","postProcessCss","postProcessStylesFromGridOptions","postProcessClassesFromGridOptions","postProcessRowClassRules","postProcessRowDragging","getRowPosition","onKeyboardNavigate","currentFullWidthComp","currentFullWidthContainer","isFullWidthContainerFocused","lastFocusedCell","getFocusedCell","cellPosition","nextEl","onFullWidthRowFocused","isFocused","preventScroll","destroyCells","onMouseEvent","onRowDblClick","onRowClick","onRowMouseDown","createRowEvent","domEvent","createRowEventWithSource","agEvent","setFocusedCell","stop","multiSelectKeyPressed","shiftKeyPressed","multiSelectOnClick","rowDeselectionWithCtrl","setupDetailRowAutoHeight","eDetailGui","checkRowSizeFunc","updateRowHeightFunc","serverSideRowModel","resizeObserverDestroyFunc","resizeObserverService","observeResize","$scope","$compile","eParentOfValue","registerRowDragger","rowDraggerElement","addFullWidthRowDragging","newLevel","classToAdd_1","classToRemove_1","isFirstRowOnPage","isLastRowOnPage","newFirst","newLast","firstRowOnPage","lastRowOnPage","renderedCell","setEditingRow","startRowEditing","sourceRenderedCell","startEditingIfEnabled","processClassesFromGridOptions","classStr","processRowClassRules","rowStyles","processStylesFromGridOptions","getInitialRowTopStyle","pixels","roundRowTopToBounds","afterPaginationPixels","applyPaginationOffset","afterScalingPixels","rowContainerHeightService","getRealPixelPosition","getRowBusinessKey","businessKeyForNodeFunc","getInitialRowClasses","fullWidthRow","preProcessStylesFromGridOptions","rowStyleFunc","rowStyleFuncResult","refreshAriaLabel","isUseAnimationFrameForCreate","addHoverFunctionality","getScrollFeature","getVScrollPosition","minPixel","maxPixel","heightPx_1","destroyFirstPass","setupRemoveAnimation","rowStillVisibleJustNotInViewport","destroySecondPass","currentPage","topPx","pixelOffset","getPixelOffset","multiplier","topPx_1","suppressRowTransform_1","getRowNode","cellComps","getCellComp","spannedCellComps","getCellCompSpanned","updateRowIndexes","rowIndexStr","rowIsEvenChanged","headerNavigationService","getPinnedLeftRowElement","getPinnedRightRowElement","getBodyRowElement","getFullWidthRowElement","DOM_DATA_KEY_RENDERED_ROW","SelectionHandleType","CellRangeType","__extends$G","PopupEditorWrapper","getGuiCalledOnChild","DOM_KEY_POPUP_EDITOR_WRAPPER","isCancelBeforeStart","isCancelAfterEnd","getPopupPosition","__extends$H","__decorate$C","DndSourceComp","eCell","checkVisibility","dragEvent","providedOnRowDrag","dndSourceOnRowDrag","dataTransfer","setDragImage","defaultOnRowDrag","jsonData","__extends$I","__assign$4","CSS_CELL","CSS_CELL_VALUE","CSS_AUTO_HEIGHT","CSS_RANGE_TOP","CSS_RANGE_RIGHT","CSS_RANGE_BOTTOM","CSS_RANGE_LEFT","CSS_CELL_FOCUS","CSS_FIRST_RIGHT_PINNED","CSS_LAST_LEFT_PINNED","CSS_NOT_INLINE_EDITING","CSS_INLINE_EDITING","CSS_POPUP_EDITING","CSS_RANGE_SELECTED","CSS_COLUMN_HOVER","CSS_CELL_WRAP_TEXT","CSS_RANGE_CHART","CSS_RANGE_SINGLE_CELL","CSS_RANGE_CHART_CATEGORY","CSS_RANGE_HANDLE","CellComp","autoHeightCell","hasChartRange","editingCell","suppressRefreshCell","tooltipFeatureEnabled","cellEditorVersion","cellRendererVersion","createGridCellVo","rangeSelectionEnabled","rangeController","cellFocused","isCellFocused","rangeCount","getCellRangeCount","getHasChartRange","getValueAndFormat","setUsingWrapper","chooseCellRenderer","setupColSpan","getCreateTemplate","afterAttached","unselectable","templateParts","getCellWidth","modifyLeftForPrintLayout","getCellLeft","valueToRender","getInitialValueToRender","valueSanitised","tooltip","getToolTip","tooltipSanitised","colIdSanitised","stylesFromColDef","preProcessStylesFromColDef","getInitialCssClasses","stylesForRowSpanning","getStylesForRowSpanning","colIdxSanitised","usingWrapper","getCellWrapperString","wrapper","singleRowHeight","totalRowHeight","addDomData","populateTemplate","createCellRendererInstance","angular1Compile","refreshHandle","createTooltipFeatureIfNeeded","onColumnHover","isHovered","columnHoverService","eventImpactsThisCell","mostLeftCol","colsSpanning","onFlashCells","cellId","cellPositionUtils","createId","shouldFlash","animateCell","getComponentHolder","onDisplayColumnsChanged","onWidthChanged","getColSpanningList","onLeftChanged","refreshAriaIndex","colIdx","doingFocusCss","preProcessClassesFromColDef","preProcessCellClassRules","getInitialRangeClasses","wrapText","usingCellRenderer","cellRendererGui","templateUrl","templateService","getTemplate","getValueToUse","getRenderedRow","getCellRenderer","getCellEditor","onNewColumnsLoaded","postProcessWrapText","postProcessCellClassRules","suppressCellFlash","noValueProvided","forceRefresh","valuesDifferent","valuesAreEqual","dataNeedsUpdating","cellRendererRefreshed","attemptCellRendererRefresh","replaceContentsAfterRefresh","processingFilterChange","flashCell","postProcessStylesFromColDef","postProcessClassesFromColDef","updateAngular1ScopeAndCompile","refreshToolTip","delays","flashDelay","fadeDelay","cssName","fullName","animationFullName","transition","eCellValue","putDataIntoCellAfterRefresh","childElementCount","compiledElement_1","processStylesFromColDef","cellStyle","cssToUse","cellStyleParams","cellStyleFunc","processClassesFromColDef","onApplicableClass","cellClassParams","stylingService","processStaticCellClasses","createCellRendererParams","finalParams","newTooltip","hasNewTooltip","equalsMethod","tooltipValueGetter","getTooltipText","escape","processCellClassRules","onNotApplicableClass","processClassRules","cellClassRules","includeSelectionComponent","includeRowDraggingComponent","includeDndSourceComponent","cbSelectionIsFunc","rowDraggableIsFunc","dndSourceIsFunc","enableTextSelection","CELL_RENDERER_TYPE_PINNED","CELL_RENDERER_TYPE_NORMAL","useTaskService","afterCellRendererCreated","cellRendererTypeNormal","createCellRendererFunc","componentPromise","cellRendererNotRequired","addRowDragging","addRowCompListener","lockedClosedGroup","isOpenGroup","groupFootersEnabled","groupAlwaysShowAggData","ignoreAggData","onCellClicked","onCellDoubleClicked","onMouseOut","onMouseOver","dispatchCellContextMenuEvent","cellContextMenuEvent","onCellContextMenu","cellMouseOutEvent","clearMouseOver","cellMouseOverEvent","setMouseOver","cellDoubleClickedEvent","editOnDoubleClick","startRowOrCellEdit","afterCellEditorCreated","createCellEditorParams","createCellEditor","cellEditorAsync","focusCell","cellEditorPromise","cellEditorComp","popupEditorWrapper","versionMismatch","cellEditorNotNeeded","editingCancelledByUserComp","render","cellEditorInPopup","setInlineEditingClass","addPopupCellEditor","addInCellEditor","clearCellElement","ePopupGui","useModelPopup","keepWithinBounds","positionCallback","positionPopupUnderComponent","positionPopupOverComponent","modal","closeOnEsc","closedCallback","onPopupEditorClosed","anchorToElement","hideEditorPopup","stopRowOrCellEdit","editingInline","popupEditorShowing","stopEditingAndFocus","suppressNavigateAfterEdit","navigateAfterEdit","valueParser","forceBrowserFocus","setFocusInOnEditor","onEnterKeyDown","onF2KeyDown","onEscapeKeyDown","onBackspaceOrDeleteKeyPressed","onNavigationKeyPressed","setFocusOutOnEditor","onShiftRangeSelect","endCell","extendLatestRangeInDirection","ensureCellVisible","fullRowEdit","onKeyPress","eventTarget","eventOnChildComponent","pressedChar","onSpaceKeyPressed","currentSelection","newSelection","isRightClickInExistingRange","getCellRanges","containsWidget","thisCell","extendLatestRangeToCell","ctrlKeyPressed","setRangeToCell","cellInRange","isCellInAnyRange","getCellPosition","isDoubleClickOnIPad","nowMillis","lastIPadMouseClickEvent","cellClickedEvent","editOnSingleClick","getParentRow","setParentRow","eParentRow","detach","cancelTask","selectionHandle","leftPosition","getRangeBorders","thisCol","leftCol","rightCol","ranges","isCellInSpecificRange","startRow","getRangeStartRow","endRow","getRangeEndRow","rowPositionUtils","sameRow","classes","isSingleCell","borders","onCellFocused","onRangeSelectionChanged","newRangeCount","updateRangeBorders","cellRanges","DIMENSION","VALUE","shouldHaveSelectionHandle","rangesLen","cellRange","fillHandleIsAvailable","hasCategoryRange","isCategoryCell","isContiguousRange","isBottomRightCell","addSelectionHandle","cellRangeType","selectionHandleFill","FILL","RANGE","selectionHandleFactory","createSelectionHandle","updateRangeBordersIfRangeCount","rangeBorders","isTop","isRight","isBottom","isLeft","onFirstRightPinnedChanged","onLastLeftPinnedChanged","refreshShouldDestroy","isUsingWrapper","isIncludingRowDragging","isIncludingDndSource","isIncludingSelection","eCellWrapper","describedByIds","addDndSource","addSelectionCheckbox","customElement","clientSideRowModelActive","rowDraggingComp","dndSourceComp","cbSelectionComponent","visibleFunc","DOM_DATA_KEY_CELL_COMP","isMoreThanOneCell","newValueExists","userWantsToCancel","editingStoppedEvent","__extends$J","__assign$5","__decorate$D","__param$5","__spreadArrays$4","RowRenderer","destroyFuncsForColumnListeners","rowConsByRowIndex","zombieRowCons","allRowCons","topRowCons","bottomRowCons","refreshInProgress","whenReady","onPinnedRowDataChanged","redrawAfterScroll","onDomLayoutChanged","registerCellEventListeners","redrawAfterModelUpdate","getRowCons","updateAllRowCons","forEachRowComp","refreshListenersToColumnsForCellComps","removeGridColumnListeners","forEachCellWithThisCol","leftChangedListener","widthChangedListener","firstRightPinnedChangedListener","lastLeftPinnedChangedListener","destroyRows","datasourceChanged","firstRenderedRow","lastRenderedRow","rowIndexesToRemove","removeRowComps","recycleRows","keepRenderedRows","animate","newPage","onlyBody","getAllCellsForColumn","eCells","refreshFloatingRowComps","refreshFloatingRows","pinnedRowModel","getTopRowCons","getBottomRowCons","rowComps","rowCon","getRenderedIndexesForRowNodes","renderedRow","redrawRows","partialRefresh","indexesToRemove","getCellToRestoreFocusToAfterRefresh","focusedCell","suppressKeepFocus","getFocusCellToUseAfterRefresh","elementIsNotACellDev","getLockOnRefresh","updateContainerHeights","scrollToTopIfNewData","rowsToRecycle","removeAllRowComps","isFocusedCellGettingRecycled","rowIndexEqual","pinnedEqual","focusedCellRecycled","redraw","dispatchDisplayedRowsChanged","restoreFocusedCell","releaseLockOnRefresh","scrollToTop","suppressScrollToTop","setModelHeight","containerHeight","flashCells","forEachCellCompFiltered","refreshCellParams","getCellRendererInstances","getCellEditorInstances","getEditingCells","rowIdsMap","normal","colIdsMap","processRow","floating","excludeColFromRefresh","stubNodeIndexes","stubNode","nodesByIdMap","rowsToRemove","indexToRemove","removeRowCompsNotToDraw","indexesToDraw","indexesToDrawMap","existingIndexes","indexesNotToDraw","calculateIndexesToDraw","checkRowToDraw","indexStr","doNotUnVirtualiseRow","afterScroll","updateOffset","workOutFirstAndLastRowsToRender","createOrUpdateRowCon","useAnimationFrame","addDestroyTask","destroyRowCons","checkAngularCompile","updateRowCount","pinningLeft","pinningRight","redrawFullWidthEmbeddedRows","refreshFullWidthRows","rowNodesToRefresh","selectivelyRefreshing","idsToRefresh","parentId","fullWidthRowsRefreshed","creatingNewRowCon","createRowCon","rowConsMap","executeInAWhileFuncs","$apply","isRowsToRender","bufferPixels","rowHeightsChanged","firstPixel","lastPixel","paginationOffset","getCurrentPagePixelRange","pageFirstPixel","pageLastPixel","divStretchOffset","getDivStretchOffset","bodyVRange","bodyTopPixel","bodyBottomPixel","ensureAllRowsInRangeHaveHeightsCalculated","firstRowIndex","getRowIndexAtPixel","lastRowIndex","pageFirstRow","pageLastRow","rowLayoutNormal","suppressRowCountRestriction","rowBufferMaxSize","firstDiffers","lastDiffers","topPixel","bottomPixel","ensureRowHeightsValid","getFirstVirtualRenderedRow","getLastVirtualRenderedRow","REMOVE_ROW","KEEP_ROW","rowHasFocus","isRowNodeFocused","rowIsEditing","rowIsDetail","mightWantToKeepRow","rowNodePresent","isRowPresent","getRenderedNodes","renderedRows","currentCell","allowUserOverride","nextCell","hitEdgeOfGrid","isValidNavigateCell","getLastCellOfColSpan","cellNavigationService","getNextCellToFocus","previousCellPosition","nextCellPosition","userCell","headerLen","focusHeaderPosition","normalisedPosition","getNormalisedPosition","focusPosition","tryToFocusFullWidthRow","getComponentForCell","backwards","getRowConByPosition","colSpanningList","gridCell","ensureIndexVisible","ensureColumnVisible","horizontallyScrollHeaderCenterAndFloatingCenter","startEditingCell","rowPosition","rowComponent","cellComponent","gridRow","previousRenderedCell","movedToNextCell","tabToNextCellCommon","focusNextGridCoreContainer","cellOrRowComp","previousCellOrRow","moveToNextEditingRow","moveToNextEditingCell","moveToNextCellNotEditing","getFocusedHeader","nextRenderedCell","findNextCellToFocusOn","foundCell","previousCellComp","cellPos","nextCellComp","previousPos","nextPos","previousEditable","nextEditable","rowsMatch","pRow","nRow","startEditing","getNextTabbedCell","cellIsEditable","lookupRowNodeForCell","getPinnedTopRow","getPinnedBottomRow","isRangeInRenderedViewport","startIndex","endIndex","parentClosed","blockAfterViewport","blockBeforeViewport","blockInsideViewport","CssClassApplier","addHeaderClassesFromColDef","eHeaderCell","addColumnClassesFromCollDef","addToolPanelClassesFromColDef","toolPanelClass","classesOrFunc","classToUse","headerClassFunc","cssClassItem","__extends$K","__decorate$E","HoverFeature","addMouseHoverListeners","__extends$L","__decorate$F","SetLeftFeature","ariaEl","setColsSpanning","getColumnOrGroup","setLeftFirstTime","suppressMoveAnimation","oldLeftExists","animateColumnMove","animateInLeft","colOrGroup","oldActualLeft","actualLeft","indexColumn","__extends$M","__decorate$G","AgAbstractLabel","labelSeparator","labelAlignment","labelWidth","setLabelSeparator","setLabelWidth","setLabelAlignment","refreshLabel","getLabelId","getLabel","alignment","__extends$N","AgAbstractField","callbackFn","EVENT_CHANGED","getWidth","setWidth","isDisabled","__extends$O","__decorate$H","AgAbstractInputField","inputType","displayFieldTag","setInputType","eWrapper","addInputListeners","setInputWidth","setInputName","__extends$P","AgCheckbox","onCheckboxClick","toggle","getNextValue","isReadOnly","setReadOnly","dispatchChange","refreshSelectedClass","checkboxChangedEvent","__extends$Q","__decorate$I","SelectAllFeature","cbSelectAll","cbSelectAllVisible","processingEventFromCheckbox","filteredOnly","headerCheckboxSelectionFilteredOnly","showOrHideSelectAll","onModelChanged","onCbSelectAll","refreshSelectAllLabel","isCheckboxSelection","checkRightRowModelType","updateStateOfCheckbox","refreshHeaderAriaDescribedBy","isSelectAllVisible","parentHeader","parentHeaderGui","cbSelectAllId","describedByIdsHasSelectAllFeature","getNextCheckboxState","selectionCount","notSelected","getSelectionCount","allSelected","ariaStatus","selectedCount","notSelectedCount","rowModelMatches","headerCheckboxSelection","__extends$R","AbstractHeaderWrapper","__extends$S","__decorate$J","HeaderWrapperComp","headerCompVersion","refreshFunctions","updateState","setupWidth","setupMovingCss","setupTooltip","setupResize","setupMenuClass","setupSortableClass","addColumnHoverListener","addActiveHeaderMouseListeners","addAttributes","onColumnValueChanged","onColumnRowGroupChanged","onColumnPivotChanged","appendHeaderComp","checkDisplayName","calculateDisplayName","sortable","draggable","workOutDraggable","colDefVersionNow","refreshHeaderComp","headerComp","newHeaderCompConfigured","colDefHeaderComponent","colDefHeaderComponentFramework","headerComponentFramework","headerCompRefreshed","attemptHeaderCompRefresh","dragSourceIsMissing","moveDragSource","dragSourceNeedsRemoving","attachDraggingToHeaderComp","destroyHeaderComp","headerCompGui","removeMoveDragSource","createParams","setActiveHeader","setFocusedHeader","getRowIndex","menuEnabled","updateSortableCssClass","updateAriaSort","afterHeaderCompCreated","isMenuEnabled","suppressMenu","showColumnMenu","showColumnMenuAfterButtonClick","setSortForColumn","eGridHeader","onColumnMovingChanged","colCanMove","suppressMovable","HeaderCell","createDragItem","visibleState","destroyResizeFuncs","canResize","canAutosize","addResize","eResize","finishedWithResizeFunc","horizontalResizeService","addResizeBar","eResizeBar","onResizeStart","onResizing","onResizeEnd","skipHeaderOnAutoSize_1","autoSizeColListener_1","touchListener_1","removeResize","resize","autoSize","propertyChange","resizeAmount","resizeAmountNormalised","normaliseResizeAmount","resizeStartWidth","resizeWithShiftKey","headerTooltip","onColumnWidthChanged","onMenuVisible","dragChange","__extends$T","__decorate$K","HeaderGroupWrapperComp","removeChildListenersFuncs","appendHeaderGroupComp","addClasses","activeEl","wrapperHasFocus","refreshExpanded","headerGroupComp","setupMove","eHeaderGroup","isSuppressMoving","getDragItemForGroup","allColumnsOriginalOrder","allColumnsCurrentOrder","childSuppressesMoving","addListenersToChildrenColumns","onDisplayedChildrenChanged","removeListenersOnChildrenColumns","eHeaderCellResize","resizeCols","resizeRatios","takeFromGroup","takeFromLeafCols","resizeTakeFromCols","resizeTakeFromStartWidth","resizeTakeFromRatios","normaliseDragChange","__extends$U","__decorate$L","ReadOnlyFloatingFilter","eFloatingFilterText","parentModel","getModelAsString","modelAsString","FloatingFilterMapper","getFloatingFilterType","filterToFloatingFilterMapping","agSetColumnFilter","multi","agMultiColumnFilter","__extends$V","__decorate$M","FloatingFilterWrapper","setupFloatingFilter","setupLeftPositioning","setupColumnHover","eButtonShowMainFilter","showParentFilter","nextFocusableEl","focusInto","floatingFilterCompPromise","getFloatingFilterInstance","compInstance","setupWithFloatingFilter","setupSyncWithFilter","setLeftFeature","syncWithFilter","currentParentModel","suppressFilterButton","eFloatingFilterBody","floatingFilterComp","disposeFunc","floatingFilterCompUi","eButtonWrapper","filterComponent","getFilterComponent","createIfDoesNotExist","getDefaultFloatingFilterType","defaultFloatingFilterType","setFilterModuleLoaded","SetFilterModule","createFilterParams","finalFilterParams","floatingFilterComponentParams","__extends$W","__decorate$N","HeaderRowType","HeaderRowComp","headerComps","niceClassName","forEachHeaderElement","destroyAllChildComponents","idsOfAllChildren","destroyChildComponents","idsToDestroy","childHeaderWrapper","sizes","numberOfFloating","groupHeight","numberOfNonGroups","numberOfGroups","onColumnResized","getWidthForRow","centerRow","getColumnsInViewport","getColumnsInViewportPrintLayout","getColumnsInViewportNormalLayout","actualDepth","getActualDepth","FLOATING_FILTER","compIdsToRemove","compIdsWanted","idOfChild","eParentContainer","previousComp","previousCompForOldColumn","createHeaderComp","isFocusedAndDisplayed","isHeaderWrapperFocused","focusedAndDisplayedComps","correctChildOrder","columnGroupChild","COLUMN_GROUP","getHeaderComps","__decorate$O","MoveColumnController","needToMoveLeft","needToMoveRight","centerContainer","dragCameFromToolPanel","ToolPanel","visibleState_1","hideColumnOnExit","ensureIntervalCleared","allowedCols","normaliseX","getCenterRowContainerCon","getCenterViewportScrollLeft","checkCenterForScrolling","xAdjustedForScroll","firstVisiblePixel","lastVisiblePixel","getCenterWidth","ensureIntervalStarted","fromEnter","lastDraggingEvent","mouseXNormalised","hDirectionNormalised","normaliseDirection","dragSourceType","attemptMoveColumns","calculateOldIndex","movingCols","gridCols","firstIndex","gapsExist","allMovingColumns","mouseX","draggingLeft","draggingRight","allMovingColumnsOrdered","validMoves","calculateValidMoves","firstValidMove","constrainDirection","move","isMoveBlocked","allDisplayedCols","allGridCols","movingDisplayedCols","otherDisplayedCols","otherGridCols","displayIndex","availableWidth","widthOfMovingDisplayedCols_1","leftColumn","numberComparator","displacedCol","isColumnHidden","firstDisplayIndex","movingIntervalId","intervalCount","failedMoveAttempts","moveInterval","pixelsToMove","pixelsMoved","scrollFeature","scrollHorizontally","columnsThatCanPin","pinType","__decorate$P","BodyDropPivotTarget","columnsToAggregate","columnsToGroup","columnsToPivot","clearColumnsList","dragColumns","totalColumns","__extends$X","__decorate$Q","DropType","BodyDropTarget","dropListeners","leftRowContainerCon","bottomLeftRowContainerCon","topLeftRowContainerCon","rightRowContainerCon","bottomRightRowContainerCon","topRightRowContainerCon","centerRowContainerCon","bottomCenterRowContainerCon","topCenterRowContainerCon","eSecondaryContainers","getContainerElement","moveColumnController","bodyDropPivotTarget","ColumnMove","Pivot","currentDropListener","getDropType","dropType","__extends$Y","__decorate$R","HeaderContainer","eViewport","groupsRowComps","columnsRowComp","filtersRowComp","onGridColumnsChanged","onScrollVisibilityChanged","onScrollbarWidthChanged","setupDragAndDrop","setWidthOfPinnedContainer","controller","addPaddingForScrollbar","scrollVisibleService","getRowComps","keepColumns","refreshRowComps","dropContainer","bodyDropTarget","destroyRowComps","destroyRowComp","sequence","refreshColumnGroups","groupRowCount","refreshColumns","rowIndexMismatch","COLUMN","refreshFilters","includeFloatingFilter","destroyPreviousComp","__extends$Z","__decorate$S","HeaderNavigationDirection","HeaderNavigationService","registerHeaderRoot","headerRoot","headerContainers","getHeaderContainers","getHeaderContainer","getHeaderRowType","navigateVertically","fromHeader","rowLen","isUp","nextRow","nextFocusColumn","skipColumn","currentRowType","navigateHorizontally","fromTab","focusedHeader","nextHeader","normalisedDirection","headerPositionUtils","findHeader","focusNextHeaderRow","currentIndex","nextPosition","nextRowIndex","findColAtEdgeForHeaderRow","scrollToColumn","columnToScrollTo","KeyName","NUM_PAD_DELETE","__extends$_","__decorate$T","CenterWidthFeature","centerWidth","totalWidth","__extends$$","__decorate$U","HeaderRootComp","registerHeaderRootComp","registerHeaderContainer","eHeaderContainer","eHeaderViewport","ePinnedLeftHeader","ePinnedRightHeader","onPivotModeChanged","onPinnedLeftWidthChanged","onPinnedRightWidthChanged","addPreventHeaderScroll","refreshHeader","setupHeaderHeight","headerContainer","clearFocusedHeader","setHorizontalScroll","offset","childContainer","totalHeaderHeight","px","pinnedWidthService","getPinnedLeftWidth","getPinnedRightWidth","__extends$10","__assign$6","__decorate$V","FilterManager","allAdvancedFilters","activeAdvancedFilters","quickFilter","quickFilterParts","FilterManager_1","parseQuickFilter","setQuickFilterParts","setFilterModel","allPromises","modelKeys_1","filterWrapper","setModelOnFilterWrapper","filterPromise","getOrCreateFilterWrapper","getFilterModel","promiseFilter","isAdvancedFilterPresent","updateActiveFilters","resolvedPromise","updateFilterFlagInColumns","isAnyFilterPresent","isQuickFilterPresent","doAdvancedFiltersPass","filterToSkip","newFilter","parsedFilter","onAnyFilterChanged","doesRowPassOtherFilters","doesRowPassFilter","filterInstanceToSkip","doesRowPassQuickFilterNoCache","filterPart","getQuickFilterTextForColumn","doesRowPassQuickFilterCache","aggregateRowForQuickFilter","doesRowPassQuickFilter","usingCache","stringParts","QUICK_FILTER_SEPARATOR","createValueGetter","cachedFilter","createFilterWrapper","putIntoGui","createFilterInstance","doesRowPassOtherFilter","compiledElement","guiPromise","eFilterGui","guiFromFilter","atLeastOneFilterGone","oldColumn","disposeFilterWrapper","destroyFilter","__extends$11","__decorate$W","ValueService","initialised","cellExpressions","forFilter","groupDataExists","aggDataExists","filterValueGetter","executeFilterValueGetter","executeValueGetter","cellValueGetter","openedGroup","getOpenedGroup","newValueHandler","valueSetter","valueWasDifferent","setValueUsingField","onCellValueChanged","valuesAreSame","fieldPieces","fieldPiece","getValueCallback","valueFromCache","otherColumn","getKeyForNode","keyCreator","__extends$12","__decorate$X","LayoutCssClasses","LayoutFeature","view","updateLayoutClasses","__extends$13","__decorate$Y","GridBodyScrollFeature","eBodyViewport","nextScrollTop","resetLastHorizontalScrollElementDebounced","resetLastHorizontalScrollElement","onDisplayedColumnsWidthChanged","addScrollListener","fakeHScroll","getFakeHScrollCon","getViewportElement","onCenterViewportScroll","getViewport","onFakeHorizontalScroll","onVerticalScroll","topCenterContainer","getTopCenterRowContainerCon","bottomCenterContainer","getBottomCenterRowContainerCon","headerRootComp","getHeaderRootComp","setContainerTranslateX","partner","lastHorizontalScrollElement","isControllingScroll","fakeHScrollViewport","onBodyHorizontalScroll","centerContainerViewport","eSource","shouldBlockScrollUpdate","doHorizontalScroll","setScrollTop","redrawRowsAfterScroll","schedule","onHorizontalViewportChanged","scrollTo","touchOnly","checkScrollLeft","executeAnimationFrameScroll","frameNeeded","setHorizontalScrollPosition","hScrollPosition","minScrollLeft","maxScrollLeft","setVerticalScrollPosition","vScrollPosition","getHScrollPosition","oldScrollPosition","ensureNodeVisible","getRowCount","comparatorIsAFunction","indexToSelect","isPaging","paginationPanelEnabled","goToPageWithIndex","rowGotShiftedDuringOperation","startingRowTop","startingRowHeight","rowTopPixel","rowBottomPixel","heightOffset","heightScaler","vScrollTop","vScrollBottom","viewportHeight","pxTop","getScrollPositionForPixel","pxBottom","pxMiddle","rowBelowViewport","rowAboveViewport","newScrollPosition","colLeftPixel","colRightPixel","viewportLeftPixel","viewportRightPixel","viewportScrolledPastCol","viewportScrolledBeforeCol","colToSmallForViewport","alignColToLeft","alignColToRight","setCenterViewportScrollLeft","__extends$14","__assign$7","__decorate$Z","__spreadArrays$5","RowDragFeature","isMultiRowDrag","isGridSorted","isGridFiltered","onRowGroupChanged","isSortActive","rowGroups","managedDrag","getRowNodes","isFromThisGrid","currentNode","dispatchGridEvent","onEnterOrDragging","isDropZoneWithinThisGrid","gridGui","mouseEventService","doManagedDrag","getRowIndexNumber","highlightRowAtPixel","moveRows","moveRowAndClearHighlight","lastHighlightedRowNode","getLastHighlightedRowNode","isBelow","increment","getRowNodeId_1","addIndex","getHighlightPosition","updateRowData","clearRowHighlight","rowWasMoved","ensureRowsAtPixel","clearFocusedCell","removeAllCellRanges","pixelRange","needToMoveUp","needToMoveDown","scrollVertically","addRowDropZone","processedParams","fromGrid","draggingToRowDragEvent","getRowDropZone","events","yNormalised","mouseIsPastLastRow","overIndex","overNode","vDirectionString","stopDragging","__extends$15","__decorate$_","RowAnimationCssClasses","CSS_CLASS_CELL_SELECTABLE","CSS_CLASS_FORCE_VERTICAL_SCROLL","CSS_CLASS_COLUMN_MOVING","GridBodyController","bodyScrollFeature","getBodyViewportElement","setView","eGridBody","eTop","eBottom","setCellTextSelection","addRowDragListener","setupRowAnimationCssClass","registerGridBodyController","addEventListeners","addBodyViewportListener","setFloatingHeights","disableBrowserDragging","addStopEditingWhenGridLosesFocus","setColumnMovingCss","setCellSelectableCss","show","setVerticalScrollPaddingVisible","setColumnCount","HTMLImageElement","focusOutListener","elementWithFocus","clickInsideGrid","viewports","viewport","isElementInThisGrid","getActivePopups","popup","isElementWithinCustomPopup","headerCount","modelType","setRowCount","registerBodyViewportResizeListener","setAlwaysVerticalScrollClass","isStretching","setRowAnimationCssOnBodyViewport","getGridBodyElement","contextMenuFactory","onContextMenu","getBodyClientRect","floatingTopHeight","getPinnedTopTotalHeight","floatingBottomHeight","getPinnedBottomTotalHeight","setTopHeight","setBottomHeight","setTopDisplay","setBottomDisplay","nextTimeout","removeScrollWidth","scrollWidthToRemove","bodyViewportWidth","__extends$16","__decorate$$","RowContainerEventsFeature","addMouseListeners","mockContextMenuForIPad","addKeyboardEvents","eventNames","processKeyboardEvent","processMouseEvent","isEventFromThisGrid","getRowForEvent","getRenderedCellForEvent","handleContextMenuMouseEvent","longTapListener","processCellKeyboardEvent","processFullWidthRowKeyboardEvent","gridProcessingAllowed","wasScrollKey","navigationService","handlePageScrollingKey","doGridOperations","cellKeyDownEvent","cellKeyPressEvent","onCtrlAndA","onCtrlAndC","onCtrlAndV","onCtrlAndD","undoRedoService","redo","undo","isEmptyPinnedTop","isEmptyPinnedBottom","floatingStart","floatingEnd","rowEnd","setCellRange","rowStartIndex","rowStartPinned","rowEndIndex","rowEndPinned","columnStart","columnEnd","clipboardService","copyToClipboard","ClipboardModule","pasteFromClipboard","copyRangeDown","__extends$17","__decorate$10","ViewportSizeFeature","centerContainerCon","listenForResize","onCenterViewportResized","registerViewportResizeListener","checkViewportAndScrolls","isViewportVisible","bodyHeight","updateScrollVisibleService","checkBodyHeight","updateScrollVisibleServiceImpl","horizontalScrollShowing","verticalScrollShowing","setScrollsVisible","isViewportHScrollShowing","getViewportScrollLeft","__extends$18","__decorate$11","SetPinnedLeftWidthFeature","__extends$19","__decorate$12","SetPinnedRightWidthFeature","__extends$1a","__decorate$13","SetHeightFeature","onHeightChanged","maxDivHeightScaler","getUiContainerHeight","heightString","__extends$1b","__decorate$14","DragListenerFeature","__extends$1c","__decorate$15","__spreadArrays$6","RowContainerNames","ContainerCssClasses","CENTER","FULL_WIDTH","TOP_CENTER","TOP_LEFT","TOP_RIGHT","TOP_FULL_WITH","BOTTOM_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_FULL_WITH","ViewportCssClasses","WrapperCssClasses","RowContainerController","forContainers","viewportSizeFeature","registerWithControllersService","registerCenterRowContainerCon","registerLeftRowContainerCon","registerRightRowContainerCon","registerTopCenterRowContainerCon","registerTopLeftRowContainerCon","registerTopRightRowContainerCon","registerBottomCenterRowContainerCon","registerBottomLeftRowContainerCon","registerBottomRightRowContainerCon","names","getViewportSizeFeature","addPreventScrollWhileDragging","allTopNoFW","allBottomNoFW","allMiddleNoFW","allNoFW","allMiddle","allCenter","allLeft","allRight","setViewportHeight","isDragging","cancelable","unsubscribeFromResize","amount","__extends$1d","__decorate$16","GRID_BODY_TEMPLATE","GridBodyComp","setHeight","display","AUTO_HEIGHT","NORMAL","PRINT","on","scroller","overflowY","ct","addAngularApplyCheck","registerGridComp","ANIMATION_ON","ANIMATION_OFF","applyTriggered","getFloatingTopBottom","addScrollEventListener","removeScrollEventListener","ExcelFactoryMode","ClientSideRowModelSteps","__decorate$17","GridApi","detailGridInfoMap","destroyCalled","gridBodyComp","registerOverlayWrapperComp","overlayWrapperComp","registerGridCompController","gridCompController","registerSideBarComp","sideBarComp","infiniteRowModel","__getAlignedGridService","alignedGridsService","addDetailGridInfo","gridInfo","removeDetailGridInfo","getDetailGridInfo","forEachDetailGridInfo","getDataAsCsv","CsvExportModule","csvCreator","exportDataAsCsv","getDataAsExcel","ExcelExportModule","exportMode","excelCreator","getFactoryMode","MULTI_SHEET","exportDataAsExcel","getSheetDataForExcel","setFactoryMode","getMultipleSheetsAsExcel","exportMultipleSheetsAsExcel","setEnterpriseDatasource","setServerSideDatasource","setGridAriaProperty","eGrid","ariaProperty","setDatasource","setViewportDatasource","setRowData","transactionAndMap","immutableService","createTransactionForRowData","transaction","orderIdMap","nodeTransaction","setFloatingTopRowData","setPinnedTopRowData","setFloatingBottomRowData","setPinnedBottomRowData","getFloatingTopRowCount","getPinnedTopRowCount","getFloatingBottomRowCount","getPinnedBottomRowCount","getFloatingTopRow","getFloatingBottomRow","expireValueCache","getVerticalPixelRange","getHorizontalPixelRange","setAlwaysShowHorizontalScroll","setAlwaysShowVerticalScroll","refreshToolPanel","refreshView","refreshRows","rowDataChanged","softRefreshView","refreshGroupRows","setFunctionsReadOnly","isColumnFilterPresent","setRowNodeExpanded","onGroupExpandedOrCollapsed","deprecated_refreshFromIndex","refreshModel","MAP","refreshInMemoryRowModel","refreshClientSideRowModel","paramsStep","EVERYTHING","stepsMapped","FILTER","aggregate","AGGREGATE","SORT","PIVOT","modelParams","keepEditingRows","isAnimationFrameQueueEmpty","isQueueEmpty","getSizesForCurrentTheme","expandAll","expandOrCollapseAll","collapseAll","getToolPanelInstance","addVirtualRowListener","suppressEvents","selectAll","deselectAll","selectAllFiltered","deselectAllFiltered","recomputeAggregates","showLoadingOverlay","showNoRowsOverlay","hideOverlay","isNodeSelected","getSelectedNodesById","ensureColIndexVisible","forEachLeafNode","forEachNodeAfterFilterAndSort","getFilterApiForColDef","getFilterInstance","filterComp","getFilterApi","getStatusPanel","statusBarService","getColumnDef","setSortModel","sortModel","getSortModel","filteredStates","removeRowDropZone","activeDropTarget","getRowDropZoneParams","setDomLayout","setFillHandleDirection","setGroupHeaderHeight","setFloatingFiltersHeight","setPivotGroupHeaderHeight","setIsExternalFilterPresent","isExternalFilterPresentFunc","setDoesExternalFilterPass","doesExternalFilterPassFunc","setNavigateToNextCell","navigateToNextCellFunc","setTabToNextCell","tabToNextCellFunc","setTabToNextHeader","tabToNextHeaderFunc","setNavigateToNextHeader","navigateToNextHeaderFunc","setGroupRowAggNodes","groupRowAggNodesFunc","setGetBusinessKeyForNode","setGetChildCount","setProcessRowPostCreate","processRowPostCreateFunc","setGetRowNodeId","setGetRowClass","rowClassFunc","setIsFullWidthCell","setIsRowSelectable","setIsRowMaster","isRowMasterFunc","setPostSort","postSortFunc","setGetDocument","getDocumentFunc","setGetContextMenuItems","setGetMainMenuItems","setProcessCellForClipboard","processCellForClipboardFunc","setSendToClipboard","sendToClipboardFunc","setProcessCellFromClipboard","processCellFromClipboardFunc","setProcessSecondaryColDef","processSecondaryColDefFunc","setProcessSecondaryColGroupDef","processSecondaryColGroupDefFunc","setPostProcessPopup","postProcessPopupFunc","setDefaultGroupSortComparator","defaultGroupSortComparatorFunc","setProcessChartOptions","processChartOptionsFunc","setGetChartToolbarItems","setPaginationNumberFormatter","paginationNumberFormatterFunc","setGetServerSideStoreParams","setIsServerSideGroupOpenByDefault","isServerSideGroupOpenByDefaultFunc","setIsApplyServerSideTransaction","isApplyServerSideTransactionFunc","setIsServerSideGroup","isServerSideGroupFunc","setGetServerSideGroupKey","setGetRowStyle","setGetRowHeight","rowHeightFunc","setPivotHeaderHeight","isSideBarVisible","setSideBarVisible","setSideBarPosition","openToolPanel","closeToolPanel","getOpenedToolPanel","openedItem","setSideBar","isToolPanelShowing","doLayout","setGroupRemoveLowestSingleChildren","destroyGridUi","warnIfDestroyed","resetQuickFilter","getRangeSelections","camelCaseToHumanReadable","addRangeSelection","deprecatedNoLongerUsed","addCellRange","clearRangeSelection","undoCellEditing","redoCellEditing","getCurrentUndoSize","getCurrentUndoStackSize","getCurrentRedoSize","getCurrentRedoStackSize","getChartModels","chartService","createRangeChart","createCrossFilterChart","restoreChart","chartModel","chartContainer","createPivotChart","copySelectedRowsToClipboard","includeHeader","columnKeys","copySelectedRangeToClipboard","copySelectedRangeDown","buttonElement","showMenuAfterMouseEvent","hidePopupMenu","hideActiveMenu","setPopupParent","ePopupParent","tabToPreviousCell","notPinned","addAggFunc","addAggFuncs","clearAggFuncs","clear","applyServerSideTransaction","serverSideTransactionManager","applyTransaction","applyServerSideTransactionAsync","applyTransactionAsync","retryServerSideLoads","retryLoads","flushServerSideAsyncTransactions","flushAsyncTransactions","rowDataTransaction","batchUpdateRowData","insertItemsAtIndex","skipRefresh","removeItems","dataToRemove","refreshVirtualPageCache","refreshInfiniteCache","refreshInfinitePageCache","refreshCache","purgeVirtualPageCache","purgeInfinitePageCache","purgeInfiniteCache","purgeCache","purgeEnterpriseCache","route","purgeServerSideCache","refreshServerSideStore","purge","refreshStore","getServerSideStoreState","getStoreState","getVirtualRowCount","getInfiniteRowCount","isMaxRowFound","isLastRowIndexKnown","setVirtualRowCount","maxRowFound","setInfiniteRowCount","getVirtualPageState","getCacheBlockState","getInfinitePageState","rowNodeBlockLoader","getBlockState","checkGridSize","getFirstRenderedRow","getFirstDisplayedRow","getLastRenderedRow","getLastDisplayedRow","getDisplayedRowAtIndex","getDisplayedRowCount","paginationIsLastPageFound","isLastPageFound","paginationGetPageSize","getPageSize","paginationGetCurrentPage","paginationGetTotalPages","getTotalPages","paginationGetRowCount","getMasterRowCount","paginationGoToNextPage","goToNextPage","paginationGoToPreviousPage","goToPreviousPage","paginationGoToFirstPage","goToFirstPage","paginationGoToLastPage","goToLastPage","paginationGoToPage","page","goToPage","__extends$1e","__decorate$18","__param$6","ExpressionService","expressionToFunctionCache","expressionOrFunc","evaluateExpression","javaScriptFunction","createExpressionFunction","functionBody","createFunctionBody","theFunction","Function","__extends$1f","__decorate$19","TemplateService","templateCache","waitingCallbacks","url","templateFromCache","callbackList","that","client","XMLHttpRequest","onload","handleHttpResult","send","httpResult","response","responseText","callbacks","that_1","__extends$1g","__decorate$1a","__spreadArrays$7","FocusController","FocusController_1","addKeyboardModeEvents","doc","docControllers","instancesMonitored","toggleKeyboardMode","removeKeyboardModeEvents","newControllers","currentGridCore","isKeyboardActive","keyboardModeActive","isKeyboardEvent","ownerDocument","controllersForDoc","clearFocusedCellListener","onColumnEverythingChanged","unregisterGridCompController","focusedCellPosition","colFromColumnController","isKeyboardMode","getGridCellForDomElement","eBrowserCell","ePointer","gridColumn","headerWrapper","focusedHeaderPosition","focusedColumn","focusedHeaderRowIndex","headerPosition","currentPosition","previousHeaderPosition","nextHeaderPosition","focusGridView","nextRowComp","isAnyCellFocused","exclude","onlyUnmanaged","focusableString","excludeString","excludeNodes","diff","focusableElements","toFocus","onlyManaged","nextIndex","isFocusUnderManagedComponent","managedContainers","findTabbableParent","limit","getLastRow","getFirstRow","focusNextInnerContainer","AG_KEYBOARD_FOCUS","__extends$1h","__decorate$1b","PopupService","popupList","positionPopupForMenu","sourceRect","parentRect","getParentRect","keepYWithinBounds","widthOfParent","maxX","xLeftPosition","xRightPosition","calculatePointerAlign","nudgeX","positionPopup","callPostProcessPopup","alignSide","keepXWithinBounds","eDocument","bounds","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","docElement","documentRect","isBody","heightOfParent","maxY","keepPopupPositionedRelativeTo","initialDiffTop","initialDiffLeft","lastDiffTop","lastDiffLeft","leftPx","intervalId","pRect","sRect","elementNotInDom","currentDiffTop","newTop","currentDiffLeft","newLeft","click","alwaysOnTop","stopAnchoringFunc","setAlwaysOnTop","bringPopupToFront","popupHidden","hidePopupOnKeyboardEvent","hidePopupOnMouseEvent","hidePopupOnTouchEvent","destroyPositionTracker","popupParams","isEventFromCurrentPopup","isEventSameChainAsOriginalEvent","originalMouseEvent","indexOfThisChild","mouseEventOrTouch","screenX_1","screenX","screenY_1","screenY","xMatch","yMatch","getWrapper","popupLen","alwaysOnTopList","onTopLength","isPopupAlwaysOnTop","__extends$1i","__decorate$1c","__param$7","LoggerFactory","logging","Logger","isLogging","isLoggingFunc","__extends$1j","__decorate$1d","AutoWidthCalculator","getHeaderCellForColumn","eDummyContainer","eBodyContainer","putRowCellsIntoDummyContainer","cloneItemIntoDummy","dummyContainerWidth","headerElement","headerWrapperComp","eCellClone","cloneNode","eCloneParent","__extends$1k","__decorate$1e","HorizontalResizeService","dragStartX","setResizeIcons","MouseEvent","oldBodyCursor","eGridDiv","cursor","oldUserSelect","userSelect","oldWebkitUserSelect","webkitUserSelect","resetIcons","__extends$1l","__decorate$1f","GridCompController","service","eGridHostDiv","stampTopLevelGridCompWithGridInstance","addRtlSupport","addOrRemoveKeyboardFocusClass","onGridSizeChanged","showDropZones","showSideBar","SideBarModule","showStatusBar","StatusBarModule","showWatermark","EnterpriseCoreModule","setRtlClass","focusableContainers","getFocusableContainers","idxWithFocus","nextIdx","focusGridHeader","__extends$1m","__decorate$1g","GridComp","con","createTemplate","insertGridIntoDom","eRootWrapperBody","dropZones","statusBar","watermark","lastColumn","__extends$1n","__decorate$1h","StandardMenuFactory","showPopup","tabListener","trapFocusWithin","KeyboardEvent","__extends$1o","__decorate$1i","DragService","dragEndFunctions","dragSources","removeAllListeners","removeListener","dragSourceAndListener","mouseDownListener","touchEnabled","touchStartListener","setNoSelectToBody","noSelect","eBody","includeTouch","mouseListener","currentDragParams","touchLastTime","touchMoveEvent","touchEndEvent","onTouchUp","documentTouchMove","addTemporaryEvents","onCommonMove","skipMouseEvent","_alreadyProcessedByDragService","mouseStartEvent","mouseMoveEvent","mouseUpEvent","onMouseUp","contextEvent","currentEvent","isEventNearStartEvent","startEvent","requiredPixelDiff","getFirstActiveTouch","changedTouches","onUpCommon","eventOrTouch","__extends$1p","__decorate$1j","SortController","SortController_1","nextDirection","getNextSortDirection","doingMultiSort","clearSortBarThisColumn","updateSortIndex","lastColToChange","allSortedCols","allCols","sortedCols","columnToSkip","columnToClear","DEFAULT_SORTING_ORDER","notInArray","lastItemInArray","allColumnsIncludingAuto","columnsWithSorting","allColsIndexes","iA","iB","getSortOptions","__extends$1q","__decorate$1k","MouseEventService","gridInstanceId","MouseEventService_1","gridInstanceSequence","GRID_DOM_KEY","eventFromThisGrid","getCellPositionForEvent","gridPanelHasScrolls","vRange","hRange","__extends$1r","__decorate$1l","CellNavigationService","lastCellToFocus","getCellAbove","getCellBelow","getCellToLeft","getCellToRight","isCellGoodToFocusOn","lastCell","colToLeft","colToRight","getRowBelow","isLastRowInContainer","rowBelow","lastTopIndex","lastBottomIndex","lastBodyIndex","getRowAbove","isFirstRow","getLastFloatingTopRow","getLastBodyCell","rowAbove","lastBodyRow","lastFloatingRow","getNextTabbedCellBackwards","getNextTabbedCellForwards","newRowIndex","newFloating","newColumn","isRowInPage","__extends$1s","__decorate$1m","ValueFormatterService","suppliedFormatter","useFormatterFromColumn","pinnedRowValueFormatter","valueFormatter","__extends$1t","AgRadioButton","onChange","OUTSIDE_ANGULAR_EVENTS","VanillaFrameworkOverrides","isOutsideAngular","useCapture","__extends$1u","__decorate$1n","ScrollVisibleService","updateImpl","atLeastOneDifferent","__extends$1v","__decorate$1o","StylingService","processAllCellClasses","classRules","classNames","rule","resultOfRule","classOrClasses","cellClassFunc","__extends$1w","__decorate$1p","ColumnHoverService","selectedColumns","__extends$1x","__decorate$1q","ColumnAnimationService","executeNextFuncs","executeLaterFuncs","animationThreadCount","ensureAnimationCssClassPresent","flush","executeLaterVMTurn","animationThreadCountCopy","nowFuncs","waitFuncs","__extends$1y","__decorate$1r","AutoGroupColService","AutoGroupColService_1","doingTreeData","doingMultiAutoColumn","rowGroupCol","createOneAutoGroupColumn","defaultAutoColDef","generateDefaultColDef","GROUP_AUTO_COLUMN_BUNDLE_ID","userAutoColDef","noFieldOrValueGetter","userDef","userHasProvidedGroupCellRenderer","cellRendererFramework","cellRendererSelector","__extends$1z","__decorate$1s","PaginationProxy","topDisplayedRowIndex","bottomDisplayedRowIndex","masterRowCount","onPaginationPageSizeChanged","startPixel","endPixel","startLimitIndex","endLimitIndex","calculatePages","modelUpdatedEvent","paginationChangedEvent","topRowBounds","bottomRowBounds","nodeIsInPage","firstInRange","lastInRange","getRowBounds","getPageForIndex","pageSize","pageNumber","rowPage","lastPage","totalPages","setPageSize","calculatePagesAllRows","calculatePagesMasterRowsOnly","calculatedPagesNotActive","setPixelOffset","setZeroRows","getTopLevelRowCount","masterLastRowIndex","masterPageStartIndex","masterPageEndIndex","getTopLevelRowDisplayedIndex","firstIndexNotToShow","maxRowIndex","__extends$1A","__decorate$1t","PaginationAutoPageSizeService","onBodyHeightChanged","checkPageSize","notActive","newPageSize","__extends$1B","__decorate$1u","ValueCache","cacheVersion","neverExpires","__cacheVersion","__cacheData","__extends$1C","__decorate$1v","ChangeDetectionService","doChangeDetection","onlyChangedColumns","doAggregate","__extends$1D","__decorate$1w","__param$8","AlignedGridsService","consuming","fireScrollEvent","fireEvent","otherGrids","otherGridOptions","alignedGridService","onEvent","onColumnEvent","onScrollEvent","getMasterColumns","getColumnIds","colEvent","processColumnEvent","groupOpenedEvent","processGroupOpenedEvent","masterColumnGroup","otherColumnGroup","masterColumn","masterColumns","movedEvent","srcColState","destColState","visibleEvent","pinnedEvent","resizedEvent_1","grid","__extends$1E","__decorate$1x","AgComponentUtils","metadata","functionAdapter","adaptCellRendererFunction","Adapter","callbackResult","candidate","__extends$1F","__decorate$1y","ComponentMetadataProvider","componentMetaData","dateComponent","detailCellRenderer","headerGroupComponent","loadingCellRenderer","loadingOverlayComponent","noRowsOverlayComponent","floatingFilterComponent","floatingFilterWrapperComponent","fullWidthCellRenderer","pinnedRowCellRenderer","groupRowRenderer","statusPanel","tooltipComponent","__decorate$1z","Beans","__extends$1G","__decorate$1A","MAT_GRID_SIZE","BASE_GRID_SIZE","BALHAM_GRID_SIZE","ALPINE_GRID_SIZE","HARD_CODED_SIZES","headerCellMinWidth","listItemHeight","SASS_PROPERTY_BUILDER","CALCULATED_SIZES","Environment","useTheme","calculatedValue","prevEl","currentClass","currentDiv","sizeName","isThemeDark","themeFamily","reg","themeMatch","usingOldTheme","newTheme_1","__extends$1H","__decorate$1B","AnimationFrameService","createTasksP1","sorted","createTasksP2","destroyTasks","ticking","scrollGoingDown","lastScrollTop","taskCount","cancelledTasks","verifyAnimationFrameOn","task","taskItem","createOrder","addTaskToList","taskList","sortTaskList","sortDirection","executeFrame","millis","p1TaskList","p1Tasks","p2TaskList","p2Tasks","frameStart","noMaxMillis","gridBodyDidSomething","requestFrame","stopTicking","requestAnimationFrame","webkitRequestAnimationFrame","__extends$1I","__decorate$1C","NavigationService","timeLastPageEventProcessed","alt","ctrl","processed","onHomeOrEndKey","onCtrlLeftOrRight","onCtrlUpOrDown","onPageDown","onPageUp","isTimeSinceLastPageEventToRecent","setTimeLastPageEventProcessed","navigateTo","navigateParams","scrollIndex","scrollType","scrollColumn","focusIndex","focusColumn","pixelsInOnePage","pagingPixelOffset","currentPageBottomPixel","currentPageBottomRow","currentCellPixel","nextCellPixel","currentPageTopPixel","currentPageTopRow","getIndexToFocus","indexToScrollTo","isDown","indexToFocus","upKey","rowIndexToScrollTo","leftKey","columnToSelect","homeKey","__extends$1J","__decorate$1D","__param$9","RowContainerHeightService","scrollY","uiBodyHeight","maxDivHeight","stretching","newScrollY","newBodyHeight","getUiBodyHeight","calculateOffset","setUiContainerHeight","pixelsToShave","modelHeight","uiContainerHeight","maxScrollY","scrollPercent","setDivStretchOffset","clearOffset","newOffset","newOffsetFloor","modelPixel","modelMaxScroll","scrollPixel","__extends$1K","__decorate$1E","SelectableService","updateSelectableAfterGrouping","nextChildrenFunc","recurseDown","updateSelectableAfterFiltering","rowSelectable","firstSelectable","__extends$1L","__decorate$1F","AutoHeightCalculator","addInRowCssClasses","autoRowHeightCols","displayedCols","visibleAutoRowHeightCols","maxCellHeight","__extends$1M","__decorate$1G","PaginationComp","previousAndFirstButtonsDisabled","nextButtonDisabled","lastButtonDisabled","btFirst","btPrevious","btNext","btLast","onBtFirst","onBtPrevious","onBtNext","onBtLast","enableOrDisableButtons","updateRowLabels","setCurrentPageLabel","setTotalLabels","pagesExist","toDisplay","lbCurrent","formatNumber","strPage","strTo","strOf","strFirst","strPrevious","strNext","strLast","summaryDescribedBy","descriptionDescribedBy","zeroPagesToDisplay","isZeroPagesToDisplay","onLastPage","lbFirstRowOnPage","isLoading","lbLastRowOnPage","lastPageFound","lbTotal","lbRecordCount","moreText","__extends$1N","__decorate$1H","ResizeObserverService","debounceDelay","frameworkFactory","debouncedCallback","useBrowserResizeObserver","resizeObserver","ResizeObserver","observe","disconnect","usePolyfill","widthLastTime","heightLastTime","running","periodicallyCheckWidthAndHeight","newHeight","changed","suppressResize","resizeObserverExists","__extends$1O","__decorate$1I","LoadingType","OverlayWrapperComponent","inProgress","destroyRequested","eOverlayWrapper","onRowDataChanged","setWrapperTypeClass","loadingType","Loading","NoRows","workItem","showOverlay","destroyActiveOverlay","activeOverlay","showOrHideOverlay","__extends$1P","__decorate$1J","AgGroupComponent","suppressEnabledCheckbox","suppressOpenCloseIcons","title","enabled","cssIdentifier","alignItems","initialItems","cbGroupEnabled","setTitle","setEnabled","setAlignItems","hideEnabledCheckbox","hideOpenCloseIcons","setupExpandContract","refreshChildDisplay","eGroupClosedIcon","eGroupOpenedIcon","eTitleBar","toggleGroupExpand","showIcon","eToolbar","newCls","EVENT_EXPANDED","EVENT_COLLAPSED","addItem","hideItem","itemToHide","eTitle","addCssClassToTitleBar","skipToggle","refreshDisabledStyles","isEnabled","onEnableChange","__extends$1Q","__decorate$1K","AgPanel","closable","positioned","dragStartPosition","hideTitleBar","centered","setBodyComponent","setClosable","eTitleBarButtons","eContentWrapper","renderComponent","refreshSize","center","offsetElement","updateDragStartPosition","calculateMouseMovement","anywhereWithin","topBuffer","movementX","movementY","getHeight","skipX","skipY","isPercent","closeButtonComp","CLOSE_BTN_TEMPLATE","addTitleBarButton","onBtClose","bodyComponent","__extends$1R","__decorate$1L","AgDialog","RESIZE_TEMPLATE","movable","isMaximizable","isMaximized","maximizeListeners","resizeListenerDestroy","isResizing","lastPosition","maximizable","moveElement","setMovable","setMaximizable","addResizers","setResizable","parser","DOMParser","resizers","parseFromString","createMap","resizerMap","topLeft","topRight","bottomRight","bottomLeft","getResizerElement","onResize","isHorizontal","isVertical","offsetLeft","offsetTop","oldWidth","skipWidth","oldHeight","skipHeight","onMoveStart","onMove","onMoveEnd","toggleMaximize","refreshMaximizeIcon","maximizeIcon","minimizeIcon","clearMaximizebleListeners","destroyListener","maximizeButtonComp","pointerEvents","moveElementDragListener","__extends$1S","AgInputTextField","preventDisallowedCharacters","pattern","RegExp","clipboardData","getData","__extends$1T","AgInputTextArea","__extends$1U","__decorate$1M","AgSlider","eSlider","eventChanged","textValue","sliderValue","setSliderWidth","setTextFieldWidth","setMinValue","minValue","setMin","setMaxValue","maxValue","setMax","setStep","__extends$1V","__decorate$1N","AgColorPanel","isSpectrumDragging","isSpectrumHueDragging","isSpectrumAlphaDragging","colorChanged","picker","initRecentColors","spectrumVal","onSpectrumDraggerDown","onSpectrumDraggerMove","spectrumHue","onSpectrumHueDown","onSpectrumHueMove","spectrumAlpha","onSpectrumAlphaDown","onSpectrumAlphaMove","recentColors","onRecentColorClick","refreshSpectrumRect","spectrumValRect","refreshHueRect","spectrumHueRect","refreshAlphaRect","spectrumAlphaRect","moveDragger","moveHueSlider","moveAlphaSlider","valRect","setSpectrumValue","hueRect","slider","spectrumHueSlider","sliderRect","alphaRect","spectrumAlphaSlider","color","spectrumColor","rgbaColor","existingColor","backgroundColor","spectrumDragger","saturation","brightness","dragger","draggerRect","innerHtml","addRecentColor","currentColor","maxRecentColors","__extends$1W","__decorate$1O","AgPickerField","pickerIcon","popupRole","isPickerDisplayed","isDestroyingPicker","skipClick","displayId","eDisplayField","clickHandler","pickerComponent","icon","__extends$1X","AgColorPicker","eGuiRect","colorDialog","colorPanel","__extends$1Y","AgInputNumberField","floatedValue","normalizeValue","precision","adjustPrecision","floatString","setPrecision","normalizedValue","__extends$1Z","AgInputRange","__extends$1_","__decorate$1P","AgList","itemEls","highlightedEl","setValueByIndex","itemToHighlight","currentIdx","highlightItem","addOptions","listOptions","listOption","sanitisedText","renderOption","itemEl","clearHighlighted","fireItemSelected","displayValue","fireChangeEvent","getDisplayValue","refreshHighlighted","ACTIVE_CLASS","EVENT_ITEM_SELECTED","__extends$1$","__decorate$1Q","AgSelect","listComponent","hideList","listGui","destroyMouseWheelFunc","destroyFocusOutFunc","fromPicker","__extends$20","__decorate$1R","AgAngleSelect","radius","offsetX","offsetY","dragListener","eParentCircle","parentCircleRect","calculateAngleDrag","eAngleValue","degrees","floatValue","updateNumberInput","normalizeNegativeValue","positionChildCircle","radians","eChildCircle","centerX","centerY","cos","sin","calculatePolar","atan2","toDegrees","sqrt","calculateCartesian","toRadians","getRadius","setOffsetX","setOffsetY","dx","dy","PI","normalizeAngle180","setRadius","radiansValue","__extends$21","AgToggleButton","__extends$22","__decorate$1S","DetailRowCompCache","cacheItems","maxCacheSize","addOrDestroy","doNotUseCache","destroyFullWidthRow","getCacheItem","lastAccessedTime","autoCreate","stampCacheItem","__extends$23","__decorate$1T","RowPositionUtils","pinnedBottomCount","pinnedTopCount","rowA","rowB","before","__extends$24","__decorate$1U","CellPositionUtils","createIdFromValues","cellA","cellB","colsMatch","floatingMatch","indexMatch","__extends$25","__decorate$1V","PinnedRowModel","pinnedTopRows","pinnedBottomRows","getRowAtPixel","createNodesFromData","allData","nextRowTop_1","dataItem","idPrefix","getTotalHeight","forEachPinnedTopRow","forEachPinnedBottomRow","lastNode","__extends$26","UndoRedoAction","cellValueChanges","FillUndoRedoAction","initialRange","finalRange","UndoRedoStack","maxStackSize","actionStack","DEFAULT_STACK_SIZE","shouldAddActions","getCurrentStackSize","__extends$27","__decorate$1W","UndoRedoService","isCellEditing","isRowEditing","isPasting","isFilling","shouldCaptureAction","cellValueChange","clearStacks","undoStack","redoStack","undoRedoLimit","addRowEditingListeners","addCellEditingListeners","addPasteListeners","addFillListeners","undoAction","processAction","processRangeAndCellFocus","redoAction","valueExtractor","currentRow","startColumn","setLastFocusedCell","cellRangeParams","pushActionsToUndoStack","shouldPushAction","__extends$28","__decorate$1X","AgStackComponentsRegistry","componentsMappedByName","setupComponents","componentMeta","addComponent","classEscaped","classUpperCase","componentClass","htmlTag","__extends$29","__decorate$1Y","HeaderPositionUtils","nextColumn","getGroupMethod","getColMethod","headerRowComp","__decorate$1Z","ColumnDefFactory","colGroupDefs","createDefFromColumn","addToResult","childDef","parentDef","existingParentDef","createDefFromGroup","defCloned","colDefCloned","__decorate$1_","RowCssClassCalculator","extraCssClass","preProcessRowClassRules","rowCls","rowClassFuncResult","rowClassParams","__extends$2a","RowNodeBlock","STATE_WAITING_TO_LOAD","STATE_LOADING","loadFromDatasource","getVersion","setStateWaitingToLoad","pageLoadFailed","requestMostRecentAndLive","isRequestMostRecentAndLive","STATE_FAILED","processServerFail","dispatchLoadCompleted","successCommon","pageLoaded","thisIsMostRecentRequest","weAreNotDestroyed","STATE_LOADED","processServerResult","EVENT_LOAD_COMPLETE","block","__extends$2b","__decorate$1$","__param$a","RowNodeBlockLoader","activeBlockLoadsCount","blocks","RowNodeBlockLoader_1","maxConcurrentRequests","checkBlockToLoadDebounce","performCheckBlocksToLoad","addBlock","loadComplete","checkBlockToLoad","removeBlock","BLOCK_LOADER_FINISHED_EVENT","printCacheStatus","blockToLoad","getBlockStateJson","__decorate$20","RowNodeSorter","doFullSort","sortOptions","mapper","currentPos","sortedRowNodes","compareRowNodes","sortedNodeA","sortedNodeB","sortOption","isInverted","comparatorResult","providedComparator","__extends$2c","__decorate$21","ControllersService","readyCallbacks","checkReady","gridCompCon","fakeHScrollCon","p_1","createReadyParams","registerFakeHScrollCon","getGridCompController","__extends$2d","__decorate$22","FakeHorizontalScrollController","spacerWidthsListener","setFakeHScrollSpacerWidths","setScrollVisible","vScrollShowing","rightSpacing","scrollOnRight","setRightSpacerFixedWidth","includeRightSpacerScrollerCss","leftSpacing","scrollOnLeft","setLeftSpacerFixedWidth","includeLeftSpacerScrollerCss","hScrollShowing","scrollbarInvisible","adjustedScrollbarWidth","scrollContainerSize","addIEPadding","setInvisibleStyles","setContainerHeight","__extends$2e","__decorate$23","FakeHorizontalScrollComp","eRightSpacer","eLeftSpacer","isInvisible","__extends$2f","__decorate$24","PinnedWidthService","checkContainerWidths","__extends$2g","RowComp","afterRowAttached","createFullWidthRowCell","cachedDetailComp","detailRowCompCache","masterDetailModuleLoaded","cellsToRemove","existingCellComp","newCellComp","cellCompsToRemove","isCellEligibleToBeRemoved","elementsInOrder","REMOVE_CELL","KEEP_CELL","focused","mightWantToKeepCell","column_1","cellStillDisplayed","spanList","cmp","destroyAllCells","cellsToDestroy","cp","fullWidthRowComponent","rowClasses","rowIdSanitised","userRowStyles","businessKey","businessKeySanitised","rowTopStyle","rowIdx","gow","__extends$2h","__assign$8","__decorate$25","templateFactory","containerClass","viewportClass","wrapperClass","RowContainerComp","listenOnDomOrder","stopHScrollOnPinnedRows","onDisplayedRowsChanged","resetScrollLeft","domOrder","clearLastPlacedElement","lastPlacedElement","appendRow","removeRow","fullWithContainer","oldRows","existingRowComp","newRowComp","doesRowMatch","fullWidthController","embedFW","rowConsToRender","Grid","GridCoreCreator","gridComp","uiCallback","registeredModules","createBeansList","createProvidedBeans","contextLogger","registerModuleUserComponents","registerStackComponents","setColumnsAndData","dispatchGridReadyEvent","isEnterprise","agStackComponents","createAgStackComponentsList","passedViaConstructor","registered","allModules","mapNames","addModule","mod","addIndividualModule","currentModule","dependantModules","moduleUserComps","extractModuleEntity","userComponents","compMeta","seed","moduleAgStackComps","rowModelClass","getRowModelClass","moduleBeans","beansNoDuplicates","moduleEntities","extractor","readyEvent","rowModelClasses","rowModels","InfiniteRowModelModule","ViewportRowModelModule","ServerSideRowModelModule","ClientSideRowModelModule","initialiseAgGridWithAngular1","angular","angularModule","directive","restrict","AngularDirectiveController","$element","$attrs","keyOfGridInScope","agGrid","$eval","gridParams","quickFilterOnScope","quickFilterUnregisterFn","$watch","$on","initialiseAgGridWithWebComponents","registerElement","AgileGridProto","__agGridSetProperty","__agGridGetProperty","enumerable","configurable","agGridProtoNoType","__attributes","changeObject","_initialised","_gridOptions","setGridOptions","_agGrid","createdCallback","setPropertyFromAttribute","toCamelCase","nodeValue","attachedCallback","detachedCallback","attributeChangedCallback","eventLowerCase","browserEvent","Event","browserEventNoType","agGridDetails","callbackMethod","myString","__extends$2i","__decorate$26","TabbedLayout","eHeader","activeItem","nextItem","showItemWrapper","eHeaderButton","setAfterAttachedParams","afterAttachedParams","getMinDimensions","eDummyBody","itemWrapper","eClone","tabbedItem","bodyPromise","showFirstItem","titleLabel","showItem","onItemClicked","onActiveItemClicked","afterAttachedCallback","simpleHttpRequest","httpRequest","onreadystatechange","readyState","ServerSideTransactionResultStatus","__extends$2j","__decorate$27","VirtualList","ariaRole","isDestroyed","getItemHeight","addResizeObserver","drawVirtualRows","destroyObserver","focusRow","lastFocusedRowIndex","navigate","getLastFocusedRow","rowNumber","getComponentAt","viewportTopPixel","viewportBottomPixel","viewportScrolledPastRow","viewportScrolledBeforeRow","setComponentCreator","componentCreator","getScrollTop","clearVirtualRows","ensureRowsRendered","insertRow","isRowSelected","defaultGroupComparator","nodeAIsGroup","nodeBIsGroup","bothAreGroups","bothAreNormal","ServerSideStoreType","BaseComponentWrapper","OriginalConstructor","createWrapper","createMethod","mandatory","addMethod","createMethodProxy","hasMethod","callMethod","ChartType","LegendPosition","globalObj","global","HTMLButtonElement","HTMLSelectElement","HTMLInputElement","__spreadArrays$8","ClientSideNodeManager","nextId","allNodesMap","ROOT_NODE_ID","allLeafChildren","childrenAfterSort","getCopyOfNodesMap","recursiveFunction","TOP_LEVEL","rowDataTran","rowNodeTransaction","nodesToUnselect","executeRemove","executeUpdate","executeAdd","updateSelection","selectionChanged","newNodes","createNode","existingLeafChildren","nodesBeforeIndex","nodesAfterIndex","rowIdsRemoved","lookupRowNode","setMasterForRow","rowNodeIdFunc","numRowGroupColumns","masterRowLevel","expandByDefault","__extends$2k","__decorate$28","RecursionType","ClientSideRowModel","onRowGroupOpenedPending","refreshEverythingFunc","refreshEverythingAfterColsChangedFunc","afterColumnsChanged","onValueChanged","onRowGroupOpened","refreshMapListener","nodeManager","atLeastOneChange","rowAtStartPixel","rowAtEndPixel","setRowTops","nextRowTop","rowsToDisplay","resetRowTops","displayedRowsMapped","clearIfNotDisplayed","recurse","isRootNode","skipChildren","indexAtPixelNow","rowNodeAtPixelNow","lastHighlightedRow","highlight","showingRootNode","topLevelIndex","createChangePath","rowNodeTransactions","noTransactions","transWithAddsOrDeletes","tx","transactionsContainUpdatesOnly","doRowGrouping","doFilter","doPivot","doSort","doRowsToDisplay","rowsMissing","firstRowHit","lastRowHit","lookingForLastRow","skipThisGroupNode","childOfLastRow","pixelToMatch","bottomPointer","topPointer","midPointer","isRowInPixel","pixelInRow","recursivelyWalkNodesAndCallback","AfterFilter","AfterFilterAndSort","forEachPivotNode","PivotNodes","recursionType","nodeChildren","aggregationStage","execute","expand","recursiveExpandOrCollapse","shouldExpandOrCollapse","sortStage","groupStage","restoreGroupState","filterStage","pivotStage","getGroupState","idIsGroup","res_1","rowDataChangedEvent","applyAsyncTransactionsTimeout","rowDataTransactionBatch","waitMillis","executeBatchUpdateRowData","callbackFuncsBound","rowNodeTrans","forceRowNodeOrder","tranItem","rowNodeTran","commonUpdateRowData","createRowNodeOrder","suppressSortOrder","orderMap","flattenStage","__extends$2l","__decorate$29","FilterStage","filterService","selectableService","__extends$2m","__decorate$2a","SortStage","sortActive","dirtyLeafNodes","calculateDirtyNodes","noAggregations","sortService","dirtyNodes","addNodesFunc","tran","__extends$2n","__decorate$2b","FlattenStage","skipLeafNodes","showRootNode","topList","recursivelyAddToRowsToDisplay","atLeastOneRowPresent","includeGroupTotalFooter","ensureFooterNodeExists","addRowNodeToRowsToDisplay","rowsToFlatten","hideOpenParents","isParent","isSkippedLeafNode","isRemovedSingleChildrenGroup","isRemovedLowestSingleChildrenGroup","neverAllowToExpand","isHiddenOpenParent","thisRowShouldBeRendered","excludedParent","uiLevelForChildren","createDetailNode","groupNode","footerNode","masterNode","__extends$2o","__decorate$2c","SortService","pullDownGroupDataForHideOpenParents","doDeltaSort","rowNodeSorter","updateChildIndexes","updateGroupDataForHiddenOpenParents","mapNodeToSortedNode","cleanNodes","passesDirtyNodesCheck","passesChangedPathCheck","cleanNodesMapped","sortedRowNode","changedNodes","mergeSortedArrays","listToSort","clearOperation","childRowNode","groupDisplayCols","groupDisplayCol","displayingGroupKey","thisRowNodeMatches","parentToStealFrom","__extends$2p","__decorate$2d","FilterService","filterNodes","includeChildNodes","passBecauseChildren","passBecauseDataPasses","doingTreeDataFiltering","treeDataDepthFirstFilter_1","alreadyFoundInParent","foundInParent","treeDataFilterCallback","defaultFilterCallback","setAllChildrenCountTreeData","setAllChildrenCountGridGrouping","__extends$2q","__decorate$2e","ImmutableService","existingNodesMap","existingNode","dataHasChanged","clientSide","__extends$2r","__decorate$2f","InfiniteBlock","parentCache","blockSize","createRowNodes","blockNumber","getStartRow","getEndRow","pageStatus","createLoadParams","successCallback","failCallback","getLastAccessed","lastAccessed","dontTouchLastAccessed","lastAccessedSequence","localIndex","finalRowCount","destroyRowNodes","__extends$2s","__decorate$2g","__param$b","InfiniteCache","lastRowIndexKnown","blockCount","initialRowCount","dontCreatePage","blockId","createBlock","newBlock","purgeBlocksIfNeeded","nothingToRefresh","getBlocksInOrder","destroyAllBlocks","destroyBlock","checkRowCount","onCacheUpdated","blockToExclude","blocksForPurging","lastAccessedComparator","maxBlocksProvided","blocksToKeep","emptyBlocksToKeep","MAX_EMPTY_BLOCKS_TO_KEEP","purgeBecauseBlockEmpty","purgeBecauseCacheFull","isBlockCurrentlyDisplayed","isBlockFocused","removeBlockFromCache","blockIndexStart","blockIndexEnd","hasFocus","blockToRemove","lastRowIndexPlusOverflow","overflowSize","forEachNodeDeep","blockComparator","destroyAllBlocksPastVirtualRowCount","blocksToDestroy","getRowNodesInRange","lastBlockId","inActiveRange","numberSequence","foundGapInSelection","hitFirstOrLast","invalidRange","__extends$2t","__decorate$2h","InfiniteRowModel","destroyCache","verifyProps","destroyDatasource","onColumnEverything","resetRequired","cacheParams","isSortModelDifferent","infiniteCache","userGeneratingIds","resetCache","createModelUpdatedEvent","defaultIfInvalid","rowIndexForPixel","foundRowNode","infinite","BaseCreator","getFileName","fileName","extension","getDefaultFileExtension","getDefaultFileName","getMergedParamsAndData","mergedParams","mergeDefaultParams","gridSerializer","serialize","createSerializingSession","baseParams","BaseGridSerializingSession","groupColumns","processCellCallback","processHeaderCallback","processGroupHeaderCallback","processRowGroupCallback","prepare","columnsToExport","extractHeaderValue","extractRowCellValue","accumulatedRowIndex","groupIndex","renderGroupSummaryCell","valueForCell","createValueForGroupNode","processCell","Downloader","download","content","defaultView","msSaveOrOpenBlob","url_1","URL","createObjectURL","bubbles","revokeObjectURL","__extends$2u","LINE_SEPARATOR","CsvSerializingSession","isFirstLine","suppressQuotes","columnSeparator","addCustomContent","beginNewLine","putInQuotes","mergeAcross","appendEmptyCells","onNewHeaderGroupingRow","onColumn","onNewHeaderGroupingRowColumn","header","onNewHeaderRow","onNewHeaderRowColumn","onNewBodyRow","onNewBodyRowColumn","stringValue","valueEscaped","__extends$2v","__decorate$2i","CsvCreator","export","isExportSuppressed","packagedFile","Blob","getMimeType","__extends$2w","__decorate$2j","GridSerializer","gridSerializingSession","getColumnsToExport","serializeChain","prepareSession","prependContent","exportColumnGroups","exportHeaders","processPinnedTopRows","processRows","processPinnedBottomRows","appendContent","rowSkipper","shouldRowBeSkipped","skipSingleChildrenGroup","skipLowestSingleChildrenGroup","isLeafNode","skipRowGroups","skipGroups","shouldSkipLowestGroup","shouldSkipCurrentGroup","onlySelected","skipPinnedTop","skipPinnedBottom","nodeIsRootNode","rowAccumulator","getCustomContentBelowRow","customFooter","customHeader","skipColumnGroupHeaders","recursivelyAddHeaderGroups","columnGroups","skipColumnHeaders","gridRowIterator_1","usingCsrm","usingSsrm","onlySelectedNonStandardModel","onlySelectedAllPages","directChildrenHeaderGroups","doAddHeaderHeader","gridRowIterator","columnIndex","LINE_SEPARATOR$1","XmlFactory","createHeader","headerStart","headerEnd","encoding","standalone","att","createXml","xmlElement","booleanTransformer","prefixedAttributes","prefixedSet","returnAttributeIfPopulated","rawMap","textNode","xmlValue","crcTable","Uint32Array","ZipContainer","addFolders","paths","addFolder","folders","created","isBase64","addFile","files","getContent","mimeType","textOutput","buildFileStream","uInt8Output","buildUint8Array","clearStream","fData","totalFiles","foData","lL","cL","totalFiles_1","currentFile","getHeader","fileHeader","folderHeader","foEnd","buildFolderEnd","utfPath","isUTF8","time","convertTime","dt","convertDate","extraFields","uExtraFieldPath","getFromCrc32Table","getConvertedContent","convertedContent","atob","tLen","cLen","lLen","uint8","Uint8Array","iterable","crc","i0","ctx_r2","SendMultipleInvoiceComponent","modalRef","invoiceService","alert","locale","invoiceDataSource","BehaviorSubject","invoiceColumns","sourceRenderer","paymentTermValue","paymentTerm","dateRenderer","statusRenderer","balance","loadInvoice","busy","getCustomerManualInvoicesByStatus","customerId","subscribe","selectedRowsString","selectedRowStr","selectedRow","invoiceNumber","dueDate","formatDate","statClass","isDraft","ngOnInit","onGridReady","onSend","sendmultipleinvoices","alertSuccess","LOCALE_ID","selectors","inputs","customerName","decls","vars","consts","ctx","_r13","ctx_r40","_r33","ctx_r8","AddCustomerComponent","AuthorizationBase","apiService","locationSwitchService","moment","format","Customer","CustomerTypeId","SalesTaxType","addressmodel","CustomerAddress","AddressType","CountryId","State","IsDefault","phonemodel","CustomerPhone","PhoneType","contactmodel","ContactPerson","locId","getCurrentLocation","getCurrentLoginUser","LocationId","zipCodeValidator","ZipCodeValidator","customeraddresses","customerContactNumbers","processor","getPlatform","Photo","loadCountries","loadLocations","validAddress","isEditMode","hasUpdates","PaymentTerm","Promise","getAllCountries$","getAllCountries","resp","countries","usa","CountryName","Id","loadStates","usaStates$","usaStates","usStates","loadLocations$","locations","forceMaxDate","customerTypeChanged","isIndividual","countryChanged","isUSA","temporaryCountrySelected","selectedIndex","isValidEmail","IsDeleted","CreatedDate","UpdatedBy","UpdatedDate","PaymentTermCount","addNewCustomerAddress","MembershipNumber","MembershipStartDate","IsDeactivated","CreatedBy","userId","BusinessName","BusinessNature","FirstName","LastName","Birthday","JobTitle","About","EmailAddress","saveCustomer$","saveCustomer","addAddress","addPhone","contactForm","contactPersons","customerForm","valid","_c","addContacts","preventPureSpaces","controls","addContactPerson","updateContactPerson$","updateContactPerson","BusinessCustomerId","IsMainContact","addContactPerson$","addContactPersonAddress","contactPersonId","contactPersonAddress","ContactPersonId","CustomerId","addAddress$","contactpersonId","customeraddress","County","toPromise","addressFieldRequiresValue","addNewContactNumber","contactNumberItem","PhoneNumber","City","StreetAddress","ZipCode","alertWarning","zipCodeError","customeraddressitem","isDefaultSelected","isShippingAddress","shippingAddressCount","LevelProcessing","isDefault","customerContactNumber","contact","saveCustomerContactWithAddress","removeContactNumber","contactNumberIndex","address_index","re","emailAddress","emailAddressValid","onMobileNumberKeyup","formattedMobileNumber","onLevelChange","levelValue","checkSpecialChar","keyval","encodeImageFileAsURL","reader","FileReader","file","readAsDataURL","customerPhoto","CustomerPhoto","Image","customerPhotoLoading","updateCustomerPhoto$","updateCustomerPhoto","ImagePath","isValidAddress","form","viewQuery","ContactFormComponent","AutoUnsubscribe","ctx_r17","$event","ctx_r18","ctx_r19","ctx_r20","ctx_r21","ctx_r22","ctx_r23","ctx_r25","ctx_r4","PaymentOptionsComponent","modalService","termsPolicyService","cashPaymentService","manualPaymentService","achPaymentService","creditService","workOrderService","customerService","paymentService","EventEmitter","paymentSteps","CashPayment","ManualPayment","ACHPayment","CreditPayment","CardInfo","CustomerCardNumber","manualForm","achForm","cardForm","backdrop","backdropClass","animation","Subject","hideManualPaymentOption","_hideManualPaymentOption","method","paymentMethods","showACHPaymentOption","_showACHPaymentOption","showCashPayment","_showCashPayment","showCreditCardOption","_showCreditCardOption","isFromAddress","canPayPartial","currentStep","isPartialPayment","getTerms","pipe","takeUntil","unsubscribe$","termsAndConditions","Type","ngOnDestroy","complete","onClose","isFirstStep","getHeaderLabel","invoice","getBackLabel","isInvoiceSummary","isRecurringPayment","getCustomerName","customer","getDefaultCustomerAddress","customerAddresses","address","setComponentData","dialog","selectedMethod","userInfo","invoiceSettings","customerBusinessContact","customerAddress","shippingAddress","customerSignature","businessInfo","locationData","workOrder","displayBalance","creditPayment","cardInfo","selectedCard","achPayment","isAgreedToTerms","isEmailReceipt","formData","onBack","onReturnInvoiceDetails","onReturnRecurringPaymentDetails","invoiceDiag","InvoiceSummaryComponent","keyboard","RecurringPaymentDetailComponent","recurringId","recurringPaymentDetails","onOptionSelect","onMethodSelect","isProcessing","isSubmitted","isSaveCard","isNewCard","isNewACH","onOpenTermsAndCondition","achTerms","AchPayTcComponent","dialogOption","merchantName","contactNumber","ContactNumber","isAgreed","paymentTerms","PaymentTermsComponent","Content","onAddressAdd","isShipping","addressDiag","CustomerAddressFormComponent","paymentDiag","onCardAdd","isAdd","onACHAdd","onACHSelect","ach","selectedACHDetail","onCardSelect","card","onTokenReceive","token","cardToken","addressId","PostalCode","StreetAddress1","billingAddress","details","cardType","alertError","Processor","notes","InvoiceNotesComponent","Notes","onNewCardPayment","onProcessPayment","onCashPayment","onManualPayment","onACHPayment","onACHOnFilePayment","onCardPayment","cashPayment","InvoiceId","InvoiceNumber","EmailReceiptToClient","PaymentType","Amount","BusinessLogo","Logo","BusinessAddress","Address1","Province","StateId","CountryCode","CustomerName","CustomerEmail","addManualPayment","onConfirmPayment","manualPayment","entries","payload","locationId","paymentIdentifier","currency","terminalId","transactionSource","SourceComponent","sourceComponent","UserId","achOnFileCharge","err","onSaveNewACHDetail","firstName","lastName","accountNumber","AccountNumber","routingNumber","RoutingNumber","checkType","CheckType","accountType","AccountType","streetAddress1","city","postalCode","country","Country","reject","addCustomerACHDetails","TerminalId","IsPartialPayment","Currency","TransactionSource","isSaveACH","achCharge","cvn","Token","CardLast4Digits","expMonth","ExpMonth","expYear","ExpYear","CardBrand","cardBrandTransactionId","CardBrandTransactionId","isCOF","gratuity","Level","toLocaleString","onProcessCardPayment","creditChargeOnly","addAuditTrail","auditres","mobileNumber","paymentMethod","receiptNumber","sendReceipt","receiptres","isDismissed","isConfirmed","onProcessTip","processTip","tipres","onCardAssignToRecurringInvoice","paymentReference","cardLast4","cardBIN","cardBin","expiryMonth","expiryYear","cvv","addressShippingId","onProcessNewCardPayment","requestMultiUseToken","onSaveCardToFile","uploadCustomersig","signatureUrl","createdBy","customerCard","CVN","addCustomerCardNumber","statusUpdate","WorkOrderId","WorkOrderEnum","requireCustomerSignOrPasswordOnPayment","signDiag","PaymentConfirmActionComponent","hideUserPassword","signUrl","reloadInvoiceList","cardId","recurringInvoiceConfig","isAutoCharge","setRecurringInvoiceCardNumberByInvoiceNumber","showCancelButton","confirmButtonText","showLoaderOnConfirm","preConfirm","invoiceStatus","outputs","back","features","ctx_r7","ACHPaymentComponent","ManualInvoicePartialPaySetting","achPaymentModel","manualInvoice","ManualInvoice","isMultipleInvoices","amountToBePaid","selectedInvoiceString","manualInvoices","eachObj","requiredPartialPayment","totalPaid","isSalesInvoice","getManualInvoice","getCustomerAddress","loadACHDetails","getCustomerAddresses","addr","addressSelected","cardDiag","loadingPartialPaySettings","loadInvoicePartialPaySetting","getPartialPaySettingByInvoiceNumber","partialPaymentSetting","loadingPaidDetails","getPaidManualInvoiceByInvoiceNumber","amountPaid","partialDueType","tipAmount","partialDue","accountTypeChanged","isCheckingAccount","checkTypeChanged","chktype","payviaACH","isWorkOrder","processACHonFilePayment","selectedACH","isProcessingPayment","customerInfo","processPayment","agreedToTerms","isAddACH","processMultiplePayments","paymentResult","forceMinDate","openTermsAndCondition","AchTcComponent","isInitializing","getCustomerACHSubscription$","getCustomerACHsById","customerACHDetails","getDefaultACH","onSelectACH","onAddACH","throttle","later","leading","remaining","trailing","throttleable","innerDecorator","getter","PlacementTypes","caretOffset","verticalPosition","elDimensions","popoverDimensions","Top","Bottom","Center","horizontalPosition","PositionHelper","calculateVerticalAlignment","calculateVerticalCaret","caretDimensions","popoverPosition","calculateHorizontalAlignment","calculateHorizontalCaret","shouldFlip","placement","spacing","flip","positionCaret","elmDim","hostDim","positionContent","determinePlacement","TooltipContentComponent","renderer","platformId","clz","ngAfterViewInit","isPlatformBrowser","nativeElm","nativeElement","host","checkFlip","showCaret","addClass","setStyle","caretElm","onWindowResize","ɵfac","PLATFORM_ID","ɵcmp","i2","encapsulation","ViewEncapsulation","ElementRef","Renderer2","Inject","Input","ViewChild","HostBinding","HostListener","InjectionRegisteryService","injectionService","defaults","getByType","bindings","createByType","assignDefaults","injectComponent","instance","compsByType","destroyAll","destroyByType","comps","appendComponent","types","isViewContainerRef","InjectionService","applicationRef","componentFactoryResolver","injector","setGlobalRootViewContainer","globalRootViewContainer","getRootViewContainer","_container","setRootViewContainer","getComponentRootNode","hostView","rootNodes","getRootViewContainerNode","projectComponentBindings","bindingKeys","bindingName","eventKeys","appendLocation","portalHost","DomPortalOutlet","portal","ComponentPortal","componentRef","attach","ɵprov","Injectable","ApplicationRef","ComponentFactoryResolver","Injector","TooltipService","LegendType","ScaleType","ScaleLegendComponent","horizontal","ngOnChanges","gradientValues","gradientString","colors","domain","gradient","splits","pairs","changeDetection","ChangeDetectionStrategy","valueRange","formatLabel","toLocaleDateString","escapeLabel","LegendEntryComponent","activate","deactivate","trimmedLabel","formattedLabel","emit","OnPush","Output","LegendComponent","cd","labelClick","labelActivate","labelDeactivate","legendEntries","markForCheck","getLegendEntries","getColor","entry","activeEntries","trackBy","ChangeDetectorRef","ChartComponent","showLegend","animations","legendLabelClick","legendLabelActivate","legendLabelDeactivate","legendColumns","legendType","getLegendType","legendOptions","ScaleLegend","chartColumns","chartWidth","legendWidth","scaleType","Linear","Legend","providers","VisibilityObserver","runCheck","onVisibilityChange","run","runOutsideAngular","ɵdir","Directive","NgZone","isDate","isNumber","BaseChartComponent","chartElement","scheme","schemeType","Ordinal","isPlatformServer","bindWindowResizeEvent","visibilityObserver","unbindEvents","unsubscribe","cloneData","dims","getContainerDims","hostElem","formatDates","series","resizeSubscription","fromEvent","subscription","debounceTime","seriesItem","seriesItemCopy","customColors","Orientation","AxisLabelComponent","textHeight","margin","strokeWidth","textAnchor","orient","trimLabel","reduceTicks","ticks","maxTicks","reduced","modulus","TextAnchor","XAxisTicksComponent","tickArguments","tickStroke","trimTicks","maxTickLength","showGridLines","rotateTicks","dimensionsChanged","verticalSpacing","rotateLabels","innerTickSize","outerTickSize","tickPadding","Middle","maxTicksLength","maxAllowedLength","approxHeight","updateDims","ticksElement","getTicks","tickFormatting","tickFormat","angle","getRotationAngle","adjustedScale","bandwidth","textTransform","End","tick","tickLength","tickTrim","charWidth","wordWidth","baseWidth","maxBaseWidth","getMaxTicks","maxScaleTicks","tickValues","tickWidth","tickTransform","gridLineTransform","gridLineHeight","XAxisComponent","xOrient","xAxisOffset","xAxisClassName","labelOffset","stroke","orientation","xAxisTickCount","emitTicksHeight","newLabelOffset","xScale","showLabel","labelText","ticksComponent","roundedRect","w","tl","tr","bl","br","retval","YAxisTicksComponent","showRefLabels","showRefLines","referenceLineLength","getApproximateAxisWidth","sign","tickSpacing","referenceLines","setReferencelines","y2","y1","x2","x1","Start","refMin","refMax","referenceAreaPath","gridLineWidth","tickHeight","maxChars","YAxisComponent","yOrient","yAxisOffset","yAxisClassName","yAxisTickCount","emitTicksWidth","yScale","AxesModule","ɵmod","ɵinj","CommonModule","NgModule","imports","declarations","StyleTypes","ShowTypes","TooltipDirective","tooltipService","viewContainerRef","tooltipCssClass","tooltipAppendToBody","tooltipSpacing","tooltipDisabled","tooltipShowCaret","tooltipPlacement","tooltipAlignment","tooltipType","popover","tooltipCloseOnClickOutside","tooltipCloseOnMouseLeave","tooltipHideTimeout","tooltipShowTimeout","tooltipShowEvent","tooltipImmediateExit","listensForFocus","listensForHover","mouseover","onBlur","contentDom","onMouseClick","createBoundOptions","addHideListeners","mouseEnterContentEvent","listen","mouseLeaveContentEvent","documentClickEvent","destroyFn","tooltipTitle","tooltipTemplate","tooltipContext","ViewContainerRef","TooltipModule","entryComponents","cache","newId","BarOrientation","SvgLinearGradientComponent","Vertical","Horizontal","stops","CircleComponent","onClick","cx","cy","circleOpacity","SeriesType","CircleSeriesComponent","Standard","barVisible","barOrientation","placementTypes","styleTypes","isSSR","gradientId","gradientFill","circle","getActiveCircle","indexActiveDataPoint","visibleValue","mapDataPointToCircle","seriesName","tooltipLabel","Time","d1","gradientStops","getGradientStops","getTooltipMinMaxText","activateCircle","deactivateCircle","trigger","GridPanelComponent","ClassEnum","GridPanelSeriesComponent","gridPanels","getGridPanels","Odd","positionIndex","Even","paddingInner","class","SvgRadialGradientComponent","endOpacity","stopsInput","stopsDefault","startOpacity","AreaComponent","animationsLoaded","hasGradient","loadAnimation","getGradient","updatePathEl","areaPath","startingPath","easeOutExpo","countFrom","countTo","countDecimals","countDuration","startVal","endVal","countDown","decimals","dec","startTime","runCount","frameVal","progress","decimalChecker","CountUpDirective","countPrefix","countSuffix","countChange","countFinish","_countDecimals","_countTo","_countFrom","cancelAnimationFrame","animationReq","valueFormatting","root","createMouseEvent","initEvent","TooltipArea","anchorOpacity","anchorPos","anchorValues","showPercentage","hover","getValues","xVal","d0","mouseMove","xPos","closestIndex","findClosestPointIndex","closestPoint","xSet","lastAnchorPos","ev","tooltipAnchor","minDiff","MAX_VALUE","currentElement","curDiff","getToolTipText","tooltipItem","static","Timeline","onDomainChange","initialized","addBrush","getDims","xDomain","getXDomain","getXScale","brush","updateBrush","filterId","scaleTime","scaleLinear","scalePoint","brushX","extent","newDomain","invert","legend","autoScale","AdvancedLegendComponent","legendItems","labelFormatting","percentageFormatting","percentage","defaultValueFormatting","getTotal","roundedTotal","getLegendItems","_value","displayLabel","origialLabel","COMPONENTS","ChartCommonModule","calculateViewDimensions","margins","showXAxis","showYAxis","xAxisHeight","yAxisWidth","showXLabel","showYLabel","legendPosition","xOffset","chartHeight","colorSets","ColorHelper","colorDomain","generateColorScheme","colorScale","Quantile","scaleQuantile","scaleOrdinal","points","valueScale","formattedValue","mapping","getLinearGradientStops","colorValueScale","scaleBand","endColor","startColor","currentVal","originalOffset","getUniqueXDomainValues","valueSet","getScaleType","checkDateType","allDates","allNumbers","getXDomainArray","xScaleMin","xScaleMax","mappedValues","aDate","bDate","sortLinear","sortByDomain","aVal","bVal","aIdx","bIdx","sortByTime","AreaSeriesComponent","baseValue","stacked","normalized","updateGradient","currentArea","startingArea","xProperty","area","y0","curve","d0values","d1values","isInactive","AreaChartComponent","legendTitle","xAxis","yAxis","timeline","curveLinear","trimXAxisTicks","trimYAxisTicks","rotateXAxisTicks","maxXAxisTickLength","maxYAxisTickLength","roundDomains","timelineHeight","timelinePadding","showXAxisLabel","showYAxisLabel","filteredDomain","yDomain","getYDomain","seriesDomain","getSeriesDomain","getYScale","updateTimeline","setColors","getLegendOptions","clipPathId","clipPath","timelineWidth","timelineXDomain","timelineXScale","timelineYScale","timelineTransform","yScaleMin","yScaleMax","nice","num","updateDomain","updateHoveredVertical","hoveredVertical","deactivateAll","hideCircles","opts","updateYAxisWidth","updateXAxisHeight","onActivate","onDeactivate","xAxisLabel","yAxisLabel","xAxisTickFormatting","yAxisTickFormatting","xAxisTicks","yAxisTicks","ContentChild","seriesTooltipTemplate","AreaChartNormalizedComponent","seriesType","valueOf","AreaChartStackedComponent","AreaChartModule","BarComponent","roundEdges","noBarWhenZero","hideBar","checkToHideBar","getStartingPath","getPath","getStartOpacity","edges","BarChartType","D0Types","BarLabelComponent","horizontalPadding","verticalPadding","getSize","negative","formatedValue","barX","barWidth","barY","barHeight","SeriesHorizontal","showDataLabel","dataLabelWidthChanged","barsForDataLabels","updateTooltipSettings","positive","d0Type","Normalized","bars","bar","Stacked","offset0","offset1","dataLabelFormatting","updateDataLabels","section","totalPositive","totalNegative","trackDataLabelBy","barLabel","BarHorizontalComponent","barPadding","dataLabelMaxWidth","rangeRound","onDataLabelMaxWidthChanged","fromLegend","BarHorizontal2DComponent","groupPadding","groupDomain","getGroupDomain","innerDomain","getInnerDomain","valueDomain","getValueDomain","groupScale","getGroupScale","innerScale","getInnerScale","getValueScale","paddingOuter","groupTransform","flat","BarHorizontalNormalizedComponent","barChartType","BarHorizontalStackedComponent","smallest","biggest","smallestSum","biggestSum","SeriesVerticalComponent","dataLabelHeightChanged","BarVerticalComponent","dataLabelMaxHeight","onDataLabelMaxHeightChanged","BarVertical2DComponent","BarVerticalNormalizedComponent","BarVerticalStackedComponent","BarChartModule","BoxComponent","boxStrokeWidth","whiskerStrokeWidth","medianLineWidth","updateLineEl","maskLineId","maskLine","boxPath","oldPath","oldLineCoordinates","getStartingLineCoordinates","nodeBar","ease","easeSinInOut","attrTween","pathTween","lineEl","lineCoordinates","v1","v2","lineTween","nodeLineEl","baseVal","path0","path1","n0","getTotalLength","n1","distances","p0","getPointAtLength","p1","interpolate","cloneDeep","strokeColor","BoxSeriesComponent","counts","mappedCounts","serie","whiskers","groupCounts","quartiles","getBoxQuantiles","getLinesCoordinates","box","formattedTooltipLabel","inputData","quantile","commonX","whiskerLineWidth","whiskerZero","whiskerOne","median","topLine","medianLine","bottomLine","verticalLine","BoxChartComponent","setScales","getUniqueBoxChartXDomainValues","legendOpts","legendOptionsConfig","BoxChartModule","getDomain","minVal","maxVal","getScale","BubbleSeriesComponent","circles","getCircles","rScale","xScaleType","yScaleType","hasRadius","hasTooltipLabel","hasSeriesName","radiusValue","BubbleChartComponent","maxRadius","minRadius","bubblePadding","rDomain","getRDomain","getRScale","getBubblePadding","yMin","xMin","yMax","xMax","Infinity","BubbleChartModule","HeatMapCellComponent","gradientUrl","animateToCurrentForm","HeatCellSeriesComponent","getCells","HeatMapComponent","innerPadding","rects","getRects","getDimension","N","L","yVal","rx","HeatMapModule","LineComponent","initialPath","strokeDasharray","strokeDashoffset","LineSeriesComponent","updateGradients","sortData","lineGen","getLineGenerator","areaGen","getAreaGenerator","hasRange","getRangeGenerator","outerPath","line","areaGradientStops","rangeFillOpacity","LineChartComponent","LineChartModule","PieLabelComponent","labelTrim","labelTrimSize","setTransforms","styleTransform","textX","textY","attrTransform","textTransition","startRadius","explodeSlices","innerArc","arc","innerRadius","outerRadius","innerPos","centroid","outerPos","midAngle","startAngle","endAngle","PolarSeriesComponent","circleRadius","linearScaleType","seriesColor","getAngle","cData","inactive","defaultTooltipText","lineRadial","twoPI","PolarChartComponent","curveCardinalClosed","showSeriesOnHover","yAxisMinScale","setDims","setTicks","halfWidth","halfHeight","yOffset","yAxisDims","transformYAxis","transformPlot","xValues","getXValues","yAxisScale","thetaTicks","dd","startPos","minDistance","radiusTicks","getYValues","PieArcComponent","cornerRadius","dblclick","getPointerEvents","calc","calculateArc","radialGradientId","updateAnimation","_current","copyOfD","interpolater","_timeout","onDblClick","nativeEvent","PieSeriesComponent","trimLabels","maxLabelLength","pieGenerator","pie","arcData","calculateLabelPositions","outerArc","factor","pieData","labelPositions","labelVisible","myArc","showLabels","getTooltipTitle","AdvancedPieChartComponent","nameFormatting","PieChartComponent","labels","doughnut","arcWidth","hasNoOptionalMarginsSet","translation","gridSize","gridLayout","designatedTotal","cardWidth","cardHeight","percent","PieGridSeriesComponent","layout","arcs","getArcs","other","PieGridComponent","getSeries","baselineLabelHeight","yPos","PieChartModule","PolarChartModule","calculateTextWidth","fontFamilyKey","defaultWidth","acc","curr","VERDANA_FONT_WIDTHS_16_PX","E","F","G","I","J","K","M","O","P","Q","R","T","U","W","X","u","z","$","CardComponent","textFontSize","bandHeight","textPadding","labelFontSize","scaleTextSSR","textWidth","cardData","transformBand","paddedValue","setPadding","bandPath","scaleText","startCount","medianSize","repeat","decs","textEl","availableHeight","resizeScale","bandColor","textColor","hexToRgb","d3_color","invertColor","yiq","shadeRGBColor","CardSeriesComponent","emptyColor","sortedLengths","cards","getCards","emptySlots","yPadding","xPadding","valueColor","cardColor","NumberCardComponent","clickable","observers","NumberCardModule","TreeMapCellComponent","cellData","getTextColor","TreeMapCellSeriesComponent","x0","TreeMapComponent","treemap","isRoot","stratify","TreeMapModule","ElementType","LinearGaugeComponent","valueResizeScale","unitsResizeScale","valueTextTransform","valueTranslate","unitsTextTransform","unitsTranslate","Value","Units","hasPreviousValue","transformLine","valueTextEl","unitsTextEl","oldScale","resizeScaleWidth","resizeScaleHeight","units","GaugeArcComponent","backgroundArc","valueArc","GaugeAxisComponent","rotate","rotationAngle","bigTickSegment","angleSpan","bigSegments","smallTickSegment","smallSegments","big","small","startDistance","textDist","angleDeg","getTextAnchor","getTickPath","smallAngleDeg","smallAngle","lineGenerator","GaugeComponent","showAxis","showText","rotation","availableRadius","radiusPerArc","textRadius","dataMin","dataMax","availableSpace","axisTickFormatting","GaugeModule","ngxChartsPolyfills","SVGElement","HTMLDivElement","NgxChartsModule","fieldType","groupByType","timeFormat"],"mappings":"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ITjF,MAAM,EAAEA,MAJC;IAKTgF,MAAM,EAAEA,MALC;IAMTosC,cAAc,EAAEA,cANP;IAOT50C,KAAK,EAAE2+D;EAPE,CAAb;EASA,OAAO,CAAC,CAACI,UAAU,CAACpnE,MAAD,CAAnB;AACH;;AACD,SAAS8mE,mCAAT,CAA6Cz+D,KAA7C,EAAoD;EAChD,OAAO,CAACu1C,aAAa,MAAMF,WAAW,EAA/B,KACHr1C,KAAK,CAAC1U,GAAN,KAAcuyE,yBADX,IAEH79D,KAAK,CAACo/D,QAAN,KAAmBtB,8BAFvB;AAGH;;AAED,IAAIuB,aAAa,GAAG,aAAa33E,MAAM,CAAC8D,MAAP,CAAc;EAC3CC,SAAS,EAAE,IADgC;EAE3CsyE,YAAY,EAAEA,YAF6B;EAG3CI,6BAA6B,EAAEA,6BAHY;EAI3CO,8BAA8B,EAAEA,8BAJW;EAK3CQ,oCAAoC,EAAEA;AALK,CAAd,CAAjC;AAQA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASI,cAAT,CAAwBt/D,KAAxB,EAA+B;EAC3B,IAAIu/D,UAAU,GAAG,EAAjB;EACA,IAAIC,WAAW,GAAG,EAAlB;EACA,IAAIC,WAAW,GAAG,GAAlB,CAH2B,CAI3B;;EACA,IAA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x1O,qBAAA,GAAwB2uD,aAAxB,C;;;;;;;;;;;AC/j9Ca;;AAEb;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,yBAAe;AACrC,eAAe,mBAAO,CAAC,oBAAS;AAChC,sBAAsB,mBAAO,CAAC,4BAAiB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;AChDA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;ACFuC;AACF;AACJ;;AAEjC,wBAAwB,qDAAQ,CAAC,kDAAS;AACnC;AACA;AACA,qBAAqB,qDAAQ,CAAC,+CAAM;AAC3C,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;ACRY;;AAEvC,6BAAe,oCAAS;AACxB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU;AACV;;AAEA;AACA,mBAAmB,sDAAS;AAC5B;;;;;;;;;;;;;;;;AC7Ce;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnBA,6BAAe,oCAAS;AACxB;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACnB2B;AACA;AACgB;AACC;;AAE7B;AACf,6BAA6B,mDAAO;AACpC;AACA,qCAAqC,gDAAG;AACxC,qBAAqB,gDAAG;AACxB;AACA;AACA;AACA,eAAe,gDAAG,CAAC,wDAAW;AAC9B,eAAe,gDAAG;AAClB;AACA;;AAEO,6CAA6C,+CAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5BuC;;AAEvC;AACA;AACe,6EAA6E,kDAAS;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3CA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDqC;AACW;AACL;AACE;AACL;AACH;AACD;AACgB;;AAEpD,iBAAiB,aAAa;AAC9B,kBAAkB,cAAc;AAChC,mBAAmB,eAAe;AAClC,mBAAmB;;AAEnB,OAAO,cAAc;;AAErB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,uBAAuB,wCAAwC,EAAE;AACjE,wBAAwB,WAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,qDAAM;AAChB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,eAAe,EAAE;;AAEvD;;AAEA;AACA,oCAAoC,mCAAmC,EAAE;AACzE,qCAAqC,wBAAwB,EAAE;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C,qDAAqD,EAAE;AACrG,4DAA4D,qCAAqC,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAW;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,wDAAS;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,qDAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,gHAAgH,EAAE;AACpJ,kCAAkC,gGAAgG,EAAE;AACpI,sCAAsC,uGAAuG,EAAE;AAC/I,uCAAuC,uGAAuG,EAAE;AAChJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,qDAAM;AACpB;AACA;AACA;AACA,YAAY,8CAAU;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qDAAO;AACrB;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,qDAAM;AACtB;;AAEA;AACA;;AAEA,IAAI,wDAAS;AACb;;AAEA;AACA;AACA;AACA,KAAK;AACL,iBAAiB,qDAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA,MAAM,iDAAW;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD,qDAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oDAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,0DAAa;AACnB;AACA;AACA;AACA,6CAA6C,oBAAoB,EAAE,OAAO;AAC1E,OAAO;AACP,QAAQ,gDAAU;AAClB;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oDAAO;AACb;;AAEA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,oDAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA,sEAAsE,qDAAQ;AAC9E;;AAEA;AACA,sEAAsE,qDAAQ;AAC9E;;AAEA;AACA,yEAAyE,qDAAQ;AACjF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;AC5mBA,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACAb;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,kDAAkD;AAC7D,kBAAkB,yDAAyD;AAC3E,aAAa,oDAAoD;AACjE,gBAAgB,uDAAuD;AACvE,WAAW,kDAAkD;AAC7D,QAAQ;AACR,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACVoB;;;;;;;;;;;;;;;;;ACLb;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACP2C;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,mDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mDAAM,WAAW,kDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClXA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACTA,YAAY;;AAEZ;AACA,8CAA8C,IAAI,OAAO;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA,kFAAkF,OAAO;AACzF;AACA,+CAA+C,OAAO;AACtD,GAAG;AACH;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;;AAEA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;;AAEA,iEAAe,QAAQ,EAAC;;;;;;;;;;;;;;;;;;;ACnFY;AACD;;AAEnC,6BAAe,oCAAS;AACxB;AACA,kBAAkB,qDAAM,4BAA4B,gDAAO;AAC3D;AACA,qCAAqC,gDAAO;AAC5C,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,qDAAM;AACxB;AACA,+BAA+B,gDAAO;AACtC,2BAA2B,kCAAkC,EAAE;AAC/D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3BO;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;;;;;ACPO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;ACVA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;ACbuC;;AAEvC;AACO;AACA;;AAEP;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,mDAAY;AACvB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjBsD;;AAEtD,6BAAe,oCAAS;AACxB,aAAa,qEAAkB;AAC/B;;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP,+FAA+F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACnBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;ACjBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;;ACNsD;;AAE/C;;AAEP,6BAAe,oCAAS;AACxB,UAAU,qEAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qEAAkB,+BAA+B;AAC7F;;;;;;;;;;;;;;;;;ACfsD;;AAEtD,6BAAe,oCAAS;AACxB,UAAU,qEAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACVA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,sDAAsD;;AAE/C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9CA;AACA,6BAAe,oCAAS;AACxB,iDAAiD,OAAO;AACxD;AACA,4BAA4B;AAC5B,qCAAqC,QAAQ;AAC7C,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACV+C;AACM;AACN;;AAE/C,iEAAe;AACf;AACA;AACA;AACA,OAAO,sDAAa;AACpB;AACA;AACA;AACA;AACA,iBAAiB,0DAAa;AAC9B,OAAO,sDAAa;AACpB,OAAO,yDAAgB;AACvB;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;AClBF,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACFqC;AACM;AACM;AACE;AACV;AACE;AACU;AAChB;;AAErC;AACA;;AAEA,6BAAe,oCAAS;AACxB,gFAAgF,iDAAQ,GAAG,wDAAW;AACtG;AACA;AACA;AACA,iDAAiD,iDAAQ,GAAG,2DAAc;AAC1E;AACA;AACA;;AAEA;AACA,gBAAgB,4DAAe;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,oDAAW;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,oDAAW;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,uDAAU;;AAEpC;AACA;;AAEA;AACA;AACA,mDAAmD,gEAAc;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sEAAsE;AACtE,sEAAsE;AACtE,qIAAqI;AACrI,qEAAqE;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC,4DAAe;AAClD,gDAAgD,qDAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnJqC;;AAErC,6BAAe,oCAAS;AACxB,sBAAsB,qDAAQ;AAC9B;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB,yDAAyD,qDAAQ,qBAAqB,qDAAQ;AAC9F;;;;;;;;;;;;;;;;;ACJqC;;AAErC,6BAAe,oCAAS;AACxB;AACA,qBAAqB,qDAAQ,QAAQ,qDAAQ;AAC7C;;;;;;;;;;;;;;;;;ACLO;AACP;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;ACPO;AACP;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACdA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACXA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPoC;AACF;AACY;AACF;AACV;AACF;AACE;AACA;AACU;AACI;AACV;AACF;AACM;;AAE3B;AACf;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,8CAAU;AACnB,QAAQ,6CAAS;AACjB,aAAa,kDAAc;AAC3B,cAAc,mDAAe;AAC7B,QAAQ,6CAAS;AACjB,OAAO,4CAAQ;AACf,QAAQ,6CAAS;AACjB,QAAQ,6CAAS;AACjB,aAAa,kDAAc;AAC3B,eAAe,oDAAgB;AAC/B,UAAU,gDAAW;AACrB,SAAS,+CAAU;AACnB;AACA,qBAAqB,kDAAa;AAClC;;;;;;;;;;;;;;;;AC1FA,6BAAe,uCAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACbA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,sCAAW;AAC1B;AACA;AACA,wBAAwB;AACxB,kBAAkB,kCAAkC;AACpD;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7BA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACNA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;ACRwC;AACiB;;AAEzD,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB,0CAA0C,qDAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,oCAAoC,KAAK,EAAE,aAAa,8DAAa;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,uDAAQ;AAC5C;;AAEA;AACA,0CAA0C,uDAAQ;AAClD;;AAEA;AACA;;;;;;;;;;;;;;;;AC1EA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACXmC;AACE;AACI;AACa;;AAEtD,6BAAe,sCAAW;AAC1B,aAAa,iDAAQ;AACrB;AACA;AACA;AACA;AACA,qBAAqB,sDAAY;AACjC,mBAAmB,sDAAY;AAC/B,qBAAqB,sDAAY;AACjC,sBAAsB,sDAAY;AAClC,oBAAoB,sDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8CAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,uDAAQ;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA,4EAA4E,qDAAQ;AACpF;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,qDAAQ;AAClF;;AAEA;AACA,4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M,oDAAW;AACtC,2BAA2B,mDAAY;AACvC,0FAA0F,+CAAM;AAChG,QAAQ,+CAAM;AACd;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;;ACjIuB;AACP;AACD;;AAEpB;AACf,cAAc,oDAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iDAAQ,qBAAqB,yBAAyB,EAAE;AACzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe;AACxB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACpGe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACJgC;AACoE;AAC/D;AACJ;;AAEjC;;AAEO;AACP;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC,QAAQ,qDAAQ;AAChB;;AAEA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,iDAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,mDAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,mDAAiB;AACzG;;AAEA;AACA,sDAAsD,+CAAM;AAC5D;;AAEA;AACA;AACA;;AAEA;AACA,gDAAgD,mDAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;;AC5HO;AACP;AACA;AACA,+BAA+B;AAC/B,8CAA8C;AAC9C;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACzB8C;AACG;AACb;AACK;;AAElC;AACP;;AAEA;AACA;AACA,WAAW,iDAAK;AAChB;;AAEA;AACA;AACA,WAAW,uDAAU;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,uDAAa;AAC1B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe;AACf,cAAc,uDAAU;;AAExB;AACA,WAAW,oDAAI;AACf;;AAEA,EAAE,qDAAe;;AAEjB;AACA;;;;;;;;;;;;;;;;ACrEe;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjBe;AACf;AACA;;;;;;;;;;;;;;;;;;ACFoC;;AAE7B;;AAEQ;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,qDAAe;;AAEjB;AACA;;;;;;;;;;;;;;;;;;;;AC7CwE;AACpC;;AAErB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,wDAAS;AACjD;AACA;;AAEA;AACA,wDAAwD,iDAAM;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,6CAAS;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAe;AACxB;;;;;;;;;;;;;;;;;;;;;;ACxDkC;AAC+E;;AAElG;AACf,aAAa,kDAAQ;AACrB;AACA,cAAc,kDAAe;AAC7B;AACA;AACA;AACA,4DAA4D,kDAAe;AAC3E,aAAa,uDAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,kDAAc;AAC1E;AACA;AACA;AACA;AACA,4DAA4D,kDAAc;AAC1E;AACA;AACA;AACA,SAAS,iDAAM;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5B8H;AACpF;AACO;AACb;AACP;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,cAAc,uDAAU;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,iDAAI;AACjC;;AAEA;AACA,WAAW,oDAAI;AACf;;AAEA;AACA;;AAEe;AACf,SAAS,qDAAe,UAAU,8CAAS,EAAE,qDAAgB,EAAE,4CAAQ,EAAE,4CAAS,EAAE,2CAAQ,EAAE,4CAAO,EAAE,4CAAQ,EAAE,4CAAU,EAAE,6CAAU,EAAE,uDAAU;AACnJ;;;;;;;;;;;;;;;;ACtEA,6BAAe,oCAAS;AACxB;AACA;AACA,oBAAoB;AACpB;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACJuC;AACD;;AAEtC;AACA;AACA;AACA;AACA,mBAAmB,iDAAK,8CAA8C,iDAAK;AAC3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,sDAAS;AAC1B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACVyC;;AAEzC,6BAAe,oCAAS;AACxB;AACA;AACA,SAAS,kEAAyB,YAAY,OAAO,mDAAU,sBAAsB,QAAQ;AAC7F;;;;;;;;;;;;;;;;;ACNO;;AAEP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;;;;;ACRyC;;AAE3C,6BAAe,oCAAS;AACxB,UAAU,wDAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnBqD;;AAErD,6BAAe,oCAAS;AACxB;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,eAAe,qDAAI;AACxC;;;;;;;;;;;;;;;;;ACNoC;;AAEpC,6BAAe,oCAAS;AACxB,mDAAmD,oDAAO;AAC1D;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;ACPwC;;AAExC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,sDAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxDA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;ACZqC;AACA;AACL;AACM;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,KAAK;AACL,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,gBAAgB;A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A;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,SAAS,mDAAW;AACpB;;;;;;;;;;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxBA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACNA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA,0BAA0B;AAC1B;;;;;;;;;;;;;;;;;;;ACJ6B;AACQ;AACgE;;AAErG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA,cAAc,6CAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8CAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8CAAI,CAAC,6CAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;AACA,qBAAqB,qDAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4CAAM;AACvD,+CAA+C,4CAAM;AACrD,aAAa,6CAAG;AAChB;;AAEA,qCAAqC,gDAAI;;AAEzC;AACA;;AAEA;AACA,eAAe,6CAAO;;AAEtB;AACA,kBAAkB,yCAAG,GAAG,6CAAO;AAC/B,0BAA0B,6CAAG,WAAW,6CAAG;AAC3C;AACA,eAAe,6CAAO;AACtB,4BAA4B,6CAAG,WAAW,6CAAG;AAC7C;AACA;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CA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B,4BAA4B;AAC1D,8BAA8B;AAC9B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;;;;AC5DwB;AACM;;AAE7B;AACP;AACA;AACA;;AAEA;AACA,aAAa,6CAAI;AACjB,WAAW,6CAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,mDAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEA,iEAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;;;;AC5DN;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;AC9BsC;;AAE/B,oCAAoC,+CAAW;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;ACnCA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACFA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;ACF6B;AACE;AACM;AACO;AACQ;;AAEpD,6BAAe,oCAAS;AACxB,gBAAgB,qDAAQ;AACxB;AACA,cAAc,qDAAW;AACzB;;AAEA,wDAAwD,wCAAM,GAAG,qDAAQ;AACzE,wDAAwD,wCAAM,GAAG,qDAAQ;;AAEzE;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;;AAEA,iDAAiD,gDAAI;;AAErD,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iEAAiE,qDAAQ;AACzE;;AAEA;AACA,iEAAiE,qDAAQ;AACzE;;AAEA;AACA,uEAAuE,qDAAQ;AAC/E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;ACxDiE;AACpC;;AAEtB;AACP;;AAEA;AACA;;AAEA;AACA,gCAAgC,yDAAW;AAC3C;;AAEA;AACA;;AAEA,6BAAe,sCAAW;AAC1B,oBAAoB,iDAAI,SAAS,+DAAiB;AAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClBO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;ACnBA,6BAAe,sCAAW;;;;;;;;;;;;;;;;;;;;;ACAK;AACM;AACI;AACJ;AACP;;AAE9B,6BAAe,sCAAW;AAC1B,cAAc,iDAAQ;AACtB,mBAAmB,mDAAU;AAC7B;AACA,mBAAmB,qDAAQ;AAC3B,iBAAiB,qDAAQ,CAAC,yCAAG;AAC7B,iBAAiB,qDAAQ;;AAEzB;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yCAAG,YAAY,yCAAG;AACxC;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA,uDAAuD,qCAAqC,EAAE;AAC9F,sDAAsD,+BAA+B,EAAE;;AAEvF;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,qDAAQ;AAC7E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,qDAAQ;AAClF;;AAEA;AACA,wEAAwE,qDAAQ;AAChF;;AAEA;AACA,wEAAwE,qDAAQ;AAChF;;AAEA;AACA;;;;;;;;;;;;;;;;;AC/EO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;;;;;;;;;ACNuC;;AAEvC;AACO;AACA;AACA;AACA;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,mDAAY;AACvB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACfiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAc,SAAS,kDAAS;AACxE,iBAAiB,mDAAa;AAC9B;AACA;AACA;AACA,SAAS;AACT;AACA,wCAAwC,gDAAe,SAAS,+CAAU;AAC1E,iBAAiB,mDAAc;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,kDAAa,CAAC,gDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,gDAAQ;AACtC;;AAEA;AACA;AACA,mCAAmC,iDAAY,MAAM,kDAAiB;AACtE;;AAEA;AACA;AACA,aAAa,mDAAkB,CAAC,gDAAQ,WAAW,gDAAQ;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,iDAAgB,CAAC,gDAAQ;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,iDAAY,MAAM,kDAAiB;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,kDAAY,CAAC,gDAAO;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,oDAAe,CAAC,gDAAO;AACpC;;AAEA;AACA;AACA,mCAAmC,oDAAW,MAAM,qDAAgB;AACpE;;AAEA;AACA;AACA,aAAa,sDAAiB,CAAC,gDAAO,WAAW,gDAAO;AACxD;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,oDAAe,CAAC,gDAAO;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,oDAAW,MAAM,qDAAgB;AACjE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxrBqC;AACqB;;AAE1D,UAAU,qDAAQ;AAClB;AACA;AACA,yFAAyF,wDAAc,IAAI,qDAAW;AACtH;AACA;;AAEA,iEAAe,GAAG,EAAC;AACZ;;;;;;;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACN8B;AACsC;;AAE3E,WAAW,qDAAQ;AACnB,mEAAmE,wDAAc,uBAAuB,wDAAc;AACtH,CAAC;AACD,8BAA8B,sDAAY;AAC1C,CAAC;AACD,yBAAyB,sDAAY;AACrC,CAAC;AACD;AACA,CAAC;;AAED,iEAAe,IAAI,EAAC;AACb;;;;;;;;;;;;;;;;ACdP;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mDAAmD;AACnD,SAAS;AACT,mDAAmD;AACnD;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D,6BAA6B,0CAA0C,EAAE;AACzE;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;ACrEqC;;AAErC,kBAAkB,qDAAQ;AAC1B;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,SAAS,qDAAQ;AACjB;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA,iEAAe,WAAW,EAAC;AACpB;;;;;;;;;;;;;;;;;;;ACzB8B;AACwB;;AAE7D,aAAa,qDAAQ;AACrB,mEAAmE,wDAAc;AACjF,CAAC;AACD,8BAA8B,wDAAc;AAC5C,CAAC;AACD,yBAAyB,wDAAc;AACvC,CAAC;AACD;AACA,CAAC;;AAED,iEAAe,MAAM,EAAC;AACf;;;;;;;;;;;;;;;;;;ACd8B;;AAErC,YAAY,qDAAQ;AACpB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;AACd;;;;;;;;;;;;;;;;;;;ACd8B;AACQ;;AAE7C,aAAa,qDAAQ;AACrB;AACA,CAAC;AACD,8BAA8B,wDAAc;AAC5C,CAAC;AACD,yBAAyB,wDAAc;AACvC,CAAC;AACD;AACA,CAAC;;AAED,iEAAe,MAAM,EAAC;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACdqC;AACuF;AACxF;AACV;AACA;AACJ;AACF;AACc;AACV;AACF;AACU;AACJ;AACF;AACiB;AACb;AACF;;AAEnC;;AAEA;AACA,KAAK,+CAAM,WAAW,wDAAc;AACpC,KAAK,+CAAM,WAAW,wDAAc;AACpC,KAAK,+CAAM,WAAW,wDAAc;AACpC,KAAK,+CAAM,WAAW,wDAAc;AACpC,sBAAsB,wDAAc;AACpC,sBAAsB,wDAAc;AACpC,sBAAsB,wDAAc;AACpC,sBAAsB,wDAAc;AACpC,sBAAsB,sDAAY;AAClC,sBAAsB,sDAAY;AAClC,sBAAsB,sDAAY;AAClC,sBAAsB,sDAAY;AAClC,sBAAsB,qDAAW;AACjC,sBAAsB,qDAAW;AACjC,sBAAsB,sDAAY;AAClC,sBAAsB,uDAAa;AACnC,sBAAsB,uDAAa;AACnC,sBAAsB,sDAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;;AAEA;AACA;AACA,cAAc,iDAAQ;AACtB,sDAAsD,kDAAQ,SAAS,sDAAY,SAAS,sDAAY;AACxG,wBAAwB,0DAAiB,UAAU,kDAAQ;AAC3D;AACA;AACA;;AAEA;AACA;;AAEA,2CAA2C,gDAAO,EAAE,iDAAQ,EAAE,kDAAO,EAAE,+CAAM,EAAE,gDAAO,EAAE,mDAAS;AACjG,6CAA6C,8CAAI,EAAE,+CAAK,EAAE,6CAAI,EAAE,6CAAG,EAAE,8CAAI,EAAE,gDAAM;;AAEjB;;;;;;;;;;;;;;;;;;;AC/D3B;AACK;;AAE1C,aAAa,qDAAQ;AACrB;AACA,CAAC;AACD;AACA,CAAC;AACD,yBAAyB,qDAAW;AACpC,CAAC;AACD;AACA,CAAC;;AAED,iEAAe,MAAM,EAAC;AACf;;;;;;;;;;;;;;;;;;;ACd8B;AACM;;AAE3C,cAAc,qDAAQ;AACtB;AACA,CAAC;AACD,8BAA8B,sDAAY;AAC1C,CAAC;AACD,yBAAyB,sDAAY;AACrC,CAAC;AACD;AACA,CAAC;;AAED,iEAAe,OAAO,EAAC;AAChB;;;;;;;;;;;;;;;;;;;ACd8B;AACQ;;AAE7C,gBAAgB,qDAAQ;AACxB;AACA,CAAC;AACD,8BAA8B,wDAAc;AAC5C,CAAC;AACD,yBAAyB,wDAAc;AACvC,CAAC;AACD;AACA,CAAC;;AAED,iEAAe,SAAS,EAAC;AAClB;;;;;;;;;;;;;;;;;;ACd8B;;AAErC,eAAe,qDAAQ;AACvB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED,iEAAe,QAAQ,EAAC;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACd8B;AACM;;AAE3C;AACA,SAAS,qDAAQ;AACjB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,2BAA2B,sDAAY;AACvC,GAAG;AACH;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5B8B;;AAErC,cAAc,qDAAQ;AACtB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,qDAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA,iEAAe,OAAO,EAAC;AAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzB8B;AACsB;;AAE3D;AACA,SAAS,qDAAQ;AACjB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,kFAAkF,wDAAc,IAAI,sDAAY;AAChH,GAAG;AACH;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5B8B;;AAErC,WAAW,qDAAQ;AACnB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,qDAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA,iEAAe,IAAI,EAAC;AACb;;;;;;;;;;;;;;;;;ACzB0B;;AAEjC,6BAAe,oCAAS;AACxB,cAAc,4CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,mBAAmB;;AAEjJ;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC7GiD;AACE;;AAEnD;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,8DAAS;AACrD,mBAAmB,4DAAU;AAC7B;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpB8B;AAC8B;AACd;AACM;;;;;;;;;;;;;;;;;ACHa;;AAEjE,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,kDAAkD,eAAe,UAAU;AAC3E,8BAA8B,6DAAQ,qBAAqB,2DAAM;AACjE,qBAAqB,0DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;ACvBuC;AACU;AACE;;AAEnD,qEAA6B,GAAG,kDAAmB;AACnD,sEAA8B,GAAG,mDAAoB;;;;;;;;;;;;;;;;;ACLb;;AAExC,6BAAe,oCAAS;AACxB;AACA,IAAI,sDAAS;AACb,GAAG;AACH;;;;;;;;;;;;;;;;;;;;ACNyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,+CAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,GAAG;AACvC;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;AAEA,sBAAsB,4DAAU;AAChC;AACA,GAAG;AACH,SAAS,2DAAK,oCAAoC,6CAAG;AACrD;;AAEA,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,QAAQ,gEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,4DAAU;AACvB;;;;;;;;;;;;;;;;;;;;ACzC+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA,QAAQ,iDAAG;AACX;AACA;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVqC;AACG;;AAExC,cAAc,oDAAQ;AACtB;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEP,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA,0DAA0D;AAC1D;AACA;;AAEO;AACP;AACA,0DAA0D;AAC1D;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,+CAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C,sCAAsC,iDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA,0DAA0D;AAC1D;AACA,IAAI,iDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxJsC;AACA;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,qDAAQ;;AAErD,qFAAqF,OAAO;AAC5F,+GAA+G,OAAO;AACtH;AACA;AACA;AACA,QAAQ,qDAAQ,qCAAqC,iDAAG;AACxD;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;;ACrByC;AACH;AACM;;AAE5C,6BAAe,oCAAS;AACxB;AACA;;AAEA,6CAA6C,qDAAW;;AAExD,yFAAyF,OAAO;AAChG,8DAA8D,OAAO;AACrE;AACA,yFAAyF,iDAAG,uCAAuC,OAAO;AAC1I;AACA,YAAY,qDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;ACzBuC;;AAEvC,gBAAgB,uEAA+B;;AAE/C,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;;;;;;;ACN+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB,oDAAoD,wDAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAK;AACvB;AACA;AACA,6EAA6E,wDAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,yCAAyC,mEAAoB,GAAG,oDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,qDAAU;AACzD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC/EA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA,qBAAqB,qDAAU;AAC/B;AACA;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvB6C;AACD;;AAE5C,6BAAe,sCAAW;AAC1B;AACA;AACA,YAAY,gDAAK;;AAEjB,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,sBAAsB,iDAAG;AACzB,QAAQ,qDAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,iDAAU;AACvB;;;;;;;;;;;;;;;;;;ACvBuC;;AAEvC;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,iDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,2BAA2B,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;;AAEA;AACA,gBAAgB,iDAAG;AACnB,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA,mBAAmB,iDAAG;AACtB,2CAA2C;AAC3C,GAAG;;AAEH;AACA,WAAW,iDAAG;AACd;AACA;;;;;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,eAAe,mBAAO,CAAC,qBAAU;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;;;;;;;;;;;ACXA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChIA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA,eAAe,mBAAO,CAAC,oBAAS;;AAEhC;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;AClF+C;AAC+G;AACxE;AAC/C;AACuB;AACf;AAE/C;;;;GAIG;AACqC;AACE;AACA;AAE1C,SAAS,8DAA8D,CAAC,EAAE,EAAE,GAAG;IAAI,IAAI,EAAE,GAAG,CAAC,EAAE;QAC3F,gEAAyB,CAAC,CAAC,CAAC,CAAC;KAChC;AAAC,CAAC;AACH,SAAS,8DAA8D,CAAC,EAAE,EAAE,GAAG;IAAI,IAAI,EAAE,GAAG,CAAC,EAAE;QAC3F,qEAA8B,CAAC,CAAC,CAAC,CAAC;QAClC,oDAAa,CAAC,CAAC,CAAC,CAAC;QACjB,mEAA4B,EAAE,CAAC;KAClC;IAAC,IAA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A;qBAAAA;;;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,4W;;;;;;;;;;;IAAAA,4D;IAAAA,uE;IAAAA,wE;IAAAA,uD;IAAAA,4D;IAAAA,0E;IAAAA,uD;IAAAA,4D;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,qG;IAAAA,0D;IAAAA,2F;IAAAA,0D;IAAAA,8E;IAAAA,8H;IAAAA,0D;IAAAA,uH;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,qE;IAAAA,4D;;;;mBAAAA,2D;IAAAA,kG;IAAAA,0D;IAAAA,uF;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,yH;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,qG;IAAAA,0D;IAAAA,sF;;;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,yc;;;;;;IAAAA,4D;IAAAA,kE;;;;mBAAAA,2D;IAAAA,gN;;;;;;;;IAAAA,4D;IAAAA,uE;IAAAA,wE;IAAAA,uD;IAAAA,4D;IAAAA,0E;IAAAA,uD;IAAAA,4D;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,iG;IAAAA,0D;IAAAA,2F;IAAAA,0D;IAAAA,8E;IAAAA,4I;IAAAA,0D;IAAAA,uH;;;;;;IAAAA,4D;IAAAA,qE;;;;mBAAAA,2D;IAAAA,iI;;;;;;IAAAA,4D;IAAAA,qE;;;;mBAAAA,2D;IAAAA,qF;;;;;;IAAAA,4D;IAAAA,qE;;;;mBAAAA,2D;IAAAA,sF;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,wI;IAAAA,wI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,kG;IAAAA,0D;IAAAA,2G;IAAAA,0D;IAAAA,4G;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,yH;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,iG;IAAAA,0D;IAAAA,sF;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,wE;IAAAA,uD;IAAAA,4D;IAAAA,2E;IAAAA,uD;IAAAA,4D;IAAAA,4D;;;;wBAAAA,2D;oBAAAA,2D;IAAAA,0D;IAAAA,wH;IAAAA,0D;IAAAA,mJ;IAAAA,0D;IAAAA,4F;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,sE;IAAAA,kI;IAAAA,4D;;;;wBAAAA,2D;oBAAAA,2D;IAAAA,4G;IAAAA,0D;IAAAA,gI;IAAAA,0D;IAAAA,uF;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,yH;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,qF;;;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,2hB;;;;;;IAAAA,4D;IAAAA,kE;;;;mBAAAA,2D;IAAAA,qM;;;;;;;;IAAAA,4D;IAAAA,kE;;;;;IAAAA,uH;IAAAA,yF;;;;;;;;;IAAAA,4D;IAAAA,qE;;;;mBAAAA,2D;IAAAA,qF;IAAAA,8N;;;;;;IAAAA,4D;IAAAA,qE;;;;mBAAAA,2D;IAAAA,8N;;;;;;;;;;;;gBAAAA,8D;;IAAAA,8D;IAAAA,oE;IAAAA,uE;IAAAA,kE;IAAAA,4D;IAAAA,iI;IAAAA,iI;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;IAAAA,4D;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,wK;IAAAA,0D;IAAAA,kI;IAAAA,0D;IAAAA,iI;IAAAA,0D;IAAAA,uL;IAAAA,klB;;;;;;;;;IAAAA,8D;IAAAA,kE;;;;;IAAAA,yJ;IAAAA,8J;;;;;;;;IAAAA,4D;IAAAA,kE;;;;;IAAAA,uH;IAAAA,yF;;;;;;;;IAAAA,8D;IAAAA,uE;IAAAA,kE;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,iK;;;;;;;;;;IAAAA,yE;IAAAA,qE;IAAAA,uD;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mG;IAAAA,0D;IAAAA,iH;;;;;;IAAAA,4D;IAAAA,+D;IAAAA,yE;IAAAA,iI;IAAAA,4D;;;;;IAAAA,0D;IAAAA,6E;;;;;;;;IAAAA,oE;;;;mBAAAA,2D;IAAAA,mI;;;;;;IAAAA,yE;IAAAA,uD;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,qM;;;;;;IAAAA,qE;;;;0BAAAA,2D;mBAAAA,2D;IAAAA,oI;;;;;;IAAAA,0E;IAAAA,uD;IAAAA,4D;;;;0BAAAA,2D;mBAAAA,2D;IAAAA,0D;IAAAA,qM;;;;;;IAAAA,qE;;;;0BAAAA,2D;IAAAA,iH;;;;;;IAAAA,0E;IAAAA,uD;IAAAA,4D;;;;0BAAAA,2D;IAAAA,0D;IAAAA,oH;;;;;;iBAAAA,8D;;IAAAA,yE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,qE;IAAAA,0H;IAAAA,0H;IAAAA,0E;IAAAA,uD;IAAAA,4D;IAAAA,0H;IAAAA,0H;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mG;IAAAA,0D;IAAAA,mF;IAAAA,0D;IAAAA,oF;IAAAA,0D;IAAAA,2F;IAAAA,0D;IAAAA,mF;IAAAA,0D;IAAAA,oF;;;;;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,mZ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,2W;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,kE;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,0D;IAAAA,gV;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,wE;IAAAA;0BAAAA;;sBAAAA;;;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,mW;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,yH;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,oS;IAAAA,0D;IAAAA,mF;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,mE;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,kU;;;;;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,yH;IAAAA,4D;;;;mBAAAA,2D;IAAAA,gW;IAAAA,gG;IAAAA,0D;IAAAA,mH;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,mZ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,2W;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,kE;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,0D;IAAAA,qU;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,wE;IAAAA;0BAAAA;;sBAAAA;;;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,uY;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,oI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,4T;IAAAA,0D;IAAAA,mF;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,mE;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,sT;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,mI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,gW;IAAAA,gG;IAAAA,0D;IAAAA,mH;;;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,mZ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,2W;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,kE;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,0D;IAAAA,kU;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,wE;IAAAA;0BAAAA;;sBAAAA;;;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,uY;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,gI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,oS;IAAAA,0D;IAAAA,mH;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,mE;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,mT;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,gI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,gW;IAAAA,gG;IAAAA,0D;IAAAA,mH;;;;;;;;IAAAA,8D;IAAAA,uE;IAAAA,kE;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,qJ;;;;;;;;;gBAAAA,8D;;IAAAA,8D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,2vB;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;;;;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,+P;;;;;;IAAAA,8D;IAAAA,oE;IAAAA,sH;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,sI;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,mZ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,sX;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,uZ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0X;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,qF;IAAAA,uG;IAAAA,0D;IAAAA,qjB;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,+H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,yG;IAAAA,0D;IAAAA,okB;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,+H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,mZ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,oU;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,qF;IAAAA,uG;IAAAA,0D;IAAAA,0d;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,uI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,yG;IAAAA,0D;IAAAA,ue;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,uI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,mZ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,sX;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,qF;IAAAA,uG;IAAAA,0D;IAAAA,ijB;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,oI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,yG;IAAAA,0D;IAAAA,gkB;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,oI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,2xB;;;;;;IAAAA,8D;IAAAA,oE;IAAAA,8H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,gH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,wuB;;;;;;IAAAA,8D;IAAAA,oE;IAAAA,8H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,gH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;;;;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,oQ;;;;;;IAAAA,8D;IAAAA,oE;IAAAA,6H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,sI;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,sc;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,2W;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,ma;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,+W;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,klB;IAAAA,uG;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,6H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,okB;IAAAA,yG;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,6H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,4W;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,2W;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,qF;IAAAA,uG;IAAAA,0D;IAAAA,0d;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,qI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,uE;IAAAA;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;0BAAAA;;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,yG;IAAAA,0D;IAAAA,ue;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,qI;IA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AAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,oU;;;;;;IAAAA,4D;IAAAA,kE;;;;;IAAAA,mL;;;;;;;;IAAAA,8D;IAAAA,oE;IAAAA,qE;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,qF;IAAAA,gI;;;;;;IAAAA,8D;IAAAA,oE;IAAAA,qE;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,gI;;;;;;;;IAAAA,4D;IAAAA,kE;;;;mBAAAA,2D;IAAAA,iK;;;;;;IAAAA,4D;IAAAA,kE;;;;mBAAAA,2D;IAAAA,6I;IAAAA,wQ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,mZ;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,ge;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,mE;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,qF;IAAAA,0D;IAAAA,wW;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,yH;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,mE;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,wW;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,yH;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,mH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,mW;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,0H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,oS;IAAAA,0D;IAAAA,mF;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,mE;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,kS;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,yH;IAAAA,4D;;;;mBAAAA,2D;IAAAA,gW;IAAAA,gG;IAAAA,0D;IAAAA,mH;;;;;;;;;IAAAA,4D;IAAAA,kE;;;;mBAAAA,2D;IAAAA,sL;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;0BAAAA;;qBAAAA;;;0BAAAA;;qBAAAA;;;;;0BAAAA;;qBAAAA;;;;;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,+F;IAAAA,wb;;;;;;IAAAA,4D;IAAAA,uE;;;;;IAAAA,oE;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,mI;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,uF;;;;;;IAAAA,4D;IAAAA,kE;;;;;mBAAAA,2D;IAAAA,gV;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,yH;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,sF;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;IAAAA,4D;;;;mBAAAA,2D;IAAAA,wV;IAAAA,6F;;;;;;IAAAA,4D;IAAAA,mE;;;;mBAAAA,2D;IAAAA,iN;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,qF;IAAAA,0D;IAAAA,gc;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,2H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,4F;IAAAA,0D;IAAAA,mH;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,oE;IAAAA,wE;IAAAA;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;oBAAAA,2D;IAAAA,0D;IAAAA,gc;;;;;;IAAAA,4D;IAAAA,oE;IAAAA,2H;IAAAA,4D;;;;mBAAAA,2D;IAAAA,4F;IAAAA,0D;IAAAA,mH;;;;;;;;IAAAA,4D;IAAAA,uE;IAAAA,kE;IAAAA,4D;;;;mBAAAA,2D;IAAAA,0D;IAAAA,oJ;;;;;;;;IAAAA,4D;IAAAA,kE;;;;mBAAAA,2D;mBAAAA,2D;IAAAA,kW;;;;;;gBAAAA,8D;;IAAAA,8D;IAAAA,oE;IAAAA,yH;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;IAAAA,4D;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,0D;IAAAA,6F;IAAAA,0D;IAAAA,wqB;;;;;;;;;gBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;MAAAA;qBAAAA;;;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,gW;IAAAA,gF;;;;;;IAAAA,4D;IAAAA,sE;;;;sBAAAA,2D;IAAAA,0G;;;;;;IAAAA,4D;IAAAA,2E;IAAAA,uD;IAAAA,4D;;;;sBAAAA,2D;IAAAA,0D;IAAAA,8G;;;;;;IAAAA,4D;IAAAA,sE;;;;sBAAAA,2D;mBAAAA,2D;IAAAA,wH;IAAAA,qF;;;;;;IAAAA,4D;IAAAA,2E;IAAAA,uD;IAAAA,4D;;;;sBAAAA,2D;mBAAAA,2D;IAAAA,qF;IAAAA,0D;IAAAA,gI;;;;;;;;;;;;iBAAAA,8D;;IAAAA,4D;IAAAA,uE;IAAAA,uE;IAAAA;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;MAAAA;sBAAAA;;;IAAAA,4D;IAAAA,4H;IAAAA,4H;IAAAA,0E;IAAAA,uD;IAAAA,4D;IAAAA,4H;IAAAA,4H;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,2F;IAAAA,0D;IAAAA,+kB;IAAAA,0D;IAAAA,mF;IAAAA,0D;IAAAA,oF;IAAAA,0D;IAAAA,2F;IAAAA,0D;IAAAA,mF;IAAAA,0D;IAAAA,oF;;;;;;;;;IAAAA,4D;IAAAA,qE;;;;mBAAAA,2D;IAAAA,4I;;;;;;;;IAAAA,8D;IAAAA,qE;;;;;mBAAAA,2D;IAAAA,oF;IAAAA,+H;;;;;;gBAAAA,8D;;IAAAA,8D;IAAAA,uE;IAAAA;MAAAA;qBAAAA;;;IAAAA,4D;;;;;mBAAAA,2D;IAAAA,6Y;;;;;;;;IAAAA,4D;IAAAA,uE;IAAAA,kE;IAAAA,4D;;;;mBAAAA,2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","file":"default-src_app_shared_shared_module_ts.a1f5f77fe6b74e08a333.js","sourcesContent":["import { __rest, __decorate, __metadata } from 'tslib';\nimport { ContentChildren, QueryList, Input, Component, NgZone, Injectable, EventEmitter, ElementRef, ViewContainerRef, ComponentFactoryResolver, Output, ViewEncapsulation, ANALYZE_FOR_ENTRY_COMPONENTS, NgModule } from '@angular/core';\nimport { VanillaFrameworkOverrides, BaseComponentWrapper, AgPromise, ComponentUtil, Grid } from 'ag-grid-community';\n\nimport * as ɵngcc0 from '@angular/core';\nvar AgGridColumn_1;\nlet AgGridColumn = AgGridColumn_1 = class AgGridColumn {\n hasChildColumns() {\n if (this.childColumns && this.childColumns.length > 0) {\n // necessary because of https://github.com/angular/angular/issues/10098\n return !(this.childColumns.length === 1 && this.childColumns.first === this);\n }\n return false;\n }\n toColDef() {\n let colDef = this.createColDefFromGridColumn(this);\n if (this.hasChildColumns()) {\n colDef[\"children\"] = this.getChildColDefs(this.childColumns);\n }\n return colDef;\n }\n getChildColDefs(childColumns) {\n return childColumns\n // necessary because of https://github.com/angular/angular/issues/10098\n .filter(column => !column.hasChildColumns())\n .map((column) => {\n return column.toColDef();\n });\n }\n createColDefFromGridColumn(from) {\n let { childColumns } = from, colDef = __rest(from, [\"childColumns\"]);\n return colDef;\n }\n};\nAgGridColumn.ɵfac = function AgGridColumn_Factory(t) { return new (t || AgGridColumn)(); };\nAgGridColumn.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AgGridColumn, selectors: [[\"ag-grid-column\"]], contentQueries: function AgGridColumn_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, AgGridColumn_1, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.childColumns = _t);\n } }, inputs: { children: \"children\", sortingOrder: \"sortingOrder\", allowedAggFuncs: \"allowedAggFuncs\", menuTabs: \"menuTabs\", cellClassRules: \"cellClassRules\", icons: \"icons\", headerGroupComponent: \"headerGroupComponent\", headerGroupComponentFramework: \"headerGroupComponentFramework\", headerGroupComponentParams: \"headerGroupComponentParams\", cellStyle: \"cellStyle\", cellRendererParams: \"cellRendererParams\", cellEditorFramework: \"cellEditorFramework\", cellEditorParams: \"cellEditorParams\", pinnedRowCellRendererFramework: \"pinnedRowCellRendererFramework\", pinnedRowCellRendererParams: \"pinnedRowCellRendererParams\", filterFramework: \"filterFramework\", filterParams: \"filterParams\", headerComponent: \"headerComponent\", headerComponentFramework: \"headerComponentFramework\", headerComponentParams: \"headerComponentParams\", floatingFilterComponent: \"floatingFilterComponent\", floatingFilterComponentParams: \"floatingFilterComponentParams\", floatingFilterComponentFramework: \"floatingFilterComponentFramework\", tooltipComponent: \"tooltipComponent\", tooltipComponentParams: \"tooltipComponentParams\", tooltipComponentFramework: \"tooltipComponentFramework\", refData: \"refData\", columnsMenuParams: \"columnsMenuParams\", headerName: \"headerName\", columnGroupShow: \"columnGroupShow\", headerClass: \"headerClass\", toolPanelClass: \"toolPanelClass\", headerValueGetter: \"headerValueGetter\", groupId: \"groupId\", colId: \"colId\", sort: \"sort\", initialSort: \"initialSort\", field: \"field\", type: \"type\", tooltipField: \"tooltipField\", headerTooltip: \"headerTooltip\", cellClass: \"cellClass\", showRowGroup: \"showRowGroup\", filter: \"filter\", initialAggFunc: \"initialAggFunc\", aggFunc: \"aggFunc\", cellRenderer: \"cellRenderer\", cellEditor: \"cellEditor\", pinned: \"pinned\", initialPinned: \"initialPinned\", chartDataType: \"chartDataType\", sortedAt: \"sortedAt\", sortIndex: \"sortIndex\", initialSortIndex: \"initialSortIndex\", flex: \"flex\", initialFlex: \"initialFlex\", width: \"width\", initialWidth: \"initialWidth\", minWidth: \"minWidth\", maxWidth: \"maxWidth\", rowGroupIndex: \"rowGroupIndex\", initialRowGroupIndex: \"initialRowGroupIndex\", pivotIndex: \"pivotIndex\", initialPivotIndex: \"initialPivotIndex\", dndSourceOnRowDrag: \"dndSourceOnRowDrag\", valueGetter: \"valueGetter\", valueSetter: \"valueSetter\", filterValueGetter: \"filterValueGetter\", keyCreator: \"keyCreator\", cellRendererFramework: \"cellRendererFramework\", pinnedRowCellRenderer: \"pinnedRowCellRenderer\", valueFormatter: \"valueFormatter\", pinnedRowValueFormatter: \"pinnedRowValueFormatter\", valueParser: \"valueParser\", comparator: \"comparator\", equals: \"equals\", pivotComparator: \"pivotComparator\", suppressKeyboardEvent: \"suppressKeyboardEvent\", suppressHeaderKeyboardEvent: \"suppressHeaderKeyboardEvent\", colSpan: \"colSpan\", rowSpan: \"rowSpan\", getQuickFilterText: \"getQuickFilterText\", newValueHandler: \"newValueHandler\", onCellValueChanged: \"onCellValueChanged\", onCellClicked: \"onCellClicked\", onCellDoubleClicked: \"onCellDoubleClicked\", onCellContextMenu: \"onCellContextMenu\", rowDragText: \"rowDragText\", tooltipValueGetter: \"tooltipValueGetter\", cellRendererSelector: \"cellRendererSelector\", cellEditorSelector: \"cellEditorSelector\", suppressCellFlash: \"suppressCellFlash\", suppressColumnsToolPanel: \"suppressColumnsToolPanel\", suppressFiltersToolPanel: \"suppressFiltersToolPanel\", openByDefault: \"openByDefault\", marryChildren: \"marryChildren\", hide: \"hide\", initialHide: \"initialHide\", rowGroup: \"rowGroup\", initialRowGroup: \"initialRowGroup\", pivot: \"pivot\", initialPivot: \"initialPivot\", checkboxSelection: \"checkboxSelection\", headerCheckboxSelection: \"headerCheckboxSelection\", headerCheckboxSelectionFilteredOnly: \"headerCheckboxSelectionFilteredOnly\", suppressMenu: \"suppressMenu\", suppressMovable: \"suppressMovable\", lockPosition: \"lockPosition\", lockVisible: \"lockVisible\", lockPinned: \"lockPinned\", unSortIcon: \"unSortIcon\", suppressSizeToFit: \"suppressSizeToFit\", suppressAutoSize: \"suppressAutoSize\", enableRowGroup: \"enableRowGroup\", enablePivot: \"enablePivot\", enableValue: \"enableValue\", editable: \"editable\", suppressPaste: \"suppressPaste\", suppressNavigable: \"suppressNavigable\", enableCellChangeFlash: \"enableCellChangeFlash\", rowDrag: \"rowDrag\", dndSource: \"dndSource\", autoHeight: \"autoHeight\", wrapText: \"wrapText\", sortable: \"sortable\", resizable: \"resizable\", singleClickEdit: \"singleClickEdit\", floatingFilter: \"floatingFilter\" }, decls: 0, vars: 0, template: function AgGridColumn_Template(rf, ctx) { }, encapsulation: 2 });\n__decorate([\n ContentChildren(AgGridColumn_1),\n __metadata(\"design:type\", QueryList)\n], AgGridColumn.prototype, \"childColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"children\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"sortingOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"allowedAggFuncs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"menuTabs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellClassRules\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"icons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerGroupComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerGroupComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerGroupComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellEditorFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellEditorParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinnedRowCellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinnedRowCellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"filterFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"filterParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"floatingFilterComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"floatingFilterComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"floatingFilterComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"tooltipComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"tooltipComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"tooltipComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"refData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"columnsMenuParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerName\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"columnGroupShow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"toolPanelClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerValueGetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"groupId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"colId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"sort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"field\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"type\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"tooltipField\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerTooltip\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"showRowGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"filter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialAggFunc\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"aggFunc\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellEditor\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinned\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialPinned\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"chartDataType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"sortedAt\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"sortIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialSortIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"flex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialFlex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"width\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"minWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"maxWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"rowGroupIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialRowGroupIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pivotIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialPivotIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"dndSourceOnRowDrag\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"valueGetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"valueSetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"filterValueGetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"keyCreator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinnedRowCellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"valueFormatter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pinnedRowValueFormatter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"valueParser\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"comparator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"equals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pivotComparator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressKeyboardEvent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressHeaderKeyboardEvent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"colSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"rowSpan\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"getQuickFilterText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"newValueHandler\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"onCellValueChanged\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"onCellClicked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"onCellDoubleClicked\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"onCellContextMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"rowDragText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"tooltipValueGetter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellRendererSelector\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"cellEditorSelector\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressCellFlash\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressColumnsToolPanel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressFiltersToolPanel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"openByDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"marryChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"hide\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialHide\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"rowGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialRowGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"pivot\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"initialPivot\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"checkboxSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerCheckboxSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"headerCheckboxSelectionFilteredOnly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressMovable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"lockPosition\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"lockVisible\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"lockPinned\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"unSortIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressSizeToFit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressAutoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"enableRowGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"enablePivot\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"enableValue\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"editable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressPaste\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"suppressNavigable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"enableCellChangeFlash\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"rowDrag\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"dndSource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"autoHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"wrapText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"sortable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"resizable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"singleClickEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridColumn.prototype, \"floatingFilter\", void 0);\n\nlet AngularFrameworkOverrides = class AngularFrameworkOverrides extends VanillaFrameworkOverrides {\n constructor(_ngZone) {\n super();\n this._ngZone = _ngZone;\n }\n setEmitterUsedCallback(isEmitterUsed) {\n this.isEmitterUsed = isEmitterUsed;\n }\n setTimeout(action, timeout) {\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n window.setTimeout(() => {\n action();\n }, timeout);\n });\n }\n else {\n window.setTimeout(() => {\n action();\n }, timeout);\n }\n }\n addEventListener(element, eventType, listener, useCapture) {\n if (this.isOutsideAngular(eventType) && this._ngZone) {\n this._ngZone.runOutsideAngular(() => {\n element.addEventListener(eventType, listener, useCapture);\n });\n }\n else {\n element.addEventListener(eventType, listener, useCapture);\n }\n }\n dispatchEvent(eventType, listener) {\n if (this.isOutsideAngular(eventType)) {\n if (this._ngZone) {\n this._ngZone.runOutsideAngular(listener);\n }\n else {\n listener();\n }\n }\n else if (this.isEmitterUsed(eventType)) {\n // only trigger off events (and potentially change detection) if actually used\n if (!NgZone.isInAngularZone() && this._ngZone) {\n this._ngZone.run(listener);\n }\n else {\n listener();\n }\n }\n }\n};\nAngularFrameworkOverrides.ɵfac = function AngularFrameworkOverrides_Factory(t) { return new (t || AngularFrameworkOverrides)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\nAngularFrameworkOverrides.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AngularFrameworkOverrides, factory: function (t) { return AngularFrameworkOverrides.ɵfac(t); } });\nAngularFrameworkOverrides.ctorParameters = () => [\n { type: NgZone }\n];\nAngularFrameworkOverrides = __decorate([ __metadata(\"design:paramtypes\", [NgZone])\n], AngularFrameworkOverrides);\n\nlet AngularFrameworkComponentWrapper = class AngularFrameworkComponentWrapper extends BaseComponentWrapper {\n setViewContainerRef(viewContainerRef) {\n this.viewContainerRef = viewContainerRef;\n }\n setComponentFactoryResolver(componentFactoryResolver) {\n this.componentFactoryResolver = componentFactoryResolver;\n }\n createWrapper(OriginalConstructor) {\n let that = this;\n class DynamicAgNg2Component extends BaseGuiComponent {\n init(params) {\n super.init(params);\n this._componentRef.changeDetectorRef.detectChanges();\n }\n createComponent() {\n return that.createComponent(OriginalConstructor);\n }\n hasMethod(name) {\n return wrapper.getFrameworkComponentInstance()[name] != null;\n }\n callMethod(name, args) {\n const componentRef = this.getFrameworkComponentInstance();\n return wrapper.getFrameworkComponentInstance()[name].apply(componentRef, args);\n }\n addMethod(name, callback) {\n wrapper[name] = callback;\n }\n }\n let wrapper = new DynamicAgNg2Component();\n return wrapper;\n }\n createComponent(componentType) {\n // used to cache the factory, but this a) caused issues when used with either webpack/angularcli with --prod\n // but more significantly, the underlying implementation of resolveComponentFactory uses a map too, so us\n // caching the factory here yields no performance benefits\n let factory = this.componentFactoryResolver.resolveComponentFactory(componentType);\n return this.viewContainerRef.createComponent(factory);\n }\n};\nAngularFrameworkComponentWrapper.ɵfac = /*@__PURE__*/ function () { let ɵAngularFrameworkComponentWrapper_BaseFactory; return function AngularFrameworkComponentWrapper_Factory(t) { return (ɵAngularFrameworkComponentWrapper_BaseFactory || (ɵAngularFrameworkComponentWrapper_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(AngularFrameworkComponentWrapper)))(t || AngularFrameworkComponentWrapper); }; }();\nAngularFrameworkComponentWrapper.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: AngularFrameworkComponentWrapper, factory: function (t) { return AngularFrameworkComponentWrapper.ɵfac(t); } });\nclass BaseGuiComponent {\n init(params) {\n this._params = params;\n this._componentRef = this.createComponent();\n this._agAwareComponent = this._componentRef.instance;\n this._frameworkComponentInstance = this._componentRef.instance;\n this._eGui = this._componentRef.location.nativeElement;\n this._agAwareComponent.agInit(this._params);\n }\n getGui() {\n return this._eGui;\n }\n destroy() {\n if (this._componentRef) {\n this._componentRef.destroy();\n }\n }\n getFrameworkComponentInstance() {\n return this._frameworkComponentInstance;\n }\n}\n\nlet AgGridAngular = class AgGridAngular {\n constructor(elementDef, viewContainerRef, angularFrameworkOverrides, frameworkComponentWrapper, componentFactoryResolver) {\n this.viewContainerRef = viewContainerRef;\n this.angularFrameworkOverrides = angularFrameworkOverrides;\n this.frameworkComponentWrapper = frameworkComponentWrapper;\n this.componentFactoryResolver = componentFactoryResolver;\n this._initialised = false;\n this._destroyed = false;\n // in order to ensure firing of gridReady is deterministic\n this._fullyReady = AgPromise.resolve(true);\n // @START@\n this.alignedGrids = undefined;\n this.rowData = undefined;\n this.columnDefs = undefined;\n this.excelStyles = undefined;\n this.pinnedTopRowData = undefined;\n this.pinnedBottomRowData = undefined;\n this.chartThemes = undefined;\n this.components = undefined;\n this.frameworkComponents = undefined;\n this.rowStyle = undefined;\n this.context = undefined;\n this.autoGroupColumnDef = undefined;\n this.localeText = undefined;\n this.icons = undefined;\n this.datasource = undefined;\n this.serverSideDatasource = undefined;\n this.viewportDatasource = undefined;\n this.groupRowRendererParams = undefined;\n this.aggFuncs = undefined;\n this.fullWidthCellRendererParams = undefined;\n this.defaultColGroupDef = undefined;\n this.defaultColDef = undefined;\n this.defaultExportParams = undefined;\n this.defaultCsvExportParams = undefined;\n this.defaultExcelExportParams = undefined;\n this.columnTypes = undefined;\n this.rowClassRules = undefined;\n this.detailGridOptions = undefined;\n this.detailCellRendererParams = undefined;\n this.loadingCellRendererParams = undefined;\n this.loadingOverlayComponentParams = undefined;\n this.noRowsOverlayComponentParams = undefined;\n this.popupParent = undefined;\n this.colResizeDefault = undefined;\n this.reduxStore = undefined;\n this.statusBar = undefined;\n this.sideBar = undefined;\n this.chartThemeOverrides = undefined;\n this.customChartThemes = undefined;\n this.sortingOrder = undefined;\n this.rowClass = undefined;\n this.rowSelection = undefined;\n this.overlayLoadingTemplate = undefined;\n this.overlayNoRowsTemplate = undefined;\n this.quickFilterText = undefined;\n this.rowModelType = undefined;\n this.editType = undefined;\n this.domLayout = undefined;\n this.clipboardDeliminator = undefined;\n this.rowGroupPanelShow = undefined;\n this.multiSortKey = undefined;\n this.pivotColumnGroupTotals = undefined;\n this.pivotRowTotals = undefined;\n this.pivotPanelShow = undefined;\n this.fillHandleDirection = undefined;\n this.serverSideStoreType = undefined;\n this.rowHeight = undefined;\n this.detailRowHeight = undefined;\n this.rowBuffer = undefined;\n this.colWidth = undefined;\n this.headerHeight = undefined;\n this.groupHeaderHeight = undefined;\n this.floatingFiltersHeight = undefined;\n this.pivotHeaderHeight = undefined;\n this.pivotGroupHeaderHeight = undefined;\n this.groupDefaultExpanded = undefined;\n this.minColWidth = undefined;\n this.maxColWidth = undefined;\n this.viewportRowModelPageSize = undefined;\n this.viewportRowModelBufferSize = undefined;\n this.autoSizePadding = undefined;\n this.maxBlocksInCache = undefined;\n this.maxConcurrentDatasourceRequests = undefined;\n this.tooltipShowDelay = undefined;\n this.cacheOverflowSize = undefined;\n this.paginationPageSize = undefined;\n this.cacheBlockSize = undefined;\n this.infiniteInitialRowCount = undefined;\n this.scrollbarWidth = undefined;\n this.batchUpdateWaitMillis = undefined;\n this.asyncTransactionWaitMillis = undefined;\n this.blockLoadDebounceMillis = undefined;\n this.keepDetailRowsCount = undefined;\n this.undoRedoCellEditingLimit = undefined;\n this.cellFlashDelay = undefined;\n this.cellFadeDelay = undefined;\n this.tabIndex = undefined;\n this.localeTextFunc = undefined;\n this.groupRowInnerRenderer = undefined;\n this.groupRowInnerRendererFramework = undefined;\n this.dateComponent = undefined;\n this.dateComponentFramework = undefined;\n this.groupRowRenderer = undefined;\n this.groupRowRendererFramework = undefined;\n this.isExternalFilterPresent = undefined;\n this.getRowHeight = undefined;\n this.doesExternalFilterPass = undefined;\n this.getRowClass = undefined;\n this.getRowStyle = undefined;\n this.getRowClassRules = undefined;\n this.traverseNode = undefined;\n this.getContextMenuItems = undefined;\n this.getMainMenuItems = undefined;\n this.processRowPostCreate = undefined;\n this.processCellForClipboard = undefined;\n this.groupRowAggNodes = undefined;\n this.getRowNodeId = undefined;\n this.isFullWidthCell = undefined;\n this.fullWidthCellRenderer = undefined;\n this.fullWidthCellRendererFramework = undefined;\n this.processSecondaryColDef = undefined;\n this.processSecondaryColGroupDef = undefined;\n this.getBusinessKeyForNode = undefined;\n this.sendToClipboard = undefined;\n this.navigateToNextHeader = undefined;\n this.tabToNextHeader = undefined;\n this.navigateToNextCell = undefined;\n this.tabToNextCell = undefined;\n this.getDetailRowData = undefined;\n this.processCellFromClipboard = undefined;\n this.getDocument = undefined;\n this.postProcessPopup = undefined;\n this.getChildCount = undefined;\n this.getDataPath = undefined;\n this.loadingCellRenderer = undefined;\n this.loadingCellRendererFramework = undefined;\n this.loadingOverlayComponent = undefined;\n this.loadingOverlayComponentFramework = undefined;\n this.noRowsOverlayComponent = undefined;\n this.noRowsOverlayComponentFramework = undefined;\n this.detailCellRenderer = undefined;\n this.detailCellRendererFramework = undefined;\n this.defaultGroupSortComparator = undefined;\n this.isRowMaster = undefined;\n this.isRowSelectable = undefined;\n this.postSort = undefined;\n this.processHeaderForClipboard = undefined;\n this.paginationNumberFormatter = undefined;\n this.processDataFromClipboard = undefined;\n this.getServerSideGroupKey = undefined;\n this.isServerSideGroup = undefined;\n this.suppressKeyboardEvent = undefined;\n this.createChartContainer = undefined;\n this.processChartOptions = undefined;\n this.getChartToolbarItems = undefined;\n this.fillOperation = undefined;\n this.isApplyServerSideTransaction = undefined;\n this.getServerSideStoreParams = undefined;\n this.isServerSideGroupOpenByDefault = undefined;\n this.isGroupOpenByDefault = undefined;\n this.suppressMakeColumnVisibleAfterUnGroup = undefined;\n this.suppressRowClickSelection = undefined;\n this.suppressCellSelection = undefined;\n this.suppressHorizontalScroll = undefined;\n this.alwaysShowHorizontalScroll = undefined;\n this.alwaysShowVerticalScroll = undefined;\n this.debug = undefined;\n this.enableBrowserTooltips = undefined;\n this.enableCellExpressions = undefined;\n this.angularCompileRows = undefined;\n this.angularCompileFilters = undefined;\n this.groupSuppressAutoColumn = undefined;\n this.groupSelectsChildren = undefined;\n this.groupIncludeFooter = undefined;\n this.groupIncludeTotalFooter = undefined;\n this.groupUseEntireRow = undefined;\n this.groupSuppressBlankHeader = undefined;\n this.suppressMenuHide = undefined;\n this.suppressRowDeselection = undefined;\n this.unSortIcon = undefined;\n this.suppressMultiSort = undefined;\n this.singleClickEdit = undefined;\n this.suppressLoadingOverlay = undefined;\n this.suppressNoRowsOverlay = undefined;\n this.suppressAutoSize = undefined;\n this.skipHeaderOnAutoSize = undefined;\n this.suppressParentsInRowNodes = undefined;\n this.suppressColumnMoveAnimation = undefined;\n this.suppressMovableColumns = undefined;\n this.suppressFieldDotNotation = undefined;\n this.enableRangeSelection = undefined;\n this.enableRangeHandle = undefined;\n this.enableFillHandle = undefined;\n this.suppressClearOnFillReduction = undefined;\n this.deltaSort = undefined;\n this.suppressTouch = undefined;\n this.suppressAsyncEvents = undefined;\n this.allowContextMenuWithControlKey = undefined;\n this.suppressContextMenu = undefined;\n this.rememberGroupStateWhenNewData = undefined;\n this.enableCellChangeFlash = undefined;\n this.suppressDragLeaveHidesColumns = undefined;\n this.suppressMiddleClickScrolls = undefined;\n this.suppressPreventDefaultOnMouseWheel = undefined;\n this.suppressCopyRowsToClipboard = undefined;\n this.copyHeadersToClipboard = undefined;\n this.pivotMode = undefined;\n this.suppressAggFuncInHeader = undefined;\n this.suppressColumnVirtualisation = undefined;\n this.suppressAggAtRootLevel = undefined;\n this.suppressFocusAfterRefresh = undefined;\n this.functionsPassive = undefined;\n this.functionsReadOnly = undefined;\n this.animateRows = undefined;\n this.groupSelectsFiltered = undefined;\n this.groupRemoveSingleChildren = undefined;\n this.groupRemoveLowestSingleChildren = undefined;\n this.enableRtl = undefined;\n this.suppressClickEdit = undefined;\n this.rowDragManaged = undefined;\n this.suppressRowDrag = undefined;\n this.suppressMoveWhenRowDragging = undefined;\n this.enableMultiRowDragging = undefined;\n this.enableGroupEdit = undefined;\n this.embedFullWidthRows = undefined;\n this.deprecatedEmbedFullWidthRows = undefined;\n this.suppressPaginationPanel = undefined;\n this.floatingFilter = undefined;\n this.groupHideOpenParents = undefined;\n this.groupMultiAutoColumn = undefined;\n this.pagination = undefined;\n this.stopEditingWhenGridLosesFocus = undefined;\n this.paginationAutoPageSize = undefined;\n this.suppressScrollOnNewData = undefined;\n this.purgeClosedRowNodes = undefined;\n this.cacheQuickFilter = undefined;\n this.deltaRowDataMode = undefined;\n this.ensureDomOrder = undefined;\n this.accentedSort = undefined;\n this.suppressChangeDetection = undefined;\n this.valueCache = undefined;\n this.valueCacheNeverExpires = undefined;\n this.aggregateOnlyChangedColumns = undefined;\n this.suppressAnimationFrame = undefined;\n this.suppressExcelExport = undefined;\n this.suppressCsvExport = undefined;\n this.treeData = undefined;\n this.masterDetail = undefined;\n this.suppressMultiRangeSelection = undefined;\n this.enterMovesDownAfterEdit = undefined;\n this.enterMovesDown = undefined;\n this.suppressPropertyNamesCheck = undefined;\n this.rowMultiSelectWithClick = undefined;\n this.suppressEnterpriseResetOnNewColumns = undefined;\n this.enableOldSetFilterModel = undefined;\n this.suppressRowHoverHighlight = undefined;\n this.suppressRowTransform = undefined;\n this.suppressClipboardPaste = undefined;\n this.suppressLastEmptyLineOnPaste = undefined;\n this.serverSideSortingAlwaysResets = undefined;\n this.reactNext = undefined;\n this.suppressSetColumnStateEvents = undefined;\n this.suppressColumnStateEvents = undefined;\n this.enableCharts = undefined;\n this.deltaColumnMode = undefined;\n this.suppressMaintainUnsortedOrder = undefined;\n this.enableCellTextSelection = undefined;\n this.suppressBrowserResizeObserver = undefined;\n this.suppressMaxRenderedRowRestriction = undefined;\n this.excludeChildrenWhenTreeDataFiltering = undefined;\n this.tooltipMouseTrack = undefined;\n this.keepDetailRows = undefined;\n this.paginateChildRows = undefined;\n this.preventDefaultOnContextMenu = undefined;\n this.undoRedoCellEditing = undefined;\n this.allowDragFromColumnsToolPanel = undefined;\n this.immutableData = undefined;\n this.immutableColumns = undefined;\n this.pivotSuppressAutoColumn = undefined;\n this.suppressExpandablePivotGroups = undefined;\n this.applyColumnDefOrder = undefined;\n this.debounceVerticalScrollbar = undefined;\n this.detailRowAutoHeight = undefined;\n this.serverSideFilteringAlwaysResets = undefined;\n this.suppressAggFilteredOnly = undefined;\n this.showOpenedGroup = undefined;\n this.suppressClipboardApi = undefined;\n this.suppressModelUpdateAfterUpdateTransaction = undefined;\n this.stopEditingWhenCellsLoseFocus = undefined;\n this.columnEverythingChanged = new EventEmitter();\n this.newColumnsLoaded = new EventEmitter();\n this.columnPivotModeChanged = new EventEmitter();\n this.columnRowGroupChanged = new EventEmitter();\n this.expandOrCollapseAll = new EventEmitter();\n this.columnPivotChanged = new EventEmitter();\n this.gridColumnsChanged = new EventEmitter();\n this.columnValueChanged = new EventEmitter();\n this.columnMoved = new EventEmitter();\n this.columnVisible = new EventEmitter();\n this.columnPinned = new EventEmitter();\n this.columnGroupOpened = new EventEmitter();\n this.columnResized = new EventEmitter();\n this.displayedColumnsChanged = new EventEmitter();\n this.virtualColumnsChanged = new EventEmitter();\n this.asyncTransactionsFlushed = new EventEmitter();\n this.rowGroupOpened = new EventEmitter();\n this.rowDataChanged = new EventEmitter();\n this.rowDataUpdated = new EventEmitter();\n this.pinnedRowDataChanged = new EventEmitter();\n this.rangeSelectionChanged = new EventEmitter();\n this.chartCreated = new EventEmitter();\n this.chartRangeSelectionChanged = new EventEmitter();\n this.chartOptionsChanged = new EventEmitter();\n this.chartDestroyed = new EventEmitter();\n this.toolPanelVisibleChanged = new EventEmitter();\n this.modelUpdated = new EventEmitter();\n this.pasteStart = new EventEmitter();\n this.pasteEnd = new EventEmitter();\n this.fillStart = new EventEmitter();\n this.fillEnd = new EventEmitter();\n this.cellClicked = new EventEmitter();\n this.cellDoubleClicked = new EventEmitter();\n this.cellMouseDown = new EventEmitter();\n this.cellContextMenu = new EventEmitter();\n this.cellValueChanged = new EventEmitter();\n this.rowValueChanged = new EventEmitter();\n this.cellFocused = new EventEmitter();\n this.rowSelected = new EventEmitter();\n this.selectionChanged = new EventEmitter();\n this.cellKeyDown = new EventEmitter();\n this.cellKeyPress = new EventEmitter();\n this.cellMouseOver = new EventEmitter();\n this.cellMouseOut = new EventEmitter();\n this.filterChanged = new EventEmitter();\n this.filterModified = new EventEmitter();\n this.filterOpened = new EventEmitter();\n this.sortChanged = new EventEmitter();\n this.virtualRowRemoved = new EventEmitter();\n this.rowClicked = new EventEmitter();\n this.rowDoubleClicked = new EventEmitter();\n this.gridReady = new EventEmitter();\n this.gridSizeChanged = new EventEmitter();\n this.viewportChanged = new EventEmitter();\n this.scrollbarWidthChanged = new EventEmitter();\n this.firstDataRendered = new EventEmitter();\n this.dragStarted = new EventEmitter();\n this.dragStopped = new EventEmitter();\n this.checkboxChanged = new EventEmitter();\n this.rowEditingStarted = new EventEmitter();\n this.rowEditingStopped = new EventEmitter();\n this.cellEditingStarted = new EventEmitter();\n this.cellEditingStopped = new EventEmitter();\n this.bodyScroll = new EventEmitter();\n this.animationQueueEmpty = new EventEmitter();\n this.heightScaleChanged = new EventEmitter();\n this.paginationChanged = new EventEmitter();\n this.componentStateChanged = new EventEmitter();\n this.bodyHeightChanged = new EventEmitter();\n this.displayedColumnsWidthChanged = new EventEmitter();\n this.scrollVisibilityChanged = new EventEmitter();\n this.columnHoverChanged = new EventEmitter();\n this.flashCells = new EventEmitter();\n this.paginationPixelOffsetChanged = new EventEmitter();\n this.displayedRowsChanged = new EventEmitter();\n this.leftPinnedWidthChanged = new EventEmitter();\n this.rightPinnedWidthChanged = new EventEmitter();\n this.rowContainerHeightChanged = new EventEmitter();\n this.rowDragEnter = new EventEmitter();\n this.rowDragMove = new EventEmitter();\n this.rowDragLeave = new EventEmitter();\n this.rowDragEnd = new EventEmitter();\n this.popupToFront = new EventEmitter();\n this.columnRowGroupChangeRequest = new EventEmitter();\n this.columnPivotChangeRequest = new EventEmitter();\n this.columnValueChangeRequest = new EventEmitter();\n this.columnAggFuncChangeRequest = new EventEmitter();\n this.keyboardFocus = new EventEmitter();\n this.mouseFocus = new EventEmitter();\n this.storeUpdated = new EventEmitter();\n this._nativeElement = elementDef.nativeElement;\n }\n ngAfterViewInit() {\n this.frameworkComponentWrapper.setViewContainerRef(this.viewContainerRef);\n this.frameworkComponentWrapper.setComponentFactoryResolver(this.componentFactoryResolver);\n this.angularFrameworkOverrides.setEmitterUsedCallback(this.isEmitterUsed.bind(this));\n this.gridOptions = ComponentUtil.copyAttributesToGridOptions(this.gridOptions, this, true);\n this.gridParams = {\n globalEventListener: this.globalEventListener.bind(this),\n frameworkOverrides: this.angularFrameworkOverrides,\n providedBeanInstances: {\n frameworkComponentWrapper: this.frameworkComponentWrapper\n },\n modules: (this.modules || [])\n };\n if (this.columns && this.columns.length > 0) {\n this.gridOptions.columnDefs = this.columns\n .map((column) => {\n return column.toColDef();\n });\n }\n new Grid(this._nativeElement, this.gridOptions, this.gridParams);\n if (this.gridOptions.api) {\n this.api = this.gridOptions.api;\n }\n if (this.gridOptions.columnApi) {\n this.columnApi = this.gridOptions.columnApi;\n }\n this._initialised = true;\n // sometimes, especially in large client apps gridReady can fire before ngAfterViewInit\n // this ties these together so that gridReady will always fire after agGridAngular's ngAfterViewInit\n // the actual containing component's ngAfterViewInit will fire just after agGridAngular's\n this._fullyReady.resolveNow(null, resolve => resolve);\n }\n ngOnChanges(changes) {\n if (this._initialised) {\n ComponentUtil.processOnChange(changes, this.gridOptions, this.api, this.columnApi);\n }\n }\n ngOnDestroy() {\n if (this._initialised) {\n // need to do this before the destroy, so we know not to emit any events\n // while tearing down the grid.\n this._destroyed = true;\n if (this.api) {\n this.api.destroy();\n }\n }\n }\n // we'll emit the emit if a user is listening for a given event either on the component via normal angular binding\n // or via gridOptions\n isEmitterUsed(eventType) {\n const emitter = this[eventType];\n const hasEmitter = !!emitter && emitter.observers && emitter.observers.length > 0;\n // gridReady => onGridReady\n const asEventName = `on${eventType.charAt(0).toUpperCase()}${eventType.substring(1)}`;\n const hasGridOptionListener = !!this.gridOptions && !!this.gridOptions[asEventName];\n return hasEmitter || hasGridOptionListener;\n }\n globalEventListener(eventType, event) {\n // if we are tearing down, don't emit angular events, as this causes\n // problems with the angular router\n if (this._destroyed) {\n return;\n }\n // generically look up the eventType\n const emitter = this[eventType];\n if (emitter && this.isEmitterUsed(eventType)) {\n if (eventType === 'gridReady') {\n // if the user is listening for gridReady, wait for ngAfterViewInit to fire first, then emit the\n // gridReady event\n this._fullyReady.then((result => {\n emitter.emit(event);\n }));\n }\n else {\n emitter.emit(event);\n }\n }\n else {\n console.log('AG Grid Angular: could not find EventEmitter: ' + eventType);\n }\n }\n};\nAgGridAngular.ɵfac = function AgGridAngular_Factory(t) { return new (t || AgGridAngular)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(AngularFrameworkOverrides), ɵngcc0.ɵɵdirectiveInject(AngularFrameworkComponentWrapper), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver)); };\nAgGridAngular.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: AgGridAngular, selectors: [[\"ag-grid-angular\"]], contentQueries: function AgGridAngular_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, AgGridColumn, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columns = _t);\n } }, inputs: { alignedGrids: \"alignedGrids\", rowData: \"rowData\", columnDefs: \"columnDefs\", excelStyles: \"excelStyles\", pinnedTopRowData: \"pinnedTopRowData\", pinnedBottomRowData: \"pinnedBottomRowData\", chartThemes: \"chartThemes\", components: \"components\", frameworkComponents: \"frameworkComponents\", rowStyle: \"rowStyle\", context: \"context\", autoGroupColumnDef: \"autoGroupColumnDef\", localeText: \"localeText\", icons: \"icons\", datasource: \"datasource\", serverSideDatasource: \"serverSideDatasource\", viewportDatasource: \"viewportDatasource\", groupRowRendererParams: \"groupRowRendererParams\", aggFuncs: \"aggFuncs\", fullWidthCellRendererParams: \"fullWidthCellRendererParams\", defaultColGroupDef: \"defaultColGroupDef\", defaultColDef: \"defaultColDef\", defaultExportParams: \"defaultExportParams\", defaultCsvExportParams: \"defaultCsvExportParams\", defaultExcelExportParams: \"defaultExcelExportParams\", columnTypes: \"columnTypes\", rowClassRules: \"rowClassRules\", detailGridOptions: \"detailGridOptions\", detailCellRendererParams: \"detailCellRendererParams\", loadingCellRendererParams: \"loadingCellRendererParams\", loadingOverlayComponentParams: \"loadingOverlayComponentParams\", noRowsOverlayComponentParams: \"noRowsOverlayComponentParams\", popupParent: \"popupParent\", colResizeDefault: \"colResizeDefault\", reduxStore: \"reduxStore\", statusBar: \"statusBar\", sideBar: \"sideBar\", chartThemeOverrides: \"chartThemeOverrides\", customChartThemes: \"customChartThemes\", sortingOrder: \"sortingOrder\", rowClass: \"rowClass\", rowSelection: \"rowSelection\", overlayLoadingTemplate: \"overlayLoadingTemplate\", overlayNoRowsTemplate: \"overlayNoRowsTemplate\", quickFilterText: \"quickFilterText\", rowModelType: \"rowModelType\", editType: \"editType\", domLayout: \"domLayout\", clipboardDeliminator: \"clipboardDeliminator\", rowGroupPanelShow: \"rowGroupPanelShow\", multiSortKey: \"multiSortKey\", pivotColumnGroupTotals: \"pivotColumnGroupTotals\", pivotRowTotals: \"pivotRowTotals\", pivotPanelShow: \"pivotPanelShow\", fillHandleDirection: \"fillHandleDirection\", serverSideStoreType: \"serverSideStoreType\", rowHeight: \"rowHeight\", detailRowHeight: \"detailRowHeight\", rowBuffer: \"rowBuffer\", colWidth: \"colWidth\", headerHeight: \"headerHeight\", groupHeaderHeight: \"groupHeaderHeight\", floatingFiltersHeight: \"floatingFiltersHeight\", pivotHeaderHeight: \"pivotHeaderHeight\", pivotGroupHeaderHeight: \"pivotGroupHeaderHeight\", groupDefaultExpanded: \"groupDefaultExpanded\", minColWidth: \"minColWidth\", maxColWidth: \"maxColWidth\", viewportRowModelPageSize: \"viewportRowModelPageSize\", viewportRowModelBufferSize: \"viewportRowModelBufferSize\", autoSizePadding: \"autoSizePadding\", maxBlocksInCache: \"maxBlocksInCache\", maxConcurrentDatasourceRequests: \"maxConcurrentDatasourceRequests\", tooltipShowDelay: \"tooltipShowDelay\", cacheOverflowSize: \"cacheOverflowSize\", paginationPageSize: \"paginationPageSize\", cacheBlockSize: \"cacheBlockSize\", infiniteInitialRowCount: \"infiniteInitialRowCount\", scrollbarWidth: \"scrollbarWidth\", batchUpdateWaitMillis: \"batchUpdateWaitMillis\", asyncTransactionWaitMillis: \"asyncTransactionWaitMillis\", blockLoadDebounceMillis: \"blockLoadDebounceMillis\", keepDetailRowsCount: \"keepDetailRowsCount\", undoRedoCellEditingLimit: \"undoRedoCellEditingLimit\", cellFlashDelay: \"cellFlashDelay\", cellFadeDelay: \"cellFadeDelay\", tabIndex: \"tabIndex\", localeTextFunc: \"localeTextFunc\", groupRowInnerRenderer: \"groupRowInnerRenderer\", groupRowInnerRendererFramework: \"groupRowInnerRendererFramework\", dateComponent: \"dateComponent\", dateComponentFramework: \"dateComponentFramework\", groupRowRenderer: \"groupRowRenderer\", groupRowRendererFramework: \"groupRowRendererFramework\", isExternalFilterPresent: \"isExternalFilterPresent\", getRowHeight: \"getRowHeight\", doesExternalFilterPass: \"doesExternalFilterPass\", getRowClass: \"getRowClass\", getRowStyle: \"getRowStyle\", getRowClassRules: \"getRowClassRules\", traverseNode: \"traverseNode\", getContextMenuItems: \"getContextMenuItems\", getMainMenuItems: \"getMainMenuItems\", processRowPostCreate: \"processRowPostCreate\", processCellForClipboard: \"processCellForClipboard\", groupRowAggNodes: \"groupRowAggNodes\", getRowNodeId: \"getRowNodeId\", isFullWidthCell: \"isFullWidthCell\", fullWidthCellRenderer: \"fullWidthCellRenderer\", fullWidthCellRendererFramework: \"fullWidthCellRendererFramework\", processSecondaryColDef: \"processSecondaryColDef\", processSecondaryColGroupDef: \"processSecondaryColGroupDef\", getBusinessKeyForNode: \"getBusinessKeyForNode\", sendToClipboard: \"sendToClipboard\", navigateToNextHeader: \"navigateToNextHeader\", tabToNextHeader: \"tabToNextHeader\", navigateToNextCell: \"navigateToNextCell\", tabToNextCell: \"tabToNextCell\", getDetailRowData: \"getDetailRowData\", processCellFromClipboard: \"processCellFromClipboard\", getDocument: \"getDocument\", postProcessPopup: \"postProcessPopup\", getChildCount: \"getChildCount\", getDataPath: \"getDataPath\", loadingCellRenderer: \"loadingCellRenderer\", loadingCellRendererFramework: \"loadingCellRendererFramework\", loadingOverlayComponent: \"loadingOverlayComponent\", loadingOverlayComponentFramework: \"loadingOverlayComponentFramework\", noRowsOverlayComponent: \"noRowsOverlayComponent\", noRowsOverlayComponentFramework: \"noRowsOverlayComponentFramework\", detailCellRenderer: \"detailCellRenderer\", detailCellRendererFramework: \"detailCellRendererFramework\", defaultGroupSortComparator: \"defaultGroupSortComparator\", isRowMaster: \"isRowMaster\", isRowSelectable: \"isRowSelectable\", postSort: \"postSort\", processHeaderForClipboard: \"processHeaderForClipboard\", paginationNumberFormatter: \"paginationNumberFormatter\", processDataFromClipboard: \"processDataFromClipboard\", getServerSideGroupKey: \"getServerSideGroupKey\", isServerSideGroup: \"isServerSideGroup\", suppressKeyboardEvent: \"suppressKeyboardEvent\", createChartContainer: \"createChartContainer\", processChartOptions: \"processChartOptions\", getChartToolbarItems: \"getChartToolbarItems\", fillOperation: \"fillOperation\", isApplyServerSideTransaction: \"isApplyServerSideTransaction\", getServerSideStoreParams: \"getServerSideStoreParams\", isServerSideGroupOpenByDefault: \"isServerSideGroupOpenByDefault\", isGroupOpenByDefault: \"isGroupOpenByDefault\", suppressMakeColumnVisibleAfterUnGroup: \"suppressMakeColumnVisibleAfterUnGroup\", suppressRowClickSelection: \"suppressRowClickSelection\", suppressCellSelection: \"suppressCellSelection\", suppressHorizontalScroll: \"suppressHorizontalScroll\", alwaysShowHorizontalScroll: \"alwaysShowHorizontalScroll\", alwaysShowVerticalScroll: \"alwaysShowVerticalScroll\", debug: \"debug\", enableBrowserTooltips: \"enableBrowserTooltips\", enableCellExpressions: \"enableCellExpressions\", angularCompileRows: \"angularCompileRows\", angularCompileFilters: \"angularCompileFilters\", groupSuppressAutoColumn: \"groupSuppressAutoColumn\", groupSelectsChildren: \"groupSelectsChildren\", groupIncludeFooter: \"groupIncludeFooter\", groupIncludeTotalFooter: \"groupIncludeTotalFooter\", groupUseEntireRow: \"groupUseEntireRow\", groupSuppressBlankHeader: \"groupSuppressBlankHeader\", suppressMenuHide: \"suppressMenuHide\", suppressRowDeselection: \"suppressRowDeselection\", unSortIcon: \"unSortIcon\", suppressMultiSort: \"suppressMultiSort\", singleClickEdit: \"singleClickEdit\", suppressLoadingOverlay: \"suppressLoadingOverlay\", suppressNoRowsOverlay: \"suppressNoRowsOverlay\", suppressAutoSize: \"suppressAutoSize\", skipHeaderOnAutoSize: \"skipHeaderOnAutoSize\", suppressParentsInRowNodes: \"suppressParentsInRowNodes\", suppressColumnMoveAnimation: \"suppressColumnMoveAnimation\", suppressMovableColumns: \"suppressMovableColumns\", suppressFieldDotNotation: \"suppressFieldDotNotation\", enableRangeSelection: \"enableRangeSelection\", enableRangeHandle: \"enableRangeHandle\", enableFillHandle: \"enableFillHandle\", suppressClearOnFillReduction: \"suppressClearOnFillReduction\", deltaSort: \"deltaSort\", suppressTouch: \"suppressTouch\", suppressAsyncEvents: \"suppressAsyncEvents\", allowContextMenuWithControlKey: \"allowContextMenuWithControlKey\", suppressContextMenu: \"suppressContextMenu\", rememberGroupStateWhenNewData: \"rememberGroupStateWhenNewData\", enableCellChangeFlash: \"enableCellChangeFlash\", suppressDragLeaveHidesColumns: \"suppressDragLeaveHidesColumns\", suppressMiddleClickScrolls: \"suppressMiddleClickScrolls\", suppressPreventDefaultOnMouseWheel: \"suppressPreventDefaultOnMouseWheel\", suppressCopyRowsToClipboard: \"suppressCopyRowsToClipboard\", copyHeadersToClipboard: \"copyHeadersToClipboard\", pivotMode: \"pivotMode\", suppressAggFuncInHeader: \"suppressAggFuncInHeader\", suppressColumnVirtualisation: \"suppressColumnVirtualisation\", suppressAggAtRootLevel: \"suppressAggAtRootLevel\", suppressFocusAfterRefresh: \"suppressFocusAfterRefresh\", functionsPassive: \"functionsPassive\", functionsReadOnly: \"functionsReadOnly\", animateRows: \"animateRows\", groupSelectsFiltered: \"groupSelectsFiltered\", groupRemoveSingleChildren: \"groupRemoveSingleChildren\", groupRemoveLowestSingleChildren: \"groupRemoveLowestSingleChildren\", enableRtl: \"enableRtl\", suppressClickEdit: \"suppressClickEdit\", rowDragManaged: \"rowDragManaged\", suppressRowDrag: \"suppressRowDrag\", suppressMoveWhenRowDragging: \"suppressMoveWhenRowDragging\", enableMultiRowDragging: \"enableMultiRowDragging\", enableGroupEdit: \"enableGroupEdit\", embedFullWidthRows: \"embedFullWidthRows\", deprecatedEmbedFullWidthRows: \"deprecatedEmbedFullWidthRows\", suppressPaginationPanel: \"suppressPaginationPanel\", floatingFilter: \"floatingFilter\", groupHideOpenParents: \"groupHideOpenParents\", groupMultiAutoColumn: \"groupMultiAutoColumn\", pagination: \"pagination\", stopEditingWhenGridLosesFocus: \"stopEditingWhenGridLosesFocus\", paginationAutoPageSize: \"paginationAutoPageSize\", suppressScrollOnNewData: \"suppressScrollOnNewData\", purgeClosedRowNodes: \"purgeClosedRowNodes\", cacheQuickFilter: \"cacheQuickFilter\", deltaRowDataMode: \"deltaRowDataMode\", ensureDomOrder: \"ensureDomOrder\", accentedSort: \"accentedSort\", suppressChangeDetection: \"suppressChangeDetection\", valueCache: \"valueCache\", valueCacheNeverExpires: \"valueCacheNeverExpires\", aggregateOnlyChangedColumns: \"aggregateOnlyChangedColumns\", suppressAnimationFrame: \"suppressAnimationFrame\", suppressExcelExport: \"suppressExcelExport\", suppressCsvExport: \"suppressCsvExport\", treeData: \"treeData\", masterDetail: \"masterDetail\", suppressMultiRangeSelection: \"suppressMultiRangeSelection\", enterMovesDownAfterEdit: \"enterMovesDownAfterEdit\", enterMovesDown: \"enterMovesDown\", suppressPropertyNamesCheck: \"suppressPropertyNamesCheck\", rowMultiSelectWithClick: \"rowMultiSelectWithClick\", suppressEnterpriseResetOnNewColumns: \"suppressEnterpriseResetOnNewColumns\", enableOldSetFilterModel: \"enableOldSetFilterModel\", suppressRowHoverHighlight: \"suppressRowHoverHighlight\", suppressRowTransform: \"suppressRowTransform\", suppressClipboardPaste: \"suppressClipboardPaste\", suppressLastEmptyLineOnPaste: \"suppressLastEmptyLineOnPaste\", serverSideSortingAlwaysResets: \"serverSideSortingAlwaysResets\", reactNext: \"reactNext\", suppressSetColumnStateEvents: \"suppressSetColumnStateEvents\", suppressColumnStateEvents: \"suppressColumnStateEvents\", enableCharts: \"enableCharts\", deltaColumnMode: \"deltaColumnMode\", suppressMaintainUnsortedOrder: \"suppressMaintainUnsortedOrder\", enableCellTextSelection: \"enableCellTextSelection\", suppressBrowserResizeObserver: \"suppressBrowserResizeObserver\", suppressMaxRenderedRowRestriction: \"suppressMaxRenderedRowRestriction\", excludeChildrenWhenTreeDataFiltering: \"excludeChildrenWhenTreeDataFiltering\", tooltipMouseTrack: \"tooltipMouseTrack\", keepDetailRows: \"keepDetailRows\", paginateChildRows: \"paginateChildRows\", preventDefaultOnContextMenu: \"preventDefaultOnContextMenu\", undoRedoCellEditing: \"undoRedoCellEditing\", allowDragFromColumnsToolPanel: \"allowDragFromColumnsToolPanel\", immutableData: \"immutableData\", immutableColumns: \"immutableColumns\", pivotSuppressAutoColumn: \"pivotSuppressAutoColumn\", suppressExpandablePivotGroups: \"suppressExpandablePivotGroups\", applyColumnDefOrder: \"applyColumnDefOrder\", debounceVerticalScrollbar: \"debounceVerticalScrollbar\", detailRowAutoHeight: \"detailRowAutoHeight\", serverSideFilteringAlwaysResets: \"serverSideFilteringAlwaysResets\", suppressAggFilteredOnly: \"suppressAggFilteredOnly\", showOpenedGroup: \"showOpenedGroup\", suppressClipboardApi: \"suppressClipboardApi\", suppressModelUpdateAfterUpdateTransaction: \"suppressModelUpdateAfterUpdateTransaction\", stopEditingWhenCellsLoseFocus: \"stopEditingWhenCellsLoseFocus\", gridOptions: \"gridOptions\", modules: \"modules\" }, outputs: { columnEverythingChanged: \"columnEverythingChanged\", newColumnsLoaded: \"newColumnsLoaded\", columnPivotModeChanged: \"columnPivotModeChanged\", columnRowGroupChanged: \"columnRowGroupChanged\", expandOrCollapseAll: \"expandOrCollapseAll\", columnPivotChanged: \"columnPivotChanged\", gridColumnsChanged: \"gridColumnsChanged\", columnValueChanged: \"columnValueChanged\", columnMoved: \"columnMoved\", columnVisible: \"columnVisible\", columnPinned: \"columnPinned\", columnGroupOpened: \"columnGroupOpened\", columnResized: \"columnResized\", displayedColumnsChanged: \"displayedColumnsChanged\", virtualColumnsChanged: \"virtualColumnsChanged\", asyncTransactionsFlushed: \"asyncTransactionsFlushed\", rowGroupOpened: \"rowGroupOpened\", rowDataChanged: \"rowDataChanged\", rowDataUpdated: \"rowDataUpdated\", pinnedRowDataChanged: \"pinnedRowDataChanged\", rangeSelectionChanged: \"rangeSelectionChanged\", chartCreated: \"chartCreated\", chartRangeSelectionChanged: \"chartRangeSelectionChanged\", chartOptionsChanged: \"chartOptionsChanged\", chartDestroyed: \"chartDestroyed\", toolPanelVisibleChanged: \"toolPanelVisibleChanged\", modelUpdated: \"modelUpdated\", pasteStart: \"pasteStart\", pasteEnd: \"pasteEnd\", fillStart: \"fillStart\", fillEnd: \"fillEnd\", cellClicked: \"cellClicked\", cellDoubleClicked: \"cellDoubleClicked\", cellMouseDown: \"cellMouseDown\", cellContextMenu: \"cellContextMenu\", cellValueChanged: \"cellValueChanged\", rowValueChanged: \"rowValueChanged\", cellFocused: \"cellFocused\", rowSelected: \"rowSelected\", selectionChanged: \"selectionChanged\", cellKeyDown: \"cellKeyDown\", cellKeyPress: \"cellKeyPress\", cellMouseOver: \"cellMouseOver\", cellMouseOut: \"cellMouseOut\", filterChanged: \"filterChanged\", filterModified: \"filterModified\", filterOpened: \"filterOpened\", sortChanged: \"sortChanged\", virtualRowRemoved: \"virtualRowRemoved\", rowClicked: \"rowClicked\", rowDoubleClicked: \"rowDoubleClicked\", gridReady: \"gridReady\", gridSizeChanged: \"gridSizeChanged\", viewportChanged: \"viewportChanged\", scrollbarWidthChanged: \"scrollbarWidthChanged\", firstDataRendered: \"firstDataRendered\", dragStarted: \"dragStarted\", dragStopped: \"dragStopped\", checkboxChanged: \"checkboxChanged\", rowEditingStarted: \"rowEditingStarted\", rowEditingStopped: \"rowEditingStopped\", cellEditingStarted: \"cellEditingStarted\", cellEditingStopped: \"cellEditingStopped\", bodyScroll: \"bodyScroll\", animationQueueEmpty: \"animationQueueEmpty\", heightScaleChanged: \"heightScaleChanged\", paginationChanged: \"paginationChanged\", componentStateChanged: \"componentStateChanged\", bodyHeightChanged: \"bodyHeightChanged\", displayedColumnsWidthChanged: \"displayedColumnsWidthChanged\", scrollVisibilityChanged: \"scrollVisibilityChanged\", columnHoverChanged: \"columnHoverChanged\", flashCells: \"flashCells\", paginationPixelOffsetChanged: \"paginationPixelOffsetChanged\", displayedRowsChanged: \"displayedRowsChanged\", leftPinnedWidthChanged: \"leftPinnedWidthChanged\", rightPinnedWidthChanged: \"rightPinnedWidthChanged\", rowContainerHeightChanged: \"rowContainerHeightChanged\", rowDragEnter: \"rowDragEnter\", rowDragMove: \"rowDragMove\", rowDragLeave: \"rowDragLeave\", rowDragEnd: \"rowDragEnd\", popupToFront: \"popupToFront\", columnRowGroupChangeRequest: \"columnRowGroupChangeRequest\", columnPivotChangeRequest: \"columnPivotChangeRequest\", columnValueChangeRequest: \"columnValueChangeRequest\", columnAggFuncChangeRequest: \"columnAggFuncChangeRequest\", keyboardFocus: \"keyboardFocus\", mouseFocus: \"mouseFocus\", storeUpdated: \"storeUpdated\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function AgGridAngular_Template(rf, ctx) { }, encapsulation: 2 });\nAgGridAngular.ctorParameters = () => [\n { type: ElementRef },\n { type: ViewContainerRef },\n { type: AngularFrameworkOverrides },\n { type: AngularFrameworkComponentWrapper },\n { type: ComponentFactoryResolver }\n];\n__decorate([\n ContentChildren(AgGridColumn),\n __metadata(\"design:type\", QueryList)\n], AgGridAngular.prototype, \"columns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"gridOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Array)\n], AgGridAngular.prototype, \"modules\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"alignedGrids\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"columnDefs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"excelStyles\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pinnedTopRowData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pinnedBottomRowData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"chartThemes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"components\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"frameworkComponents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"context\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"autoGroupColumnDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"localeText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"icons\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"datasource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"serverSideDatasource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"viewportDatasource\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"aggFuncs\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"fullWidthCellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultColGroupDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultColDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultExportParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultCsvExportParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultExcelExportParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"columnTypes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowClassRules\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailGridOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailCellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingCellRendererParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingOverlayComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"noRowsOverlayComponentParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"popupParent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"colResizeDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"reduxStore\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"statusBar\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"sideBar\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"chartThemeOverrides\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"customChartThemes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"sortingOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"overlayLoadingTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"overlayNoRowsTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"quickFilterText\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowModelType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"editType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"domLayout\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"clipboardDeliminator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowGroupPanelShow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"multiSortKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pivotColumnGroupTotals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pivotRowTotals\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pivotPanelShow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"fillHandleDirection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"serverSideStoreType\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailRowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowBuffer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"colWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"headerHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupHeaderHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"floatingFiltersHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pivotHeaderHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pivotGroupHeaderHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupDefaultExpanded\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"minColWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"maxColWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"viewportRowModelPageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"viewportRowModelBufferSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"autoSizePadding\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"maxBlocksInCache\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"maxConcurrentDatasourceRequests\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"tooltipShowDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"cacheOverflowSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"paginationPageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"cacheBlockSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"infiniteInitialRowCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"scrollbarWidth\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"batchUpdateWaitMillis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"asyncTransactionWaitMillis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"blockLoadDebounceMillis\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"keepDetailRowsCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"undoRedoCellEditingLimit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"cellFlashDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"cellFadeDelay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"tabIndex\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"localeTextFunc\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowInnerRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowInnerRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"dateComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"dateComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"isExternalFilterPresent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getRowHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"doesExternalFilterPass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getRowClass\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getRowStyle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getRowClassRules\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"traverseNode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getContextMenuItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getMainMenuItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"processRowPostCreate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"processCellForClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRowAggNodes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getRowNodeId\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"isFullWidthCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"fullWidthCellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"fullWidthCellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"processSecondaryColDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"processSecondaryColGroupDef\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getBusinessKeyForNode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"sendToClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"navigateToNextHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"tabToNextHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"navigateToNextCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"tabToNextCell\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getDetailRowData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"processCellFromClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getDocument\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"postProcessPopup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getChildCount\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getDataPath\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingCellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingCellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingOverlayComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"loadingOverlayComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"noRowsOverlayComponent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"noRowsOverlayComponentFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailCellRenderer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailCellRendererFramework\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"defaultGroupSortComparator\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"isRowMaster\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"isRowSelectable\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"postSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"processHeaderForClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"paginationNumberFormatter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"processDataFromClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getServerSideGroupKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"isServerSideGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressKeyboardEvent\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"createChartContainer\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"processChartOptions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getChartToolbarItems\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"fillOperation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"isApplyServerSideTransaction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"getServerSideStoreParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"isServerSideGroupOpenByDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"isGroupOpenByDefault\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMakeColumnVisibleAfterUnGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressRowClickSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressCellSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressHorizontalScroll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"alwaysShowHorizontalScroll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"alwaysShowVerticalScroll\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"debug\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableBrowserTooltips\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableCellExpressions\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"angularCompileRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"angularCompileFilters\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupSuppressAutoColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupSelectsChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupIncludeFooter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupIncludeTotalFooter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupUseEntireRow\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupSuppressBlankHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMenuHide\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressRowDeselection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"unSortIcon\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMultiSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"singleClickEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressLoadingOverlay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressNoRowsOverlay\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressAutoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"skipHeaderOnAutoSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressParentsInRowNodes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressColumnMoveAnimation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMovableColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressFieldDotNotation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableRangeSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableRangeHandle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableFillHandle\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressClearOnFillReduction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"deltaSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressTouch\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressAsyncEvents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"allowContextMenuWithControlKey\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressContextMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rememberGroupStateWhenNewData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableCellChangeFlash\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressDragLeaveHidesColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMiddleClickScrolls\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressPreventDefaultOnMouseWheel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressCopyRowsToClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"copyHeadersToClipboard\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pivotMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressAggFuncInHeader\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressColumnVirtualisation\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressAggAtRootLevel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressFocusAfterRefresh\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"functionsPassive\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"functionsReadOnly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"animateRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupSelectsFiltered\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRemoveSingleChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupRemoveLowestSingleChildren\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableRtl\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressClickEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowDragManaged\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressRowDrag\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMoveWhenRowDragging\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableMultiRowDragging\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableGroupEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"embedFullWidthRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"deprecatedEmbedFullWidthRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressPaginationPanel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"floatingFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupHideOpenParents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"groupMultiAutoColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pagination\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"stopEditingWhenGridLosesFocus\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"paginationAutoPageSize\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressScrollOnNewData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"purgeClosedRowNodes\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"cacheQuickFilter\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"deltaRowDataMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"ensureDomOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"accentedSort\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressChangeDetection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"valueCache\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"valueCacheNeverExpires\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"aggregateOnlyChangedColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressAnimationFrame\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressExcelExport\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressCsvExport\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"treeData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"masterDetail\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMultiRangeSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enterMovesDownAfterEdit\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enterMovesDown\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressPropertyNamesCheck\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"rowMultiSelectWithClick\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressEnterpriseResetOnNewColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableOldSetFilterModel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressRowHoverHighlight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressRowTransform\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressClipboardPaste\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressLastEmptyLineOnPaste\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"serverSideSortingAlwaysResets\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"reactNext\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressSetColumnStateEvents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressColumnStateEvents\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableCharts\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"deltaColumnMode\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMaintainUnsortedOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"enableCellTextSelection\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressBrowserResizeObserver\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressMaxRenderedRowRestriction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"excludeChildrenWhenTreeDataFiltering\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"tooltipMouseTrack\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"keepDetailRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"paginateChildRows\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"preventDefaultOnContextMenu\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"undoRedoCellEditing\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"allowDragFromColumnsToolPanel\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"immutableData\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"immutableColumns\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"pivotSuppressAutoColumn\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressExpandablePivotGroups\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"applyColumnDefOrder\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"debounceVerticalScrollbar\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"detailRowAutoHeight\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"serverSideFilteringAlwaysResets\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressAggFilteredOnly\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"showOpenedGroup\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressClipboardApi\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"suppressModelUpdateAfterUpdateTransaction\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], AgGridAngular.prototype, \"stopEditingWhenCellsLoseFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnEverythingChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"newColumnsLoaded\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnPivotModeChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnRowGroupChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"expandOrCollapseAll\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnPivotChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"gridColumnsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnValueChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnMoved\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnVisible\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnPinned\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnGroupOpened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnResized\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"displayedColumnsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"virtualColumnsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"asyncTransactionsFlushed\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowGroupOpened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDataChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDataUpdated\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"pinnedRowDataChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rangeSelectionChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"chartCreated\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"chartRangeSelectionChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"chartOptionsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"chartDestroyed\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"toolPanelVisibleChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"modelUpdated\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"pasteStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"pasteEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"fillStart\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"fillEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellClicked\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellDoubleClicked\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellMouseDown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellContextMenu\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellValueChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowValueChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellFocused\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowSelected\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"selectionChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellKeyDown\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellKeyPress\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellMouseOver\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellMouseOut\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"filterChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"filterModified\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"filterOpened\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"sortChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"virtualRowRemoved\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowClicked\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDoubleClicked\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"gridReady\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"gridSizeChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"viewportChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"scrollbarWidthChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"firstDataRendered\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"dragStarted\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"dragStopped\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"checkboxChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowEditingStarted\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowEditingStopped\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellEditingStarted\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"cellEditingStopped\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"bodyScroll\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"animationQueueEmpty\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"heightScaleChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"paginationChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"componentStateChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"bodyHeightChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"displayedColumnsWidthChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"scrollVisibilityChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnHoverChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"flashCells\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"paginationPixelOffsetChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"displayedRowsChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"leftPinnedWidthChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rightPinnedWidthChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowContainerHeightChanged\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDragEnter\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDragMove\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDragLeave\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"rowDragEnd\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"popupToFront\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnRowGroupChangeRequest\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnPivotChangeRequest\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnValueChangeRequest\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"columnAggFuncChangeRequest\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"keyboardFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"mouseFocus\", void 0);\n__decorate([\n Output(),\n __metadata(\"design:type\", EventEmitter)\n], AgGridAngular.prototype, \"storeUpdated\", void 0);\nAgGridAngular = __decorate([ __metadata(\"design:paramtypes\", [ElementRef,\n ViewContainerRef,\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper,\n ComponentFactoryResolver])\n], AgGridAngular);\n\nvar AgGridModule_1;\nlet AgGridModule = AgGridModule_1 = class AgGridModule {\n static withComponents(components) {\n return {\n ngModule: AgGridModule_1,\n providers: [\n { provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: components, multi: true }\n ],\n };\n }\n static forRoot(components) {\n return {\n ngModule: AgGridModule_1,\n providers: [\n { provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: components, multi: true }\n ],\n };\n }\n};\nAgGridModule.ɵfac = function AgGridModule_Factory(t) { return new (t || AgGridModule)(); };\nAgGridModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: AgGridModule });\nAgGridModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AgGridColumn, [{\n type: Component,\n args: [{\n selector: 'ag-grid-column',\n template: ''\n }]\n }], null, { childColumns: [{\n type: ContentChildren,\n args: [AgGridColumn_1]\n }], children: [{\n type: Input\n }], sortingOrder: [{\n type: Input\n }], allowedAggFuncs: [{\n type: Input\n }], menuTabs: [{\n type: Input\n }], cellClassRules: [{\n type: Input\n }], icons: [{\n type: Input\n }], headerGroupComponent: [{\n type: Input\n }], headerGroupComponentFramework: [{\n type: Input\n }], headerGroupComponentParams: [{\n type: Input\n }], cellStyle: [{\n type: Input\n }], cellRendererParams: [{\n type: Input\n }], cellEditorFramework: [{\n type: Input\n }], cellEditorParams: [{\n type: Input\n }], pinnedRowCellRendererFramework: [{\n type: Input\n }], pinnedRowCellRendererParams: [{\n type: Input\n }], filterFramework: [{\n type: Input\n }], filterParams: [{\n type: Input\n }], headerComponent: [{\n type: Input\n }], headerComponentFramework: [{\n type: Input\n }], headerComponentParams: [{\n type: Input\n }], floatingFilterComponent: [{\n type: Input\n }], floatingFilterComponentParams: [{\n type: Input\n }], floatingFilterComponentFramework: [{\n type: Input\n }], tooltipComponent: [{\n type: Input\n }], tooltipComponentParams: [{\n type: Input\n }], tooltipComponentFramework: [{\n type: Input\n }], refData: [{\n type: Input\n }], columnsMenuParams: [{\n type: Input\n }], headerName: [{\n type: Input\n }], columnGroupShow: [{\n type: Input\n }], headerClass: [{\n type: Input\n }], toolPanelClass: [{\n type: Input\n }], headerValueGetter: [{\n type: Input\n }], groupId: [{\n type: Input\n }], colId: [{\n type: Input\n }], sort: [{\n type: Input\n }], initialSort: [{\n type: Input\n }], field: [{\n type: Input\n }], type: [{\n type: Input\n }], tooltipField: [{\n type: Input\n }], headerTooltip: [{\n type: Input\n }], cellClass: [{\n type: Input\n }], showRowGroup: [{\n type: Input\n }], filter: [{\n type: Input\n }], initialAggFunc: [{\n type: Input\n }], aggFunc: [{\n type: Input\n }], cellRenderer: [{\n type: Input\n }], cellEditor: [{\n type: Input\n }], pinned: [{\n type: Input\n }], initialPinned: [{\n type: Input\n }], chartDataType: [{\n type: Input\n }], sortedAt: [{\n type: Input\n }], sortIndex: [{\n type: Input\n }], initialSortIndex: [{\n type: Input\n }], flex: [{\n type: Input\n }], initialFlex: [{\n type: Input\n }], width: [{\n type: Input\n }], initialWidth: [{\n type: Input\n }], minWidth: [{\n type: Input\n }], maxWidth: [{\n type: Input\n }], rowGroupIndex: [{\n type: Input\n }], initialRowGroupIndex: [{\n type: Input\n }], pivotIndex: [{\n type: Input\n }], initialPivotIndex: [{\n type: Input\n }], dndSourceOnRowDrag: [{\n type: Input\n }], valueGetter: [{\n type: Input\n }], valueSetter: [{\n type: Input\n }], filterValueGetter: [{\n type: Input\n }], keyCreator: [{\n type: Input\n }], cellRendererFramework: [{\n type: Input\n }], pinnedRowCellRenderer: [{\n type: Input\n }], valueFormatter: [{\n type: Input\n }], pinnedRowValueFormatter: [{\n type: Input\n }], valueParser: [{\n type: Input\n }], comparator: [{\n type: Input\n }], equals: [{\n type: Input\n }], pivotComparator: [{\n type: Input\n }], suppressKeyboardEvent: [{\n type: Input\n }], suppressHeaderKeyboardEvent: [{\n type: Input\n }], colSpan: [{\n type: Input\n }], rowSpan: [{\n type: Input\n }], getQuickFilterText: [{\n type: Input\n }], newValueHandler: [{\n type: Input\n }], onCellValueChanged: [{\n type: Input\n }], onCellClicked: [{\n type: Input\n }], onCellDoubleClicked: [{\n type: Input\n }], onCellContextMenu: [{\n type: Input\n }], rowDragText: [{\n type: Input\n }], tooltipValueGetter: [{\n type: Input\n }], cellRendererSelector: [{\n type: Input\n }], cellEditorSelector: [{\n type: Input\n }], suppressCellFlash: [{\n type: Input\n }], suppressColumnsToolPanel: [{\n type: Input\n }], suppressFiltersToolPanel: [{\n type: Input\n }], openByDefault: [{\n type: Input\n }], marryChildren: [{\n type: Input\n }], hide: [{\n type: Input\n }], initialHide: [{\n type: Input\n }], rowGroup: [{\n type: Input\n }], initialRowGroup: [{\n type: Input\n }], pivot: [{\n type: Input\n }], initialPivot: [{\n type: Input\n }], checkboxSelection: [{\n type: Input\n }], headerCheckboxSelection: [{\n type: Input\n }], headerCheckboxSelectionFilteredOnly: [{\n type: Input\n }], suppressMenu: [{\n type: Input\n }], suppressMovable: [{\n type: Input\n }], lockPosition: [{\n type: Input\n }], lockVisible: [{\n type: Input\n }], lockPinned: [{\n type: Input\n }], unSortIcon: [{\n type: Input\n }], suppressSizeToFit: [{\n type: Input\n }], suppressAutoSize: [{\n type: Input\n }], enableRowGroup: [{\n type: Input\n }], enablePivot: [{\n type: Input\n }], enableValue: [{\n type: Input\n }], editable: [{\n type: Input\n }], suppressPaste: [{\n type: Input\n }], suppressNavigable: [{\n type: Input\n }], enableCellChangeFlash: [{\n type: Input\n }], rowDrag: [{\n type: Input\n }], dndSource: [{\n type: Input\n }], autoHeight: [{\n type: Input\n }], wrapText: [{\n type: Input\n }], sortable: [{\n type: Input\n }], resizable: [{\n type: Input\n }], singleClickEdit: [{\n type: Input\n }], floatingFilter: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AngularFrameworkOverrides, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.NgZone }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AngularFrameworkComponentWrapper, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AgGridAngular, [{\n type: Component,\n args: [{\n selector: 'ag-grid-angular',\n template: '',\n providers: [\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper\n ],\n // tell angular we don't want view encapsulation, we don't want a shadow root\n encapsulation: ViewEncapsulation.None\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ViewContainerRef }, { type: AngularFrameworkOverrides }, { type: AngularFrameworkComponentWrapper }, { type: ɵngcc0.ComponentFactoryResolver }]; }, { alignedGrids: [{\n type: Input\n }], rowData: [{\n type: Input\n }], columnDefs: [{\n type: Input\n }], excelStyles: [{\n type: Input\n }], pinnedTopRowData: [{\n type: Input\n }], pinnedBottomRowData: [{\n type: Input\n }], chartThemes: [{\n type: Input\n }], components: [{\n type: Input\n }], frameworkComponents: [{\n type: Input\n }], rowStyle: [{\n type: Input\n }], context: [{\n type: Input\n }], autoGroupColumnDef: [{\n type: Input\n }], localeText: [{\n type: Input\n }], icons: [{\n type: Input\n }], datasource: [{\n type: Input\n }], serverSideDatasource: [{\n type: Input\n }], viewportDatasource: [{\n type: Input\n }], groupRowRendererParams: [{\n type: Input\n }], aggFuncs: [{\n type: Input\n }], fullWidthCellRendererParams: [{\n type: Input\n }], defaultColGroupDef: [{\n type: Input\n }], defaultColDef: [{\n type: Input\n }], defaultExportParams: [{\n type: Input\n }], defaultCsvExportParams: [{\n type: Input\n }], defaultExcelExportParams: [{\n type: Input\n }], columnTypes: [{\n type: Input\n }], rowClassRules: [{\n type: Input\n }], detailGridOptions: [{\n type: Input\n }], detailCellRendererParams: [{\n type: Input\n }], loadingCellRendererParams: [{\n type: Input\n }], loadingOverlayComponentParams: [{\n type: Input\n }], noRowsOverlayComponentParams: [{\n type: Input\n }], popupParent: [{\n type: Input\n }], colResizeDefault: [{\n type: Input\n }], reduxStore: [{\n type: Input\n }], statusBar: [{\n type: Input\n }], sideBar: [{\n type: Input\n }], chartThemeOverrides: [{\n type: Input\n }], customChartThemes: [{\n type: Input\n }], sortingOrder: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], rowSelection: [{\n type: Input\n }], overlayLoadingTemplate: [{\n type: Input\n }], overlayNoRowsTemplate: [{\n type: Input\n }], quickFilterText: [{\n type: Input\n }], rowModelType: [{\n type: Input\n }], editType: [{\n type: Input\n }], domLayout: [{\n type: Input\n }], clipboardDeliminator: [{\n type: Input\n }], rowGroupPanelShow: [{\n type: Input\n }], multiSortKey: [{\n type: Input\n }], pivotColumnGroupTotals: [{\n type: Input\n }], pivotRowTotals: [{\n type: Input\n }], pivotPanelShow: [{\n type: Input\n }], fillHandleDirection: [{\n type: Input\n }], serverSideStoreType: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], detailRowHeight: [{\n type: Input\n }], rowBuffer: [{\n type: Input\n }], colWidth: [{\n type: Input\n }], headerHeight: [{\n type: Input\n }], groupHeaderHeight: [{\n type: Input\n }], floatingFiltersHeight: [{\n type: Input\n }], pivotHeaderHeight: [{\n type: Input\n }], pivotGroupHeaderHeight: [{\n type: Input\n }], groupDefaultExpanded: [{\n type: Input\n }], minColWidth: [{\n type: Input\n }], maxColWidth: [{\n type: Input\n }], viewportRowModelPageSize: [{\n type: Input\n }], viewportRowModelBufferSize: [{\n type: Input\n }], autoSizePadding: [{\n type: Input\n }], maxBlocksInCache: [{\n type: Input\n }], maxConcurrentDatasourceRequests: [{\n type: Input\n }], tooltipShowDelay: [{\n type: Input\n }], cacheOverflowSize: [{\n type: Input\n }], paginationPageSize: [{\n type: Input\n }], cacheBlockSize: [{\n type: Input\n }], infiniteInitialRowCount: [{\n type: Input\n }], scrollbarWidth: [{\n type: Input\n }], batchUpdateWaitMillis: [{\n type: Input\n }], asyncTransactionWaitMillis: [{\n type: Input\n }], blockLoadDebounceMillis: [{\n type: Input\n }], keepDetailRowsCount: [{\n type: Input\n }], undoRedoCellEditingLimit: [{\n type: Input\n }], cellFlashDelay: [{\n type: Input\n }], cellFadeDelay: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], localeTextFunc: [{\n type: Input\n }], groupRowInnerRenderer: [{\n type: Input\n }], groupRowInnerRendererFramework: [{\n type: Input\n }], dateComponent: [{\n type: Input\n }], dateComponentFramework: [{\n type: Input\n }], groupRowRenderer: [{\n type: Input\n }], groupRowRendererFramework: [{\n type: Input\n }], isExternalFilterPresent: [{\n type: Input\n }], getRowHeight: [{\n type: Input\n }], doesExternalFilterPass: [{\n type: Input\n }], getRowClass: [{\n type: Input\n }], getRowStyle: [{\n type: Input\n }], getRowClassRules: [{\n type: Input\n }], traverseNode: [{\n type: Input\n }], getContextMenuItems: [{\n type: Input\n }], getMainMenuItems: [{\n type: Input\n }], processRowPostCreate: [{\n type: Input\n }], processCellForClipboard: [{\n type: Input\n }], groupRowAggNodes: [{\n type: Input\n }], getRowNodeId: [{\n type: Input\n }], isFullWidthCell: [{\n type: Input\n }], fullWidthCellRenderer: [{\n type: Input\n }], fullWidthCellRendererFramework: [{\n type: Input\n }], processSecondaryColDef: [{\n type: Input\n }], processSecondaryColGroupDef: [{\n type: Input\n }], getBusinessKeyForNode: [{\n type: Input\n }], sendToClipboard: [{\n type: Input\n }], navigateToNextHeader: [{\n type: Input\n }], tabToNextHeader: [{\n type: Input\n }], navigateToNextCell: [{\n type: Input\n }], tabToNextCell: [{\n type: Input\n }], getDetailRowData: [{\n type: Input\n }], processCellFromClipboard: [{\n type: Input\n }], getDocument: [{\n type: Input\n }], postProcessPopup: [{\n type: Input\n }], getChildCount: [{\n type: Input\n }], getDataPath: [{\n type: Input\n }], loadingCellRenderer: [{\n type: Input\n }], loadingCellRendererFramework: [{\n type: Input\n }], loadingOverlayComponent: [{\n type: Input\n }], loadingOverlayComponentFramework: [{\n type: Input\n }], noRowsOverlayComponent: [{\n type: Input\n }], noRowsOverlayComponentFramework: [{\n type: Input\n }], detailCellRenderer: [{\n type: Input\n }], detailCellRendererFramework: [{\n type: Input\n }], defaultGroupSortComparator: [{\n type: Input\n }], isRowMaster: [{\n type: Input\n }], isRowSelectable: [{\n type: Input\n }], postSort: [{\n type: Input\n }], processHeaderForClipboard: [{\n type: Input\n }], paginationNumberFormatter: [{\n type: Input\n }], processDataFromClipboard: [{\n type: Input\n }], getServerSideGroupKey: [{\n type: Input\n }], isServerSideGroup: [{\n type: Input\n }], suppressKeyboardEvent: [{\n type: Input\n }], createChartContainer: [{\n type: Input\n }], processChartOptions: [{\n type: Input\n }], getChartToolbarItems: [{\n type: Input\n }], fillOperation: [{\n type: Input\n }], isApplyServerSideTransaction: [{\n type: Input\n }], getServerSideStoreParams: [{\n type: Input\n }], isServerSideGroupOpenByDefault: [{\n type: Input\n }], isGroupOpenByDefault: [{\n type: Input\n }], suppressMakeColumnVisibleAfterUnGroup: [{\n type: Input\n }], suppressRowClickSelection: [{\n type: Input\n }], suppressCellSelection: [{\n type: Input\n }], suppressHorizontalScroll: [{\n type: Input\n }], alwaysShowHorizontalScroll: [{\n type: Input\n }], alwaysShowVerticalScroll: [{\n type: Input\n }], debug: [{\n type: Input\n }], enableBrowserTooltips: [{\n type: Input\n }], enableCellExpressions: [{\n type: Input\n }], angularCompileRows: [{\n type: Input\n }], angularCompileFilters: [{\n type: Input\n }], groupSuppressAutoColumn: [{\n type: Input\n }], groupSelectsChildren: [{\n type: Input\n }], groupIncludeFooter: [{\n type: Input\n }], groupIncludeTotalFooter: [{\n type: Input\n }], groupUseEntireRow: [{\n type: Input\n }], groupSuppressBlankHeader: [{\n type: Input\n }], suppressMenuHide: [{\n type: Input\n }], suppressRowDeselection: [{\n type: Input\n }], unSortIcon: [{\n type: Input\n }], suppressMultiSort: [{\n type: Input\n }], singleClickEdit: [{\n type: Input\n }], suppressLoadingOverlay: [{\n type: Input\n }], suppressNoRowsOverlay: [{\n type: Input\n }], suppressAutoSize: [{\n type: Input\n }], skipHeaderOnAutoSize: [{\n type: Input\n }], suppressParentsInRowNodes: [{\n type: Input\n }], suppressColumnMoveAnimation: [{\n type: Input\n }], suppressMovableColumns: [{\n type: Input\n }], suppressFieldDotNotation: [{\n type: Input\n }], enableRangeSelection: [{\n type: Input\n }], enableRangeHandle: [{\n type: Input\n }], enableFillHandle: [{\n type: Input\n }], suppressClearOnFillReduction: [{\n type: Input\n }], deltaSort: [{\n type: Input\n }], suppressTouch: [{\n type: Input\n }], suppressAsyncEvents: [{\n type: Input\n }], allowContextMenuWithControlKey: [{\n type: Input\n }], suppressContextMenu: [{\n type: Input\n }], rememberGroupStateWhenNewData: [{\n type: Input\n }], enableCellChangeFlash: [{\n type: Input\n }], suppressDragLeaveHidesColumns: [{\n type: Input\n }], suppressMiddleClickScrolls: [{\n type: Input\n }], suppressPreventDefaultOnMouseWheel: [{\n type: Input\n }], suppressCopyRowsToClipboard: [{\n type: Input\n }], copyHeadersToClipboard: [{\n type: Input\n }], pivotMode: [{\n type: Input\n }], suppressAggFuncInHeader: [{\n type: Input\n }], suppressColumnVirtualisation: [{\n type: Input\n }], suppressAggAtRootLevel: [{\n type: Input\n }], suppressFocusAfterRefresh: [{\n type: Input\n }], functionsPassive: [{\n type: Input\n }], functionsReadOnly: [{\n type: Input\n }], animateRows: [{\n type: Input\n }], groupSelectsFiltered: [{\n type: Input\n }], groupRemoveSingleChildren: [{\n type: Input\n }], groupRemoveLowestSingleChildren: [{\n type: Input\n }], enableRtl: [{\n type: Input\n }], suppressClickEdit: [{\n type: Input\n }], rowDragManaged: [{\n type: Input\n }], suppressRowDrag: [{\n type: Input\n }], suppressMoveWhenRowDragging: [{\n type: Input\n }], enableMultiRowDragging: [{\n type: Input\n }], enableGroupEdit: [{\n type: Input\n }], embedFullWidthRows: [{\n type: Input\n }], deprecatedEmbedFullWidthRows: [{\n type: Input\n }], suppressPaginationPanel: [{\n type: Input\n }], floatingFilter: [{\n type: Input\n }], groupHideOpenParents: [{\n type: Input\n }], groupMultiAutoColumn: [{\n type: Input\n }], pagination: [{\n type: Input\n }], stopEditingWhenGridLosesFocus: [{\n type: Input\n }], paginationAutoPageSize: [{\n type: Input\n }], suppressScrollOnNewData: [{\n type: Input\n }], purgeClosedRowNodes: [{\n type: Input\n }], cacheQuickFilter: [{\n type: Input\n }], deltaRowDataMode: [{\n type: Input\n }], ensureDomOrder: [{\n type: Input\n }], accentedSort: [{\n type: Input\n }], suppressChangeDetection: [{\n type: Input\n }], valueCache: [{\n type: Input\n }], valueCacheNeverExpires: [{\n type: Input\n }], aggregateOnlyChangedColumns: [{\n type: Input\n }], suppressAnimationFrame: [{\n type: Input\n }], suppressExcelExport: [{\n type: Input\n }], suppressCsvExport: [{\n type: Input\n }], treeData: [{\n type: Input\n }], masterDetail: [{\n type: Input\n }], suppressMultiRangeSelection: [{\n type: Input\n }], enterMovesDownAfterEdit: [{\n type: Input\n }], enterMovesDown: [{\n type: Input\n }], suppressPropertyNamesCheck: [{\n type: Input\n }], rowMultiSelectWithClick: [{\n type: Input\n }], suppressEnterpriseResetOnNewColumns: [{\n type: Input\n }], enableOldSetFilterModel: [{\n type: Input\n }], suppressRowHoverHighlight: [{\n type: Input\n }], suppressRowTransform: [{\n type: Input\n }], suppressClipboardPaste: [{\n type: Input\n }], suppressLastEmptyLineOnPaste: [{\n type: Input\n }], serverSideSortingAlwaysResets: [{\n type: Input\n }], reactNext: [{\n type: Input\n }], suppressSetColumnStateEvents: [{\n type: Input\n }], suppressColumnStateEvents: [{\n type: Input\n }], enableCharts: [{\n type: Input\n }], deltaColumnMode: [{\n type: Input\n }], suppressMaintainUnsortedOrder: [{\n type: Input\n }], enableCellTextSelection: [{\n type: Input\n }], suppressBrowserResizeObserver: [{\n type: Input\n }], suppressMaxRenderedRowRestriction: [{\n type: Input\n }], excludeChildrenWhenTreeDataFiltering: [{\n type: Input\n }], tooltipMouseTrack: [{\n type: Input\n }], keepDetailRows: [{\n type: Input\n }], paginateChildRows: [{\n type: Input\n }], preventDefaultOnContextMenu: [{\n type: Input\n }], undoRedoCellEditing: [{\n type: Input\n }], allowDragFromColumnsToolPanel: [{\n type: Input\n }], immutableData: [{\n type: Input\n }], immutableColumns: [{\n type: Input\n }], pivotSuppressAutoColumn: [{\n type: Input\n }], suppressExpandablePivotGroups: [{\n type: Input\n }], applyColumnDefOrder: [{\n type: Input\n }], debounceVerticalScrollbar: [{\n type: Input\n }], detailRowAutoHeight: [{\n type: Input\n }], serverSideFilteringAlwaysResets: [{\n type: Input\n }], suppressAggFilteredOnly: [{\n type: Input\n }], showOpenedGroup: [{\n type: Input\n }], suppressClipboardApi: [{\n type: Input\n }], suppressModelUpdateAfterUpdateTransaction: [{\n type: Input\n }], stopEditingWhenCellsLoseFocus: [{\n type: Input\n }], columnEverythingChanged: [{\n type: Output\n }], newColumnsLoaded: [{\n type: Output\n }], columnPivotModeChanged: [{\n type: Output\n }], columnRowGroupChanged: [{\n type: Output\n }], expandOrCollapseAll: [{\n type: Output\n }], columnPivotChanged: [{\n type: Output\n }], gridColumnsChanged: [{\n type: Output\n }], columnValueChanged: [{\n type: Output\n }], columnMoved: [{\n type: Output\n }], columnVisible: [{\n type: Output\n }], columnPinned: [{\n type: Output\n }], columnGroupOpened: [{\n type: Output\n }], columnResized: [{\n type: Output\n }], displayedColumnsChanged: [{\n type: Output\n }], virtualColumnsChanged: [{\n type: Output\n }], asyncTransactionsFlushed: [{\n type: Output\n }], rowGroupOpened: [{\n type: Output\n }], rowDataChanged: [{\n type: Output\n }], rowDataUpdated: [{\n type: Output\n }], pinnedRowDataChanged: [{\n type: Output\n }], rangeSelectionChanged: [{\n type: Output\n }], chartCreated: [{\n type: Output\n }], chartRangeSelectionChanged: [{\n type: Output\n }], chartOptionsChanged: [{\n type: Output\n }], chartDestroyed: [{\n type: Output\n }], toolPanelVisibleChanged: [{\n type: Output\n }], modelUpdated: [{\n type: Output\n }], pasteStart: [{\n type: Output\n }], pasteEnd: [{\n type: Output\n }], fillStart: [{\n type: Output\n }], fillEnd: [{\n type: Output\n }], cellClicked: [{\n type: Output\n }], cellDoubleClicked: [{\n type: Output\n }], cellMouseDown: [{\n type: Output\n }], cellContextMenu: [{\n type: Output\n }], cellValueChanged: [{\n type: Output\n }], rowValueChanged: [{\n type: Output\n }], cellFocused: [{\n type: Output\n }], rowSelected: [{\n type: Output\n }], selectionChanged: [{\n type: Output\n }], cellKeyDown: [{\n type: Output\n }], cellKeyPress: [{\n type: Output\n }], cellMouseOver: [{\n type: Output\n }], cellMouseOut: [{\n type: Output\n }], filterChanged: [{\n type: Output\n }], filterModified: [{\n type: Output\n }], filterOpened: [{\n type: Output\n }], sortChanged: [{\n type: Output\n }], virtualRowRemoved: [{\n type: Output\n }], rowClicked: [{\n type: Output\n }], rowDoubleClicked: [{\n type: Output\n }], gridReady: [{\n type: Output\n }], gridSizeChanged: [{\n type: Output\n }], viewportChanged: [{\n type: Output\n }], scrollbarWidthChanged: [{\n type: Output\n }], firstDataRendered: [{\n type: Output\n }], dragStarted: [{\n type: Output\n }], dragStopped: [{\n type: Output\n }], checkboxChanged: [{\n type: Output\n }], rowEditingStarted: [{\n type: Output\n }], rowEditingStopped: [{\n type: Output\n }], cellEditingStarted: [{\n type: Output\n }], cellEditingStopped: [{\n type: Output\n }], bodyScroll: [{\n type: Output\n }], animationQueueEmpty: [{\n type: Output\n }], heightScaleChanged: [{\n type: Output\n }], paginationChanged: [{\n type: Output\n }], componentStateChanged: [{\n type: Output\n }], bodyHeightChanged: [{\n type: Output\n }], displayedColumnsWidthChanged: [{\n type: Output\n }], scrollVisibilityChanged: [{\n type: Output\n }], columnHoverChanged: [{\n type: Output\n }], flashCells: [{\n type: Output\n }], paginationPixelOffsetChanged: [{\n type: Output\n }], displayedRowsChanged: [{\n type: Output\n }], leftPinnedWidthChanged: [{\n type: Output\n }], rightPinnedWidthChanged: [{\n type: Output\n }], rowContainerHeightChanged: [{\n type: Output\n }], rowDragEnter: [{\n type: Output\n }], rowDragMove: [{\n type: Output\n }], rowDragLeave: [{\n type: Output\n }], rowDragEnd: [{\n type: Output\n }], popupToFront: [{\n type: Output\n }], columnRowGroupChangeRequest: [{\n type: Output\n }], columnPivotChangeRequest: [{\n type: Output\n }], columnValueChangeRequest: [{\n type: Output\n }], columnAggFuncChangeRequest: [{\n type: Output\n }], keyboardFocus: [{\n type: Output\n }], mouseFocus: [{\n type: Output\n }], storeUpdated: [{\n type: Output\n }], gridOptions: [{\n type: Input\n }], columns: [{\n type: ContentChildren,\n args: [AgGridColumn]\n }], modules: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(AgGridModule, [{\n type: NgModule,\n args: [{\n declarations: [AgGridAngular, AgGridColumn],\n imports: [],\n exports: [AgGridAngular, AgGridColumn]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AgGridModule, { declarations: [AgGridAngular, AgGridColumn], exports: [AgGridAngular, AgGridColumn] }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AgGridAngular, AgGridColumn, AgGridModule, AngularFrameworkComponentWrapper, AngularFrameworkOverrides };\n\n//# sourceMappingURL=ag-grid-angular.js.map","/**\n * ag-grid-community - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components * @version v25.3.0\n * @link http://www.ag-grid.com/\n' * @license MIT\n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/**\n * If value is undefined, null or blank, returns null, otherwise returns the value\n * @param {T} value\n * @returns {T | null}\n */\nfunction makeNull(value) {\n if (value == null || value === '') {\n return null;\n }\n return value;\n}\nfunction exists(value, allowEmptyString) {\n if (allowEmptyString === void 0) { allowEmptyString = false; }\n return value != null && (value !== '' || allowEmptyString);\n}\nfunction missing(value) {\n return !exists(value);\n}\nfunction missingOrEmpty(value) {\n return value == null || value.length === 0;\n}\nfunction toStringOrNull(value) {\n return value != null && typeof value.toString === 'function' ? value.toString() : null;\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToNumber(value) {\n if (value === undefined) {\n // undefined or empty means ignore the value\n return;\n }\n if (value === null || value === '') {\n // null or blank means clear\n return null;\n }\n if (typeof value === 'number') {\n return isNaN(value) ? undefined : value;\n }\n var valueParsed = parseInt(value, 10);\n return isNaN(valueParsed) ? undefined : valueParsed;\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToBoolean(value) {\n if (value === undefined) {\n // undefined or empty means ignore the value\n return;\n }\n if (value === null || value === '') {\n // null means clear\n return false;\n }\n if (typeof value === 'boolean') {\n // if simple boolean, return the boolean\n return value;\n }\n // if equal to the string 'true' (ignoring case) then return true\n return (/true/i).test(value);\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToString(value) {\n if (value == null || value === '') {\n return;\n }\n return value;\n}\n/** @deprecated */\nfunction referenceCompare(left, right) {\n if (left == null && right == null) {\n return true;\n }\n if (left == null && right != null) {\n return false;\n }\n if (left != null && right == null) {\n return false;\n }\n return left === right;\n}\nfunction jsonEquals(val1, val2) {\n var val1Json = val1 ? JSON.stringify(val1) : null;\n var val2Json = val2 ? JSON.stringify(val2) : null;\n return val1Json === val2Json;\n}\nfunction defaultComparator(valueA, valueB, accentedCompare) {\n if (accentedCompare === void 0) { accentedCompare = false; }\n var valueAMissing = valueA == null;\n var valueBMissing = valueB == null;\n // this is for aggregations sum and avg, where the result can be a number that is wrapped.\n // if we didn't do this, then the toString() value would be used, which would result in\n // the strings getting used instead of the numbers.\n if (valueA && valueA.toNumber) {\n valueA = valueA.toNumber();\n }\n if (valueB && valueB.toNumber) {\n valueB = valueB.toNumber();\n }\n if (valueAMissing && valueBMissing) {\n return 0;\n }\n if (valueAMissing) {\n return -1;\n }\n if (valueBMissing) {\n return 1;\n }\n function doQuickCompare(a, b) {\n return (a > b ? 1 : (a < b ? -1 : 0));\n }\n if (typeof valueA !== 'string') {\n return doQuickCompare(valueA, valueB);\n }\n if (!accentedCompare) {\n return doQuickCompare(valueA, valueB);\n }\n try {\n // using local compare also allows chinese comparisons\n return valueA.localeCompare(valueB);\n }\n catch (e) {\n // if something wrong with localeCompare, eg not supported\n // by browser, then just continue with the quick one\n return doQuickCompare(valueA, valueB);\n }\n}\nfunction find(collection, predicate, value) {\n if (collection === null || collection === undefined) {\n return null;\n }\n if (!Array.isArray(collection)) {\n var objToArray = values(collection);\n return find(objToArray, predicate, value);\n }\n var collectionAsArray = collection;\n var firstMatchingItem = null;\n for (var i = 0; i < collectionAsArray.length; i++) {\n var item = collectionAsArray[i];\n if (typeof predicate === 'string') {\n if (item[predicate] === value) {\n firstMatchingItem = item;\n break;\n }\n }\n else {\n var callback = predicate;\n if (callback(item)) {\n firstMatchingItem = item;\n break;\n }\n }\n }\n return firstMatchingItem;\n}\nfunction values(object) {\n if (object instanceof Set || object instanceof Map) {\n var arr_1 = [];\n object.forEach(function (value) { return arr_1.push(value); });\n return arr_1;\n }\n return Object.keys(object).map(function (key) { return object[key]; });\n}\n\nvar GenericUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n makeNull: makeNull,\n exists: exists,\n missing: missing,\n missingOrEmpty: missingOrEmpty,\n toStringOrNull: toStringOrNull,\n attrToNumber: attrToNumber,\n attrToBoolean: attrToBoolean,\n attrToString: attrToString,\n referenceCompare: referenceCompare,\n jsonEquals: jsonEquals,\n defaultComparator: defaultComparator,\n find: find,\n values: values\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar ColumnKeyCreator = /** @class */ (function () {\n function ColumnKeyCreator() {\n this.existingKeys = {};\n }\n ColumnKeyCreator.prototype.addExistingKeys = function (keys) {\n for (var i = 0; i < keys.length; i++) {\n this.existingKeys[keys[i]] = true;\n }\n };\n ColumnKeyCreator.prototype.getUniqueKey = function (colId, colField) {\n // in case user passed in number for colId, convert to string\n colId = toStringOrNull(colId);\n var count = 0;\n while (true) {\n var idToTry = void 0;\n if (colId) {\n idToTry = colId;\n if (count !== 0) {\n idToTry += '_' + count;\n }\n }\n else if (colField) {\n idToTry = colField;\n if (count !== 0) {\n idToTry += '_' + count;\n }\n }\n else {\n idToTry = '' + count;\n }\n if (!this.existingKeys[idToTry]) {\n this.existingKeys[idToTry] = true;\n return idToTry;\n }\n count++;\n }\n };\n return ColumnKeyCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction firstExistingValue() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if (exists(value)) {\n return value;\n }\n }\n return null;\n}\n/** @deprecated */\nfunction anyExists(values) {\n return values && firstExistingValue(values) != null;\n}\nfunction existsAndNotEmpty(value) {\n return value != null && value.length > 0;\n}\nfunction last(arr) {\n if (!arr || !arr.length) {\n return;\n }\n return arr[arr.length - 1];\n}\nfunction areEqual(a, b, comparator) {\n if (a == null && b == null) {\n return true;\n }\n return a != null &&\n b != null &&\n a.length === b.length &&\n every(a, function (value, index) { return comparator ? comparator(value, b[index]) : b[index] === value; });\n}\n/** @deprecated */\nfunction compareArrays(array1, array2) {\n return areEqual(array1, array2);\n}\n/** @deprecated */\nfunction shallowCompare(arr1, arr2) {\n return areEqual(arr1, arr2);\n}\nfunction sortNumerically(array) {\n return array.sort(function (a, b) { return a - b; });\n}\nfunction removeRepeatsFromArray(array, object) {\n if (!array) {\n return;\n }\n for (var index = array.length - 2; index >= 0; index--) {\n var thisOneMatches = array[index] === object;\n var nextOneMatches = array[index + 1] === object;\n if (thisOneMatches && nextOneMatches) {\n array.splice(index + 1, 1);\n }\n }\n}\nfunction removeFromArray(array, object) {\n var index = array.indexOf(object);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction removeAllFromArray(array, toRemove) {\n forEach(toRemove, function (item) { return removeFromArray(array, item); });\n}\nfunction insertIntoArray(array, object, toIndex) {\n array.splice(toIndex, 0, object);\n}\nfunction insertArrayIntoArray(dest, src, toIndex) {\n if (dest == null || src == null) {\n return;\n }\n // put items in backwards, otherwise inserted items end up in reverse order\n for (var i = src.length - 1; i >= 0; i--) {\n var item = src[i];\n insertIntoArray(dest, item, toIndex);\n }\n}\nfunction moveInArray(array, objectsToMove, toIndex) {\n // first take out items from the array\n removeAllFromArray(array, objectsToMove);\n // now add the objects, in same order as provided to us, that means we start at the end\n // as the objects will be pushed to the right as they are inserted\n forEach(objectsToMove.slice().reverse(), function (obj) { return insertIntoArray(array, obj, toIndex); });\n}\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\nfunction flatten(arrayOfArrays) {\n return [].concat.apply([], arrayOfArrays);\n}\nfunction pushAll(target, source) {\n if (source == null || target == null) {\n return;\n }\n forEach(source, function (value) { return target.push(value); });\n}\nfunction toStrings(array) {\n return map(array, toStringOrNull);\n}\nfunction findIndex(collection, predicate) {\n for (var i = 0; i < collection.length; i++) {\n if (predicate(collection[i], i, collection)) {\n return i;\n }\n }\n return -1;\n}\nfunction fill(collection, value, start, end) {\n if (value === void 0) { value = null; }\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = collection.length; }\n for (var i = start; i < end; i++) {\n collection[i] = value;\n }\n return collection;\n}\n/**\n * The implementation of Array.prototype.every in browsers is always slower than just using a simple for loop, so\n * use this for improved performance.\n * https://jsbench.me/bek91dtit8/\n */\nfunction every(list, predicate) {\n if (list == null) {\n return true;\n }\n for (var i = 0; i < list.length; i++) {\n if (!predicate(list[i], i)) {\n return false;\n }\n }\n return true;\n}\n/**\n * The implementation of Array.prototype.some in browsers is always slower than just using a simple for loop, so\n * use this for improved performance.\n * https://jsbench.me/5dk91e4tmt/\n */\nfunction some(list, predicate) {\n if (list == null) {\n return false;\n }\n for (var i = 0; i < list.length; i++) {\n if (predicate(list[i], i)) {\n return true;\n }\n }\n return false;\n}\n/**\n * The implementation of Array.prototype.forEach in browsers is often slower than just using a simple for loop, so\n * use this for improved performance.\n * https://jsbench.me/apk91elt8a/\n */\nfunction forEach(list, action) {\n if (list == null) {\n return;\n }\n for (var i = 0; i < list.length; i++) {\n action(list[i], i);\n }\n}\nfunction forEachReverse(list, action) {\n if (list == null) {\n return;\n }\n for (var i = list.length - 1; i >= 0; i--) {\n action(list[i], i);\n }\n}\n/**\n * The implementation of Array.prototype.map in browsers is generally the same as just using a simple for loop. However,\n * Firefox does exhibit some difference, and this performs no worse in other browsers, so use this if you want improved\n * performance.\n * https://jsbench.me/njk91ez8pc/\n */\nfunction map(list, process) {\n if (list == null) {\n return null;\n }\n var mapped = [];\n for (var i = 0; i < list.length; i++) {\n mapped.push(process(list[i], i));\n }\n return mapped;\n}\n/**\n * The implementation of Array.prototype.filter in browsers is always slower than just using a simple for loop, so\n * use this for improved performance.\n * https://jsbench.me/7bk91fk08c/\n */\nfunction filter(list, predicate) {\n if (list == null) {\n return null;\n }\n var filtered = [];\n for (var i = 0; i < list.length; i++) {\n if (predicate(list[i], i)) {\n filtered.push(list[i]);\n }\n }\n return filtered;\n}\n/**\n * The implementation of Array.prototype.reduce in browsers is generally the same as just using a simple for loop. However,\n * Chrome does exhibit some difference, and this performs no worse in other browsers, so use this if you want improved\n * performance.\n * https://jsbench.me/7vk92n6u1f/\n */\nfunction reduce(list, step, initial) {\n if (list == null || initial == null) {\n return null;\n }\n var result = initial;\n for (var i = 0; i < list.length; i++) {\n result = step(result, list[i], i);\n }\n return result;\n}\n/** @deprecated */\nfunction forEachSnapshotFirst(list, callback) {\n if (!list) {\n return;\n }\n var arrayCopy = list.slice(0);\n arrayCopy.forEach(callback);\n}\n\nvar ArrayUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n firstExistingValue: firstExistingValue,\n anyExists: anyExists,\n existsAndNotEmpty: existsAndNotEmpty,\n last: last,\n areEqual: areEqual,\n compareArrays: compareArrays,\n shallowCompare: shallowCompare,\n sortNumerically: sortNumerically,\n removeRepeatsFromArray: removeRepeatsFromArray,\n removeFromArray: removeFromArray,\n removeAllFromArray: removeAllFromArray,\n insertIntoArray: insertIntoArray,\n insertArrayIntoArray: insertArrayIntoArray,\n moveInArray: moveInArray,\n includes: includes,\n flatten: flatten,\n pushAll: pushAll,\n toStrings: toStrings,\n findIndex: findIndex,\n fill: fill,\n every: every,\n some: some,\n forEach: forEach,\n forEachReverse: forEachReverse,\n map: map,\n filter: filter,\n reduce: reduce,\n forEachSnapshotFirst: forEachSnapshotFirst\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction iterateObject(object, callback) {\n if (object == null) {\n return;\n }\n if (Array.isArray(object)) {\n forEach(object, function (value, index) { return callback(\"\" + index, value); });\n }\n else {\n forEach(Object.keys(object), function (key) { return callback(key, object[key]); });\n }\n}\nfunction cloneObject(object) {\n var copy = {};\n var keys = Object.keys(object);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = object[key];\n copy[key] = value;\n }\n return copy;\n}\nfunction deepCloneObject(object) {\n return JSON.parse(JSON.stringify(object));\n}\n// returns copy of an object, doing a deep clone of any objects with that object.\n// this is used for eg creating copies of Column Definitions, where we want to\n// deep copy all objects, but do not want to deep copy functions (eg when user provides\n// a function or class for colDef.cellRenderer)\nfunction deepCloneDefinition(object, keysToSkip) {\n if (!object) {\n return;\n }\n var obj = object;\n var res = {};\n Object.keys(obj).forEach(function (key) {\n if (keysToSkip && keysToSkip.indexOf(key) >= 0) {\n return;\n }\n var value = obj[key];\n // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}. it does\n // NOT include the following:\n // 1) arrays\n // 2) functions or classes (eg ColumnAPI instance)\n var sourceIsSimpleObject = isNonNullObject(value) && value.constructor === Object;\n if (sourceIsSimpleObject) {\n res[key] = deepCloneDefinition(value);\n }\n else {\n res[key] = value;\n }\n });\n return res;\n}\nfunction getProperty(object, key) {\n return object[key];\n}\nfunction setProperty(object, key, value) {\n object[key] = value;\n}\n/**\n * Will copy the specified properties from `source` into the equivalent properties on `target`, ignoring properties with\n * a value of `undefined`.\n */\nfunction copyPropertiesIfPresent(source, target) {\n var properties = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n properties[_i - 2] = arguments[_i];\n }\n forEach(properties, function (p) { return copyPropertyIfPresent(source, target, p); });\n}\n/**\n * Will copy the specified property from `source` into the equivalent property on `target`, unless the property has a\n * value of `undefined`. If a transformation is provided, it will be applied to the value before being set on `target`.\n */\nfunction copyPropertyIfPresent(source, target, property, transform) {\n var value = getProperty(source, property);\n if (value !== undefined) {\n setProperty(target, property, transform ? transform(value) : value);\n }\n}\nfunction getAllKeysInObjects(objects) {\n var allValues = {};\n objects.filter(function (obj) { return obj != null; }).forEach(function (obj) {\n forEach(Object.keys(obj), function (key) { return allValues[key] = null; });\n });\n return Object.keys(allValues);\n}\nfunction getAllValuesInObject(obj) {\n if (!obj) {\n return [];\n }\n var anyObject = Object;\n if (typeof anyObject.values === 'function') {\n return anyObject.values(obj);\n }\n var ret = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj.propertyIsEnumerable(key)) {\n ret.push(obj[key]);\n }\n }\n return ret;\n}\nfunction mergeDeep(dest, source, copyUndefined, makeCopyOfSimpleObjects) {\n if (copyUndefined === void 0) { copyUndefined = true; }\n if (makeCopyOfSimpleObjects === void 0) { makeCopyOfSimpleObjects = false; }\n if (!exists(source)) {\n return;\n }\n iterateObject(source, function (key, sourceValue) {\n var destValue = dest[key];\n if (destValue === sourceValue) {\n return;\n }\n // when creating params, we don't want to just copy objects over. otherwise merging ColDefs (eg DefaultColDef\n // and Column Types) would result in params getting shared between objects.\n // by putting an empty value into destValue first, it means we end up copying over values from\n // the source object, rather than just copying in the source object in it's entirety.\n if (makeCopyOfSimpleObjects) {\n var objectIsDueToBeCopied = destValue == null && sourceValue != null;\n if (objectIsDueToBeCopied) {\n // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}, as opposed\n // to a Class instance (such as ColumnAPI instance).\n var sourceIsSimpleObject = typeof sourceValue === 'object' && sourceValue.constructor === Object;\n var dontCopy = sourceIsSimpleObject;\n if (dontCopy) {\n destValue = {};\n dest[key] = destValue;\n }\n }\n }\n if (isNonNullObject(sourceValue) && isNonNullObject(destValue) && !Array.isArray(destValue)) {\n mergeDeep(destValue, sourceValue, copyUndefined, makeCopyOfSimpleObjects);\n }\n else if (copyUndefined || sourceValue !== undefined) {\n dest[key] = sourceValue;\n }\n });\n}\nfunction assign(object) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n forEach(sources, function (source) { return iterateObject(source, function (key, value) { return object[key] = value; }); });\n return object;\n}\nfunction missingOrEmptyObject(value) {\n return missing(value) || Object.keys(value).length === 0;\n}\nfunction get(source, expression, defaultValue) {\n if (source == null) {\n return defaultValue;\n }\n var keys = expression.split('.');\n var objectToRead = source;\n while (keys.length > 1) {\n objectToRead = objectToRead[keys.shift()];\n if (objectToRead == null) {\n return defaultValue;\n }\n }\n var value = objectToRead[keys[0]];\n return value != null ? value : defaultValue;\n}\nfunction set(target, expression, value) {\n if (target == null) {\n return;\n }\n var keys = expression.split('.');\n var objectToUpdate = target;\n while (keys.length > 1) {\n objectToUpdate = objectToUpdate[keys.shift()];\n if (objectToUpdate == null) {\n return;\n }\n }\n objectToUpdate[keys[0]] = value;\n}\nfunction deepFreeze(object) {\n Object.freeze(object);\n forEach(values(object), function (v) {\n if (isNonNullObject(v) || typeof v === 'function') {\n deepFreeze(v);\n }\n });\n return object;\n}\nfunction getValueUsingField(data, field, fieldContainsDots) {\n if (!field || !data) {\n return;\n }\n // if no '.', then it's not a deep value\n if (!fieldContainsDots) {\n return data[field];\n }\n // otherwise it is a deep value, so need to dig for it\n var fields = field.split('.');\n var currentObject = data;\n for (var i = 0; i < fields.length; i++) {\n if (currentObject == null) {\n return undefined;\n }\n currentObject = currentObject[fields[i]];\n }\n return currentObject;\n}\n// used by ColumnAPI and GridAPI to remove all references, so keeping grid in memory resulting in a\n// memory leak if user is not disposing of the GridAPI or ColumnApi references\nfunction removeAllReferences(obj, objectName) {\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n // we want to replace all the @autowired services, which are objects. any simple types (boolean, string etc)\n // we don't care about\n if (typeof value === 'object') {\n obj[key] = undefined;\n }\n });\n var proto = Object.getPrototypeOf(obj);\n var properties = {};\n Object.keys(proto).forEach(function (key) {\n var value = proto[key];\n // leave all basic types - this is needed for GridAPI to leave the \"destroyed: boolean\" attribute alone\n if (typeof value === 'function') {\n var func = function () {\n console.warn(\"AG Grid: \" + objectName + \" function \" + key + \"() cannot be called as the grid has been destroyed.\\n Please don't call grid API functions on destroyed grids - as a matter of fact you shouldn't\\n be keeping the API reference, your application has a memory leak! Remove the API reference\\n when the grid is destroyed.\");\n };\n properties[key] = { value: func, writable: true };\n }\n });\n Object.defineProperties(obj, properties);\n}\nfunction isNonNullObject(value) {\n return typeof value === 'object' && value !== null;\n}\n\nvar ObjectUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n iterateObject: iterateObject,\n cloneObject: cloneObject,\n deepCloneObject: deepCloneObject,\n deepCloneDefinition: deepCloneDefinition,\n getProperty: getProperty,\n setProperty: setProperty,\n copyPropertiesIfPresent: copyPropertiesIfPresent,\n copyPropertyIfPresent: copyPropertyIfPresent,\n getAllKeysInObjects: getAllKeysInObjects,\n getAllValuesInObject: getAllValuesInObject,\n mergeDeep: mergeDeep,\n assign: assign,\n missingOrEmptyObject: missingOrEmptyObject,\n get: get,\n set: set,\n deepFreeze: deepFreeze,\n getValueUsingField: getValueUsingField,\n removeAllReferences: removeAllReferences,\n isNonNullObject: isNonNullObject\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar FUNCTION_STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\nvar FUNCTION_ARGUMENT_NAMES = /([^\\s,]+)/g;\nvar doOnceFlags = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce(func, key) {\n if (doOnceFlags[key]) {\n return;\n }\n func();\n doOnceFlags[key] = true;\n}\nfunction getFunctionName(funcConstructor) {\n // for every other browser in the world\n if (funcConstructor.name) {\n return funcConstructor.name;\n }\n // for the pestilence that is ie11\n var matches = /function\\s+([^\\(]+)/.exec(funcConstructor.toString());\n return matches && matches.length === 2 ? matches[1].trim() : null;\n}\n/** @deprecated */\nfunction getFunctionParameters(func) {\n var fnStr = func.toString().replace(FUNCTION_STRIP_COMMENTS, '');\n return fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(FUNCTION_ARGUMENT_NAMES) || [];\n}\nfunction isFunction(val) {\n return !!(val && val.constructor && val.call && val.apply);\n}\nfunction executeInAWhile(funcs) {\n executeAfter(funcs, 400);\n}\nvar executeNextVMTurnFuncs = [];\nvar executeNextVMTurnPending = false;\nfunction executeNextVMTurn(func) {\n executeNextVMTurnFuncs.push(func);\n if (executeNextVMTurnPending) {\n return;\n }\n executeNextVMTurnPending = true;\n window.setTimeout(function () {\n var funcsCopy = executeNextVMTurnFuncs.slice();\n executeNextVMTurnFuncs.length = 0;\n executeNextVMTurnPending = false;\n funcsCopy.forEach(function (func) { return func(); });\n }, 0);\n}\nfunction executeAfter(funcs, milliseconds) {\n if (milliseconds === void 0) { milliseconds = 0; }\n if (funcs.length > 0) {\n window.setTimeout(function () { return funcs.forEach(function (func) { return func(); }); }, milliseconds);\n }\n}\n/**\n * from https://stackoverflow.com/questions/24004791/can-someone-explain-the-debounce-function-in-javascript\n * @param {Function} func The function to be debounced\n * @param {number} wait The time in ms to debounce\n * @param {boolean} immediate If it should run immediately or wait for the initial debounce delay\n * @return {Function} The debounced function\n */\nfunction debounce(func, wait, immediate) {\n if (immediate === void 0) { immediate = false; }\n // 'private' variable for instance\n // The returned function will be able to reference this due to closure.\n // Each call to the returned function will share this common timer.\n var timeout;\n // Calling debounce returns a new anonymous function\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // reference the context and args for the setTimeout function\n var context = this;\n // Should the function be called now? If immediate is true\n // and not already in a timeout then the answer is: Yes\n var callNow = immediate && !timeout;\n // This is the basic debounce behaviour where you can call this\n // function several times, but it will only execute once\n // [before or after imposing a delay].\n // Each time the returned function is called, the timer starts over.\n window.clearTimeout(timeout);\n // Set the new timeout\n timeout = window.setTimeout(function () {\n // Inside the timeout function, clear the timeout variable\n // which will let the next execution run when in 'immediate' mode\n timeout = null;\n // Check if the function already ran with the immediate flag\n if (!immediate) {\n // Call the original function with apply\n // apply lets you define the 'this' object as well as the arguments\n // (both captured before setTimeout)\n func.apply(context, args);\n }\n }, wait);\n // Immediate mode and no wait timer? Execute the function..\n if (callNow) {\n func.apply(context, args);\n }\n };\n}\nfunction waitUntil(condition, callback, timeout, timeoutMessage) {\n if (timeout === void 0) { timeout = 100; }\n var timeStamp = new Date().getTime();\n var interval = null;\n var executed = false;\n var internalCallback = function () {\n var reachedTimeout = ((new Date().getTime()) - timeStamp) > timeout;\n if (condition() || reachedTimeout) {\n callback();\n executed = true;\n if (interval != null) {\n window.clearInterval(interval);\n interval = null;\n }\n if (reachedTimeout && timeoutMessage) {\n console.warn(timeoutMessage);\n }\n }\n };\n internalCallback();\n if (!executed) {\n interval = window.setInterval(internalCallback, 10);\n }\n}\nfunction compose() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return function (arg) { return fns.reduce(function (composed, f) { return f(composed); }, arg); };\n}\nfunction callIfPresent(func) {\n if (func) {\n func();\n }\n}\n\nvar FunctionUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n doOnce: doOnce,\n getFunctionName: getFunctionName,\n getFunctionParameters: getFunctionParameters,\n isFunction: isFunction,\n executeInAWhile: executeInAWhile,\n executeNextVMTurn: executeNextVMTurn,\n executeAfter: executeAfter,\n debounce: debounce,\n waitUntil: waitUntil,\n compose: compose,\n callIfPresent: callIfPresent\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar Context = /** @class */ (function () {\n function Context(params, logger) {\n this.beanWrappers = {};\n this.destroyed = false;\n if (!params || !params.beanClasses) {\n return;\n }\n this.contextParams = params;\n this.logger = logger;\n this.logger.log(\">> creating ag-Application Context\");\n this.createBeans();\n var beanInstances = this.getBeanInstances();\n this.wireBeans(beanInstances);\n this.logger.log(\">> ag-Application Context ready - component is alive\");\n }\n Context.prototype.getBeanInstances = function () {\n return values(this.beanWrappers).map(function (beanEntry) { return beanEntry.beanInstance; });\n };\n Context.prototype.createBean = function (bean, afterPreCreateCallback) {\n if (!bean) {\n throw Error(\"Can't wire to bean since it is null\");\n }\n this.wireBeans([bean], afterPreCreateCallback);\n return bean;\n };\n Context.prototype.wireBeans = function (beanInstances, afterPreCreateCallback) {\n this.autoWireBeans(beanInstances);\n this.methodWireBeans(beanInstances);\n this.callLifeCycleMethods(beanInstances, 'preConstructMethods');\n // the callback sets the attributes, so the component has access to attributes\n // before postConstruct methods in the component are executed\n if (exists(afterPreCreateCallback)) {\n beanInstances.forEach(afterPreCreateCallback);\n }\n this.callLifeCycleMethods(beanInstances, 'postConstructMethods');\n };\n Context.prototype.createBeans = function () {\n var _this = this;\n // register all normal beans\n this.contextParams.beanClasses.forEach(this.createBeanWrapper.bind(this));\n // register override beans, these will overwrite beans above of same name\n // instantiate all beans - overridden beans will be left out\n iterateObject(this.beanWrappers, function (key, beanEntry) {\n var constructorParamsMeta;\n if (beanEntry.bean.__agBeanMetaData && beanEntry.bean.__agBeanMetaData.autowireMethods && beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor) {\n constructorParamsMeta = beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor;\n }\n var constructorParams = _this.getBeansForParameters(constructorParamsMeta, beanEntry.bean.name);\n var newInstance = applyToConstructor(beanEntry.bean, constructorParams);\n beanEntry.beanInstance = newInstance;\n });\n var createdBeanNames = Object.keys(this.beanWrappers).join(', ');\n this.logger.log(\"created beans: \" + createdBeanNames);\n };\n // tslint:disable-next-line\n Context.prototype.createBeanWrapper = function (BeanClass) {\n var metaData = BeanClass.__agBeanMetaData;\n if (!metaData) {\n var beanName = void 0;\n if (BeanClass.prototype.constructor) {\n beanName = getFunctionName(BeanClass.prototype.constructor);\n }\n else {\n beanName = \"\" + BeanClass;\n }\n console.error(\"Context item \" + beanName + \" is not a bean\");\n return;\n }\n var beanEntry = {\n bean: BeanClass,\n beanInstance: null,\n beanName: metaData.beanName\n };\n this.beanWrappers[metaData.beanName] = beanEntry;\n };\n Context.prototype.autoWireBeans = function (beanInstances) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) {\n _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {\n var attributes = metaData.agClassAttributes;\n if (!attributes) {\n return;\n }\n attributes.forEach(function (attribute) {\n var otherBean = _this.lookupBeanInstance(beanName, attribute.beanName, attribute.optional);\n beanInstance[attribute.attributeName] = otherBean;\n });\n });\n });\n };\n Context.prototype.methodWireBeans = function (beanInstances) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) {\n _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {\n iterateObject(metaData.autowireMethods, function (methodName, wireParams) {\n // skip constructor, as this is dealt with elsewhere\n if (methodName === \"agConstructor\") {\n return;\n }\n var initParams = _this.getBeansForParameters(wireParams, beanName);\n beanInstance[methodName].apply(beanInstance, initParams);\n });\n });\n });\n };\n Context.prototype.forEachMetaDataInHierarchy = function (beanInstance, callback) {\n var prototype = Object.getPrototypeOf(beanInstance);\n while (prototype != null) {\n var constructor = prototype.constructor;\n if (constructor.hasOwnProperty('__agBeanMetaData')) {\n var metaData = constructor.__agBeanMetaData;\n var beanName = this.getBeanName(constructor);\n callback(metaData, beanName);\n }\n prototype = Object.getPrototypeOf(prototype);\n }\n };\n Context.prototype.getBeanName = function (constructor) {\n if (constructor.__agBeanMetaData && constructor.__agBeanMetaData.beanName) {\n return constructor.__agBeanMetaData.beanName;\n }\n var constructorString = constructor.toString();\n var beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n return beanName;\n };\n Context.prototype.getBeansForParameters = function (parameters, beanName) {\n var _this = this;\n var beansList = [];\n if (parameters) {\n iterateObject(parameters, function (paramIndex, otherBeanName) {\n var otherBean = _this.lookupBeanInstance(beanName, otherBeanName);\n beansList[Number(paramIndex)] = otherBean;\n });\n }\n return beansList;\n };\n Context.prototype.lookupBeanInstance = function (wiringBean, beanName, optional) {\n if (optional === void 0) { optional = false; }\n if (beanName === \"context\") {\n return this;\n }\n if (this.contextParams.providedBeanInstances && this.contextParams.providedBeanInstances.hasOwnProperty(beanName)) {\n return this.contextParams.providedBeanInstances[beanName];\n }\n var beanEntry = this.beanWrappers[beanName];\n if (beanEntry) {\n return beanEntry.beanInstance;\n }\n if (!optional) {\n console.error(\"AG Grid: unable to find bean reference \" + beanName + \" while initialising \" + wiringBean);\n }\n return null;\n };\n Context.prototype.callLifeCycleMethods = function (beanInstances, lifeCycleMethod) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) { return _this.callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod); });\n };\n Context.prototype.callLifeCycleMethodsOnBean = function (beanInstance, lifeCycleMethod, methodToIgnore) {\n // putting all methods into a map removes duplicates\n var allMethods = {};\n // dump methods from each level of the metadata hierarchy\n this.forEachMetaDataInHierarchy(beanInstance, function (metaData) {\n var methods = metaData[lifeCycleMethod];\n if (methods) {\n methods.forEach(function (methodName) {\n if (methodName != methodToIgnore) {\n allMethods[methodName] = true;\n }\n });\n }\n });\n var allMethodsList = Object.keys(allMethods);\n allMethodsList.forEach(function (methodName) { return beanInstance[methodName](); });\n };\n Context.prototype.getBean = function (name) {\n return this.lookupBeanInstance(\"getBean\", name, true);\n };\n Context.prototype.destroy = function () {\n if (this.destroyed) {\n return;\n }\n this.logger.log(\">> Shutting down ag-Application Context\");\n var beanInstances = this.getBeanInstances();\n this.destroyBeans(beanInstances);\n this.contextParams.providedBeanInstances = null;\n this.destroyed = true;\n this.logger.log(\">> ag-Application Context shut down - component is dead\");\n };\n Context.prototype.destroyBean = function (bean) {\n if (!bean) {\n return;\n }\n this.destroyBeans([bean]);\n };\n Context.prototype.destroyBeans = function (beans) {\n var _this = this;\n if (!beans) {\n return [];\n }\n beans.forEach(function (bean) {\n _this.callLifeCycleMethodsOnBean(bean, 'preDestroyMethods', 'destroy');\n // call destroy() explicitly if it exists\n var beanAny = bean;\n if (typeof beanAny.destroy === 'function') {\n beanAny.destroy();\n }\n });\n return [];\n };\n return Context;\n}());\n// taken from: http://stackoverflow.com/questions/3362471/how-can-i-call-a-javascript-constructor-using-call-or-apply\n// allows calling 'apply' on a constructor\nfunction applyToConstructor(constructor, argArray) {\n var args = [null].concat(argArray);\n var factoryFunction = constructor.bind.apply(constructor, args);\n return new factoryFunction();\n}\nfunction PreConstruct(target, methodName, descriptor) {\n var props = getOrCreateProps(target.constructor);\n if (!props.preConstructMethods) {\n props.preConstructMethods = [];\n }\n props.preConstructMethods.push(methodName);\n}\nfunction PostConstruct(target, methodName, descriptor) {\n var props = getOrCreateProps(target.constructor);\n if (!props.postConstructMethods) {\n props.postConstructMethods = [];\n }\n props.postConstructMethods.push(methodName);\n}\nfunction PreDestroy(target, methodName, descriptor) {\n var props = getOrCreateProps(target.constructor);\n if (!props.preDestroyMethods) {\n props.preDestroyMethods = [];\n }\n props.preDestroyMethods.push(methodName);\n}\nfunction Bean(beanName) {\n return function (classConstructor) {\n var props = getOrCreateProps(classConstructor);\n props.beanName = beanName;\n };\n}\nfunction Autowired(name) {\n return function (target, propertyKey, descriptor) {\n autowiredFunc(target, name, false, target, propertyKey, null);\n };\n}\nfunction Optional(name) {\n return function (target, propertyKey, descriptor) {\n autowiredFunc(target, name, true, target, propertyKey, null);\n };\n}\nfunction autowiredFunc(target, name, optional, classPrototype, methodOrAttributeName, index) {\n if (name === null) {\n console.error(\"AG Grid: Autowired name should not be null\");\n return;\n }\n if (typeof index === \"number\") {\n console.error(\"AG Grid: Autowired should be on an attribute\");\n return;\n }\n // it's an attribute on the class\n var props = getOrCreateProps(target.constructor);\n if (!props.agClassAttributes) {\n props.agClassAttributes = [];\n }\n props.agClassAttributes.push({\n attributeName: methodOrAttributeName,\n beanName: name,\n optional: optional\n });\n}\nfunction Qualifier(name) {\n return function (classPrototype, methodOrAttributeName, index) {\n var constructor = typeof classPrototype == \"function\" ? classPrototype : classPrototype.constructor;\n var props;\n if (typeof index === \"number\") {\n // it's a parameter on a method\n var methodName = void 0;\n if (methodOrAttributeName) {\n props = getOrCreateProps(constructor);\n methodName = methodOrAttributeName;\n }\n else {\n props = getOrCreateProps(constructor);\n methodName = \"agConstructor\";\n }\n if (!props.autowireMethods) {\n props.autowireMethods = {};\n }\n if (!props.autowireMethods[methodName]) {\n props.autowireMethods[methodName] = {};\n }\n props.autowireMethods[methodName][index] = name;\n }\n };\n}\nfunction getOrCreateProps(target) {\n if (!target.hasOwnProperty(\"__agBeanMetaData\")) {\n target.__agBeanMetaData = {};\n }\n return target.__agBeanMetaData;\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate = (undefined && undefined.__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 __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar EventService = /** @class */ (function () {\n function EventService() {\n this.allSyncListeners = new Map();\n this.allAsyncListeners = new Map();\n this.globalSyncListeners = new Set();\n this.globalAsyncListeners = new Set();\n this.asyncFunctionsQueue = [];\n this.scheduled = false;\n // using an object performs better than a Set for the number of different events we have\n this.firedEvents = {};\n }\n // because this class is used both inside the context and outside the context, we do not\n // use autowired attributes, as that would be confusing, as sometimes the attributes\n // would be wired, and sometimes not.\n //\n // the global event servers used by AG Grid is autowired by the context once, and this\n // setBeans method gets called once.\n //\n // the times when this class is used outside of the context (eg RowNode has an instance of this\n // class) then it is not a bean, and this setBeans method is not called.\n EventService.prototype.setBeans = function (loggerFactory, gridOptionsWrapper, frameworkOverrides, globalEventListener) {\n if (globalEventListener === void 0) { globalEventListener = null; }\n this.logger = loggerFactory.create('EventService');\n this.frameworkOverrides = frameworkOverrides;\n if (globalEventListener) {\n var async = gridOptionsWrapper.useAsyncEvents();\n this.addGlobalListener(globalEventListener, async);\n }\n };\n EventService.prototype.getListeners = function (eventType, async, autoCreateListenerCollection) {\n var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n var listeners = listenerMap.get(eventType);\n // Note: 'autoCreateListenerCollection' should only be 'true' if a listener is about to be added. For instance\n // getListeners() is also called during event dispatch even though no listeners are added. This measure protects\n // against 'memory bloat' as empty collections will prevent the RowNode's event service from being removed after\n // the RowComp is destroyed, see noRegisteredListenersExist() below.\n if (!listeners && autoCreateListenerCollection) {\n listeners = new Set();\n listenerMap.set(eventType, listeners);\n }\n return listeners;\n };\n EventService.prototype.noRegisteredListenersExist = function () {\n return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 &&\n this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;\n };\n EventService.prototype.addEventListener = function (eventType, listener, async) {\n if (async === void 0) { async = false; }\n this.getListeners(eventType, async, true).add(listener);\n };\n EventService.prototype.removeEventListener = function (eventType, listener, async) {\n if (async === void 0) { async = false; }\n var listeners = this.getListeners(eventType, async, false);\n if (!listeners) {\n return;\n }\n listeners.delete(listener);\n if (listeners.size === 0) {\n var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n listenerMap.delete(eventType);\n }\n };\n EventService.prototype.addGlobalListener = function (listener, async) {\n if (async === void 0) { async = false; }\n (async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);\n };\n EventService.prototype.removeGlobalListener = function (listener, async) {\n if (async === void 0) { async = false; }\n (async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);\n };\n EventService.prototype.dispatchEvent = function (event) {\n this.dispatchToListeners(event, true);\n this.dispatchToListeners(event, false);\n this.firedEvents[event.type] = true;\n };\n EventService.prototype.dispatchEventOnce = function (event) {\n if (!this.firedEvents[event.type]) {\n this.dispatchEvent(event);\n }\n };\n EventService.prototype.dispatchToListeners = function (event, async) {\n var _this = this;\n var eventType = event.type;\n var processEventListeners = function (listeners) { return listeners.forEach(function (listener) {\n if (async) {\n _this.dispatchAsync(function () { return listener(event); });\n }\n else {\n listener(event);\n }\n }); };\n var listeners = this.getListeners(eventType, async, false);\n if (listeners) {\n processEventListeners(listeners);\n }\n var globalListeners = async ? this.globalAsyncListeners : this.globalSyncListeners;\n globalListeners.forEach(function (listener) {\n if (async) {\n _this.dispatchAsync(function () { return _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }); });\n }\n else {\n _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); });\n }\n });\n };\n // this gets called inside the grid's thread, for each event that it\n // wants to set async. the grid then batches the events into one setTimeout()\n // because setTimeout() is an expensive operation. ideally we would have\n // each event in it's own setTimeout(), but we batch for performance.\n EventService.prototype.dispatchAsync = function (func) {\n // add to the queue for executing later in the next VM turn\n this.asyncFunctionsQueue.push(func);\n // check if timeout is already scheduled. the first time the grid calls\n // this within it's thread turn, this should be false, so it will schedule\n // the 'flush queue' method the first time it comes here. then the flag is\n // set to 'true' so it will know it's already scheduled for subsequent calls.\n if (!this.scheduled) {\n // if not scheduled, schedule one\n window.setTimeout(this.flushAsyncQueue.bind(this), 0);\n // mark that it is scheduled\n this.scheduled = true;\n }\n };\n // this happens in the next VM turn only, and empties the queue of events\n EventService.prototype.flushAsyncQueue = function () {\n this.scheduled = false;\n // we take a copy, because the event listener could be using\n // the grid, which would cause more events, which would be potentially\n // added to the queue, so safe to take a copy, the new events will\n // get executed in a later VM turn rather than risk updating the\n // queue as we are flushing it.\n var queueCopy = this.asyncFunctionsQueue.slice();\n this.asyncFunctionsQueue = [];\n // execute the queue\n queueCopy.forEach(function (func) { return func(); });\n };\n __decorate([\n __param(0, Qualifier('loggerFactory')),\n __param(1, Qualifier('gridOptionsWrapper')),\n __param(2, Qualifier('frameworkOverrides')),\n __param(3, Qualifier('globalEventListener'))\n ], EventService.prototype, \"setBeans\", null);\n EventService = __decorate([\n Bean('eventService')\n ], EventService);\n return EventService;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar Constants = /** @class */ (function () {\n function Constants() {\n }\n Constants.ROW_BUFFER_SIZE = 10;\n Constants.LAYOUT_INTERVAL = 500;\n Constants.BATCH_WAIT_MILLIS = 50;\n Constants.EXPORT_TYPE_DRAG_COPY = 'dragCopy';\n Constants.EXPORT_TYPE_CLIPBOARD = 'clipboard';\n Constants.EXPORT_TYPE_EXCEL = 'excel';\n Constants.EXPORT_TYPE_CSV = 'csv';\n Constants.ROW_MODEL_TYPE_INFINITE = 'infinite';\n Constants.ROW_MODEL_TYPE_VIEWPORT = 'viewport';\n Constants.ROW_MODEL_TYPE_CLIENT_SIDE = 'clientSide';\n Constants.ROW_MODEL_TYPE_SERVER_SIDE = 'serverSide';\n Constants.ALWAYS = 'always';\n Constants.ONLY_WHEN_GROUPING = 'onlyWhenGrouping';\n Constants.PINNED_TOP = 'top';\n Constants.PINNED_BOTTOM = 'bottom';\n Constants.DOM_LAYOUT_NORMAL = 'normal';\n Constants.DOM_LAYOUT_PRINT = 'print';\n Constants.DOM_LAYOUT_AUTO_HEIGHT = 'autoHeight';\n Constants.GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';\n Constants.SOURCE_PASTE = 'paste';\n Constants.PINNED_RIGHT = 'right';\n Constants.PINNED_LEFT = 'left';\n Constants.SORT_ASC = 'asc';\n Constants.SORT_DESC = 'desc';\n Constants.INPUT_SELECTOR = 'input, select, button, textarea';\n Constants.FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea';\n Constants.FOCUSABLE_EXCLUDE = '.ag-hidden, .ag-hidden *, [disabled], .ag-disabled, .ag-disabled *';\n return Constants;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n(function (ModuleNames) {\n // when using modules, user references this\n ModuleNames[\"CommunityCoreModule\"] = \"@ag-grid-community/core\";\n // when not using modules, user references this\n ModuleNames[\"CommunityAllModules\"] = \"@ag-grid-community/all\";\n // community modules\n ModuleNames[\"InfiniteRowModelModule\"] = \"@ag-grid-community/infinite-row-model\";\n ModuleNames[\"ClientSideRowModelModule\"] = \"@ag-grid-community/client-side-row-model\";\n ModuleNames[\"CsvExportModule\"] = \"@ag-grid-community/csv-export\";\n // enterprise core - users never import on this, but other enterprise modules do\n ModuleNames[\"EnterpriseCoreModule\"] = \"@ag-grid-enterprise/core\";\n // when not using modules, user references this\n ModuleNames[\"EnterpriseAllModules\"] = \"@ag-grid-enterprise/all\";\n // enterprise modules\n ModuleNames[\"RowGroupingModule\"] = \"@ag-grid-enterprise/row-grouping\";\n ModuleNames[\"ColumnToolPanelModule\"] = \"@ag-grid-enterprise/column-tool-panel\";\n ModuleNames[\"FiltersToolPanelModule\"] = \"@ag-grid-enterprise/filter-tool-panel\";\n ModuleNames[\"MenuModule\"] = \"@ag-grid-enterprise/menu\";\n ModuleNames[\"SetFilterModule\"] = \"@ag-grid-enterprise/set-filter\";\n ModuleNames[\"MultiFilterModule\"] = \"@ag-grid-enterprise/multi-filter\";\n ModuleNames[\"StatusBarModule\"] = \"@ag-grid-enterprise/status-bar\";\n ModuleNames[\"SideBarModule\"] = \"@ag-grid-enterprise/side-bar\";\n ModuleNames[\"RangeSelectionModule\"] = \"@ag-grid-enterprise/range-selection\";\n ModuleNames[\"MasterDetailModule\"] = \"@ag-grid-enterprise/master-detail\";\n ModuleNames[\"RichSelectModule\"] = \"@ag-grid-enterprise/rich-select\";\n ModuleNames[\"GridChartsModule\"] = \"@ag-grid-enterprise/charts\";\n ModuleNames[\"ViewportRowModelModule\"] = \"@ag-grid-enterprise/viewport-row-model\";\n ModuleNames[\"ServerSideRowModelModule\"] = \"@ag-grid-enterprise/server-side-row-model\";\n ModuleNames[\"ExcelExportModule\"] = \"@ag-grid-enterprise/excel-export\";\n ModuleNames[\"ClipboardModule\"] = \"@ag-grid-enterprise/clipboard\";\n ModuleNames[\"DateTimeCellEditorModule\"] = \"@ag-grid-enterprise/date-time-cell-editor\";\n // framework wrappers currently don't provide beans, comps etc, so no need to be modules,\n // however i argue they should be as in theory they 'could' provide beans etc\n ModuleNames[\"AngularModule\"] = \"@ag-grid-community/angular\";\n ModuleNames[\"ReactModule\"] = \"@ag-grid-community/react\";\n ModuleNames[\"VueModule\"] = \"@ag-grid-community/vue\";\n ModuleNames[\"PolymerModule\"] = \"@ag-grid-community/polymer\";\n // and then this, which is definitely not a grid module, as it should not have any dependency\n // on the grid (ie shouldn't even reference the Module interface)\n // ChartsModule = \"@ag-grid-community/charts-core\",\n})(exports.ModuleNames || (exports.ModuleNames = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar ModuleRegistry = /** @class */ (function () {\n function ModuleRegistry() {\n }\n ModuleRegistry.register = function (module, moduleBased) {\n if (moduleBased === void 0) { moduleBased = true; }\n ModuleRegistry.modulesMap[module.moduleName] = module;\n if (ModuleRegistry.moduleBased === undefined) {\n ModuleRegistry.moduleBased = moduleBased;\n }\n else {\n if (ModuleRegistry.moduleBased !== moduleBased) {\n doOnce(function () {\n console.warn(\"AG Grid: You are mixing modules (i.e. @ag-grid-community/core) and packages (ag-grid-community) - you can only use one or the other of these mechanisms.\");\n console.warn('Please see https://www.ag-grid.com/javascript-table/packages-modules/ for more information.');\n }, 'ModulePackageCheck');\n }\n }\n };\n // noinspection JSUnusedGlobalSymbols\n ModuleRegistry.registerModules = function (modules, moduleBased) {\n if (moduleBased === void 0) { moduleBased = true; }\n if (!modules) {\n return;\n }\n modules.forEach(function (module) { return ModuleRegistry.register(module, moduleBased); });\n };\n ModuleRegistry.assertRegistered = function (moduleName, reason) {\n if (this.isRegistered(moduleName)) {\n return true;\n }\n var warningKey = reason + moduleName;\n var warningMessage = \"AG Grid: unable to use \" + reason + \" as module \" + moduleName + \" is not present. Please see: https://www.ag-grid.com/javascript-table/modules/\";\n doOnce(function () {\n console.warn(warningMessage);\n }, warningKey);\n return false;\n };\n ModuleRegistry.isRegistered = function (moduleName) {\n return !!ModuleRegistry.modulesMap[moduleName];\n };\n ModuleRegistry.getRegisteredModules = function () {\n return values(ModuleRegistry.modulesMap);\n };\n ModuleRegistry.isPackageBased = function () {\n return !ModuleRegistry.moduleBased;\n };\n // having in a map a) removes duplicates and b) allows fast lookup\n ModuleRegistry.modulesMap = {};\n return ModuleRegistry;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1 = (undefined && undefined.__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};\n// Wrapper around a user provide column definition. The grid treats the column definition as ready only.\n// This class contains all the runtime information about a column, plus some logic (the definition has no logic).\n// This class implements both interfaces ColumnGroupChild and OriginalColumnGroupChild as the class can\n// appear as a child of either the original tree or the displayed tree. However the relevant group classes\n// for each type only implements one, as each group can only appear in it's associated tree (eg OriginalColumnGroup\n// can only appear in OriginalColumn tree).\nvar Column = /** @class */ (function () {\n function Column(colDef, userProvidedColDef, colId, primary) {\n this.moving = false;\n this.menuVisible = false;\n this.filterActive = false;\n this.eventService = new EventService();\n this.rowGroupActive = false;\n this.pivotActive = false;\n this.aggregationActive = false;\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.colId = colId;\n this.primary = primary;\n this.setState(colDef);\n }\n Column.prototype.setState = function (colDef) {\n // sort\n if (colDef.sort !== undefined) {\n if (colDef.sort === Constants.SORT_ASC || colDef.sort === Constants.SORT_DESC) {\n this.sort = colDef.sort;\n }\n }\n else {\n if (colDef.initialSort === Constants.SORT_ASC || colDef.initialSort === Constants.SORT_DESC) {\n this.sort = colDef.initialSort;\n }\n }\n // sortIndex\n var sortIndex = attrToNumber(colDef.sortIndex);\n var initialSortIndex = attrToNumber(colDef.initialSortIndex);\n if (sortIndex !== undefined) {\n if (sortIndex !== null) {\n this.sortIndex = sortIndex;\n }\n }\n else {\n if (initialSortIndex !== null) {\n this.sortIndex = initialSortIndex;\n }\n }\n // hide\n var hide = attrToBoolean(colDef.hide);\n var initialHide = attrToBoolean(colDef.initialHide);\n if (hide !== undefined) {\n this.visible = !hide;\n }\n else {\n this.visible = !initialHide;\n }\n // pinned\n if (colDef.pinned !== undefined) {\n this.setPinned(colDef.pinned);\n }\n else {\n this.setPinned(colDef.initialPinned);\n }\n // flex\n var flex = attrToNumber(colDef.flex);\n var initialFlex = attrToNumber(colDef.initialFlex);\n if (flex !== undefined) {\n this.flex = flex;\n }\n else if (initialFlex !== undefined) {\n this.flex = initialFlex;\n }\n };\n // gets called when user provides an alternative colDef, eg\n Column.prototype.setColDef = function (colDef, userProvidedColDef) {\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.initMinAndMaxWidths();\n this.initDotNotation();\n };\n Column.prototype.getUserProvidedColDef = function () {\n return this.userProvidedColDef;\n };\n Column.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n Column.prototype.getParent = function () {\n return this.parent;\n };\n Column.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n Column.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n // this is done after constructor as it uses gridOptionsWrapper\n Column.prototype.initialise = function () {\n this.initMinAndMaxWidths();\n this.resetActualWidth('gridInitializing');\n this.initDotNotation();\n this.validate();\n };\n Column.prototype.initDotNotation = function () {\n var suppressDotNotation = this.gridOptionsWrapper.isSuppressFieldDotNotation();\n this.fieldContainsDots = exists(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;\n this.tooltipFieldContainsDots = exists(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;\n };\n Column.prototype.initMinAndMaxWidths = function () {\n var minColWidth = this.gridOptionsWrapper.getMinColWidth();\n var maxColWidth = this.gridOptionsWrapper.getMaxColWidth();\n if (this.colDef.minWidth != null) {\n // we force min width to be at least one pixel, otherwise column will disappear\n this.minWidth = Math.max(this.colDef.minWidth, 1);\n }\n else {\n this.minWidth = minColWidth;\n }\n if (this.colDef.maxWidth != null) {\n this.maxWidth = this.colDef.maxWidth;\n }\n else {\n this.maxWidth = maxColWidth;\n }\n };\n Column.prototype.resetActualWidth = function (source) {\n if (source === void 0) { source = 'api'; }\n var initialWidth = this.columnUtils.calculateColInitialWidth(this.colDef);\n this.setActualWidth(initialWidth, source, true);\n };\n Column.prototype.isEmptyGroup = function () {\n return false;\n };\n Column.prototype.isRowGroupDisplayed = function (colId) {\n if (missing(this.colDef) || missing(this.colDef.showRowGroup)) {\n return false;\n }\n var showingAllGroups = this.colDef.showRowGroup === true;\n var showingThisGroup = this.colDef.showRowGroup === colId;\n return showingAllGroups || showingThisGroup;\n };\n Column.prototype.getUniqueId = function () {\n return this.getId();\n };\n Column.prototype.isPrimary = function () {\n return this.primary;\n };\n Column.prototype.isFilterAllowed = function () {\n // filter defined means it's a string, class or true.\n // if its false, null or undefined then it's false.\n var filterDefined = !!this.colDef.filter || !!this.colDef.filterFramework;\n return this.primary && filterDefined;\n };\n Column.prototype.isFieldContainsDots = function () {\n return this.fieldContainsDots;\n };\n Column.prototype.isTooltipFieldContainsDots = function () {\n return this.tooltipFieldContainsDots;\n };\n Column.prototype.validate = function () {\n var colDefAny = this.colDef;\n function warnOnce(msg, key, obj) {\n doOnce(function () {\n if (obj) {\n console.warn(msg, obj);\n }\n else {\n doOnce(function () { return console.warn(msg); }, key);\n }\n }, key);\n }\n var usingCSRM = this.gridOptionsWrapper.isRowModelDefault();\n if (usingCSRM && !ModuleRegistry.isRegistered(exports.ModuleNames.RowGroupingModule)) {\n var rowGroupingItems = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc'];\n rowGroupingItems.forEach(function (item) {\n if (exists(colDefAny[item])) {\n if (ModuleRegistry.isPackageBased()) {\n warnOnce(\"AG Grid: \" + item + \" is only valid in ag-grid-enterprise, your column definition should not have \" + item, 'ColumnRowGroupingMissing' + item);\n }\n else {\n warnOnce(\"AG Grid: \" + item + \" is only valid with AG Grid Enterprise Module \" + exports.ModuleNames.RowGroupingModule + \" - your column definition should not have \" + item, 'ColumnRowGroupingMissing' + item);\n }\n }\n });\n }\n if (!ModuleRegistry.isRegistered(exports.ModuleNames.RichSelectModule)) {\n if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agRichSelectCellEditor') {\n if (ModuleRegistry.isPackageBased()) {\n warnOnce(\"AG Grid: \" + this.colDef.cellEditor + \" can only be used with ag-grid-enterprise\", 'ColumnRichSelectMissing');\n }\n else {\n warnOnce(\"AG Grid: \" + this.colDef.cellEditor + \" can only be used with AG Grid Enterprise Module \" + exports.ModuleNames.RichSelectModule, 'ColumnRichSelectMissing');\n }\n }\n }\n if (!ModuleRegistry.isRegistered(exports.ModuleNames.DateTimeCellEditorModule)) {\n if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agDateTimeCellEditor') {\n if (ModuleRegistry.isPackageBased()) {\n warnOnce(\"AG Grid: \" + this.colDef.cellEditor + \" can only be used with ag-grid-enterprise\", 'ColumnDateTimeMissing');\n }\n else {\n warnOnce(\"AG Grid: \" + this.colDef.cellEditor + \" can only be used with AG Grid Enterprise Module \" + exports.ModuleNames.DateTimeCellEditorModule, 'ColumnDateTimeMissing');\n }\n }\n }\n if (this.gridOptionsWrapper.isTreeData()) {\n var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];\n itemsNotAllowedWithTreeData.forEach(function (item) {\n if (exists(colDefAny[item])) {\n warnOnce(\"AG Grid: \" + item + \" is not possible when doing tree data, your column definition should not have \" + item, 'TreeDataCannotRowGroup');\n }\n });\n }\n if (exists(this.colDef.width) && typeof this.colDef.width !== 'number') {\n warnOnce('AG Grid: colDef.width should be a number, not ' + typeof this.colDef.width, 'ColumnCheck_asdfawef');\n }\n };\n Column.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n Column.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n Column.prototype.createColumnFunctionCallbackParams = function (rowNode) {\n return {\n node: rowNode,\n data: rowNode.data,\n column: this,\n colDef: this.colDef,\n context: this.gridOptionsWrapper.getContext(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n };\n Column.prototype.isSuppressNavigable = function (rowNode) {\n // if boolean set, then just use it\n if (typeof this.colDef.suppressNavigable === 'boolean') {\n return this.colDef.suppressNavigable;\n }\n // if function, then call the function to find out\n if (typeof this.colDef.suppressNavigable === 'function') {\n var params = this.createColumnFunctionCallbackParams(rowNode);\n var userFunc = this.colDef.suppressNavigable;\n return userFunc(params);\n }\n return false;\n };\n Column.prototype.isCellEditable = function (rowNode) {\n // only allow editing of groups if the user has this option enabled\n if (rowNode.group && !this.gridOptionsWrapper.isEnableGroupEdit()) {\n return false;\n }\n return this.isColumnFunc(rowNode, this.colDef.editable);\n };\n Column.prototype.isRowDrag = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.rowDrag);\n };\n Column.prototype.isDndSource = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.dndSource);\n };\n Column.prototype.isCellCheckboxSelection = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);\n };\n Column.prototype.isSuppressPaste = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);\n };\n Column.prototype.isResizable = function () {\n return this.colDef.resizable === true;\n };\n Column.prototype.isColumnFunc = function (rowNode, value) {\n // if boolean set, then just use it\n if (typeof value === 'boolean') {\n return value;\n }\n // if function, then call the function to find out\n if (typeof value === 'function') {\n var params = this.createColumnFunctionCallbackParams(rowNode);\n var editableFunc = value;\n return editableFunc(params);\n }\n return false;\n };\n Column.prototype.setMoving = function (moving, source) {\n if (source === void 0) { source = \"api\"; }\n this.moving = moving;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MOVING_CHANGED, source));\n };\n Column.prototype.createColumnEvent = function (type, source) {\n return {\n api: this.gridApi,\n columnApi: this.columnApi,\n type: type,\n column: this,\n columns: [this],\n source: source\n };\n };\n Column.prototype.isMoving = function () {\n return this.moving;\n };\n Column.prototype.getSort = function () {\n return this.sort;\n };\n Column.prototype.setSort = function (sort, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.sort !== sort) {\n this.sort = sort;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_SORT_CHANGED, source));\n }\n };\n Column.prototype.setMenuVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.menuVisible !== visible) {\n this.menuVisible = visible;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_MENU_VISIBLE_CHANGED, source));\n }\n };\n Column.prototype.isMenuVisible = function () {\n return this.menuVisible;\n };\n Column.prototype.isSortAscending = function () {\n return this.sort === Constants.SORT_ASC;\n };\n Column.prototype.isSortDescending = function () {\n return this.sort === Constants.SORT_DESC;\n };\n Column.prototype.isSortNone = function () {\n return missing(this.sort);\n };\n Column.prototype.isSorting = function () {\n return exists(this.sort);\n };\n Column.prototype.getSortIndex = function () {\n return this.sortIndex;\n };\n Column.prototype.setSortIndex = function (sortOrder) {\n this.sortIndex = sortOrder;\n };\n Column.prototype.setAggFunc = function (aggFunc) {\n this.aggFunc = aggFunc;\n };\n Column.prototype.getAggFunc = function () {\n return this.aggFunc;\n };\n Column.prototype.getLeft = function () {\n return this.left;\n };\n Column.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n Column.prototype.getRight = function () {\n return this.left + this.actualWidth;\n };\n Column.prototype.setLeft = function (left, source) {\n if (source === void 0) { source = \"api\"; }\n this.oldLeft = this.left;\n if (this.left !== left) {\n this.left = left;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LEFT_CHANGED, source));\n }\n };\n Column.prototype.isFilterActive = function () {\n return this.filterActive;\n };\n // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event\n Column.prototype.setFilterActive = function (active, source, additionalEventAttributes) {\n if (source === void 0) { source = \"api\"; }\n if (this.filterActive !== active) {\n this.filterActive = active;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FILTER_ACTIVE_CHANGED, source));\n }\n var filterChangedEvent = this.createColumnEvent(Column.EVENT_FILTER_CHANGED, source);\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n this.eventService.dispatchEvent(filterChangedEvent);\n };\n Column.prototype.setPinned = function (pinned) {\n if (pinned === true || pinned === Constants.PINNED_LEFT) {\n this.pinned = Constants.PINNED_LEFT;\n }\n else if (pinned === Constants.PINNED_RIGHT) {\n this.pinned = Constants.PINNED_RIGHT;\n }\n else {\n this.pinned = null;\n }\n };\n Column.prototype.setFirstRightPinned = function (firstRightPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.firstRightPinned !== firstRightPinned) {\n this.firstRightPinned = firstRightPinned;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, source));\n }\n };\n Column.prototype.setLastLeftPinned = function (lastLeftPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.lastLeftPinned !== lastLeftPinned) {\n this.lastLeftPinned = lastLeftPinned;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_LAST_LEFT_PINNED_CHANGED, source));\n }\n };\n Column.prototype.isFirstRightPinned = function () {\n return this.firstRightPinned;\n };\n Column.prototype.isLastLeftPinned = function () {\n return this.lastLeftPinned;\n };\n Column.prototype.isPinned = function () {\n return this.pinned === Constants.PINNED_LEFT || this.pinned === Constants.PINNED_RIGHT;\n };\n Column.prototype.isPinnedLeft = function () {\n return this.pinned === Constants.PINNED_LEFT;\n };\n Column.prototype.isPinnedRight = function () {\n return this.pinned === Constants.PINNED_RIGHT;\n };\n Column.prototype.getPinned = function () {\n return this.pinned;\n };\n Column.prototype.setVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n var newValue = visible === true;\n if (this.visible !== newValue) {\n this.visible = newValue;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VISIBLE_CHANGED, source));\n }\n };\n Column.prototype.isVisible = function () {\n return this.visible;\n };\n Column.prototype.getColDef = function () {\n return this.colDef;\n };\n Column.prototype.getColumnGroupShow = function () {\n return this.colDef.columnGroupShow;\n };\n Column.prototype.getColId = function () {\n return this.colId;\n };\n Column.prototype.getId = function () {\n return this.getColId();\n };\n Column.prototype.getDefinition = function () {\n return this.colDef;\n };\n Column.prototype.getActualWidth = function () {\n return this.actualWidth;\n };\n Column.prototype.createBaseColDefParams = function (rowNode) {\n var params = {\n node: rowNode,\n data: rowNode.data,\n colDef: this.colDef,\n column: this,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n return params;\n };\n Column.prototype.getColSpan = function (rowNode) {\n if (missing(this.colDef.colSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var colSpan = this.colDef.colSpan(params);\n // colSpan must be number equal to or greater than 1\n return Math.max(colSpan, 1);\n };\n Column.prototype.getRowSpan = function (rowNode) {\n if (missing(this.colDef.rowSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var rowSpan = this.colDef.rowSpan(params);\n // rowSpan must be number equal to or greater than 1\n return Math.max(rowSpan, 1);\n };\n Column.prototype.setActualWidth = function (actualWidth, source, silent) {\n if (source === void 0) { source = \"api\"; }\n if (silent === void 0) { silent = false; }\n if (this.minWidth != null) {\n actualWidth = Math.max(actualWidth, this.minWidth);\n }\n if (this.maxWidth != null) {\n actualWidth = Math.min(actualWidth, this.maxWidth);\n }\n if (this.actualWidth !== actualWidth) {\n // disable flex for this column if it was manually resized.\n this.actualWidth = actualWidth;\n if (this.flex && source !== 'flex' && source !== 'gridInitializing') {\n this.flex = null;\n }\n if (!silent) {\n this.fireColumnWidthChangedEvent(source);\n }\n }\n };\n Column.prototype.fireColumnWidthChangedEvent = function (source) {\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_WIDTH_CHANGED, source));\n };\n Column.prototype.isGreaterThanMax = function (width) {\n if (this.maxWidth != null) {\n return width > this.maxWidth;\n }\n return false;\n };\n Column.prototype.getMinWidth = function () {\n return this.minWidth;\n };\n Column.prototype.getMaxWidth = function () {\n return this.maxWidth;\n };\n Column.prototype.getFlex = function () {\n return this.flex || 0;\n };\n // this method should only be used by the columnController to\n // change flex when required by the setColumnState method.\n Column.prototype.setFlex = function (flex) {\n if (this.flex !== flex) {\n this.flex = flex;\n }\n };\n Column.prototype.setMinimum = function (source) {\n if (source === void 0) { source = \"api\"; }\n if (exists(this.minWidth)) {\n this.setActualWidth(this.minWidth, source);\n }\n };\n Column.prototype.setRowGroupActive = function (rowGroup, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.rowGroupActive !== rowGroup) {\n this.rowGroupActive = rowGroup;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_ROW_GROUP_CHANGED, source));\n }\n };\n Column.prototype.isRowGroupActive = function () {\n return this.rowGroupActive;\n };\n Column.prototype.setPivotActive = function (pivot, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.pivotActive !== pivot) {\n this.pivotActive = pivot;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_PIVOT_CHANGED, source));\n }\n };\n Column.prototype.isPivotActive = function () {\n return this.pivotActive;\n };\n Column.prototype.isAnyFunctionActive = function () {\n return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();\n };\n Column.prototype.isAnyFunctionAllowed = function () {\n return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();\n };\n Column.prototype.setValueActive = function (value, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.aggregationActive !== value) {\n this.aggregationActive = value;\n this.eventService.dispatchEvent(this.createColumnEvent(Column.EVENT_VALUE_CHANGED, source));\n }\n };\n Column.prototype.isValueActive = function () {\n return this.aggregationActive;\n };\n Column.prototype.isAllowPivot = function () {\n return this.colDef.enablePivot === true;\n };\n Column.prototype.isAllowValue = function () {\n return this.colDef.enableValue === true;\n };\n Column.prototype.isAllowRowGroup = function () {\n return this.colDef.enableRowGroup === true;\n };\n Column.prototype.getMenuTabs = function (defaultValues) {\n var menuTabs = this.getColDef().menuTabs;\n if (menuTabs == null) {\n menuTabs = defaultValues;\n }\n return menuTabs;\n };\n // this used to be needed, as previous version of ag-grid had lockPosition as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockPosition = function () {\n console.warn('AG Grid: since v21, col.isLockPosition() should not be used, please use col.getColDef().lockPosition instead.');\n return this.colDef ? !!this.colDef.lockPosition : false;\n };\n // this used to be needed, as previous version of ag-grid had lockVisible as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockVisible = function () {\n console.warn('AG Grid: since v21, col.isLockVisible() should not be used, please use col.getColDef().lockVisible instead.');\n return this.colDef ? !!this.colDef.lockVisible : false;\n };\n // this used to be needed, as previous version of ag-grid had lockPinned as column state,\n // so couldn't depend on colDef version.\n Column.prototype.isLockPinned = function () {\n console.warn('AG Grid: since v21, col.isLockPinned() should not be used, please use col.getColDef().lockPinned instead.');\n return this.colDef ? !!this.colDef.lockPinned : false;\n };\n // + renderedHeaderCell - for making header cell transparent when moving\n Column.EVENT_MOVING_CHANGED = 'movingChanged';\n // + renderedCell - changing left position\n Column.EVENT_LEFT_CHANGED = 'leftChanged';\n // + renderedCell - changing width\n Column.EVENT_WIDTH_CHANGED = 'widthChanged';\n // + renderedCell - for changing pinned classes\n Column.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';\n Column.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';\n // + renderedColumn - for changing visibility icon\n Column.EVENT_VISIBLE_CHANGED = 'visibleChanged';\n // + every time the filter changes, used in the floating filters\n Column.EVENT_FILTER_CHANGED = 'filterChanged';\n // + renderedHeaderCell - marks the header with filter icon\n Column.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';\n // + renderedHeaderCell - marks the header with sort icon\n Column.EVENT_SORT_CHANGED = 'sortChanged';\n Column.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';\n // + toolpanel, for gui updates\n Column.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n // + toolpanel, for gui updates\n Column.EVENT_PIVOT_CHANGED = 'columnPivotChanged';\n // + toolpanel, for gui updates\n Column.EVENT_VALUE_CHANGED = 'columnValueChanged';\n __decorate$1([\n Autowired('gridOptionsWrapper')\n ], Column.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1([\n Autowired('columnUtils')\n ], Column.prototype, \"columnUtils\", void 0);\n __decorate$1([\n Autowired('columnApi')\n ], Column.prototype, \"columnApi\", void 0);\n __decorate$1([\n Autowired('gridApi')\n ], Column.prototype, \"gridApi\", void 0);\n __decorate$1([\n Autowired('context')\n ], Column.prototype, \"context\", void 0);\n __decorate$1([\n PostConstruct\n ], Column.prototype, \"initialise\", null);\n return Column;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$2 = (undefined && undefined.__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 ColumnGroup = /** @class */ (function () {\n function ColumnGroup(originalColumnGroup, groupId, instanceId, pinned) {\n // depends on the open/closed state of the group, only displaying columns are stored here\n this.displayedChildren = [];\n this.localEventService = new EventService();\n this.groupId = groupId;\n this.instanceId = instanceId;\n this.originalColumnGroup = originalColumnGroup;\n this.pinned = pinned;\n }\n // this is static, a it is used outside of this class\n ColumnGroup.createUniqueId = function (groupId, instanceId) {\n return groupId + '_' + instanceId;\n };\n // as the user is adding and removing columns, the groups are recalculated.\n // this reset clears out all children, ready for children to be added again\n ColumnGroup.prototype.reset = function () {\n this.parent = null;\n this.children = null;\n this.displayedChildren = null;\n };\n ColumnGroup.prototype.getParent = function () {\n return this.parent;\n };\n ColumnGroup.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n ColumnGroup.prototype.getUniqueId = function () {\n return ColumnGroup.createUniqueId(this.groupId, this.instanceId);\n };\n ColumnGroup.prototype.isEmptyGroup = function () {\n return this.displayedChildren.length === 0;\n };\n ColumnGroup.prototype.isMoving = function () {\n var allLeafColumns = this.getOriginalColumnGroup().getLeafColumns();\n if (!allLeafColumns || allLeafColumns.length === 0) {\n return false;\n }\n return allLeafColumns.every(function (col) { return col.isMoving(); });\n };\n ColumnGroup.prototype.checkLeft = function () {\n // first get all children to setLeft, as it impacts our decision below\n this.displayedChildren.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n child.checkLeft();\n }\n });\n // set our left based on first displayed column\n if (this.displayedChildren.length > 0) {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n var lastChild = last(this.displayedChildren);\n var lastChildLeft = lastChild.getLeft();\n this.setLeft(lastChildLeft);\n }\n else {\n var firstChildLeft = this.displayedChildren[0].getLeft();\n this.setLeft(firstChildLeft);\n }\n }\n else {\n // this should never happen, as if we have no displayed columns, then\n // this groups should not even exist.\n this.setLeft(null);\n }\n };\n ColumnGroup.prototype.getLeft = function () {\n return this.left;\n };\n ColumnGroup.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n ColumnGroup.prototype.setLeft = function (left) {\n this.oldLeft = left;\n if (this.left !== left) {\n this.left = left;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));\n }\n };\n ColumnGroup.prototype.getPinned = function () {\n return this.pinned;\n };\n ColumnGroup.prototype.createAgEvent = function (type) {\n return { type: type };\n };\n ColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n ColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n ColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n ColumnGroup.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n ColumnGroup.prototype.isChildInThisGroupDeepSearch = function (wantedChild) {\n var result = false;\n this.children.forEach(function (foundChild) {\n if (wantedChild === foundChild) {\n result = true;\n }\n if (foundChild instanceof ColumnGroup) {\n if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {\n result = true;\n }\n }\n });\n return result;\n };\n ColumnGroup.prototype.getActualWidth = function () {\n var groupActualWidth = 0;\n if (this.displayedChildren) {\n this.displayedChildren.forEach(function (child) {\n groupActualWidth += child.getActualWidth();\n });\n }\n return groupActualWidth;\n };\n ColumnGroup.prototype.isResizable = function () {\n if (!this.displayedChildren) {\n return false;\n }\n // if at least one child is resizable, then the group is resizable\n var result = false;\n this.displayedChildren.forEach(function (child) {\n if (child.isResizable()) {\n result = true;\n }\n });\n return result;\n };\n ColumnGroup.prototype.getMinWidth = function () {\n var result = 0;\n this.displayedChildren.forEach(function (groupChild) {\n result += groupChild.getMinWidth() || 0;\n });\n return result;\n };\n ColumnGroup.prototype.addChild = function (child) {\n if (!this.children) {\n this.children = [];\n }\n this.children.push(child);\n };\n ColumnGroup.prototype.getDisplayedChildren = function () {\n return this.displayedChildren;\n };\n ColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n ColumnGroup.prototype.getDisplayedLeafColumns = function () {\n var result = [];\n this.addDisplayedLeafColumns(result);\n return result;\n };\n // why two methods here doing the same thing?\n ColumnGroup.prototype.getDefinition = function () {\n return this.originalColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.getColGroupDef = function () {\n return this.originalColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.isPadding = function () {\n return this.originalColumnGroup.isPadding();\n };\n ColumnGroup.prototype.isExpandable = function () {\n return this.originalColumnGroup.isExpandable();\n };\n ColumnGroup.prototype.isExpanded = function () {\n return this.originalColumnGroup.isExpanded();\n };\n ColumnGroup.prototype.setExpanded = function (expanded) {\n this.originalColumnGroup.setExpanded(expanded);\n };\n ColumnGroup.prototype.addDisplayedLeafColumns = function (leafColumns) {\n this.displayedChildren.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addDisplayedLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n this.children.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n ColumnGroup.prototype.getColumnGroupShow = function () {\n return this.originalColumnGroup.getColumnGroupShow();\n };\n ColumnGroup.prototype.getOriginalColumnGroup = function () {\n return this.originalColumnGroup;\n };\n ColumnGroup.prototype.getPaddingLevel = function () {\n var parent = this.getParent();\n if (!this.isPadding() || !parent || !parent.isPadding()) {\n return 0;\n }\n return 1 + parent.getPaddingLevel();\n };\n ColumnGroup.prototype.calculateDisplayedColumns = function () {\n var _this = this;\n // clear out last time we calculated\n this.displayedChildren = [];\n // find the column group that is controlling expandable. this is relevant when we have padding (empty)\n // groups, where the expandable is actually the first parent that is not a padding group.\n var parentWithExpansion = this;\n while (parentWithExpansion != null && parentWithExpansion.isPadding()) {\n parentWithExpansion = parentWithExpansion.getParent();\n }\n var isExpandable = parentWithExpansion ? parentWithExpansion.originalColumnGroup.isExpandable() : false;\n // it not expandable, everything is visible\n if (!isExpandable) {\n this.displayedChildren = this.children;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n return;\n }\n // Add cols based on columnGroupShow\n // Note - the below also adds padding groups, these are always added because they never have\n // colDef.columnGroupShow set.\n this.children.forEach(function (child) {\n // never add empty groups\n var emptyGroup = child instanceof ColumnGroup && (!child.displayedChildren || !child.displayedChildren.length);\n if (emptyGroup) {\n return;\n }\n var headerGroupShow = child.getColumnGroupShow();\n switch (headerGroupShow) {\n case ColumnGroup.HEADER_GROUP_SHOW_OPEN:\n // when set to open, only show col if group is open\n if (parentWithExpansion.originalColumnGroup.isExpanded()) {\n _this.displayedChildren.push(child);\n }\n break;\n case ColumnGroup.HEADER_GROUP_SHOW_CLOSED:\n // when set to open, only show col if group is open\n if (!parentWithExpansion.originalColumnGroup.isExpanded()) {\n _this.displayedChildren.push(child);\n }\n break;\n default:\n _this.displayedChildren.push(child);\n break;\n }\n });\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n };\n ColumnGroup.HEADER_GROUP_SHOW_OPEN = 'open';\n ColumnGroup.HEADER_GROUP_SHOW_CLOSED = 'closed';\n ColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';\n ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';\n __decorate$2([\n Autowired('gridOptionsWrapper')\n ], ColumnGroup.prototype, \"gridOptionsWrapper\", void 0);\n return ColumnGroup;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar OriginalColumnGroup = /** @class */ (function () {\n function OriginalColumnGroup(colGroupDef, groupId, padding, level) {\n this.localEventService = new EventService();\n this.expandable = false;\n this.colGroupDef = colGroupDef;\n this.groupId = groupId;\n this.expanded = !!colGroupDef && !!colGroupDef.openByDefault;\n this.padding = padding;\n this.level = level;\n }\n OriginalColumnGroup.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n OriginalColumnGroup.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n OriginalColumnGroup.prototype.getLevel = function () {\n return this.level;\n };\n OriginalColumnGroup.prototype.isVisible = function () {\n // return true if at least one child is visible\n if (this.children) {\n return this.children.some(function (child) { return child.isVisible(); });\n }\n return false;\n };\n OriginalColumnGroup.prototype.isPadding = function () {\n return this.padding;\n };\n OriginalColumnGroup.prototype.setExpanded = function (expanded) {\n this.expanded = expanded === undefined ? false : expanded;\n var event = {\n type: OriginalColumnGroup.EVENT_EXPANDED_CHANGED\n };\n this.localEventService.dispatchEvent(event);\n };\n OriginalColumnGroup.prototype.isExpandable = function () {\n return this.expandable;\n };\n OriginalColumnGroup.prototype.isExpanded = function () {\n return this.expanded;\n };\n OriginalColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n OriginalColumnGroup.prototype.getId = function () {\n return this.getGroupId();\n };\n OriginalColumnGroup.prototype.setChildren = function (children) {\n this.children = children;\n };\n OriginalColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n OriginalColumnGroup.prototype.getColGroupDef = function () {\n return this.colGroupDef;\n };\n OriginalColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n OriginalColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n if (!this.children) {\n return;\n }\n this.children.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof OriginalColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n OriginalColumnGroup.prototype.getColumnGroupShow = function () {\n var colGroupDef = this.colGroupDef;\n if (!colGroupDef) {\n return;\n }\n return colGroupDef.columnGroupShow;\n };\n // need to check that this group has at least one col showing when both expanded and contracted.\n // if not, then we don't allow expanding and contracting on this group\n OriginalColumnGroup.prototype.setupExpandable = function () {\n var _this = this;\n this.setExpandable();\n // note - we should be removing this event listener\n this.getLeafColumns().forEach(function (col) { return col.addEventListener(Column.EVENT_VISIBLE_CHANGED, _this.onColumnVisibilityChanged.bind(_this)); });\n };\n OriginalColumnGroup.prototype.setExpandable = function () {\n if (this.isPadding()) {\n return;\n }\n // want to make sure the group doesn't disappear when it's open\n var atLeastOneShowingWhenOpen = false;\n // want to make sure the group doesn't disappear when it's closed\n var atLeastOneShowingWhenClosed = false;\n // want to make sure the group has something to show / hide\n var atLeastOneChangeable = false;\n var children = this.findChildrenRemovingPadding();\n for (var i = 0, j = children.length; i < j; i++) {\n var abstractColumn = children[i];\n if (!abstractColumn.isVisible()) {\n continue;\n }\n // if the abstractColumn is a grid generated group, there will be no colDef\n var headerGroupShow = abstractColumn.getColumnGroupShow();\n if (headerGroupShow === ColumnGroup.HEADER_GROUP_SHOW_OPEN) {\n atLeastOneShowingWhenOpen = true;\n atLeastOneChangeable = true;\n }\n else if (headerGroupShow === ColumnGroup.HEADER_GROUP_SHOW_CLOSED) {\n atLeastOneShowingWhenClosed = true;\n atLeastOneChangeable = true;\n }\n else {\n atLeastOneShowingWhenOpen = true;\n atLeastOneShowingWhenClosed = true;\n }\n }\n var expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;\n if (this.expandable !== expandable) {\n this.expandable = expandable;\n var event_1 = {\n type: OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED\n };\n this.localEventService.dispatchEvent(event_1);\n }\n };\n OriginalColumnGroup.prototype.findChildrenRemovingPadding = function () {\n var res = [];\n var process = function (items) {\n items.forEach(function (item) {\n // if padding, we add this children instead of the padding\n var skipBecausePadding = item instanceof OriginalColumnGroup && item.isPadding();\n if (skipBecausePadding) {\n process(item.children);\n }\n else {\n res.push(item);\n }\n });\n };\n process(this.children);\n return res;\n };\n OriginalColumnGroup.prototype.onColumnVisibilityChanged = function () {\n this.setExpandable();\n };\n OriginalColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n OriginalColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n OriginalColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';\n return OriginalColumnGroup;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar DefaultColumnTypes = {\n numericColumn: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n },\n rightAligned: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n }\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';\nvar PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];\nvar supports = {};\n/**\n * a user once raised an issue - they said that when you opened a popup (eg context menu)\n * and then clicked on a selection checkbox, the popup wasn't closed. this is because the\n * popup listens for clicks on the body, however ag-grid WAS stopping propagation on the\n * checkbox clicks (so the rows didn't pick them up as row selection selection clicks).\n * to get around this, we have a pattern to stop propagation for the purposes of AG Grid,\n * but we still let the event pass back to the body.\n * @param {Event} event\n */\nfunction stopPropagationForAgGrid(event) {\n event[AG_GRID_STOP_PROPAGATION] = true;\n}\nfunction isStopPropagationForAgGrid(event) {\n return event[AG_GRID_STOP_PROPAGATION] === true;\n}\nvar isEventSupported = (function () {\n var tags = {\n select: 'input',\n change: 'input',\n submit: 'form',\n reset: 'form',\n error: 'img',\n load: 'img',\n abort: 'img'\n };\n var eventChecker = function (eventName) {\n if (typeof supports[eventName] === 'boolean') {\n return supports[eventName];\n }\n var el = document.createElement(tags[eventName] || 'div');\n eventName = 'on' + eventName;\n var isSupported = (eventName in el);\n if (!isSupported) {\n el.setAttribute(eventName, 'return;');\n isSupported = typeof el[eventName] == 'function';\n }\n return supports[eventName] = isSupported;\n };\n return eventChecker;\n})();\nfunction getComponentForEvent(gridOptionsWrapper, event, type) {\n var sourceElement = getTarget(event);\n while (sourceElement) {\n var renderedComp = gridOptionsWrapper.getDomData(sourceElement, type);\n if (renderedComp) {\n return renderedComp;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n}\n/**\n * @deprecated\n * Adds all type of change listeners to an element, intended to be a text field\n * @param {HTMLElement} element\n * @param {EventListener} listener\n */\nfunction addChangeListener(element, listener) {\n element.addEventListener('changed', listener);\n element.addEventListener('paste', listener);\n element.addEventListener('input', listener);\n // IE doesn't fire changed for special keys (eg delete, backspace), so need to\n // listen for this further ones\n element.addEventListener('keydown', listener);\n element.addEventListener('keyup', listener);\n}\n/**\n * srcElement is only available in IE. In all other browsers it is target\n * http://stackoverflow.com/questions/5301643/how-can-i-make-event-srcelement-work-in-firefox-and-what-does-it-mean\n * @param {Event} event\n * @returns {Element}\n */\nfunction getTarget(event) {\n var eventNoType = event;\n return eventNoType.target || eventNoType.srcElement;\n}\nfunction isElementInEventPath(element, event) {\n if (!event || !element) {\n return false;\n }\n return getEventPath(event).indexOf(element) >= 0;\n}\nfunction createEventPath(event) {\n var res = [];\n var pointer = getTarget(event);\n while (pointer) {\n res.push(pointer);\n pointer = pointer.parentElement;\n }\n return res;\n}\n/**\n * firefox doesn't have event.path set, or any alternative to it, so we hack\n * it in. this is needed as it's to late to work out the path when the item is\n * removed from the dom. used by MouseEventService, where it works out if a click\n * was from the current grid, or a detail grid (master / detail).\n * @param {Event} event\n */\nfunction addAgGridEventPath(event) {\n event.__agGridEventPath = getEventPath(event);\n}\n/**\n * Gets the path for an Event.\n * https://stackoverflow.com/questions/39245488/event-path-undefined-with-firefox-and-vue-js\n * https://developer.mozilla.org/en-US/docs/Web/API/Event\n * @param {Event} event\n * @returns {EventTarget[]}\n */\nfunction getEventPath(event) {\n var eventNoType = event;\n if (eventNoType.deepPath) {\n // IE supports deep path\n return eventNoType.deepPath();\n }\n if (eventNoType.path) {\n // Chrome supports path\n return eventNoType.path;\n }\n if (eventNoType.composedPath) {\n // Firefox supports composePath\n return eventNoType.composedPath();\n }\n if (eventNoType.__agGridEventPath) {\n // Firefox supports composePath\n return eventNoType.__agGridEventPath;\n }\n // and finally, if none of the above worked,\n // we create the path ourselves\n return createEventPath(event);\n}\nfunction addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {\n var isPassive = includes(PASSIVE_EVENTS, event);\n var options = isPassive ? { passive: true } : undefined;\n // this check is here for certain scenarios where I believe the user must be destroying\n // the grid somehow but continuing for it to be used\n if (frameworkOverrides && frameworkOverrides.addEventListener) {\n frameworkOverrides.addEventListener(eElement, event, listener, options);\n }\n}\n\nvar EventUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n stopPropagationForAgGrid: stopPropagationForAgGrid,\n isStopPropagationForAgGrid: isStopPropagationForAgGrid,\n isEventSupported: isEventSupported,\n getComponentForEvent: getComponentForEvent,\n addChangeListener: addChangeListener,\n getTarget: getTarget,\n isElementInEventPath: isElementInEventPath,\n createEventPath: createEventPath,\n addAgGridEventPath: addAgGridEventPath,\n getEventPath: getEventPath,\n addSafePassiveEventListener: addSafePassiveEventListener\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$3 = (undefined && undefined.__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 BeanStub = /** @class */ (function () {\n function BeanStub() {\n var _this = this;\n this.destroyFunctions = [];\n this.destroyed = false;\n // for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive\n // prevents vue from creating proxies for created objects and prevents identity related issues\n this.__v_skip = true;\n this.getContext = function () { return _this.context; };\n this.isAlive = function () { return !_this.destroyed; };\n }\n // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are\n // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed\n // points to a bean or component that was not properly disposed of.\n // constructor() {\n // setTimeout(()=> {\n // if (this.isAlive()) {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n // console.log('is alive ' + beanName);\n // }\n // }, 5000);\n // }\n // CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean\n BeanStub.prototype.getFrameworkOverrides = function () {\n return this.frameworkOverrides;\n };\n BeanStub.prototype.destroy = function () {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n this.destroyFunctions.forEach(function (func) { return func(); });\n this.destroyFunctions.length = 0;\n this.destroyed = true;\n this.dispatchEvent({ type: BeanStub.EVENT_DESTROYED });\n };\n BeanStub.prototype.addEventListener = function (eventType, listener) {\n if (!this.localEventService) {\n this.localEventService = new EventService();\n }\n this.localEventService.addEventListener(eventType, listener);\n };\n BeanStub.prototype.removeEventListener = function (eventType, listener) {\n if (this.localEventService) {\n this.localEventService.removeEventListener(eventType, listener);\n }\n };\n BeanStub.prototype.dispatchEventAsync = function (event) {\n var _this = this;\n window.setTimeout(function () { return _this.dispatchEvent(event); }, 0);\n };\n BeanStub.prototype.dispatchEvent = function (event) {\n if (this.localEventService) {\n this.localEventService.dispatchEvent(event);\n }\n };\n BeanStub.prototype.addManagedListener = function (object, event, listener) {\n var _this = this;\n if (this.destroyed) {\n return;\n }\n if (object instanceof HTMLElement) {\n addSafePassiveEventListener(this.getFrameworkOverrides(), object, event, listener);\n }\n else {\n object.addEventListener(event, listener);\n }\n var destroyFunc = function () {\n object.removeEventListener(event, listener);\n _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });\n return null;\n };\n this.destroyFunctions.push(destroyFunc);\n return destroyFunc;\n };\n BeanStub.prototype.addDestroyFunc = function (func) {\n // if we are already destroyed, we execute the func now\n if (this.isAlive()) {\n this.destroyFunctions.push(func);\n }\n else {\n func();\n }\n };\n BeanStub.prototype.createManagedBean = function (bean, context) {\n var res = this.createBean(bean, context);\n this.addDestroyFunc(this.destroyBean.bind(this, bean, context));\n return res;\n };\n BeanStub.prototype.createBean = function (bean, context, afterPreCreateCallback) {\n return (context || this.getContext()).createBean(bean, afterPreCreateCallback);\n };\n BeanStub.prototype.destroyBean = function (bean, context) {\n return (context || this.getContext()).destroyBean(bean);\n };\n BeanStub.prototype.destroyBeans = function (beans, context) {\n var _this = this;\n if (beans) {\n forEach(beans, function (bean) { return _this.destroyBean(bean, context); });\n }\n return [];\n };\n BeanStub.EVENT_DESTROYED = 'destroyed';\n __decorate$3([\n Autowired('frameworkOverrides')\n ], BeanStub.prototype, \"frameworkOverrides\", void 0);\n __decorate$3([\n Autowired('context')\n ], BeanStub.prototype, \"context\", void 0);\n __decorate$3([\n Autowired('eventService')\n ], BeanStub.prototype, \"eventService\", void 0);\n __decorate$3([\n Autowired('gridOptionsWrapper')\n ], BeanStub.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$3([\n PreDestroy\n ], BeanStub.prototype, \"destroy\", null);\n return BeanStub;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends = (undefined && undefined.__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$4 = (undefined && undefined.__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 __param$1 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n// takes ColDefs and ColGroupDefs and turns them into Columns and OriginalGroups\nvar ColumnFactory = /** @class */ (function (_super) {\n __extends(ColumnFactory, _super);\n function ColumnFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnFactory.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ColumnFactory');\n };\n ColumnFactory.prototype.createColumnTree = function (defs, primaryColumns, existingTree) {\n // column key creator dishes out unique column id's in a deterministic way,\n // so if we have two grids (that could be master/slave) with same column definitions,\n // then this ensures the two grids use identical id's.\n var columnKeyCreator = new ColumnKeyCreator();\n var _a = this.extractExistingTreeData(existingTree), existingCols = _a.existingCols, existingGroups = _a.existingGroups, existingColKeys = _a.existingColKeys;\n columnKeyCreator.addExistingKeys(existingColKeys);\n // create am unbalanced tree that maps the provided definitions\n var unbalancedTree = this.recursivelyCreateColumns(defs, 0, primaryColumns, existingCols, columnKeyCreator, existingGroups);\n var treeDept = this.findMaxDept(unbalancedTree, 0);\n this.logger.log('Number of levels for grouped columns is ' + treeDept);\n var columnTree = this.balanceColumnTree(unbalancedTree, 0, treeDept, columnKeyCreator);\n var deptFirstCallback = function (child, parent) {\n if (child instanceof OriginalColumnGroup) {\n child.setupExpandable();\n }\n // we set the original parents at the end, rather than when we go along, as balancing the tree\n // adds extra levels into the tree. so we can only set parents when balancing is done.\n child.setOriginalParent(parent);\n };\n this.columnUtils.depthFirstOriginalTreeSearch(null, columnTree, deptFirstCallback);\n return {\n columnTree: columnTree,\n treeDept: treeDept\n };\n };\n ColumnFactory.prototype.extractExistingTreeData = function (existingTree) {\n var existingCols = [];\n var existingGroups = [];\n var existingColKeys = [];\n if (existingTree) {\n this.columnUtils.depthFirstOriginalTreeSearch(null, existingTree, function (item) {\n if (item instanceof OriginalColumnGroup) {\n var group = item;\n existingGroups.push(group);\n }\n else {\n var col = item;\n existingColKeys.push(col.getId());\n existingCols.push(col);\n }\n });\n }\n return { existingCols: existingCols, existingGroups: existingGroups, existingColKeys: existingColKeys };\n };\n ColumnFactory.prototype.createForAutoGroups = function (autoGroupCols, gridBalancedTree) {\n var _this = this;\n var autoColBalancedTree = [];\n autoGroupCols.forEach(function (col) {\n var fakeTreeItem = _this.createAutoGroupTreeItem(gridBalancedTree, col);\n autoColBalancedTree.push(fakeTreeItem);\n });\n return autoColBalancedTree;\n };\n ColumnFactory.prototype.createAutoGroupTreeItem = function (balancedColumnTree, column) {\n var dept = this.findDepth(balancedColumnTree);\n // at the end, this will be the top of the tree item.\n var nextChild = column;\n for (var i = dept - 1; i >= 0; i--) {\n var autoGroup = new OriginalColumnGroup(null, \"FAKE_PATH_\" + column.getId() + \"}_\" + i, true, i);\n this.context.createBean(autoGroup);\n autoGroup.setChildren([nextChild]);\n nextChild.setOriginalParent(autoGroup);\n nextChild = autoGroup;\n }\n // at this point, the nextChild is the top most item in the tree\n return nextChild;\n };\n ColumnFactory.prototype.findDepth = function (balancedColumnTree) {\n var dept = 0;\n var pointer = balancedColumnTree;\n while (pointer && pointer[0] && pointer[0] instanceof OriginalColumnGroup) {\n dept++;\n pointer = pointer[0].getChildren();\n }\n return dept;\n };\n ColumnFactory.prototype.balanceColumnTree = function (unbalancedTree, currentDept, columnDept, columnKeyCreator) {\n var result = [];\n // go through each child, for groups, recurse a level deeper,\n // for columns we need to pad\n for (var i = 0; i < unbalancedTree.length; i++) {\n var child = unbalancedTree[i];\n if (child instanceof OriginalColumnGroup) {\n // child is a group, all we do is go to the next level of recursion\n var originalGroup = child;\n var newChildren = this.balanceColumnTree(originalGroup.getChildren(), currentDept + 1, columnDept, columnKeyCreator);\n originalGroup.setChildren(newChildren);\n result.push(originalGroup);\n }\n else {\n // child is a column - so here we add in the padded column groups if needed\n var firstPaddedGroup = void 0;\n var currentPaddedGroup = void 0;\n // this for loop will NOT run any loops if no padded column groups are needed\n for (var j = columnDept - 1; j >= currentDept; j--) {\n var newColId = columnKeyCreator.getUniqueKey(null, null);\n var colGroupDefMerged = this.createMergedColGroupDef(null);\n var paddedGroup = new OriginalColumnGroup(colGroupDefMerged, newColId, true, currentDept);\n this.context.createBean(paddedGroup);\n if (currentPaddedGroup) {\n currentPaddedGroup.setChildren([paddedGroup]);\n }\n currentPaddedGroup = paddedGroup;\n if (!firstPaddedGroup) {\n firstPaddedGroup = currentPaddedGroup;\n }\n }\n // likewise this if statement will not run if no padded groups\n if (firstPaddedGroup && currentPaddedGroup) {\n result.push(firstPaddedGroup);\n var hasGroups = unbalancedTree.some(function (leaf) { return leaf instanceof OriginalColumnGroup; });\n if (hasGroups) {\n currentPaddedGroup.setChildren([child]);\n continue;\n }\n else {\n currentPaddedGroup.setChildren(unbalancedTree);\n break;\n }\n }\n result.push(child);\n }\n }\n return result;\n };\n ColumnFactory.prototype.findMaxDept = function (treeChildren, dept) {\n var maxDeptThisLevel = dept;\n for (var i = 0; i < treeChildren.length; i++) {\n var abstractColumn = treeChildren[i];\n if (abstractColumn instanceof OriginalColumnGroup) {\n var originalGroup = abstractColumn;\n var newDept = this.findMaxDept(originalGroup.getChildren(), dept + 1);\n if (maxDeptThisLevel < newDept) {\n maxDeptThisLevel = newDept;\n }\n }\n }\n return maxDeptThisLevel;\n };\n ColumnFactory.prototype.recursivelyCreateColumns = function (defs, level, primaryColumns, existingColsCopy, columnKeyCreator, existingGroups) {\n var _this = this;\n var result = [];\n if (!defs) {\n return result;\n }\n defs.forEach(function (def) {\n var newGroupOrColumn;\n if (_this.isColumnGroup(def)) {\n newGroupOrColumn = _this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups);\n }\n else {\n newGroupOrColumn = _this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator);\n }\n result.push(newGroupOrColumn);\n });\n return result;\n };\n ColumnFactory.prototype.createColumnGroup = function (primaryColumns, colGroupDef, level, existingColumns, columnKeyCreator, existingGroups) {\n var colGroupDefMerged = this.createMergedColGroupDef(colGroupDef);\n var groupId = columnKeyCreator.getUniqueKey(colGroupDefMerged.groupId || null, null);\n var originalGroup = new OriginalColumnGroup(colGroupDefMerged, groupId, false, level);\n this.context.createBean(originalGroup);\n var existingGroup = this.findExistingGroup(colGroupDef, existingGroups);\n if (existingGroup && existingGroup.isExpanded()) {\n originalGroup.setExpanded(true);\n }\n var children = this.recursivelyCreateColumns(colGroupDefMerged.children, level + 1, primaryColumns, existingColumns, columnKeyCreator, existingGroups);\n originalGroup.setChildren(children);\n return originalGroup;\n };\n ColumnFactory.prototype.createMergedColGroupDef = function (colGroupDef) {\n var colGroupDefMerged = {};\n assign(colGroupDefMerged, this.gridOptionsWrapper.getDefaultColGroupDef());\n assign(colGroupDefMerged, colGroupDef);\n this.checkForDeprecatedItems(colGroupDefMerged);\n return colGroupDefMerged;\n };\n ColumnFactory.prototype.createColumn = function (primaryColumns, colDef, existingColsCopy, columnKeyCreator) {\n var colDefMerged = this.mergeColDefs(colDef);\n this.checkForDeprecatedItems(colDefMerged);\n // see if column already exists\n var column = this.findExistingColumn(colDef, existingColsCopy);\n if (!column) {\n // no existing column, need to create one\n var colId = columnKeyCreator.getUniqueKey(colDefMerged.colId, colDefMerged.field);\n column = new Column(colDefMerged, colDef, colId, primaryColumns);\n this.context.createBean(column);\n }\n else {\n column.setColDef(colDefMerged, colDef);\n this.applyColumnState(column, colDefMerged);\n }\n return column;\n };\n ColumnFactory.prototype.applyColumnState = function (column, colDef) {\n // flex\n var flex = attrToNumber(colDef.flex);\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n var noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n var width = attrToNumber(colDef.width);\n if (width != null) {\n column.setActualWidth(width);\n }\n else {\n // otherwise set the width again, in case min or max width has changed,\n // and width needs to be adjusted.\n var widthBeforeUpdate = column.getActualWidth();\n column.setActualWidth(widthBeforeUpdate);\n }\n }\n // sort - anything but undefined will set sort, thus null or empty string will clear the sort\n if (colDef.sort !== undefined) {\n if (colDef.sort == Constants.SORT_ASC || colDef.sort == Constants.SORT_DESC) {\n column.setSort(colDef.sort);\n }\n else {\n column.setSort(undefined);\n }\n }\n // sorted at - anything but undefined, thus null will clear the sortIndex\n var sortIndex = attrToNumber(colDef.sortIndex);\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // hide - anything but undefined, thus null will clear the hide\n var hide = attrToBoolean(colDef.hide);\n if (hide !== undefined) {\n column.setVisible(!hide);\n }\n // pinned - anything but undefined, thus null or empty string will remove pinned\n if (colDef.pinned !== undefined) {\n column.setPinned(colDef.pinned);\n }\n };\n ColumnFactory.prototype.findExistingColumn = function (newColDef, existingColsCopy) {\n var res = find(existingColsCopy, function (existingCol) {\n var existingColDef = existingCol.getUserProvidedColDef();\n if (!existingColDef) {\n return false;\n }\n var newHasId = newColDef.colId != null;\n var newHasField = newColDef.field != null;\n if (newHasId) {\n return existingCol.getId() === newColDef.colId;\n }\n if (newHasField) {\n return existingColDef.field === newColDef.field;\n }\n // if no id or field present, then try object equivalence.\n if (existingColDef === newColDef) {\n return true;\n }\n return false;\n });\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (existingColsCopy && res) {\n removeFromArray(existingColsCopy, res);\n }\n return res;\n };\n ColumnFactory.prototype.findExistingGroup = function (newGroupDef, existingGroups) {\n var res = find(existingGroups, function (existingGroup) {\n var existingDef = existingGroup.getColGroupDef();\n if (!existingDef) {\n return false;\n }\n var newHasId = newGroupDef.groupId != null;\n if (newHasId) {\n return existingGroup.getId() === newGroupDef.groupId;\n }\n return false;\n });\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (res) {\n removeFromArray(existingGroups, res);\n }\n return res;\n };\n ColumnFactory.prototype.mergeColDefs = function (colDef) {\n // start with empty merged definition\n var colDefMerged = {};\n // merge properties from default column definitions\n var defaultColDef = this.gridOptionsWrapper.getDefaultColDef();\n mergeDeep(colDefMerged, defaultColDef, true, true);\n // merge properties from column type properties\n var columnType = colDef.type;\n if (!columnType) {\n columnType = defaultColDef && defaultColDef.type;\n }\n // if type of both colDef and defaultColDef, then colDef gets preference\n if (columnType) {\n this.assignColumnTypes(columnType, colDefMerged);\n }\n // merge properties from column definitions\n mergeDeep(colDefMerged, colDef, true, true);\n return colDefMerged;\n };\n ColumnFactory.prototype.assignColumnTypes = function (type, colDefMerged) {\n var typeKeys = [];\n if (type instanceof Array) {\n var invalidArray = type.some(function (a) { return typeof a !== 'string'; });\n if (invalidArray) {\n console.warn(\"ag-grid: if colDef.type is supplied an array it should be of type 'string[]'\");\n }\n else {\n typeKeys = type;\n }\n }\n else if (typeof type === 'string') {\n typeKeys = type.split(',');\n }\n else {\n console.warn(\"ag-grid: colDef.type should be of type 'string' | 'string[]'\");\n return;\n }\n // merge user defined with default column types\n var allColumnTypes = assign({}, DefaultColumnTypes);\n var userTypes = this.gridOptionsWrapper.getColumnTypes() || {};\n iterateObject(userTypes, function (key, value) {\n if (key in allColumnTypes) {\n console.warn(\"AG Grid: the column type '\" + key + \"' is a default column type and cannot be overridden.\");\n }\n else {\n allColumnTypes[key] = value;\n }\n });\n typeKeys.forEach(function (t) {\n var typeColDef = allColumnTypes[t.trim()];\n if (typeColDef) {\n mergeDeep(colDefMerged, typeColDef, true, true);\n }\n else {\n console.warn(\"ag-grid: colDef.type '\" + t + \"' does not correspond to defined gridOptions.columnTypes\");\n }\n });\n };\n ColumnFactory.prototype.checkForDeprecatedItems = function (colDef) {\n if (colDef) {\n var colDefNoType = colDef; // take out the type, so we can access attributes not defined in the type\n if (colDefNoType.group !== undefined) {\n console.warn('ag-grid: colDef.group is invalid, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.headerGroup !== undefined) {\n console.warn('ag-grid: colDef.headerGroup is invalid, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.headerGroupShow !== undefined) {\n console.warn('ag-grid: colDef.headerGroupShow is invalid, should be columnGroupShow, please check documentation on how to do grouping as it changed in version 3');\n }\n if (colDefNoType.suppressRowGroup !== undefined) {\n console.warn('ag-grid: colDef.suppressRowGroup is deprecated, please use colDef.type instead');\n }\n if (colDefNoType.suppressAggregation !== undefined) {\n console.warn('ag-grid: colDef.suppressAggregation is deprecated, please use colDef.type instead');\n }\n if (colDefNoType.suppressRowGroup || colDefNoType.suppressAggregation) {\n console.warn('ag-grid: colDef.suppressAggregation and colDef.suppressRowGroup are deprecated, use allowRowGroup, allowPivot and allowValue instead');\n }\n if (colDefNoType.displayName) {\n console.warn(\"ag-grid: Found displayName \" + colDefNoType.displayName + \", please use headerName instead, displayName is deprecated.\");\n colDefNoType.headerName = colDefNoType.displayName;\n }\n }\n };\n // if object has children, we assume it's a group\n ColumnFactory.prototype.isColumnGroup = function (abstractColDef) {\n return abstractColDef.children !== undefined;\n };\n __decorate$4([\n Autowired('columnUtils')\n ], ColumnFactory.prototype, \"columnUtils\", void 0);\n __decorate$4([\n __param$1(0, Qualifier('loggerFactory'))\n ], ColumnFactory.prototype, \"setBeans\", null);\n ColumnFactory = __decorate$4([\n Bean('columnFactory')\n ], ColumnFactory);\n return ColumnFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar Events = /** @class */ (function () {\n function Events() {\n }\n /** Everything has changed with the columns. Either complete new set of columns set, or user called setState() */\n /** @deprecated - grid no longer uses this, and setSate() also fires individual events */\n Events.EVENT_COLUMN_EVERYTHING_CHANGED = 'columnEverythingChanged';\n /** User has set in new columns. */\n Events.EVENT_NEW_COLUMNS_LOADED = 'newColumnsLoaded';\n /** The pivot mode flag was changed */\n Events.EVENT_COLUMN_PIVOT_MODE_CHANGED = 'columnPivotModeChanged';\n /** A row group column was added, removed or order changed. */\n Events.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n /** expandAll / collapseAll was called from the api. */\n Events.EVENT_EXPAND_COLLAPSE_ALL = 'expandOrCollapseAll';\n /** A pivot column was added, removed or order changed. */\n Events.EVENT_COLUMN_PIVOT_CHANGED = 'columnPivotChanged';\n /** The list of grid columns has changed. */\n Events.EVENT_GRID_COLUMNS_CHANGED = 'gridColumnsChanged';\n /** A value column was added, removed or agg function was changed. */\n Events.EVENT_COLUMN_VALUE_CHANGED = 'columnValueChanged';\n /** A column was moved */\n Events.EVENT_COLUMN_MOVED = 'columnMoved';\n /** One or more columns was shown / hidden */\n Events.EVENT_COLUMN_VISIBLE = 'columnVisible';\n /** One or more columns was pinned / unpinned*/\n Events.EVENT_COLUMN_PINNED = 'columnPinned';\n /** A column group was opened / closed */\n Events.EVENT_COLUMN_GROUP_OPENED = 'columnGroupOpened';\n /** One or more columns was resized. If just one, the column in the event is set. */\n Events.EVENT_COLUMN_RESIZED = 'columnResized';\n /** The list of displayed columns has changed, can result from columns open / close, column move, pivot, group, etc */\n Events.EVENT_DISPLAYED_COLUMNS_CHANGED = 'displayedColumnsChanged';\n /** The list of virtual columns has changed, results from viewport changing */\n Events.EVENT_VIRTUAL_COLUMNS_CHANGED = 'virtualColumnsChanged';\n /** Async Transactions Executed */\n Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED = 'asyncTransactionsFlushed';\n /** A row group was opened / closed */\n Events.EVENT_ROW_GROUP_OPENED = 'rowGroupOpened';\n /** The client has set new data into the grid */\n Events.EVENT_ROW_DATA_CHANGED = 'rowDataChanged';\n /** The client has updated data for the grid */\n Events.EVENT_ROW_DATA_UPDATED = 'rowDataUpdated';\n /** The client has set new floating data into the grid */\n Events.EVENT_PINNED_ROW_DATA_CHANGED = 'pinnedRowDataChanged';\n /** Range selection has changed */\n Events.EVENT_RANGE_SELECTION_CHANGED = 'rangeSelectionChanged';\n /** Chart was created */\n Events.EVENT_CHART_CREATED = 'chartCreated';\n /** Chart Range selection has changed */\n Events.EVENT_CHART_RANGE_SELECTION_CHANGED = 'chartRangeSelectionChanged';\n /** Chart Options have changed */\n Events.EVENT_CHART_OPTIONS_CHANGED = 'chartOptionsChanged';\n /** Chart was destroyed */\n Events.EVENT_CHART_DESTROYED = 'chartDestroyed';\n /** For when the tool panel is shown / hidden */\n Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED = 'toolPanelVisibleChanged';\n /** Model was updated - grid updates the drawn rows when this happens */\n Events.EVENT_MODEL_UPDATED = 'modelUpdated';\n Events.EVENT_PASTE_START = 'pasteStart';\n Events.EVENT_PASTE_END = 'pasteEnd';\n Events.EVENT_FILL_START = 'fillStart';\n Events.EVENT_FILL_END = 'fillEnd';\n Events.EVENT_CELL_CLICKED = 'cellClicked';\n Events.EVENT_CELL_DOUBLE_CLICKED = 'cellDoubleClicked';\n Events.EVENT_CELL_MOUSE_DOWN = 'cellMouseDown';\n Events.EVENT_CELL_CONTEXT_MENU = 'cellContextMenu';\n Events.EVENT_CELL_VALUE_CHANGED = 'cellValueChanged';\n Events.EVENT_ROW_VALUE_CHANGED = 'rowValueChanged';\n Events.EVENT_CELL_FOCUSED = 'cellFocused';\n Events.EVENT_ROW_SELECTED = 'rowSelected';\n Events.EVENT_SELECTION_CHANGED = 'selectionChanged';\n Events.EVENT_CELL_KEY_DOWN = 'cellKeyDown';\n Events.EVENT_CELL_KEY_PRESS = 'cellKeyPress';\n Events.EVENT_CELL_MOUSE_OVER = 'cellMouseOver';\n Events.EVENT_CELL_MOUSE_OUT = 'cellMouseOut';\n /** 2 events for filtering. The grid LISTENS for filterChanged and afterFilterChanged */\n Events.EVENT_FILTER_CHANGED = 'filterChanged';\n /** Filter was change but not applied. Only useful if apply buttons are used in filters. */\n Events.EVENT_FILTER_MODIFIED = 'filterModified';\n Events.EVENT_FILTER_OPENED = 'filterOpened';\n Events.EVENT_SORT_CHANGED = 'sortChanged';\n /** A row was removed from the dom, for any reason. Use to clean up resources (if any) used by the row. */\n Events.EVENT_VIRTUAL_ROW_REMOVED = 'virtualRowRemoved';\n Events.EVENT_ROW_CLICKED = 'rowClicked';\n Events.EVENT_ROW_DOUBLE_CLICKED = 'rowDoubleClicked';\n /** Gets called once after the grid has finished initialising. */\n Events.EVENT_GRID_READY = 'gridReady';\n /** Width of height of the main grid div has changed. Grid listens for this and does layout of grid if it's\n * changed, so always filling the space it was given. */\n Events.EVENT_GRID_SIZE_CHANGED = 'gridSizeChanged';\n /** The indexes of the rows rendered has changed, eg user has scrolled to a new vertical position. */\n Events.EVENT_VIEWPORT_CHANGED = 'viewportChanged';\n /* The width of the scrollbar has been calculated */\n Events.EVENT_SCROLLBAR_WIDTH_CHANGED = 'scrollbarWidthChanged';\n /** Rows were rendered for the first time (ie on async data load). */\n Events.EVENT_FIRST_DATA_RENDERED = 'firstDataRendered';\n /** A column drag has started, either resizing a column or moving a column. */\n Events.EVENT_DRAG_STARTED = 'dragStarted';\n /** A column drag has stopped */\n Events.EVENT_DRAG_STOPPED = 'dragStopped';\n Events.EVENT_CHECKBOX_CHANGED = 'checkboxChanged';\n Events.EVENT_ROW_EDITING_STARTED = 'rowEditingStarted';\n Events.EVENT_ROW_EDITING_STOPPED = 'rowEditingStopped';\n Events.EVENT_CELL_EDITING_STARTED = 'cellEditingStarted';\n Events.EVENT_CELL_EDITING_STOPPED = 'cellEditingStopped';\n /** Main body of grid has scrolled, either horizontally or vertically */\n Events.EVENT_BODY_SCROLL = 'bodyScroll';\n Events.EVENT_ANIMATION_QUEUE_EMPTY = 'animationQueueEmpty';\n Events.EVENT_HEIGHT_SCALE_CHANGED = 'heightScaleChanged';\n /** The displayed page for pagination has changed. For example the data was filtered or sorted,\n * or the user has moved to a different page. */\n Events.EVENT_PAGINATION_CHANGED = 'paginationChanged';\n /** Only used by React, Angular 2+, Web Components and VueJS AG Grid components\n * (not used if doing plain JavaScript or Angular 1.x). If the grid receives changes due\n * to bound properties, this event fires after the grid has finished processing the change. */\n Events.EVENT_COMPONENT_STATE_CHANGED = 'componentStateChanged';\n /** All items from here down are used internally by the grid, not intended for external use. */\n // not documented, either experimental, or we just don't want users using an depending on them\n Events.EVENT_BODY_HEIGHT_CHANGED = 'bodyHeightChanged';\n Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED = 'displayedColumnsWidthChanged';\n Events.EVENT_SCROLL_VISIBILITY_CHANGED = 'scrollVisibilityChanged';\n Events.EVENT_COLUMN_HOVER_CHANGED = 'columnHoverChanged';\n Events.EVENT_FLASH_CELLS = 'flashCells';\n Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED = 'paginationPixelOffsetChanged';\n Events.EVENT_DISPLAYED_ROWS_CHANGED = 'displayedRowsChanged';\n Events.EVENT_LEFT_PINNED_WIDTH_CHANGED = 'leftPinnedWidthChanged';\n Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED = 'rightPinnedWidthChanged';\n Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED = 'rowContainerHeightChanged';\n Events.EVENT_ROW_DRAG_ENTER = 'rowDragEnter';\n Events.EVENT_ROW_DRAG_MOVE = 'rowDragMove';\n Events.EVENT_ROW_DRAG_LEAVE = 'rowDragLeave';\n Events.EVENT_ROW_DRAG_END = 'rowDragEnd';\n // primarily for charts\n Events.EVENT_POPUP_TO_FRONT = 'popupToFront';\n // these are used for server side group and agg - only used by CS with Viewport Row Model - intention is\n // to design these better around server side functions and then release to general public when fully working with\n // all the row models.\n Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST = 'columnRowGroupChangeRequest';\n Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST = 'columnPivotChangeRequest';\n Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST = 'columnValueChangeRequest';\n Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST = 'columnAggFuncChangeRequest';\n Events.EVENT_KEYBOARD_FOCUS = 'keyboardFocus';\n Events.EVENT_MOUSE_FOCUS = 'mouseFocus';\n Events.EVENT_STORE_UPDATED = 'storeUpdated';\n return Events;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n// class returns unique instance id's for columns.\n// eg, the following calls (in this order) will result in:\n//\n// getInstanceIdForKey('country') => 0\n// getInstanceIdForKey('country') => 1\n// getInstanceIdForKey('country') => 2\n// getInstanceIdForKey('country') => 3\n// getInstanceIdForKey('age') => 0\n// getInstanceIdForKey('age') => 1\n// getInstanceIdForKey('country') => 4\nvar GroupInstanceIdCreator = /** @class */ (function () {\n function GroupInstanceIdCreator() {\n // this map contains keys to numbers, so we remember what the last call was\n this.existingIds = {};\n }\n GroupInstanceIdCreator.prototype.getInstanceIdForKey = function (key) {\n var lastResult = this.existingIds[key];\n var result;\n if (typeof lastResult !== 'number') {\n // first time this key\n result = 0;\n }\n else {\n result = lastResult + 1;\n }\n this.existingIds[key] = result;\n return result;\n };\n return GroupInstanceIdCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar reUnescapedHtml = /[&<>\"']/g;\n/**\n * HTML Escapes.\n */\nvar HTML_ESCAPES = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n/**\n * It encodes any string in UTF-8 format\n * taken from https://github.com/mathiasbynens/utf8.js\n * @param {string} s\n * @returns {string}\n */\nfunction utf8_encode(s) {\n var stringFromCharCode = String.fromCharCode;\n function ucs2decode(string) {\n var output = [];\n if (!string) {\n return [];\n }\n var len = string.length;\n var counter = 0;\n var value;\n var extra;\n while (counter < len) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < len) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n }\n else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n }\n else {\n output.push(value);\n }\n }\n return output;\n }\n function checkScalarValue(point) {\n if (point >= 0xD800 && point <= 0xDFFF) {\n throw Error('Lone surrogate U+' + point.toString(16).toUpperCase() +\n ' is not a scalar value');\n }\n }\n function createByte(point, shift) {\n return stringFromCharCode(((point >> shift) & 0x3F) | 0x80);\n }\n function encodeCodePoint(point) {\n if ((point >= 0 && point <= 7) || (point >= 14 && point <= 31)) {\n return padStart(\"_x\" + point.toString(16).toUpperCase() + \"_\", 4, '0');\n }\n if ((point & 0xFFFFFF80) == 0) { // 1-byte sequence\n return stringFromCharCode(point);\n }\n var symbol = '';\n if ((point & 0xFFFFF800) == 0) { // 2-byte sequence\n symbol = stringFromCharCode(((point >> 6) & 0x1F) | 0xC0);\n }\n else if ((point & 0xFFFF0000) == 0) { // 3-byte sequence\n checkScalarValue(point);\n symbol = stringFromCharCode(((point >> 12) & 0x0F) | 0xE0);\n symbol += createByte(point, 6);\n }\n else if ((point & 0xFFE00000) == 0) { // 4-byte sequence\n symbol = stringFromCharCode(((point >> 18) & 0x07) | 0xF0);\n symbol += createByte(point, 12);\n symbol += createByte(point, 6);\n }\n symbol += stringFromCharCode((point & 0x3F) | 0x80);\n return symbol;\n }\n var codePoints = ucs2decode(s);\n var length = codePoints.length;\n var index = -1;\n var codePoint;\n var byteString = '';\n while (++index < length) {\n codePoint = codePoints[index];\n byteString += encodeCodePoint(codePoint);\n }\n return byteString;\n}\n/**\n * @param str The string to be repeated\n * @param len The size of the output string\n * @returns A string with size len created from repeated `str`.\n */\nfunction stringRepeat(str, len) {\n len = Math.floor(len);\n if (str.length === 0 || len === 0) {\n return '';\n }\n var maxCount = str.length * len;\n len = Math.floor(Math.log(len) / Math.log(2));\n while (len) {\n str += str;\n len--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n/**\n * @param str The string to be padded\n * @param totalLength The final length needed\n * @param padStr The string to generate the padding\n * @returns The padded string\n */\nfunction padStart(str, totalLength, padStr) {\n if (str.length > totalLength) {\n return str;\n }\n totalLength -= str.length;\n if (totalLength > padStr.length) {\n padStr += stringRepeat(padStr, totalLength / padStr.length);\n }\n return padStr.slice(0, totalLength) + str;\n}\n/**\n * Converts a camelCase string into hyphenated string\n * from https://gist.github.com/youssman/745578062609e8acac9f\n * @param {string} str\n * @return {string}\n */\nfunction camelCaseToHyphen(str) {\n if (str === null || str === undefined) {\n return null;\n }\n return str.replace(/([A-Z])/g, function (g) { return '-' + g[0].toLowerCase(); });\n}\n/**\n * Converts a hyphenated string into camelCase string\n * from https://stackoverflow.com/questions/6660977/convert-hyphens-to-camel-case-camelcase\n * @param {string} str\n * @return {string}\n */\nfunction hyphenToCamelCase(str) {\n if (str === null || str === undefined) {\n return null;\n }\n return str.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });\n}\nfunction capitalise(str) {\n return str[0].toUpperCase() + str.substr(1).toLowerCase();\n}\nfunction escapeString(toEscape) {\n // we call toString() twice, in case value is an object, where user provides\n // a toString() method, and first call to toString() returns back something other\n // than a string (eg a number to render)\n return toEscape == null ? null : toEscape.toString().toString().replace(reUnescapedHtml, function (chr) { return HTML_ESCAPES[chr]; });\n}\n/**\n * Converts a camelCase string into regular text\n * from: https://stackoverflow.com/questions/15369566/putting-space-in-camel-case-string-using-regular-expression\n * @param {string} camelCase\n * @return {string}\n */\nfunction camelCaseToHumanText(camelCase) {\n if (!camelCase || camelCase == null) {\n return null;\n }\n var rex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;\n var words = camelCase.replace(rex, '$1$4 $2$3$5').replace('.', ' ').split(' ');\n return words.map(function (word) { return word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : ''); }).join(' ');\n}\nfunction startsWith(str, matchStart) {\n if (str === matchStart) {\n return true;\n }\n return str != null && str.slice(0, matchStart.length) === matchStart;\n}\n\nvar StringUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n utf8_encode: utf8_encode,\n stringRepeat: stringRepeat,\n padStart: padStart,\n camelCaseToHyphen: camelCaseToHyphen,\n hyphenToCamelCase: hyphenToCamelCase,\n capitalise: capitalise,\n escapeString: escapeString,\n camelCaseToHumanText: camelCaseToHumanText,\n startsWith: startsWith\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction convertToMap(arr) {\n var map = new Map();\n arr.forEach(function (pair) { return map.set(pair[0], pair[1]); });\n return map;\n}\nfunction keys(map) {\n var arr = [];\n map.forEach(function (_, key) { return arr.push(key); });\n return arr;\n}\n\nvar MapUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n convertToMap: convertToMap,\n keys: keys\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1 = (undefined && undefined.__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$5 = (undefined && undefined.__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 __param$2 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ColumnController = /** @class */ (function (_super) {\n __extends$1(ColumnController, _super);\n function ColumnController() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // header row count, based on user provided columns\n _this.primaryHeaderRowCount = 0;\n _this.secondaryHeaderRowCount = 0;\n _this.secondaryColumnsPresent = false;\n // header row count, either above, or based on pivoting if we are pivoting\n _this.gridHeaderRowCount = 0;\n // leave level columns of the displayed trees\n _this.displayedColumnsLeft = [];\n _this.displayedColumnsRight = [];\n _this.displayedColumnsCenter = [];\n // all three lists above combined\n _this.displayedColumns = [];\n // for fast lookup, to see if a column or group is still displayed\n _this.displayedColumnsAndGroupsMap = {};\n // all columns to be rendered\n _this.viewportColumns = [];\n // all columns to be rendered in the centre\n _this.viewportColumnsCenter = [];\n _this.rowGroupColumns = [];\n _this.valueColumns = [];\n _this.pivotColumns = [];\n _this.ready = false;\n _this.autoGroupsNeedBuilding = false;\n _this.forceRecreateAutoGroups = false;\n _this.pivotMode = false;\n _this.bodyWidth = 0;\n _this.leftWidth = 0;\n _this.rightWidth = 0;\n _this.bodyWidthDirty = true;\n _this.colDefVersion = 0;\n _this.flexColsCalculatedAtLestOnce = false;\n return _this;\n }\n ColumnController.prototype.init = function () {\n this.suppressColumnVirtualisation = this.gridOptionsWrapper.isSuppressColumnVirtualisation();\n var pivotMode = this.gridOptionsWrapper.isPivotMode();\n if (this.isPivotSettingAllowed(pivotMode)) {\n this.pivotMode = pivotMode;\n }\n this.usingTreeData = this.gridOptionsWrapper.isTreeData();\n this.addManagedListener(this.gridOptionsWrapper, 'autoGroupColumnDef', this.onAutoGroupColumnDefChanged.bind(this));\n };\n ColumnController.prototype.onAutoGroupColumnDefChanged = function () {\n this.autoGroupsNeedBuilding = true;\n this.forceRecreateAutoGroups = true;\n this.updateGridColumns();\n this.updateDisplayedColumns('gridOptionsChanged');\n };\n ColumnController.prototype.getColDefVersion = function () {\n return this.colDefVersion;\n };\n ColumnController.prototype.setColumnDefs = function (columnDefs, source) {\n var _this = this;\n if (source === void 0) { source = 'api'; }\n var colsPreviouslyExisted = !!this.columnDefs;\n this.colDefVersion++;\n var raiseEventsFunc = this.compareColumnStatesAndRaiseEvents(source);\n this.columnDefs = columnDefs;\n // always invalidate cache on changing columns, as the column id's for the new columns\n // could overlap with the old id's, so the cache would return old values for new columns.\n this.valueCache.expire();\n // NOTE ==================\n // we should be destroying the existing columns and groups if they exist, for example, the original column\n // group adds a listener to the columns, it should be also removing the listeners\n this.autoGroupsNeedBuilding = true;\n var oldPrimaryColumns = this.primaryColumns;\n var oldPrimaryTree = this.primaryColumnTree;\n var balancedTreeResult = this.columnFactory.createColumnTree(columnDefs, true, oldPrimaryTree);\n this.primaryColumnTree = balancedTreeResult.columnTree;\n this.primaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n this.primaryColumnsMap = {};\n this.primaryColumns.forEach(function (col) { return _this.primaryColumnsMap[col.getId()] = col; });\n this.extractRowGroupColumns(source, oldPrimaryColumns);\n this.extractPivotColumns(source, oldPrimaryColumns);\n this.extractValueColumns(source, oldPrimaryColumns);\n this.ready = true;\n this.updateGridColumns();\n if (colsPreviouslyExisted && this.gridColsArePrimary && this.gridOptionsWrapper.isApplyColumnDefOrder()) {\n this.orderGridColumnsLikePrimary();\n }\n this.updateDisplayedColumns(source);\n this.checkViewportColumns();\n // this event is not used by AG Grid, but left here for backwards compatibility,\n // in case applications use it\n this.dispatchEverythingChanged(source);\n raiseEventsFunc();\n this.dispatchNewColumnsLoaded();\n };\n ColumnController.prototype.dispatchNewColumnsLoaded = function () {\n var newColumnsLoadedEvent = {\n type: Events.EVENT_NEW_COLUMNS_LOADED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(newColumnsLoadedEvent);\n };\n // this event is legacy, no grid code listens to it. instead the grid listens to New Columns Loaded\n ColumnController.prototype.dispatchEverythingChanged = function (source) {\n if (source === void 0) { source = 'api'; }\n var eventEverythingChanged = {\n type: Events.EVENT_COLUMN_EVERYTHING_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(eventEverythingChanged);\n };\n ColumnController.prototype.orderGridColumnsLikePrimary = function () {\n var _this = this;\n this.gridColumns.sort(function (colA, colB) {\n var primaryIndexA = _this.primaryColumns.indexOf(colA);\n var primaryIndexB = _this.primaryColumns.indexOf(colB);\n // if both cols are present in primary, then we just return the position,\n // so position is maintained.\n var indexAPresent = primaryIndexA >= 0;\n var indexBPresent = primaryIndexB >= 0;\n if (indexAPresent && indexBPresent) {\n return primaryIndexA - primaryIndexB;\n }\n if (indexAPresent) {\n // B is auto group column, so put B first\n return 1;\n }\n if (indexBPresent) {\n // A is auto group column, so put A first\n return -1;\n }\n // otherwise both A and B are auto-group columns. so we just keep the order\n // as they were already in.\n var gridIndexA = _this.gridColumns.indexOf(colA);\n var gridIndexB = _this.gridColumns.indexOf(colB);\n return gridIndexA - gridIndexB;\n });\n };\n ColumnController.prototype.isAutoRowHeightActive = function () {\n return this.autoRowHeightColumns && this.autoRowHeightColumns.length > 0;\n };\n ColumnController.prototype.getAllAutoRowHeightCols = function () {\n return this.autoRowHeightColumns;\n };\n ColumnController.prototype.setViewport = function () {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.viewportLeft = this.bodyWidth - this.scrollPosition - this.scrollWidth;\n this.viewportRight = this.bodyWidth - this.scrollPosition;\n }\n else {\n this.viewportLeft = this.scrollPosition;\n this.viewportRight = this.scrollWidth + this.scrollPosition;\n }\n };\n // used by clipboard service, to know what columns to paste into\n ColumnController.prototype.getDisplayedColumnsStartingAt = function (column) {\n var currentColumn = column;\n var columns = [];\n while (currentColumn != null) {\n columns.push(currentColumn);\n currentColumn = this.getDisplayedColAfter(currentColumn);\n }\n return columns;\n };\n // checks what columns are currently displayed due to column virtualisation. fires an event\n // if the list of columns has changed.\n // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()\n ColumnController.prototype.checkViewportColumns = function () {\n // check displayCenterColumnTree exists first, as it won't exist when grid is initialising\n if (this.displayedColumnsCenter == null) {\n return;\n }\n var hashBefore = this.viewportColumns.map(function (column) { return column.getId(); }).join('#');\n this.extractViewport();\n var hashAfter = this.viewportColumns.map(function (column) { return column.getId(); }).join('#');\n if (hashBefore !== hashAfter) {\n var event_1 = {\n type: Events.EVENT_VIRTUAL_COLUMNS_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ColumnController.prototype.setViewportPosition = function (scrollWidth, scrollPosition) {\n if (scrollWidth !== this.scrollWidth || scrollPosition !== this.scrollPosition || this.bodyWidthDirty) {\n this.scrollWidth = scrollWidth;\n this.scrollPosition = scrollPosition;\n // we need to call setVirtualViewportLeftAndRight() at least once after the body width changes,\n // as the viewport can stay the same, but in RTL, if body width changes, we need to work out the\n // virtual columns again\n this.bodyWidthDirty = true;\n this.setViewport();\n if (this.ready) {\n this.checkViewportColumns();\n }\n }\n };\n ColumnController.prototype.isPivotMode = function () {\n return this.pivotMode;\n };\n ColumnController.prototype.isPivotSettingAllowed = function (pivot) {\n if (pivot && this.gridOptionsWrapper.isTreeData()) {\n console.warn(\"AG Grid: Pivot mode not available in conjunction Tree Data i.e. 'gridOptions.treeData: true'\");\n return false;\n }\n return true;\n };\n ColumnController.prototype.setPivotMode = function (pivotMode, source) {\n if (source === void 0) { source = 'api'; }\n if (pivotMode === this.pivotMode || !this.isPivotSettingAllowed(this.pivotMode)) {\n return;\n }\n this.pivotMode = pivotMode;\n // we need to update grid columns to cover the scenario where user has groupSuppressAutoColumn=true, as\n // this means we don't use auto group column UNLESS we are in pivot mode (it's mandatory in pivot mode),\n // so need to updateGridColumn() to check it autoGroupCol needs to be added / removed\n this.autoGroupsNeedBuilding = true;\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n var event = {\n type: Events.EVENT_COLUMN_PIVOT_MODE_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {\n if (!this.secondaryColumnsPresent || !this.secondaryColumns) {\n return null;\n }\n var valueColumnToFind = this.getPrimaryColumn(valueColKey);\n var foundColumn = null;\n this.secondaryColumns.forEach(function (column) {\n var thisPivotKeys = column.getColDef().pivotKeys;\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n var pivotKeyMatches = areEqual(thisPivotKeys, pivotKeys);\n var pivotValueMatches = pivotValueColumn === valueColumnToFind;\n if (pivotKeyMatches && pivotValueMatches) {\n foundColumn = column;\n }\n });\n return foundColumn;\n };\n ColumnController.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ColumnController');\n };\n ColumnController.prototype.setFirstRightAndLastLeftPinned = function (source) {\n var lastLeft;\n var firstRight;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n lastLeft = this.displayedColumnsLeft ? this.displayedColumnsLeft[0] : null;\n firstRight = this.displayedColumnsRight ? last(this.displayedColumnsRight) : null;\n }\n else {\n lastLeft = this.displayedColumnsLeft ? last(this.displayedColumnsLeft) : null;\n firstRight = this.displayedColumnsRight ? this.displayedColumnsRight[0] : null;\n }\n this.gridColumns.forEach(function (column) {\n column.setLastLeftPinned(column === lastLeft, source);\n column.setFirstRightPinned(column === firstRight, source);\n });\n };\n ColumnController.prototype.autoSizeColumns = function (keys, skipHeader, source) {\n // because of column virtualisation, we can only do this function on columns that are\n // actually rendered, as non-rendered columns (outside the viewport and not rendered\n // due to column virtualisation) are not present. this can result in all rendered columns\n // getting narrowed, which in turn introduces more rendered columns on the RHS which\n // did not get autosized in the original run, leaving the visible grid with columns on\n // the LHS sized, but RHS no. so we keep looping through the visible columns until\n // no more cols are available (rendered) to be resized\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n // we autosize after animation frames finish in case any cell renderers need to complete first. this can\n // happen eg if client code is calling api.autoSizeAllColumns() straight after grid is initialised, but grid\n // hasn't fully drawn out all the cells yet (due to cell renderers in animation frames).\n this.animationFrameService.flushAllFrames();\n // keep track of which cols we have resized in here\n var columnsAutosized = [];\n // initialise with anything except 0 so that while loop executes at least once\n var changesThisTimeAround = -1;\n if (skipHeader == null) {\n skipHeader = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n }\n while (changesThisTimeAround !== 0) {\n changesThisTimeAround = 0;\n this.actionOnGridColumns(keys, function (column) {\n // if already autosized, skip it\n if (columnsAutosized.indexOf(column) >= 0) {\n return false;\n }\n // get how wide this col should be\n var preferredWidth = _this.autoWidthCalculator.getPreferredWidthForColumn(column, skipHeader);\n // preferredWidth = -1 if this col is not on the screen\n if (preferredWidth > 0) {\n var newWidth = _this.normaliseColumnWidth(column, preferredWidth);\n column.setActualWidth(newWidth, source);\n columnsAutosized.push(column);\n changesThisTimeAround++;\n }\n return true;\n }, source);\n }\n this.fireColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');\n };\n ColumnController.prototype.fireColumnResizedEvent = function (columns, finished, source, flexColumns) {\n if (flexColumns === void 0) { flexColumns = null; }\n if (columns && columns.length) {\n var event_2 = {\n type: Events.EVENT_COLUMN_RESIZED,\n columns: columns,\n column: columns.length === 1 ? columns[0] : null,\n flexColumns: flexColumns,\n finished: finished,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event_2);\n }\n };\n ColumnController.prototype.autoSizeColumn = function (key, skipHeader, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.autoSizeColumns([key], skipHeader, source);\n }\n };\n ColumnController.prototype.autoSizeAllColumns = function (skipHeader, source) {\n if (source === void 0) { source = \"api\"; }\n var allDisplayedColumns = this.getAllDisplayedColumns();\n this.autoSizeColumns(allDisplayedColumns, skipHeader, source);\n };\n ColumnController.prototype.getColumnsFromTree = function (rootColumns) {\n var result = [];\n var recursiveFindColumns = function (childColumns) {\n for (var i = 0; i < childColumns.length; i++) {\n var child = childColumns[i];\n if (child instanceof Column) {\n result.push(child);\n }\n else if (child instanceof OriginalColumnGroup) {\n recursiveFindColumns(child.getChildren());\n }\n }\n };\n recursiveFindColumns(rootColumns);\n return result;\n };\n ColumnController.prototype.getAllDisplayedTrees = function () {\n if (this.displayedTreeLeft && this.displayedTreeRight && this.displayedTreeCentre) {\n return this.displayedTreeLeft\n .concat(this.displayedTreeCentre)\n .concat(this.displayedTreeRight);\n }\n return null;\n };\n // + columnSelectPanel\n ColumnController.prototype.getPrimaryColumnTree = function () {\n return this.primaryColumnTree;\n };\n // + gridPanel -> for resizing the body and setting top margin\n ColumnController.prototype.getHeaderRowCount = function () {\n return this.gridHeaderRowCount;\n };\n // + headerRenderer -> setting pinned body width\n ColumnController.prototype.getDisplayedTreeLeft = function () {\n return this.displayedTreeLeft;\n };\n // + headerRenderer -> setting pinned body width\n ColumnController.prototype.getDisplayedTreeRight = function () {\n return this.displayedTreeRight;\n };\n // + headerRenderer -> setting pinned body width\n ColumnController.prototype.getDisplayedTreeCentre = function () {\n return this.displayedTreeCentre;\n };\n // gridPanel -> ensureColumnVisible\n ColumnController.prototype.isColumnDisplayed = function (column) {\n return this.getAllDisplayedColumns().indexOf(column) >= 0;\n };\n // + csvCreator\n ColumnController.prototype.getAllDisplayedColumns = function () {\n return this.displayedColumns;\n };\n ColumnController.prototype.getViewportColumns = function () {\n return this.viewportColumns;\n };\n ColumnController.prototype.getDisplayedLeftColumnsForRow = function (rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsLeft;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsLeft);\n };\n ColumnController.prototype.getDisplayedRightColumnsForRow = function (rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsRight;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsRight);\n };\n ColumnController.prototype.getDisplayedColumnsForRow = function (rowNode, displayedColumns, filterCallback, emptySpaceBeforeColumn) {\n var result = [];\n var lastConsideredCol = null;\n var _loop_1 = function (i) {\n var col = displayedColumns[i];\n var maxAllowedColSpan = displayedColumns.length - i;\n var colSpan = Math.min(col.getColSpan(rowNode), maxAllowedColSpan);\n var columnsToCheckFilter = [col];\n if (colSpan > 1) {\n var colsToRemove = colSpan - 1;\n for (var j = 1; j <= colsToRemove; j++) {\n columnsToCheckFilter.push(displayedColumns[i + j]);\n }\n i += colsToRemove;\n }\n // see which cols we should take out for column virtualisation\n var filterPasses;\n if (filterCallback) {\n // if user provided a callback, means some columns may not be in the viewport.\n // the user will NOT provide a callback if we are talking about pinned areas,\n // as pinned areas have no horizontal scroll and do not virtualise the columns.\n // if lots of columns, that means column spanning, and we set filterPasses = true\n // if one or more of the columns spanned pass the filter.\n filterPasses = false;\n columnsToCheckFilter.forEach(function (colForFilter) {\n if (filterCallback(colForFilter)) {\n filterPasses = true;\n }\n });\n }\n else {\n filterPasses = true;\n }\n if (filterPasses) {\n if (result.length === 0 && lastConsideredCol) {\n var gapBeforeColumn = emptySpaceBeforeColumn ? emptySpaceBeforeColumn(col) : false;\n if (gapBeforeColumn) {\n result.push(lastConsideredCol);\n }\n }\n result.push(col);\n }\n lastConsideredCol = col;\n out_i_1 = i;\n };\n var out_i_1;\n for (var i = 0; i < displayedColumns.length; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n return result;\n };\n // + rowRenderer\n // if we are not column spanning, this just returns back the virtual centre columns,\n // however if we are column spanning, then different rows can have different virtual\n // columns, so we have to work out the list for each individual row.\n ColumnController.prototype.getViewportCenterColumnsForRow = function (rowNode) {\n var _this = this;\n if (!this.colSpanActive) {\n return this.viewportColumnsCenter;\n }\n var emptySpaceBeforeColumn = function (col) {\n var left = col.getLeft();\n return exists(left) && left > _this.viewportLeft;\n };\n // if doing column virtualisation, then we filter based on the viewport.\n var filterCallback = this.suppressColumnVirtualisation ? null : this.isColumnInViewport.bind(this);\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsCenter, filterCallback, emptySpaceBeforeColumn);\n };\n ColumnController.prototype.getAriaColumnIndex = function (col) {\n return this.getAllGridColumns().indexOf(col) + 1;\n };\n ColumnController.prototype.isColumnInViewport = function (col) {\n var columnLeft = col.getLeft() || 0;\n var columnRight = columnLeft + col.getActualWidth();\n // adding 200 for buffer size, so some cols off viewport are rendered.\n // this helps horizontal scrolling so user rarely sees white space (unless\n // they scroll horizontally fast). however we are conservative, as the more\n // buffer the slower the vertical redraw speed\n var leftBounds = this.viewportLeft - 200;\n var rightBounds = this.viewportRight + 200;\n var columnToMuchLeft = columnLeft < leftBounds && columnRight < leftBounds;\n var columnToMuchRight = columnLeft > rightBounds && columnRight > rightBounds;\n return !columnToMuchLeft && !columnToMuchRight;\n };\n // used by:\n // + angularGrid -> setting pinned body width\n // note: this should be cached\n ColumnController.prototype.getDisplayedColumnsLeftWidth = function () {\n return this.getWidthOfColsInList(this.displayedColumnsLeft);\n };\n // note: this should be cached\n ColumnController.prototype.getDisplayedColumnsRightWidth = function () {\n return this.getWidthOfColsInList(this.displayedColumnsRight);\n };\n ColumnController.prototype.updatePrimaryColumnList = function (keys, masterList, actionIsAdd, columnCallback, eventType, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (!keys || missingOrEmpty(keys)) {\n return;\n }\n var atLeastOne = false;\n keys.forEach(function (key) {\n var columnToAdd = _this.getPrimaryColumn(key);\n if (!columnToAdd) {\n return;\n }\n if (actionIsAdd) {\n if (masterList.indexOf(columnToAdd) >= 0) {\n return;\n }\n masterList.push(columnToAdd);\n }\n else {\n if (masterList.indexOf(columnToAdd) < 0) {\n return;\n }\n removeFromArray(masterList, columnToAdd);\n }\n columnCallback(columnToAdd);\n atLeastOne = true;\n });\n if (!atLeastOne) {\n return;\n }\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n var event = {\n type: eventType,\n columns: masterList,\n column: masterList.length === 1 ? masterList[0] : null,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.setRowGroupColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.setPrimaryColumnList(colKeys, this.rowGroupColumns, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.setRowGroupActive.bind(this), source);\n };\n ColumnController.prototype.setRowGroupActive = function (active, column, source) {\n if (active === column.isRowGroupActive()) {\n return;\n }\n column.setRowGroupActive(active, source);\n if (!active && !this.gridOptionsWrapper.isSuppressMakeColumnVisibleAfterUnGroup()) {\n column.setVisible(true, source);\n }\n };\n ColumnController.prototype.addRowGroupColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.addRowGroupColumns([key], source);\n }\n };\n ColumnController.prototype.addRowGroupColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, true, this.setRowGroupActive.bind(this, true), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n };\n ColumnController.prototype.removeRowGroupColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, false, this.setRowGroupActive.bind(this, false), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n };\n ColumnController.prototype.removeRowGroupColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.removeRowGroupColumns([key], source);\n }\n };\n ColumnController.prototype.addPivotColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.pivotColumns, true, function (column) { return column.setPivotActive(true, source); }, Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n };\n ColumnController.prototype.setPivotColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.setPrimaryColumnList(colKeys, this.pivotColumns, Events.EVENT_COLUMN_PIVOT_CHANGED, function (added, column) {\n column.setPivotActive(added, source);\n }, source);\n };\n ColumnController.prototype.addPivotColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n this.addPivotColumns([key], source);\n };\n ColumnController.prototype.removePivotColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.pivotColumns, false, function (column) { return column.setPivotActive(false, source); }, Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n };\n ColumnController.prototype.removePivotColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n this.removePivotColumns([key], source);\n };\n ColumnController.prototype.setPrimaryColumnList = function (colKeys, masterList, eventName, columnCallback, source) {\n var _this = this;\n masterList.length = 0;\n if (exists(colKeys)) {\n colKeys.forEach(function (key) {\n var column = _this.getPrimaryColumn(key);\n if (column) {\n masterList.push(column);\n }\n });\n }\n this.primaryColumns.forEach(function (column) {\n var added = masterList.indexOf(column) >= 0;\n columnCallback(added, column);\n });\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n this.fireColumnEvent(eventName, masterList, source);\n };\n ColumnController.prototype.setValueColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.setPrimaryColumnList(colKeys, this.valueColumns, Events.EVENT_COLUMN_VALUE_CHANGED, this.setValueActive.bind(this), source);\n };\n ColumnController.prototype.setValueActive = function (active, column, source) {\n if (active === column.isValueActive()) {\n return;\n }\n column.setValueActive(active, source);\n if (active && !column.getAggFunc()) {\n var initialAggFunc = this.aggFuncService.getDefaultAggFunc(column);\n column.setAggFunc(initialAggFunc);\n }\n };\n ColumnController.prototype.addValueColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.valueColumns, true, this.setValueActive.bind(this, true), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n };\n ColumnController.prototype.addValueColumn = function (colKey, source) {\n if (source === void 0) { source = \"api\"; }\n if (colKey) {\n this.addValueColumns([colKey], source);\n }\n };\n ColumnController.prototype.removeValueColumn = function (colKey, source) {\n if (source === void 0) { source = \"api\"; }\n this.removeValueColumns([colKey], source);\n };\n ColumnController.prototype.removeValueColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.valueColumns, false, this.setValueActive.bind(this, false), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n };\n // returns the width we can set to this col, taking into consideration min and max widths\n ColumnController.prototype.normaliseColumnWidth = function (column, newWidth) {\n var minWidth = column.getMinWidth();\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n }\n var maxWidth = column.getMaxWidth();\n if (exists(maxWidth) && column.isGreaterThanMax(newWidth)) {\n newWidth = maxWidth;\n }\n return newWidth;\n };\n ColumnController.prototype.getPrimaryOrGridColumn = function (key) {\n var column = this.getPrimaryColumn(key);\n return column || this.getGridColumn(key);\n };\n ColumnController.prototype.setColumnWidths = function (columnWidths, shiftKey, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column\n finished, // @finished - ends up in the event, tells the user if more events are to come\n source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n var sets = [];\n columnWidths.forEach(function (columnWidth) {\n var col = _this.getPrimaryOrGridColumn(columnWidth.key);\n if (!col) {\n return;\n }\n sets.push({\n width: columnWidth.newWidth,\n ratios: [1],\n columns: [col]\n });\n // if user wants to do shift resize by default, then we invert the shift operation\n var defaultIsShift = _this.gridOptionsWrapper.getColResizeDefault() === 'shift';\n if (defaultIsShift) {\n shiftKey = !shiftKey;\n }\n if (shiftKey) {\n var otherCol = _this.getDisplayedColAfter(col);\n if (!otherCol) {\n return;\n }\n var widthDiff = col.getActualWidth() - columnWidth.newWidth;\n var otherColWidth = otherCol.getActualWidth() + widthDiff;\n sets.push({\n width: otherColWidth,\n ratios: [1],\n columns: [otherCol]\n });\n }\n });\n if (sets.length === 0) {\n return;\n }\n this.resizeColumnSets(sets, finished, source);\n };\n ColumnController.prototype.checkMinAndMaxWidthsForSet = function (columnResizeSet) {\n var columns = columnResizeSet.columns, width = columnResizeSet.width;\n // every col has a min width, so sum them all up and see if we have enough room\n // for all the min widths\n var minWidthAccumulated = 0;\n var maxWidthAccumulated = 0;\n var maxWidthActive = true;\n columns.forEach(function (col) {\n var minWidth = col.getMinWidth();\n minWidthAccumulated += minWidth || 0;\n var maxWidth = col.getMaxWidth();\n if (exists(maxWidth) && maxWidth > 0) {\n maxWidthAccumulated += maxWidth;\n }\n else {\n // if at least one columns has no max width, it means the group of columns\n // then has no max width, as at least one column can take as much width as possible\n maxWidthActive = false;\n }\n });\n var minWidthPasses = width >= minWidthAccumulated;\n var maxWidthPasses = !maxWidthActive || (width <= maxWidthAccumulated);\n return minWidthPasses && maxWidthPasses;\n };\n // method takes sets of columns and resizes them. either all sets will be resized, or nothing\n // be resized. this is used for example when user tries to resize a group and holds shift key,\n // then both the current group (grows), and the adjacent group (shrinks), will get resized,\n // so that's two sets for this method.\n ColumnController.prototype.resizeColumnSets = function (resizeSets, finished, source) {\n var passMinMaxCheck = !resizeSets || resizeSets.every(this.checkMinAndMaxWidthsForSet.bind(this));\n if (!passMinMaxCheck) {\n // even though we are not going to resize beyond min/max size, we still need to raise event when finished\n if (finished) {\n var columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;\n this.fireColumnResizedEvent(columns, finished, source);\n }\n return; // don't resize!\n }\n var changedCols = [];\n var allResizedCols = [];\n resizeSets.forEach(function (set) {\n var width = set.width, columns = set.columns, ratios = set.ratios;\n // keep track of pixels used, and last column gets the remaining,\n // to cater for rounding errors, and min width adjustments\n var newWidths = {};\n var finishedCols = {};\n columns.forEach(function (col) { return allResizedCols.push(col); });\n // the loop below goes through each col. if a col exceeds it's min/max width,\n // it then gets set to its min/max width and the column is removed marked as 'finished'\n // and the calculation is done again leaving this column out. take for example columns\n // {A, width: 50, maxWidth: 100}\n // {B, width: 50}\n // {C, width: 50}\n // and then the set is set to width 600 - on the first pass the grid tries to set each column\n // to 200. it checks A and sees 200 > 100 and so sets the width to 100. col A is then marked\n // as 'finished' and the calculation is done again with the remaining cols B and C, which end up\n // splitting the remaining 500 pixels.\n var finishedColsGrew = true;\n var loopCount = 0;\n var _loop_2 = function () {\n loopCount++;\n if (loopCount > 1000) {\n // this should never happen, but in the future, someone might introduce a bug here,\n // so we stop the browser from hanging and report bug properly\n console.error('AG Grid: infinite loop in resizeColumnSets');\n return \"break\";\n }\n finishedColsGrew = false;\n var subsetCols = [];\n var subsetRatioTotal = 0;\n var pixelsToDistribute = width;\n columns.forEach(function (col, index) {\n var thisColFinished = finishedCols[col.getId()];\n if (thisColFinished) {\n pixelsToDistribute -= newWidths[col.getId()];\n }\n else {\n subsetCols.push(col);\n var ratioThisCol = ratios[index];\n subsetRatioTotal += ratioThisCol;\n }\n });\n // because we are not using all of the ratios (cols can be missing),\n // we scale the ratio. if all columns are included, then subsetRatioTotal=1,\n // and so the ratioScale will be 1.\n var ratioScale = 1 / subsetRatioTotal;\n subsetCols.forEach(function (col, index) {\n var lastCol = index === (subsetCols.length - 1);\n var colNewWidth;\n if (lastCol) {\n colNewWidth = pixelsToDistribute;\n }\n else {\n colNewWidth = Math.round(ratios[index] * width * ratioScale);\n pixelsToDistribute -= colNewWidth;\n }\n var minWidth = col.getMinWidth();\n var maxWidth = col.getMaxWidth();\n if (exists(minWidth) && colNewWidth < minWidth) {\n colNewWidth = minWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n else if (exists(maxWidth) && maxWidth > 0 && colNewWidth > maxWidth) {\n colNewWidth = maxWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n newWidths[col.getId()] = colNewWidth;\n });\n };\n while (finishedColsGrew) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n columns.forEach(function (col) {\n var newWidth = newWidths[col.getId()];\n if (col.getActualWidth() !== newWidth) {\n col.setActualWidth(newWidth, source);\n changedCols.push(col);\n }\n });\n });\n // if no cols changed, then no need to update more or send event.\n var atLeastOneColChanged = changedCols.length > 0;\n var flexedCols = this.refreshFlexedColumns({ resizingCols: allResizedCols, skipSetLeft: true });\n if (atLeastOneColChanged) {\n this.setLeftValues(source);\n this.updateBodyWidths();\n this.checkViewportColumns();\n }\n // check for change first, to avoid unnecessary firing of events\n // however we always fire 'finished' events. this is important\n // when groups are resized, as if the group is changing slowly,\n // eg 1 pixel at a time, then each change will fire change events\n // in all the columns in the group, but only one with get the pixel.\n var colsForEvent = allResizedCols.concat(flexedCols);\n if (atLeastOneColChanged || finished) {\n this.fireColumnResizedEvent(colsForEvent, finished, source, flexedCols);\n }\n };\n ColumnController.prototype.setColumnAggFunc = function (key, aggFunc, source) {\n if (source === void 0) { source = \"api\"; }\n if (!key) {\n return;\n }\n var column = this.getPrimaryColumn(key);\n if (!column) {\n return;\n }\n column.setAggFunc(aggFunc);\n this.fireColumnEvent(Events.EVENT_COLUMN_VALUE_CHANGED, [column], source);\n };\n ColumnController.prototype.fireColumnEvent = function (type, columns, source) {\n var event = {\n type: type,\n columns: columns,\n column: (columns && columns.length == 1) ? columns[0] : null,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.moveRowGroupColumn = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.rowGroupColumns[fromIndex];\n this.rowGroupColumns.splice(fromIndex, 1);\n this.rowGroupColumns.splice(toIndex, 0, column);\n var event = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n columns: this.rowGroupColumns,\n column: this.rowGroupColumns.length === 1 ? this.rowGroupColumns[0] : null,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.moveColumns = function (columnsToMoveKeys, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n if (toIndex > this.gridColumns.length - columnsToMoveKeys.length) {\n console.warn('AG Grid: tried to insert columns in invalid location, toIndex = ' + toIndex);\n console.warn('AG Grid: remember that you should not count the moving columns when calculating the new index');\n return;\n }\n // we want to pull all the columns out first and put them into an ordered list\n var columnsToMove = this.getGridColumns(columnsToMoveKeys);\n var failedRules = !this.doesMovePassRules(columnsToMove, toIndex);\n if (failedRules) {\n return;\n }\n moveInArray(this.gridColumns, columnsToMove, toIndex);\n this.updateDisplayedColumns(source);\n var event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: columnsToMove,\n column: columnsToMove.length === 1 ? columnsToMove[0] : null,\n toIndex: toIndex,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n this.columnAnimationService.finish();\n };\n ColumnController.prototype.doesMovePassRules = function (columnsToMove, toIndex) {\n // make a copy of what the grid columns would look like after the move\n var proposedColumnOrder = this.gridColumns.slice();\n moveInArray(proposedColumnOrder, columnsToMove, toIndex);\n // then check that the new proposed order of the columns passes all rules\n if (!this.doesMovePassMarryChildren(proposedColumnOrder)) {\n return false;\n }\n if (!this.doesMovePassLockedPositions(proposedColumnOrder)) {\n return false;\n }\n return true;\n };\n // returns the provided cols sorted in same order as they appear in grid columns. eg if grid columns\n // contains [a,b,c,d,e] and col passed is [e,a] then the passed cols are sorted into [a,e]\n ColumnController.prototype.sortColumnsLikeGridColumns = function (cols) {\n var _this = this;\n if (!cols || cols.length <= 1) {\n return;\n }\n var notAllColsInGridColumns = cols.filter(function (c) { return _this.gridColumns.indexOf(c) < 0; }).length > 0;\n if (notAllColsInGridColumns) {\n return;\n }\n cols.sort(function (a, b) {\n var indexA = _this.gridColumns.indexOf(a);\n var indexB = _this.gridColumns.indexOf(b);\n return indexA - indexB;\n });\n };\n ColumnController.prototype.doesMovePassLockedPositions = function (proposedColumnOrder) {\n var foundNonLocked = false;\n var rulePassed = true;\n // go though the cols, see if any non-locked appear before any locked\n proposedColumnOrder.forEach(function (col) {\n if (col.getColDef().lockPosition) {\n if (foundNonLocked) {\n rulePassed = false;\n }\n }\n else {\n foundNonLocked = true;\n }\n });\n return rulePassed;\n };\n ColumnController.prototype.doesMovePassMarryChildren = function (allColumnsCopy) {\n var rulePassed = true;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (child) {\n if (!(child instanceof OriginalColumnGroup)) {\n return;\n }\n var columnGroup = child;\n var colGroupDef = columnGroup.getColGroupDef();\n var marryChildren = colGroupDef && colGroupDef.marryChildren;\n if (!marryChildren) {\n return;\n }\n var newIndexes = [];\n columnGroup.getLeafColumns().forEach(function (col) {\n var newColIndex = allColumnsCopy.indexOf(col);\n newIndexes.push(newColIndex);\n });\n var maxIndex = Math.max.apply(Math, newIndexes);\n var minIndex = Math.min.apply(Math, newIndexes);\n // spread is how far the first column in this group is away from the last column\n var spread = maxIndex - minIndex;\n var maxSpread = columnGroup.getLeafColumns().length - 1;\n // if the columns\n if (spread > maxSpread) {\n rulePassed = false;\n }\n // console.log(`maxIndex = ${maxIndex}, minIndex = ${minIndex}, spread = ${spread}, maxSpread = ${maxSpread}, fail = ${spread > (count-1)}`)\n // console.log(allColumnsCopy.map( col => col.getColDef().field).join(','));\n });\n return rulePassed;\n };\n ColumnController.prototype.moveColumn = function (key, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n this.moveColumns([key], toIndex, source);\n };\n ColumnController.prototype.moveColumnByIndex = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.gridColumns[fromIndex];\n this.moveColumn(column, toIndex, source);\n };\n ColumnController.prototype.getColumnDefs = function () {\n var _this = this;\n var cols = this.primaryColumns.slice();\n if (this.gridColsArePrimary) {\n cols.sort(function (a, b) { return _this.gridColumns.indexOf(a) - _this.gridColumns.indexOf(b); });\n }\n else if (this.lastPrimaryOrder) {\n cols.sort(function (a, b) { return _this.lastPrimaryOrder.indexOf(a) - _this.lastPrimaryOrder.indexOf(b); });\n }\n return this.columnDefFactory.buildColumnDefs(cols, this.rowGroupColumns, this.pivotColumns);\n };\n // used by:\n // + angularGrid -> for setting body width\n // + rowController -> setting main row widths (when inserting and resizing)\n // need to cache this\n ColumnController.prototype.getBodyContainerWidth = function () {\n return this.bodyWidth;\n };\n ColumnController.prototype.getContainerWidth = function (pinned) {\n switch (pinned) {\n case Constants.PINNED_LEFT:\n return this.leftWidth;\n case Constants.PINNED_RIGHT:\n return this.rightWidth;\n default:\n return this.bodyWidth;\n }\n };\n // after setColumnWidth or updateGroupsAndDisplayedColumns\n ColumnController.prototype.updateBodyWidths = function () {\n var newBodyWidth = this.getWidthOfColsInList(this.displayedColumnsCenter);\n var newLeftWidth = this.getWidthOfColsInList(this.displayedColumnsLeft);\n var newRightWidth = this.getWidthOfColsInList(this.displayedColumnsRight);\n // this is used by virtual col calculation, for RTL only, as a change to body width can impact displayed\n // columns, due to RTL inverting the y coordinates\n this.bodyWidthDirty = this.bodyWidth !== newBodyWidth;\n var atLeastOneChanged = this.bodyWidth !== newBodyWidth || this.leftWidth !== newLeftWidth || this.rightWidth !== newRightWidth;\n if (atLeastOneChanged) {\n this.bodyWidth = newBodyWidth;\n this.leftWidth = newLeftWidth;\n this.rightWidth = newRightWidth;\n // when this fires, it is picked up by the gridPanel, which ends up in\n // gridPanel calling setWidthAndScrollPosition(), which in turn calls setViewportPosition()\n var event_3 = {\n type: Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_3);\n }\n };\n // + rowController\n ColumnController.prototype.getValueColumns = function () {\n return this.valueColumns ? this.valueColumns : [];\n };\n // + rowController\n ColumnController.prototype.getPivotColumns = function () {\n return this.pivotColumns ? this.pivotColumns : [];\n };\n // + clientSideRowModel\n ColumnController.prototype.isPivotActive = function () {\n return this.pivotColumns && this.pivotColumns.length > 0 && this.pivotMode;\n };\n // + toolPanel\n ColumnController.prototype.getRowGroupColumns = function () {\n return this.rowGroupColumns ? this.rowGroupColumns : [];\n };\n // + rowController -> while inserting rows\n ColumnController.prototype.getDisplayedCenterColumns = function () {\n return this.displayedColumnsCenter;\n };\n // + rowController -> while inserting rows\n ColumnController.prototype.getDisplayedLeftColumns = function () {\n return this.displayedColumnsLeft;\n };\n ColumnController.prototype.getDisplayedRightColumns = function () {\n return this.displayedColumnsRight;\n };\n ColumnController.prototype.getDisplayedColumns = function (type) {\n switch (type) {\n case Constants.PINNED_LEFT:\n return this.getDisplayedLeftColumns();\n case Constants.PINNED_RIGHT:\n return this.getDisplayedRightColumns();\n default:\n return this.getDisplayedCenterColumns();\n }\n };\n // used by:\n // + clientSideRowController -> sorting, building quick filter text\n // + headerRenderer -> sorting (clearing icon)\n ColumnController.prototype.getAllPrimaryColumns = function () {\n return this.primaryColumns ? this.primaryColumns.slice() : null;\n };\n ColumnController.prototype.getSecondaryColumns = function () {\n return this.secondaryColumns ? this.secondaryColumns.slice() : null;\n };\n ColumnController.prototype.getAllColumnsForQuickFilter = function () {\n return this.columnsForQuickFilter;\n };\n // + moveColumnController\n ColumnController.prototype.getAllGridColumns = function () {\n return this.gridColumns;\n };\n ColumnController.prototype.isEmpty = function () {\n return missingOrEmpty(this.gridColumns);\n };\n ColumnController.prototype.isRowGroupEmpty = function () {\n return missingOrEmpty(this.rowGroupColumns);\n };\n ColumnController.prototype.setColumnVisible = function (key, visible, source) {\n if (source === void 0) { source = \"api\"; }\n this.setColumnsVisible([key], visible, source);\n };\n ColumnController.prototype.setColumnsVisible = function (keys, visible, source) {\n var _this = this;\n if (visible === void 0) { visible = false; }\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n this.actionOnGridColumns(keys, function (column) {\n if (column.isVisible() !== visible) {\n column.setVisible(visible, source);\n return true;\n }\n return false;\n }, source, function () {\n var event = {\n type: Events.EVENT_COLUMN_VISIBLE,\n visible: visible,\n column: null,\n columns: null,\n api: _this.gridApi,\n columnApi: _this.columnApi,\n source: source\n };\n return event;\n });\n this.columnAnimationService.finish();\n };\n ColumnController.prototype.setColumnPinned = function (key, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.setColumnsPinned([key], pinned, source);\n }\n };\n ColumnController.prototype.setColumnsPinned = function (keys, pinned, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (this.gridOptionsWrapper.getDomLayout() === 'print') {\n console.warn(\"Changing the column pinning status is not allowed with domLayout='print'\");\n return;\n }\n this.columnAnimationService.start();\n var actualPinned;\n if (pinned === true || pinned === Constants.PINNED_LEFT) {\n actualPinned = Constants.PINNED_LEFT;\n }\n else if (pinned === Constants.PINNED_RIGHT) {\n actualPinned = Constants.PINNED_RIGHT;\n }\n else {\n actualPinned = null;\n }\n this.actionOnGridColumns(keys, function (col) {\n if (col.getPinned() !== actualPinned) {\n col.setPinned(actualPinned);\n return true;\n }\n return false;\n }, source, function () {\n var event = {\n type: Events.EVENT_COLUMN_PINNED,\n pinned: actualPinned,\n column: null,\n columns: null,\n api: _this.gridApi,\n columnApi: _this.columnApi,\n source: source\n };\n return event;\n });\n this.columnAnimationService.finish();\n };\n // does an action on a set of columns. provides common functionality for looking up the\n // columns based on key, getting a list of effected columns, and then updated the event\n // with either one column (if it was just one col) or a list of columns\n // used by: autoResize, setVisible, setPinned\n ColumnController.prototype.actionOnGridColumns = function (// the column keys this action will be on\n keys, \n // the action to do - if this returns false, the column was skipped\n // and won't be included in the event\n action, \n // should return back a column event of the right type\n source, createEvent) {\n var _this = this;\n if (missingOrEmpty(keys)) {\n return;\n }\n var updatedColumns = [];\n keys.forEach(function (key) {\n var column = _this.getGridColumn(key);\n if (!column) {\n return;\n }\n // need to check for false with type (ie !== instead of !=)\n // as not returning anything (undefined) would also be false\n var resultOfAction = action(column);\n if (resultOfAction !== false) {\n updatedColumns.push(column);\n }\n });\n if (!updatedColumns.length) {\n return;\n }\n this.updateDisplayedColumns(source);\n if (exists(createEvent) && createEvent) {\n var event_4 = createEvent();\n event_4.columns = updatedColumns;\n event_4.column = updatedColumns.length === 1 ? updatedColumns[0] : null;\n this.eventService.dispatchEvent(event_4);\n }\n };\n ColumnController.prototype.getDisplayedColBefore = function (col) {\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex > 0) {\n return allDisplayedColumns[oldIndex - 1];\n }\n return null;\n };\n // used by:\n // + rowRenderer -> for navigation\n ColumnController.prototype.getDisplayedColAfter = function (col) {\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex < (allDisplayedColumns.length - 1)) {\n return allDisplayedColumns[oldIndex + 1];\n }\n return null;\n };\n ColumnController.prototype.getDisplayedGroupAfter = function (columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'After');\n };\n ColumnController.prototype.getDisplayedGroupBefore = function (columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'Before');\n };\n ColumnController.prototype.getDisplayedGroupAtDirection = function (columnGroup, direction) {\n // pick the last displayed column in this group\n var requiredLevel = columnGroup.getOriginalColumnGroup().getLevel() + columnGroup.getPaddingLevel();\n var colGroupLeafColumns = columnGroup.getDisplayedLeafColumns();\n var col = direction === 'After' ? last(colGroupLeafColumns) : colGroupLeafColumns[0];\n var getDisplayColMethod = \"getDisplayedCol\" + direction;\n while (true) {\n // keep moving to the next col, until we get to another group\n var column = this[getDisplayColMethod](col);\n if (!column) {\n return null;\n }\n var groupPointer = this.getColumnGroupAtLevel(column, requiredLevel);\n if (groupPointer !== columnGroup) {\n return groupPointer;\n }\n }\n };\n ColumnController.prototype.getColumnGroupAtLevel = function (column, level) {\n // get group at same level as the one we are looking for\n var groupPointer = column.getParent();\n var originalGroupLevel;\n var groupPointerLevel;\n while (true) {\n var groupPointerOriginalColumnGroup = groupPointer.getOriginalColumnGroup();\n originalGroupLevel = groupPointerOriginalColumnGroup.getLevel();\n groupPointerLevel = groupPointer.getPaddingLevel();\n if (originalGroupLevel + groupPointerLevel <= level) {\n break;\n }\n groupPointer = groupPointer.getParent();\n }\n return groupPointer;\n };\n ColumnController.prototype.isPinningLeft = function () {\n return this.displayedColumnsLeft.length > 0;\n };\n ColumnController.prototype.isPinningRight = function () {\n return this.displayedColumnsRight.length > 0;\n };\n ColumnController.prototype.getPrimaryAndSecondaryAndAutoColumns = function () {\n var result = this.primaryColumns ? this.primaryColumns.slice(0) : [];\n if (this.groupAutoColumns && exists(this.groupAutoColumns)) {\n this.groupAutoColumns.forEach(function (col) { return result.push(col); });\n }\n if (this.secondaryColumnsPresent && this.secondaryColumns) {\n this.secondaryColumns.forEach(function (column) { return result.push(column); });\n }\n return result;\n };\n ColumnController.prototype.createStateItemFromColumn = function (column) {\n var rowGroupIndex = column.isRowGroupActive() ? this.rowGroupColumns.indexOf(column) : null;\n var pivotIndex = column.isPivotActive() ? this.pivotColumns.indexOf(column) : null;\n var aggFunc = column.isValueActive() ? column.getAggFunc() : null;\n var sort = column.getSort() != null ? column.getSort() : null;\n var sortIndex = column.getSortIndex() != null ? column.getSortIndex() : null;\n var flex = column.getFlex() != null && column.getFlex() > 0 ? column.getFlex() : null;\n var res = {\n colId: column.getColId(),\n width: column.getActualWidth(),\n hide: !column.isVisible(),\n pinned: column.getPinned(),\n sort: sort,\n sortIndex: sortIndex,\n aggFunc: aggFunc,\n rowGroup: column.isRowGroupActive(),\n rowGroupIndex: rowGroupIndex,\n pivot: column.isPivotActive(),\n pivotIndex: pivotIndex,\n flex: flex\n };\n return res;\n };\n ColumnController.prototype.getColumnState = function () {\n if (missing(this.primaryColumns) || !this.isAlive()) {\n return [];\n }\n var primaryColumnState = this.primaryColumns.map(this.createStateItemFromColumn.bind(this));\n var groupAutoColumnState = this.groupAutoColumns\n // if groupAutoCols, then include them\n ? this.groupAutoColumns.map(this.createStateItemFromColumn.bind(this))\n // otherwise no\n : [];\n var columnStateList = groupAutoColumnState.concat(primaryColumnState);\n if (!this.pivotMode) {\n this.orderColumnStateList(columnStateList);\n }\n return columnStateList;\n };\n ColumnController.prototype.orderColumnStateList = function (columnStateList) {\n // for fast looking, store the index of each column\n var gridColumnIdMap = convertToMap(this.gridColumns.map(function (col, index) { return [col.getColId(), index]; }));\n columnStateList.sort(function (itemA, itemB) {\n var posA = gridColumnIdMap.has(itemA.colId) ? gridColumnIdMap.get(itemA.colId) : -1;\n var posB = gridColumnIdMap.has(itemB.colId) ? gridColumnIdMap.get(itemB.colId) : -1;\n return posA - posB;\n });\n };\n ColumnController.prototype.resetColumnState = function (source) {\n // NOTE = there is one bug here that no customer has noticed - if a column has colDef.lockPosition,\n // this is ignored below when ordering the cols. to work, we should always put lockPosition cols first.\n // As a work around, developers should just put lockPosition columns first in their colDef list.\n if (source === void 0) { source = \"api\"; }\n // we can't use 'allColumns' as the order might of messed up, so get the primary ordered list\n var primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n var columnStates = [];\n // we start at 1000, so if user has mix of rowGroup and group specified, it will work with both.\n // eg IF user has ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=true,\n // THEN result will be ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=1000\n var letRowGroupIndex = 1000;\n var letPivotIndex = 1000;\n var colsToProcess = [];\n if (this.groupAutoColumns) {\n colsToProcess = colsToProcess.concat(this.groupAutoColumns);\n }\n if (primaryColumns) {\n colsToProcess = colsToProcess.concat(primaryColumns);\n }\n colsToProcess.forEach(function (column) {\n var colDef = column.getColDef();\n var sort = colDef.sort != null ? colDef.sort : null;\n var sortIndex = colDef.sortIndex;\n var hide = colDef.hide ? true : false;\n var pinned = colDef.pinned ? colDef.pinned : null;\n var width = colDef.width;\n var flex = colDef.flex != null ? colDef.flex : null;\n var rowGroupIndex = colDef.rowGroupIndex;\n var rowGroup = colDef.rowGroup;\n if (rowGroupIndex == null && (rowGroup == null || rowGroup == false)) {\n rowGroupIndex = null;\n rowGroup = null;\n }\n var pivotIndex = colDef.pivotIndex;\n var pivot = colDef.pivot;\n if (pivotIndex == null && (pivot == null || pivot == false)) {\n pivotIndex = null;\n pivot = null;\n }\n var aggFunc = colDef.aggFunc != null ? colDef.aggFunc : null;\n var stateItem = {\n colId: column.getColId(),\n sort: sort,\n sortIndex: sortIndex,\n hide: hide,\n pinned: pinned,\n width: width,\n flex: flex,\n rowGroup: rowGroup,\n rowGroupIndex: rowGroupIndex,\n pivot: pivot,\n pivotIndex: pivotIndex,\n aggFunc: aggFunc,\n };\n if (missing(rowGroupIndex) && rowGroup) {\n stateItem.rowGroupIndex = letRowGroupIndex++;\n }\n if (missing(pivotIndex) && pivot) {\n stateItem.pivotIndex = letPivotIndex++;\n }\n columnStates.push(stateItem);\n });\n this.applyColumnState({ state: columnStates, applyOrder: true }, source);\n };\n ColumnController.prototype.applyColumnState = function (params, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (missingOrEmpty(this.primaryColumns)) {\n return false;\n }\n if (params && params.state && !params.state.forEach) {\n console.warn('AG Grid: applyColumnState() - the state attribute should be an array, however an array was not found. Please provide an array of items (one for each col you want to change) for state.');\n return false;\n }\n this.columnAnimationService.start();\n var raiseEventsFunc = this.compareColumnStatesAndRaiseEvents(source);\n this.autoGroupsNeedBuilding = true;\n // at the end below, this list will have all columns we got no state for\n var columnsWithNoState = this.primaryColumns.slice();\n var success = true;\n var rowGroupIndexes = {};\n var pivotIndexes = {};\n var autoGroupColumnStates = [];\n var previousRowGroupCols = this.rowGroupColumns.slice();\n var previousPivotCols = this.pivotColumns.slice();\n if (params.state) {\n params.state.forEach(function (state) {\n var groupAutoColumnId = Constants.GROUP_AUTO_COLUMN_ID;\n var colId = state.colId || '';\n // auto group columns are re-created so deferring syncing with ColumnState\n var isAutoGroupColumn = startsWith(colId, groupAutoColumnId);\n if (isAutoGroupColumn) {\n autoGroupColumnStates.push(state);\n return;\n }\n var column = _this.getPrimaryColumn(colId);\n if (!column) {\n // we don't log the failure, as it's possible the user is applying that has extra\n // cols in it. for example they could of save while row-grouping (so state includes\n // auto-group column) and then applied state when not grouping (so the auto-group\n // column would be in the state but no used).\n success = false;\n }\n else {\n _this.syncColumnWithStateItem(column, state, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n removeFromArray(columnsWithNoState, column);\n }\n });\n }\n // anything left over, we got no data for, so add in the column as non-value, non-rowGroup and hidden\n var applyDefaultsFunc = function (col) {\n return _this.syncColumnWithStateItem(col, null, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n };\n columnsWithNoState.forEach(applyDefaultsFunc);\n // sort the lists according to the indexes that were provided\n var comparator = function (indexes, oldList, colA, colB) {\n var indexA = indexes[colA.getId()];\n var indexB = indexes[colB.getId()];\n var aHasIndex = indexA != null;\n var bHasIndex = indexB != null;\n if (aHasIndex && bHasIndex) {\n // both a and b are new cols with index, so sort on index\n return indexA - indexB;\n }\n if (aHasIndex) {\n // a has an index, so it should be before a\n return -1;\n }\n if (bHasIndex) {\n // b has an index, so it should be before a\n return 1;\n }\n var oldIndexA = oldList.indexOf(colA);\n var oldIndexB = oldList.indexOf(colB);\n var aHasOldIndex = oldIndexA >= 0;\n var bHasOldIndex = oldIndexB >= 0;\n if (aHasOldIndex && bHasOldIndex) {\n // both a and b are old cols, so sort based on last order\n return oldIndexA - oldIndexB;\n }\n if (aHasOldIndex) {\n // a is old, b is new, so b is first\n return -1;\n }\n // this bit does matter, means both are new cols\n // but without index or that b is old and a is new\n return 1;\n };\n this.rowGroupColumns.sort(comparator.bind(this, rowGroupIndexes, previousRowGroupCols));\n this.pivotColumns.sort(comparator.bind(this, pivotIndexes, previousPivotCols));\n this.updateGridColumns();\n // sync newly created auto group columns with ColumnState\n var autoGroupColsCopy = this.groupAutoColumns ? this.groupAutoColumns.slice() : [];\n autoGroupColumnStates.forEach(function (stateItem) {\n var autoCol = _this.getAutoColumn(stateItem.colId);\n removeFromArray(autoGroupColsCopy, autoCol);\n _this.syncColumnWithStateItem(autoCol, stateItem, params.defaultState, null, null, true, source);\n });\n // autogroup cols with nothing else, apply the default\n autoGroupColsCopy.forEach(applyDefaultsFunc);\n this.applyOrderAfterApplyState(params);\n this.updateDisplayedColumns(source);\n this.dispatchEverythingChanged(source);\n raiseEventsFunc();\n this.columnAnimationService.finish();\n return success;\n };\n ColumnController.prototype.applyOrderAfterApplyState = function (params) {\n if (!this.gridColsArePrimary || !params.applyOrder || !params.state) {\n return;\n }\n var newOrder = [];\n var processedColIds = {};\n var gridColumnsMap = {};\n this.gridColumns.forEach(function (col) { return gridColumnsMap[col.getId()] = col; });\n params.state.forEach(function (item) {\n if (!item.colId || processedColIds[item.colId]) {\n return;\n }\n var col = gridColumnsMap[item.colId];\n if (col) {\n newOrder.push(col);\n processedColIds[item.colId] = true;\n }\n });\n // add in all other columns\n this.gridColumns.forEach(function (col) {\n if (!processedColIds[col.getColId()]) {\n newOrder.push(col);\n }\n });\n // this is already done in updateGridColumns, however we changed the order above (to match the order of the state\n // columns) so we need to do it again. we could of put logic into the order above to take into account fixed\n // columns, however if we did then we would have logic for updating fixed columns twice. reusing the logic here\n // is less sexy for the code here, but it keeps consistency.\n newOrder = this.putFixedColumnsFirst(newOrder);\n if (!this.doesMovePassMarryChildren(newOrder)) {\n console.warn('AG Grid: Applying column order broke a group where columns should be married together. Applying new order has been discarded.');\n return;\n }\n this.gridColumns = newOrder;\n };\n ColumnController.prototype.compareColumnStatesAndRaiseEvents = function (source) {\n var _this = this;\n // if no columns to begin with, then it means we are setting columns for the first time, so\n // there should be no events fired to show differences in columns.\n var colsPreviouslyExisted = !!this.columnDefs;\n if (!colsPreviouslyExisted) {\n return function () { };\n }\n var startState = {\n rowGroupColumns: this.rowGroupColumns.slice(),\n pivotColumns: this.pivotColumns.slice(),\n valueColumns: this.valueColumns.slice()\n };\n var columnStateBefore = this.getColumnState();\n var columnStateBeforeMap = {};\n columnStateBefore.forEach(function (col) {\n columnStateBeforeMap[col.colId] = col;\n });\n return function () {\n if (_this.gridOptionsWrapper.isSuppressColumnStateEvents()) {\n return;\n }\n // raises generic ColumnEvents where all columns are returned rather than what has changed\n var raiseWhenListsDifferent = function (eventType, colsBefore, colsAfter, idMapper) {\n var beforeList = colsBefore.map(idMapper).sort();\n var afterList = colsAfter.map(idMapper).sort();\n var unchanged = areEqual(beforeList, afterList);\n if (unchanged) {\n return;\n }\n // returning all columns rather than what has changed!\n var event = {\n type: eventType,\n columns: colsAfter,\n column: colsAfter.length === 1 ? colsAfter[0] : null,\n api: _this.gridApi,\n columnApi: _this.columnApi,\n source: source\n };\n _this.eventService.dispatchEvent(event);\n };\n // determines which columns have changed according to supplied predicate\n var getChangedColumns = function (changedPredicate) {\n var changedColumns = [];\n _this.gridColumns.forEach(function (column) {\n var colStateBefore = columnStateBeforeMap[column.getColId()];\n if (colStateBefore && changedPredicate(colStateBefore, column)) {\n changedColumns.push(column);\n }\n });\n return changedColumns;\n };\n var columnIdMapper = function (c) { return c.getColId(); };\n raiseWhenListsDifferent(Events.EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, _this.rowGroupColumns, columnIdMapper);\n raiseWhenListsDifferent(Events.EVENT_COLUMN_PIVOT_CHANGED, startState.pivotColumns, _this.pivotColumns, columnIdMapper);\n var valueChangePredicate = function (cs, c) {\n var oldActive = cs.aggFunc != null;\n var activeChanged = oldActive != c.isValueActive();\n // we only check aggFunc if the agg is active\n var aggFuncChanged = oldActive && cs.aggFunc != c.getAggFunc();\n return activeChanged || aggFuncChanged;\n };\n var changedValues = getChangedColumns(valueChangePredicate);\n if (changedValues.length > 0) {\n // we pass all value columns, now the ones that changed. this is the same\n // as pivot and rowGroup cols, but different to all other properties below.\n // this is more for backwards compatibility, as it's always been this way.\n // really it should be the other way, as the order of the cols makes no difference\n // for valueColumns (apart from displaying them in the tool panel).\n _this.fireColumnEvent(Events.EVENT_COLUMN_VALUE_CHANGED, _this.valueColumns, source);\n }\n var resizeChangePredicate = function (cs, c) { return cs.width != c.getActualWidth(); };\n _this.fireColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);\n var pinnedChangePredicate = function (cs, c) { return cs.pinned != c.getPinned(); };\n _this.raiseColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);\n var visibilityChangePredicate = function (cs, c) { return cs.hide == c.isVisible(); };\n _this.raiseColumnVisibleEvent(getChangedColumns(visibilityChangePredicate), source);\n var sortChangePredicate = function (cs, c) { return cs.sort != c.getSort() || cs.sortIndex != c.getSortIndex(); };\n if (getChangedColumns(sortChangePredicate).length > 0) {\n _this.sortController.dispatchSortChangedEvents();\n }\n // special handling for moved column events\n _this.raiseColumnMovedEvent(columnStateBefore, source);\n };\n };\n ColumnController.prototype.raiseColumnPinnedEvent = function (changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n var column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n var pinned = this.getCommonValue(changedColumns, function (col) { return col.getPinned(); });\n var event = {\n type: Events.EVENT_COLUMN_PINNED,\n // mistake in typing, 'undefined' should be allowed, as 'null' means 'not pinned'\n pinned: pinned != null ? pinned : null,\n columns: changedColumns,\n column: column,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.getCommonValue = function (cols, valueGetter) {\n if (!cols || cols.length == 0) {\n return undefined;\n }\n // compare each value to the first value. if nothing differs, then value is common so return it.\n var firstValue = valueGetter(cols[0]);\n for (var i = 1; i < cols.length; i++) {\n if (firstValue !== valueGetter(cols[i])) {\n // values differ, no common value\n return undefined;\n }\n }\n return firstValue;\n };\n ColumnController.prototype.raiseColumnVisibleEvent = function (changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n var column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n var visible = this.getCommonValue(changedColumns, function (col) { return col.isVisible(); });\n var event = {\n type: Events.EVENT_COLUMN_VISIBLE,\n visible: visible,\n columns: changedColumns,\n column: column,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.raiseColumnMovedEvent = function (colStateBefore, source) {\n // we are only interested in columns that were both present and visible before and after\n var _this = this;\n var colStateAfter = this.getColumnState();\n var colStateAfterMapped = {};\n colStateAfter.forEach(function (s) { return colStateAfterMapped[s.colId] = s; });\n // get id's of cols in both before and after lists\n var colsIntersectIds = {};\n colStateBefore.forEach(function (s) {\n if (colStateAfterMapped[s.colId]) {\n colsIntersectIds[s.colId] = true;\n }\n });\n // filter state lists, so we only have cols that were present before and after\n var beforeFiltered = filter(colStateBefore, function (c) { return colsIntersectIds[c.colId]; });\n var afterFiltered = filter(colStateAfter, function (c) { return colsIntersectIds[c.colId]; });\n // see if any cols are in a different location\n var movedColumns = [];\n afterFiltered.forEach(function (csAfter, index) {\n var csBefore = beforeFiltered && beforeFiltered[index];\n if (csBefore && csBefore.colId !== csAfter.colId) {\n var gridCol = _this.getGridColumn(csBefore.colId);\n if (gridCol) {\n movedColumns.push(gridCol);\n }\n }\n });\n if (!movedColumns.length) {\n return;\n }\n var event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: movedColumns,\n column: null,\n api: this.gridApi,\n columnApi: this.columnApi,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.syncColumnWithStateItem = function (column, stateItem, defaultState, rowGroupIndexes, pivotIndexes, autoCol, source) {\n if (!column) {\n return;\n }\n var getValue = function (key1, key2) {\n var stateAny = stateItem;\n var defaultAny = defaultState;\n var obj = { value1: undefined, value2: undefined };\n var calculated = false;\n if (stateAny) {\n if (stateAny[key1] !== undefined) {\n obj.value1 = stateAny[key1];\n calculated = true;\n }\n if (exists(key2) && stateAny[key2] !== undefined) {\n obj.value2 = stateAny[key2];\n calculated = true;\n }\n }\n if (!calculated && defaultAny) {\n if (defaultAny[key1] !== undefined) {\n obj.value1 = defaultAny[key1];\n }\n if (exists(key2) && defaultAny[key2] !== undefined) {\n obj.value2 = defaultAny[key2];\n }\n }\n return obj;\n };\n // following ensures we are left with boolean true or false, eg converts (null, undefined, 0) all to true\n var hide = getValue('hide').value1;\n if (hide !== undefined) {\n column.setVisible(!hide, source);\n }\n // sets pinned to 'left' or 'right'\n var pinned = getValue('pinned').value1;\n if (pinned !== undefined) {\n column.setPinned(pinned);\n }\n // if width provided and valid, use it, otherwise stick with the old width\n var minColWidth = this.gridOptionsWrapper.getMinColWidth();\n // flex\n var flex = getValue('flex').value1;\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n var noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n var width = getValue('width').value1;\n if (width != null) {\n if (minColWidth &&\n (width >= minColWidth)) {\n column.setActualWidth(width, source);\n }\n }\n }\n var sort = getValue('sort').value1;\n if (sort !== undefined) {\n if (sort === Constants.SORT_DESC || sort === Constants.SORT_ASC) {\n column.setSort(sort);\n }\n else {\n column.setSort(undefined);\n }\n }\n var sortIndex = getValue('sortIndex').value1;\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // we do not do aggFunc, rowGroup or pivot for auto cols, as you can't do these with auto col\n if (autoCol) {\n return;\n }\n var aggFunc = getValue('aggFunc').value1;\n if (aggFunc !== undefined) {\n if (typeof aggFunc === 'string') {\n column.setAggFunc(aggFunc);\n if (!column.isValueActive()) {\n column.setValueActive(true, source);\n this.valueColumns.push(column);\n }\n }\n else {\n if (exists(aggFunc)) {\n console.warn('AG Grid: stateItem.aggFunc must be a string. if using your own aggregation ' +\n 'functions, register the functions first before using them in get/set state. This is because it is ' +\n 'intended for the column state to be stored and retrieved as simple JSON.');\n }\n column.setAggFunc(null);\n if (column.isValueActive()) {\n column.setValueActive(false, source);\n removeFromArray(this.valueColumns, column);\n }\n }\n }\n var _a = getValue('rowGroup', 'rowGroupIndex'), rowGroup = _a.value1, rowGroupIndex = _a.value2;\n if (rowGroup !== undefined || rowGroupIndex !== undefined) {\n if (typeof rowGroupIndex === 'number' || rowGroup) {\n if (!column.isRowGroupActive()) {\n column.setRowGroupActive(true, source);\n this.rowGroupColumns.push(column);\n }\n if (rowGroupIndexes && typeof rowGroupIndex === 'number') {\n rowGroupIndexes[column.getId()] = rowGroupIndex;\n }\n }\n else {\n if (column.isRowGroupActive()) {\n column.setRowGroupActive(false, source);\n removeFromArray(this.rowGroupColumns, column);\n }\n }\n }\n var _b = getValue('pivot', 'pivotIndex'), pivot = _b.value1, pivotIndex = _b.value2;\n if (pivot !== undefined || pivotIndex !== undefined) {\n if (typeof pivotIndex === 'number' || pivot) {\n if (!column.isPivotActive()) {\n column.setPivotActive(true, source);\n this.pivotColumns.push(column);\n }\n if (pivotIndexes && typeof pivotIndex === 'number') {\n pivotIndexes[column.getId()] = pivotIndex;\n }\n }\n else {\n if (column.isPivotActive()) {\n column.setPivotActive(false, source);\n removeFromArray(this.pivotColumns, column);\n }\n }\n }\n };\n ColumnController.prototype.getGridColumns = function (keys) {\n return this.getColumns(keys, this.getGridColumn.bind(this));\n };\n ColumnController.prototype.getColumns = function (keys, columnLookupCallback) {\n var foundColumns = [];\n if (keys) {\n keys.forEach(function (key) {\n var column = columnLookupCallback(key);\n if (column) {\n foundColumns.push(column);\n }\n });\n }\n return foundColumns;\n };\n // used by growGroupPanel\n ColumnController.prototype.getColumnWithValidation = function (key) {\n if (key == null) {\n return null;\n }\n var column = this.getGridColumn(key);\n if (!column) {\n console.warn('AG Grid: could not find column ' + key);\n }\n return column;\n };\n ColumnController.prototype.getPrimaryColumn = function (key) {\n return this.getColumn(key, this.primaryColumns, this.primaryColumnsMap);\n };\n ColumnController.prototype.getGridColumn = function (key) {\n return this.getColumn(key, this.gridColumns, this.gridColumnsMap);\n };\n ColumnController.prototype.getColumn = function (key, columnList, columnMap) {\n if (!key) {\n return null;\n }\n // most of the time this method gets called the key is a string, so we put this shortcut in\n // for performance reasons, to see if we can match for ID (it doesn't do auto columns, that's done below)\n if (typeof key == 'string' && columnMap[key]) {\n return columnMap[key];\n }\n for (var i = 0; i < columnList.length; i++) {\n if (this.columnsMatch(columnList[i], key)) {\n return columnList[i];\n }\n }\n return this.getAutoColumn(key);\n };\n ColumnController.prototype.getAutoColumn = function (key) {\n var _this = this;\n if (!this.groupAutoColumns ||\n !exists(this.groupAutoColumns) ||\n missing(this.groupAutoColumns)) {\n return null;\n }\n return find(this.groupAutoColumns, function (groupCol) { return _this.columnsMatch(groupCol, key); });\n };\n ColumnController.prototype.columnsMatch = function (column, key) {\n var columnMatches = column === key;\n var colDefMatches = column.getColDef() === key;\n var idMatches = column.getColId() == key;\n return columnMatches || colDefMatches || idMatches;\n };\n ColumnController.prototype.getDisplayNameForColumn = function (column, location, includeAggFunc) {\n if (includeAggFunc === void 0) { includeAggFunc = false; }\n if (!column) {\n return null;\n }\n var headerName = this.getHeaderName(column.getColDef(), column, null, null, location);\n if (includeAggFunc) {\n return this.wrapHeaderNameWithAggFunc(column, headerName);\n }\n return headerName;\n };\n ColumnController.prototype.getDisplayNameForOriginalColumnGroup = function (columnGroup, originalColumnGroup, location) {\n var colGroupDef = originalColumnGroup ? originalColumnGroup.getColGroupDef() : null;\n if (colGroupDef) {\n return this.getHeaderName(colGroupDef, null, columnGroup, originalColumnGroup, location);\n }\n return null;\n };\n ColumnController.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) {\n return this.getDisplayNameForOriginalColumnGroup(columnGroup, columnGroup.getOriginalColumnGroup(), location);\n };\n // location is where the column is going to appear, ie who is calling us\n ColumnController.prototype.getHeaderName = function (colDef, column, columnGroup, originalColumnGroup, location) {\n var headerValueGetter = colDef.headerValueGetter;\n if (headerValueGetter) {\n var params = {\n colDef: colDef,\n column: column,\n columnGroup: columnGroup,\n originalColumnGroup: originalColumnGroup,\n location: location,\n api: this.gridOptionsWrapper.getApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n if (typeof headerValueGetter === 'function') {\n // valueGetter is a function, so just call it\n return headerValueGetter(params);\n }\n else if (typeof headerValueGetter === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.expressionService.evaluate(headerValueGetter, params);\n }\n console.warn('ag-grid: headerValueGetter must be a function or a string');\n return '';\n }\n else if (colDef.headerName != null) {\n return colDef.headerName;\n }\n else if (colDef.field) {\n return camelCaseToHumanText(colDef.field);\n }\n return '';\n };\n /*\n private getHeaderGroupName(columnGroup: ColumnGroup): string {\n let colGroupDef = columnGroup.getOriginalColumnGroup().getColGroupDef();\n let headerValueGetter = colGroupDef.headerValueGetter;\n\n if (headerValueGetter) {\n let params = {\n columnGroup: columnGroup,\n colDef: colGroupDef,\n api: this.gridOptionsWrapper.getApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n\n if (typeof headerValueGetter === 'function') {\n // valueGetter is a function, so just call it\n return headerValueGetter(params);\n } else if (typeof headerValueGetter === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.expressionService.evaluate(headerValueGetter, params);\n } else {\n console.warn('ag-grid: headerValueGetter must be a function or a string');\n return '';\n }\n } else {\n return colGroupDef.headerName;\n }\n }\n */\n ColumnController.prototype.wrapHeaderNameWithAggFunc = function (column, headerName) {\n if (this.gridOptionsWrapper.isSuppressAggFuncInHeader()) {\n return headerName;\n }\n // only columns with aggregation active can have aggregations\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n var pivotActiveOnThisColumn = exists(pivotValueColumn);\n var aggFunc = null;\n var aggFuncFound;\n // otherwise we have a measure that is active, and we are doing aggregation on it\n if (pivotActiveOnThisColumn) {\n aggFunc = pivotValueColumn ? pivotValueColumn.getAggFunc() : null;\n aggFuncFound = true;\n }\n else {\n var measureActive = column.isValueActive();\n var aggregationPresent = this.pivotMode || !this.isRowGroupEmpty();\n if (measureActive && aggregationPresent) {\n aggFunc = column.getAggFunc();\n aggFuncFound = true;\n }\n else {\n aggFuncFound = false;\n }\n }\n if (aggFuncFound) {\n var aggFuncString = (typeof aggFunc === 'string') ? aggFunc : 'func';\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);\n return aggFuncStringTranslated + \"(\" + headerName + \")\";\n }\n return headerName;\n };\n // returns the group with matching colId and instanceId. If instanceId is missing,\n // matches only on the colId.\n ColumnController.prototype.getColumnGroup = function (colId, instanceId) {\n if (!colId) {\n return null;\n }\n if (colId instanceof ColumnGroup) {\n return colId;\n }\n var allColumnGroups = this.getAllDisplayedTrees();\n var checkInstanceId = typeof instanceId === 'number';\n var result = null;\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {\n if (child instanceof ColumnGroup) {\n var columnGroup = child;\n var matched = void 0;\n if (checkInstanceId) {\n matched = colId === columnGroup.getGroupId() && instanceId === columnGroup.getInstanceId();\n }\n else {\n matched = colId === columnGroup.getGroupId();\n }\n if (matched) {\n result = columnGroup;\n }\n }\n });\n return result;\n };\n ColumnController.prototype.isReady = function () {\n return this.ready;\n };\n ColumnController.prototype.extractValueColumns = function (source, oldPrimaryColumns) {\n this.valueColumns = this.extractColumns(oldPrimaryColumns, this.valueColumns, function (col, flag) { return col.setValueActive(flag, source); }, \n // aggFunc doesn't have index variant, cos order of value cols doesn't matter, so always return null\n function () { return undefined; }, function () { return undefined; }, \n // aggFunc is a string, so return it's existence\n function (colDef) {\n var aggFunc = colDef.aggFunc;\n // null or empty string means clear\n if (aggFunc === null || aggFunc === '') {\n return null;\n }\n if (aggFunc === undefined) {\n return;\n }\n return !!aggFunc;\n }, function (colDef) {\n // return false if any of the following: null, undefined, empty string\n return colDef.initialAggFunc != null && colDef.initialAggFunc != '';\n });\n // all new columns added will have aggFunc missing, so set it to what is in the colDef\n this.valueColumns.forEach(function (col) {\n var colDef = col.getColDef();\n // if aggFunc provided, we always override, as reactive property\n if (colDef.aggFunc != null && colDef.aggFunc != '') {\n col.setAggFunc(colDef.aggFunc);\n }\n else {\n // otherwise we use initialAggFunc only if no agg func set - which happens when new column only\n if (!col.getAggFunc()) {\n col.setAggFunc(colDef.initialAggFunc);\n }\n }\n });\n };\n ColumnController.prototype.extractRowGroupColumns = function (source, oldPrimaryColumns) {\n this.rowGroupColumns = this.extractColumns(oldPrimaryColumns, this.rowGroupColumns, function (col, flag) { return col.setRowGroupActive(flag, source); }, function (colDef) { return colDef.rowGroupIndex; }, function (colDef) { return colDef.initialRowGroupIndex; }, function (colDef) { return colDef.rowGroup; }, function (colDef) { return colDef.initialRowGroup; });\n };\n ColumnController.prototype.extractColumns = function (oldPrimaryColumns, previousCols, setFlagFunc, getIndexFunc, getInitialIndexFunc, getValueFunc, getInitialValueFunc) {\n if (oldPrimaryColumns === void 0) { oldPrimaryColumns = []; }\n if (previousCols === void 0) { previousCols = []; }\n var colsWithIndex = [];\n var colsWithValue = [];\n // go though all cols.\n // if value, change\n // if default only, change only if new\n this.primaryColumns.forEach(function (col) {\n var colIsNew = oldPrimaryColumns.indexOf(col) < 0;\n var colDef = col.getColDef();\n var value = attrToBoolean(getValueFunc(colDef));\n var initialValue = attrToBoolean(getInitialValueFunc(colDef));\n var index = attrToNumber(getIndexFunc(colDef));\n var initialIndex = attrToNumber(getInitialIndexFunc(colDef));\n var include;\n if (colIsNew) {\n // col is new, use values if present, otherwise use default values if present\n var valuePresent = value !== undefined || index !== undefined;\n if (valuePresent) {\n if (value !== undefined) {\n // if boolean value present, we take it's value, even if 'false'\n include = value;\n }\n else {\n // otherwise we based on number value. note that 'null' resets, however 'undefined' doesn't\n // go through this code path (undefined means 'ignore').\n include = index >= 0;\n }\n }\n else {\n include = initialValue || initialIndex >= 0;\n }\n }\n else {\n // col is not new, we ignore the default values, just use the values if provided\n if (value !== undefined) { // value is never null, as attrToBoolean converts null to false\n include = value;\n }\n else if (index !== undefined) {\n if (index === null) {\n include = false;\n }\n else {\n include = index >= 0;\n }\n }\n else {\n // no values provided, we include if it was included last time\n include = previousCols.indexOf(col) >= 0;\n }\n }\n if (include) {\n var useIndex = colIsNew ? (index != null || initialIndex != null) : index != null;\n if (useIndex) {\n colsWithIndex.push(col);\n }\n else {\n colsWithValue.push(col);\n }\n }\n });\n var getIndexForCol = function (col) {\n var index = getIndexFunc(col.getColDef());\n var defaultIndex = getInitialIndexFunc(col.getColDef());\n return index != null ? index : defaultIndex;\n };\n // sort cols with index, and add these first\n colsWithIndex.sort(function (colA, colB) {\n var indexA = getIndexForCol(colA);\n var indexB = getIndexForCol(colB);\n if (indexA === indexB) {\n return 0;\n }\n if (indexA < indexB) {\n return -1;\n }\n return 1;\n });\n var res = [].concat(colsWithIndex);\n // second add columns that were there before and in the same order as they were before,\n // so we are preserving order of current grouping of columns that simply have rowGroup=true\n previousCols.forEach(function (col) {\n if (colsWithValue.indexOf(col) >= 0) {\n res.push(col);\n }\n });\n // lastly put in all remaining cols\n colsWithValue.forEach(function (col) {\n if (res.indexOf(col) < 0) {\n res.push(col);\n }\n });\n // set flag=false for removed cols\n previousCols.forEach(function (col) {\n if (res.indexOf(col) < 0) {\n setFlagFunc(col, false);\n }\n });\n // set flag=true for newly added cols\n res.forEach(function (col) {\n if (previousCols.indexOf(col) < 0) {\n setFlagFunc(col, true);\n }\n });\n return res;\n };\n ColumnController.prototype.extractPivotColumns = function (source, oldPrimaryColumns) {\n this.pivotColumns = this.extractColumns(oldPrimaryColumns, this.pivotColumns, function (col, flag) { return col.setPivotActive(flag, source); }, function (colDef) { return colDef.pivotIndex; }, function (colDef) { return colDef.initialPivotIndex; }, function (colDef) { return colDef.pivot; }, function (colDef) { return colDef.initialPivot; });\n };\n ColumnController.prototype.resetColumnGroupState = function (source) {\n if (source === void 0) { source = \"api\"; }\n var stateItems = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.primaryColumnTree, function (child) {\n if (child instanceof OriginalColumnGroup) {\n var colGroupDef = child.getColGroupDef();\n var groupState = {\n groupId: child.getGroupId(),\n open: !colGroupDef ? undefined : colGroupDef.openByDefault\n };\n stateItems.push(groupState);\n }\n });\n this.setColumnGroupState(stateItems, source);\n };\n ColumnController.prototype.getColumnGroupState = function () {\n var columnGroupState = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {\n if (node instanceof OriginalColumnGroup) {\n var originalColumnGroup = node;\n columnGroupState.push({\n groupId: originalColumnGroup.getGroupId(),\n open: originalColumnGroup.isExpanded()\n });\n }\n });\n return columnGroupState;\n };\n ColumnController.prototype.setColumnGroupState = function (stateItems, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n var impactedGroups = [];\n stateItems.forEach(function (stateItem) {\n var groupKey = stateItem.groupId;\n var newValue = stateItem.open;\n var originalColumnGroup = _this.getOriginalColumnGroup(groupKey);\n if (!originalColumnGroup) {\n return;\n }\n if (originalColumnGroup.isExpanded() === newValue) {\n return;\n }\n _this.logger.log('columnGroupOpened(' + originalColumnGroup.getGroupId() + ',' + newValue + ')');\n originalColumnGroup.setExpanded(newValue);\n impactedGroups.push(originalColumnGroup);\n });\n this.updateGroupsAndDisplayedColumns(source);\n this.setFirstRightAndLastLeftPinned(source);\n impactedGroups.forEach(function (originalColumnGroup) {\n var event = {\n type: Events.EVENT_COLUMN_GROUP_OPENED,\n columnGroup: originalColumnGroup,\n api: _this.gridApi,\n columnApi: _this.columnApi\n };\n _this.eventService.dispatchEvent(event);\n });\n this.columnAnimationService.finish();\n };\n // called by headerRenderer - when a header is opened or closed\n ColumnController.prototype.setColumnGroupOpened = function (key, newValue, source) {\n if (source === void 0) { source = \"api\"; }\n var keyAsString;\n if (key instanceof OriginalColumnGroup) {\n keyAsString = key.getId();\n }\n else {\n keyAsString = key || '';\n }\n this.setColumnGroupState([{ groupId: keyAsString, open: newValue }], source);\n };\n ColumnController.prototype.getOriginalColumnGroup = function (key) {\n if (key instanceof OriginalColumnGroup) {\n return key;\n }\n if (typeof key !== 'string') {\n console.error('AG Grid: group key must be a string');\n }\n // otherwise, search for the column group by id\n var res = null;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {\n if (node instanceof OriginalColumnGroup) {\n var originalColumnGroup = node;\n if (originalColumnGroup.getId() === key) {\n res = originalColumnGroup;\n }\n }\n });\n return res;\n };\n ColumnController.prototype.calculateColumnsForDisplay = function () {\n var _this = this;\n var columnsForDisplay;\n if (this.pivotMode && !this.secondaryColumnsPresent) {\n // pivot mode is on, but we are not pivoting, so we only\n // show columns we are aggregating on\n columnsForDisplay = this.gridColumns.filter(function (column) {\n var isAutoGroupCol = _this.groupAutoColumns && includes(_this.groupAutoColumns, column);\n var isValueCol = _this.valueColumns && includes(_this.valueColumns, column);\n return isAutoGroupCol || isValueCol;\n });\n }\n else {\n // otherwise continue as normal. this can be working on the primary\n // or secondary columns, whatever the gridColumns are set to\n columnsForDisplay = this.gridColumns.filter(function (column) {\n // keep col if a) it's auto-group or b) it's visible\n var isAutoGroupCol = _this.groupAutoColumns && includes(_this.groupAutoColumns, column);\n return isAutoGroupCol || column.isVisible();\n });\n }\n return columnsForDisplay;\n };\n ColumnController.prototype.checkColSpanActiveInCols = function (columns) {\n var result = false;\n columns.forEach(function (col) {\n if (exists(col.getColDef().colSpan)) {\n result = true;\n }\n });\n return result;\n };\n ColumnController.prototype.calculateColumnsForGroupDisplay = function () {\n var _this = this;\n this.groupDisplayColumns = [];\n var checkFunc = function (col) {\n var colDef = col.getColDef();\n if (colDef && exists(colDef.showRowGroup)) {\n _this.groupDisplayColumns.push(col);\n }\n };\n this.gridColumns.forEach(checkFunc);\n if (this.groupAutoColumns) {\n this.groupAutoColumns.forEach(checkFunc);\n }\n };\n ColumnController.prototype.getGroupDisplayColumns = function () {\n return this.groupDisplayColumns;\n };\n ColumnController.prototype.updateDisplayedColumns = function (source) {\n var columnsForDisplay = this.calculateColumnsForDisplay();\n this.buildDisplayedTrees(columnsForDisplay);\n this.calculateColumnsForGroupDisplay();\n // also called when group opened/closed\n this.updateGroupsAndDisplayedColumns(source);\n // also called when group opened/closed\n this.setFirstRightAndLastLeftPinned(source);\n };\n ColumnController.prototype.isSecondaryColumnsPresent = function () {\n return this.secondaryColumnsPresent;\n };\n ColumnController.prototype.setSecondaryColumns = function (colDefs, source) {\n if (source === void 0) { source = \"api\"; }\n var newColsPresent = colDefs && colDefs.length > 0;\n // if not cols passed, and we had to cols anyway, then do nothing\n if (!newColsPresent && !this.secondaryColumnsPresent) {\n return;\n }\n if (newColsPresent) {\n this.processSecondaryColumnDefinitions(colDefs);\n var balancedTreeResult = this.columnFactory.createColumnTree(colDefs, false);\n this.secondaryBalancedTree = balancedTreeResult.columnTree;\n this.secondaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.secondaryColumns = this.getColumnsFromTree(this.secondaryBalancedTree);\n this.secondaryColumnsPresent = true;\n }\n else {\n this.secondaryBalancedTree = null;\n this.secondaryHeaderRowCount = -1;\n this.secondaryColumns = null;\n this.secondaryColumnsPresent = false;\n }\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n };\n ColumnController.prototype.processSecondaryColumnDefinitions = function (colDefs) {\n var columnCallback = this.gridOptionsWrapper.getProcessSecondaryColDefFunc();\n var groupCallback = this.gridOptionsWrapper.getProcessSecondaryColGroupDefFunc();\n if (!columnCallback && !groupCallback) {\n return undefined;\n }\n var searchForColDefs = function (colDefs2) {\n colDefs2.forEach(function (abstractColDef) {\n var isGroup = exists(abstractColDef.children);\n if (isGroup) {\n var colGroupDef = abstractColDef;\n if (groupCallback) {\n groupCallback(colGroupDef);\n }\n searchForColDefs(colGroupDef.children);\n }\n else {\n var colDef = abstractColDef;\n if (columnCallback) {\n columnCallback(colDef);\n }\n }\n });\n };\n if (colDefs) {\n searchForColDefs(colDefs);\n }\n };\n // called from: setColumnState, setColumnDefs, setSecondaryColumns\n ColumnController.prototype.updateGridColumns = function () {\n var _this = this;\n if (this.gridColsArePrimary) {\n this.lastPrimaryOrder = this.gridColumns;\n }\n if (this.secondaryColumns && this.secondaryBalancedTree) {\n this.gridBalancedTree = this.secondaryBalancedTree.slice();\n this.gridHeaderRowCount = this.secondaryHeaderRowCount;\n this.gridColumns = this.secondaryColumns.slice();\n this.gridColsArePrimary = false;\n }\n else {\n this.gridBalancedTree = this.primaryColumnTree.slice();\n this.gridHeaderRowCount = this.primaryHeaderRowCount;\n this.gridColumns = this.primaryColumns.slice();\n this.gridColsArePrimary = true;\n // updateGridColumns gets called after user adds a row group. we want to maintain the order of the columns\n // when this happens (eg if user moved a column) rather than revert back to the original column order.\n // likewise if changing in/out of pivot mode, we want to maintain the order of the primary cols\n this.orderGridColsLikeLastPrimary();\n }\n this.addAutoGroupToGridColumns();\n this.autoRowHeightColumns = this.gridColumns.filter(function (col) { return col.getColDef().autoHeight; });\n this.gridColumns = this.putFixedColumnsFirst(this.gridColumns);\n this.setupQuickFilterColumns();\n this.clearDisplayedAndViewportColumns();\n this.colSpanActive = this.checkColSpanActiveInCols(this.gridColumns);\n this.gridColumnsMap = {};\n this.gridColumns.forEach(function (col) { return _this.gridColumnsMap[col.getId()] = col; });\n var event = {\n type: Events.EVENT_GRID_COLUMNS_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.orderGridColsLikeLastPrimary = function () {\n if (missing(this.lastPrimaryOrder)) {\n return;\n }\n var lastPrimaryOrderMapped = convertToMap(this.lastPrimaryOrder.map(function (col, index) { return [col, index]; }));\n // only do the sort if at least one column is accounted for. columns will be not accounted for\n // if changing from secondary to primary columns\n var noColsFound = true;\n this.gridColumns.forEach(function (col) {\n if (lastPrimaryOrderMapped.has(col)) {\n noColsFound = false;\n }\n });\n if (noColsFound) {\n return;\n }\n // order cols in the same order as before. we need to make sure that all\n // cols still exists, so filter out any that no longer exist.\n var gridColsMap = convertToMap(this.gridColumns.map(function (col) { return [col, true]; }));\n var oldColsOrdered = this.lastPrimaryOrder.filter(function (col) { return gridColsMap.has(col); });\n var oldColsMap = convertToMap(oldColsOrdered.map(function (col) { return [col, true]; }));\n var newColsOrdered = this.gridColumns.filter(function (col) { return !oldColsMap.has(col); });\n // add in the new columns, at the end (if no group), or at the end of the group (if a group)\n var newGridColumns = oldColsOrdered.slice();\n newColsOrdered.forEach(function (newCol) {\n var parent = newCol.getOriginalParent();\n // if no parent, means we are not grouping, so just add the column to the end\n if (!parent) {\n newGridColumns.push(newCol);\n return;\n }\n // find the group the column belongs to. if no siblings at the current level (eg col in group on it's\n // own) then go up one level and look for siblings there.\n var siblings = [];\n while (!siblings.length && parent) {\n var leafCols = parent.getLeafColumns();\n leafCols.forEach(function (leafCol) {\n var presentInNewGriColumns = newGridColumns.indexOf(leafCol) >= 0;\n var noYetInSiblings = siblings.indexOf(leafCol) < 0;\n if (presentInNewGriColumns && noYetInSiblings) {\n siblings.push(leafCol);\n }\n });\n parent = parent.getOriginalParent();\n }\n // if no siblings exist at any level, this means the col is in a group (or parent groups) on it's own\n if (!siblings.length) {\n newGridColumns.push(newCol);\n return;\n }\n // find index of last column in the group\n var indexes = siblings.map(function (col) { return newGridColumns.indexOf(col); });\n var lastIndex = Math.max.apply(Math, indexes);\n insertIntoArray(newGridColumns, newCol, lastIndex + 1);\n });\n this.gridColumns = newGridColumns;\n };\n ColumnController.prototype.isPrimaryColumnGroupsPresent = function () {\n return this.primaryHeaderRowCount > 1;\n };\n // if we are using autoGroupCols, then they should be included for quick filter. this covers the\n // following scenarios:\n // a) user provides 'field' into autoGroupCol of normal grid, so now because a valid col to filter leafs on\n // b) using tree data and user depends on autoGroupCol for first col, and we also want to filter on this\n // (tree data is a bit different, as parent rows can be filtered on, unlike row grouping)\n ColumnController.prototype.setupQuickFilterColumns = function () {\n if (this.groupAutoColumns) {\n this.columnsForQuickFilter = this.primaryColumns.concat(this.groupAutoColumns);\n }\n else {\n this.columnsForQuickFilter = this.primaryColumns;\n }\n };\n ColumnController.prototype.putFixedColumnsFirst = function (cols) {\n var locked = cols.filter(function (c) { return c.getColDef().lockPosition; });\n var unlocked = cols.filter(function (c) { return !c.getColDef().lockPosition; });\n return locked.concat(unlocked);\n };\n ColumnController.prototype.addAutoGroupToGridColumns = function () {\n // add in auto-group here\n this.createGroupAutoColumnsIfNeeded();\n if (missing(this.groupAutoColumns)) {\n return;\n }\n this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;\n var autoColBalancedTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);\n this.gridBalancedTree = autoColBalancedTree.concat(this.gridBalancedTree);\n };\n // gets called after we copy down grid columns, to make sure any part of the gui\n // that tries to draw, eg the header, it will get empty lists of columns rather\n // than stale columns. for example, the header will received gridColumnsChanged\n // event, so will try and draw, but it will draw successfully when it acts on the\n // virtualColumnsChanged event\n ColumnController.prototype.clearDisplayedAndViewportColumns = function () {\n this.displayedTreeLeft = [];\n this.displayedTreeRight = [];\n this.displayedTreeCentre = [];\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n this.displayedColumnsLeft = [];\n this.displayedColumnsRight = [];\n this.displayedColumnsCenter = [];\n this.displayedColumns = [];\n this.viewportColumns = [];\n };\n ColumnController.prototype.updateGroupsAndDisplayedColumns = function (source) {\n this.updateOpenClosedVisibilityInColumnGroups();\n this.deriveDisplayedColumns(source);\n this.refreshFlexedColumns();\n this.extractViewport();\n this.updateBodyWidths();\n // this event is picked up by the gui, headerRenderer and rowRenderer, to recalculate what columns to display\n var event = {\n type: Events.EVENT_DISPLAYED_COLUMNS_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnController.prototype.deriveDisplayedColumns = function (source) {\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeLeft, this.displayedColumnsLeft);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeCentre, this.displayedColumnsCenter);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeRight, this.displayedColumnsRight);\n this.joinDisplayedColumns();\n this.setLeftValues(source);\n };\n ColumnController.prototype.joinDisplayedColumns = function () {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.displayedColumns = this.displayedColumnsRight\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsLeft);\n }\n else {\n this.displayedColumns = this.displayedColumnsLeft\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsRight);\n }\n };\n // sets the left pixel position of each column\n ColumnController.prototype.setLeftValues = function (source) {\n this.setLeftValuesOfColumns(source);\n this.setLeftValuesOfGroups();\n };\n ColumnController.prototype.setLeftValuesOfColumns = function (source) {\n var _this = this;\n // go through each list of displayed columns\n var allColumns = this.primaryColumns.slice(0);\n // let totalColumnWidth = this.getWidthOfColsInList()\n var doingRtl = this.gridOptionsWrapper.isEnableRtl();\n [\n this.displayedColumnsLeft,\n this.displayedColumnsRight,\n this.displayedColumnsCenter\n ].forEach(function (columns) {\n if (doingRtl) {\n // when doing RTL, we start at the top most pixel (ie RHS) and work backwards\n var left_1 = _this.getWidthOfColsInList(columns);\n columns.forEach(function (column) {\n left_1 -= column.getActualWidth();\n column.setLeft(left_1, source);\n });\n }\n else {\n // otherwise normal LTR, we start at zero\n var left_2 = 0;\n columns.forEach(function (column) {\n column.setLeft(left_2, source);\n left_2 += column.getActualWidth();\n });\n }\n removeAllFromArray(allColumns, columns);\n });\n // items left in allColumns are columns not displayed, so remove the left position. this is\n // important for the rows, as if a col is made visible, then taken out, then made visible again,\n // we don't want the animation of the cell floating in from the old position, whatever that was.\n allColumns.forEach(function (column) {\n column.setLeft(null, source);\n });\n };\n ColumnController.prototype.setLeftValuesOfGroups = function () {\n // a groups left value is the lest left value of it's children\n [\n this.displayedTreeLeft,\n this.displayedTreeRight,\n this.displayedTreeCentre\n ].forEach(function (columns) {\n columns.forEach(function (column) {\n if (column instanceof ColumnGroup) {\n var columnGroup = column;\n columnGroup.checkLeft();\n }\n });\n });\n };\n ColumnController.prototype.derivedDisplayedColumnsFromDisplayedTree = function (tree, columns) {\n columns.length = 0;\n this.columnUtils.depthFirstDisplayedColumnTreeSearch(tree, function (child) {\n if (child instanceof Column) {\n columns.push(child);\n }\n });\n };\n ColumnController.prototype.extractViewportColumns = function () {\n if (this.suppressColumnVirtualisation) {\n // no virtualisation, so don't filter\n this.viewportColumnsCenter = this.displayedColumnsCenter;\n }\n else {\n // filter out what should be visible\n this.viewportColumnsCenter = this.filterOutColumnsWithinViewport();\n }\n this.viewportColumns = this.viewportColumnsCenter\n .concat(this.displayedColumnsLeft)\n .concat(this.displayedColumnsRight);\n };\n ColumnController.prototype.getVirtualHeaderGroupRow = function (type, dept) {\n var result;\n switch (type) {\n case Constants.PINNED_LEFT:\n result = this.viewportRowLeft[dept];\n break;\n case Constants.PINNED_RIGHT:\n result = this.viewportRowRight[dept];\n break;\n default:\n result = this.viewportRowCenter[dept];\n break;\n }\n if (missing(result)) {\n result = [];\n }\n return result;\n };\n ColumnController.prototype.extractViewportRows = function () {\n // go through each group, see if any of it's cols are displayed, and if yes,\n // then this group is included\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n // for easy lookup when building the groups.\n var virtualColIds = {};\n this.viewportColumns.forEach(function (col) { return virtualColIds[col.getId()] = true; });\n var testGroup = function (children, result, dept) {\n var returnValue = false;\n for (var i = 0; i < children.length; i++) {\n // see if this item is within viewport\n var child = children[i];\n var addThisItem = false;\n if (child instanceof Column) {\n // for column, test if column is included\n addThisItem = virtualColIds[child.getId()] === true;\n }\n else {\n // if group, base decision on children\n var columnGroup = child;\n var displayedChildren = columnGroup.getDisplayedChildren();\n if (displayedChildren) {\n addThisItem = testGroup(displayedChildren, result, dept + 1);\n }\n }\n if (addThisItem) {\n returnValue = true;\n if (!result[dept]) {\n result[dept] = [];\n }\n result[dept].push(child);\n }\n }\n return returnValue;\n };\n testGroup(this.displayedTreeLeft, this.viewportRowLeft, 0);\n testGroup(this.displayedTreeRight, this.viewportRowRight, 0);\n testGroup(this.displayedTreeCentre, this.viewportRowCenter, 0);\n };\n ColumnController.prototype.extractViewport = function () {\n this.extractViewportColumns();\n this.extractViewportRows();\n };\n ColumnController.prototype.filterOutColumnsWithinViewport = function () {\n return this.displayedColumnsCenter.filter(this.isColumnInViewport.bind(this));\n };\n ColumnController.prototype.refreshFlexedColumns = function (params) {\n var _this = this;\n if (params === void 0) { params = {}; }\n var source = params.source ? params.source : 'flex';\n if (params.viewportWidth != null) {\n this.flexViewportWidth = params.viewportWidth;\n }\n if (!this.flexViewportWidth) {\n return [];\n }\n // If the grid has left-over space, divide it between flexing columns in proportion to their flex value.\n // A \"flexing column\" is one that has a 'flex' value set and is not currently being constrained by its\n // minWidth or maxWidth rules.\n var flexAfterDisplayIndex = -1;\n if (params.resizingCols) {\n params.resizingCols.forEach(function (col) {\n var indexOfCol = _this.displayedColumnsCenter.indexOf(col);\n if (flexAfterDisplayIndex < indexOfCol) {\n flexAfterDisplayIndex = indexOfCol;\n }\n });\n }\n var isColFlex = function (col) {\n var afterResizingCols = _this.displayedColumnsCenter.indexOf(col) > flexAfterDisplayIndex;\n return col.getFlex() && afterResizingCols;\n };\n var knownWidthColumns = this.displayedColumnsCenter.filter(function (col) { return !isColFlex(col); });\n var flexingColumns = this.displayedColumnsCenter.filter(function (col) { return isColFlex(col); });\n var changedColumns = [];\n if (!flexingColumns.length) {\n return [];\n }\n var flexingColumnSizes = [];\n var spaceForFlexingColumns;\n outer: while (true) {\n var totalFlex = flexingColumns.reduce(function (count, col) { return count + col.getFlex(); }, 0);\n spaceForFlexingColumns = this.flexViewportWidth - this.getWidthOfColsInList(knownWidthColumns);\n for (var i = 0; i < flexingColumns.length; i++) {\n var col = flexingColumns[i];\n var widthByFlexRule = spaceForFlexingColumns * col.getFlex() / totalFlex;\n var constrainedWidth = 0;\n var minWidth = col.getMinWidth();\n var maxWidth = col.getMaxWidth();\n if (exists(minWidth) && widthByFlexRule < minWidth) {\n constrainedWidth = minWidth;\n }\n else if (exists(maxWidth) && widthByFlexRule > maxWidth) {\n constrainedWidth = maxWidth;\n }\n if (constrainedWidth) {\n // This column is not in fact flexing as it is being constrained to a specific size\n // so remove it from the list of flexing columns and start again\n col.setActualWidth(constrainedWidth, source);\n removeFromArray(flexingColumns, col);\n changedColumns.push(col);\n knownWidthColumns.push(col);\n continue outer;\n }\n flexingColumnSizes[i] = Math.round(widthByFlexRule);\n }\n break;\n }\n var remainingSpace = spaceForFlexingColumns;\n flexingColumns.forEach(function (col, i) {\n col.setActualWidth(Math.min(flexingColumnSizes[i], remainingSpace), source);\n changedColumns.push(col);\n remainingSpace -= flexingColumnSizes[i];\n });\n if (!params.skipSetLeft) {\n this.setLeftValues(source);\n }\n if (params.updateBodyWidths) {\n this.updateBodyWidths();\n }\n if (params.fireResizedEvent) {\n this.fireColumnResizedEvent(changedColumns, true, source, flexingColumns);\n }\n // if the user sets rowData directly into GridOptions, then the row data is set before\n // grid is attached to the DOM. this means the columns are not flexed, and then the rows\n // have the wrong height (as they depend on column widths). so once the columns have\n // been flexed for the first time (only happens once grid is attached to DOM, as dependency\n // on getting the grid width, which only happens after attached after ResizeObserver fires)\n // we get get rows to re-calc their heights.\n if (!this.flexColsCalculatedAtLestOnce) {\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.rowModel.resetRowHeights();\n }\n this.flexColsCalculatedAtLestOnce = true;\n }\n return flexingColumns;\n };\n // called from api\n ColumnController.prototype.sizeColumnsToFit = function (gridWidth, source, silent) {\n if (source === void 0) { source = \"sizeColumnsToFit\"; }\n // avoid divide by zero\n var allDisplayedColumns = this.getAllDisplayedColumns();\n if (gridWidth <= 0 || !allDisplayedColumns.length) {\n return;\n }\n var colsToSpread = [];\n var colsToNotSpread = [];\n allDisplayedColumns.forEach(function (column) {\n if (column.getColDef().suppressSizeToFit === true) {\n colsToNotSpread.push(column);\n }\n else {\n colsToSpread.push(column);\n }\n });\n // make a copy of the cols that are going to be resized\n var colsToFireEventFor = colsToSpread.slice(0);\n var finishedResizing = false;\n var moveToNotSpread = function (column) {\n removeFromArray(colsToSpread, column);\n colsToNotSpread.push(column);\n };\n // resetting cols to their original width makes the sizeColumnsToFit more deterministic,\n // rather than depending on the current size of the columns. most users call sizeColumnsToFit\n // immediately after grid is created, so will make no difference. however if application is calling\n // sizeColumnsToFit repeatedly (eg after column group is opened / closed repeatedly) we don't want\n // the columns to start shrinking / growing over time.\n //\n // NOTE: the process below will assign values to `this.actualWidth` of each column without firing events\n // for this reason we need to manually fire resize events after the resize has been done for each column.\n colsToSpread.forEach(function (column) { return column.resetActualWidth(source); });\n while (!finishedResizing) {\n finishedResizing = true;\n var availablePixels = gridWidth - this.getWidthOfColsInList(colsToNotSpread);\n if (availablePixels <= 0) {\n // no width, set everything to minimum\n colsToSpread.forEach(function (column) {\n column.setMinimum(source);\n });\n }\n else {\n var scale = availablePixels / this.getWidthOfColsInList(colsToSpread);\n // we set the pixels for the last col based on what's left, as otherwise\n // we could be a pixel or two short or extra because of rounding errors.\n var pixelsForLastCol = availablePixels;\n // backwards through loop, as we are removing items as we go\n for (var i = colsToSpread.length - 1; i >= 0; i--) {\n var column = colsToSpread[i];\n var minWidth = column.getMinWidth();\n var maxWidth = column.getMaxWidth();\n var newWidth = Math.round(column.getActualWidth() * scale);\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (exists(maxWidth) && column.isGreaterThanMax(newWidth)) {\n newWidth = maxWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (i === 0) { // if this is the last column\n newWidth = pixelsForLastCol;\n }\n column.setActualWidth(newWidth, source, true);\n pixelsForLastCol -= newWidth;\n }\n }\n }\n // see notes above\n colsToFireEventFor.forEach(function (col) {\n col.fireColumnWidthChangedEvent(source);\n });\n this.setLeftValues(source);\n this.updateBodyWidths();\n if (silent) {\n return;\n }\n this.fireColumnResizedEvent(colsToFireEventFor, true, source);\n };\n ColumnController.prototype.buildDisplayedTrees = function (visibleColumns) {\n var leftVisibleColumns = [];\n var rightVisibleColumns = [];\n var centerVisibleColumns = [];\n visibleColumns.forEach(function (column) {\n switch (column.getPinned()) {\n case \"left\":\n leftVisibleColumns.push(column);\n break;\n case \"right\":\n rightVisibleColumns.push(column);\n break;\n default:\n centerVisibleColumns.push(column);\n break;\n }\n });\n var groupInstanceIdCreator = new GroupInstanceIdCreator();\n this.displayedTreeLeft = this.displayedGroupCreator.createDisplayedGroups(leftVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, Constants.PINNED_LEFT, this.displayedTreeLeft);\n this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, Constants.PINNED_RIGHT, this.displayedTreeRight);\n this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, this.gridBalancedTree, groupInstanceIdCreator, null, this.displayedTreeCentre);\n this.updateDisplayedMap();\n };\n ColumnController.prototype.updateDisplayedMap = function () {\n var _this = this;\n this.displayedColumnsAndGroupsMap = {};\n var func = function (child) {\n _this.displayedColumnsAndGroupsMap[child.getUniqueId()] = child;\n };\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeCentre, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeLeft, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeRight, func);\n };\n ColumnController.prototype.isDisplayed = function (item) {\n var fromMap = this.displayedColumnsAndGroupsMap[item.getUniqueId()];\n // check for reference, in case new column / group with same id is now present\n return fromMap === item;\n };\n ColumnController.prototype.updateOpenClosedVisibilityInColumnGroups = function () {\n var allColumnGroups = this.getAllDisplayedTrees();\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {\n if (child instanceof ColumnGroup) {\n var columnGroup = child;\n columnGroup.calculateDisplayedColumns();\n }\n });\n };\n ColumnController.prototype.getGroupAutoColumns = function () {\n return this.groupAutoColumns;\n };\n ColumnController.prototype.createGroupAutoColumnsIfNeeded = function () {\n if (!this.autoGroupsNeedBuilding) {\n return;\n }\n this.autoGroupsNeedBuilding = false;\n var groupFullWidthRow = this.gridOptionsWrapper.isGroupUseEntireRow(this.pivotMode);\n // we need to allow suppressing auto-column separately for group and pivot as the normal situation\n // is CSRM and user provides group column themselves for normal view, but when they go into pivot the\n // columns are generated by the grid so no opportunity for user to provide group column. so need a way\n // to suppress auto-col for grouping only, and not pivot.\n // however if using Viewport RM or SSRM and user is providing the columns, the user may wish full control\n // of the group column in this instance.\n var suppressAutoColumn = this.pivotMode ?\n this.gridOptionsWrapper.isPivotSuppressAutoColumn() : this.gridOptionsWrapper.isGroupSuppressAutoColumn();\n var groupingActive = this.rowGroupColumns.length > 0 || this.usingTreeData;\n var needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;\n if (needAutoColumns) {\n var newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(this.rowGroupColumns);\n var autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);\n // we force recreate when suppressColumnStateEvents changes, so new group cols pick up the new\n // definitions. otherwise we could ignore the new cols because they appear to be the same.\n if (autoColsDifferent || this.forceRecreateAutoGroups) {\n this.groupAutoColumns = newAutoGroupCols;\n }\n }\n else {\n this.groupAutoColumns = null;\n }\n };\n ColumnController.prototype.autoColsEqual = function (colsA, colsB) {\n return areEqual(colsA, colsB, function (a, b) { return a.getColId() === b.getColId(); });\n };\n ColumnController.prototype.getWidthOfColsInList = function (columnList) {\n return columnList.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);\n };\n ColumnController.prototype.getGridBalancedTree = function () {\n return this.gridBalancedTree;\n };\n ColumnController.prototype.hasFloatingFilters = function () {\n if (!this.gridColumns) {\n return false;\n }\n var res = this.gridColumns.some(function (col) { return col.getColDef().floatingFilter; });\n return res;\n };\n ColumnController.prototype.getFirstDisplayedColumn = function () {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var queryOrder = [\n 'getDisplayedLeftColumns',\n 'getDisplayedCenterColumns',\n 'getDisplayedRightColumns'\n ];\n if (isRtl) {\n queryOrder.reverse();\n }\n for (var i = 0; i < queryOrder.length; i++) {\n var container = this[queryOrder[i]]();\n if (container.length) {\n return isRtl ? last(container) : container[0];\n }\n }\n return null;\n };\n __decorate$5([\n Autowired('expressionService')\n ], ColumnController.prototype, \"expressionService\", void 0);\n __decorate$5([\n Autowired('columnFactory')\n ], ColumnController.prototype, \"columnFactory\", void 0);\n __decorate$5([\n Autowired('displayedGroupCreator')\n ], ColumnController.prototype, \"displayedGroupCreator\", void 0);\n __decorate$5([\n Autowired('autoWidthCalculator')\n ], ColumnController.prototype, \"autoWidthCalculator\", void 0);\n __decorate$5([\n Autowired('columnUtils')\n ], ColumnController.prototype, \"columnUtils\", void 0);\n __decorate$5([\n Autowired('columnAnimationService')\n ], ColumnController.prototype, \"columnAnimationService\", void 0);\n __decorate$5([\n Autowired('autoGroupColService')\n ], ColumnController.prototype, \"autoGroupColService\", void 0);\n __decorate$5([\n Optional('aggFuncService')\n ], ColumnController.prototype, \"aggFuncService\", void 0);\n __decorate$5([\n Optional('valueCache')\n ], ColumnController.prototype, \"valueCache\", void 0);\n __decorate$5([\n Optional('animationFrameService')\n ], ColumnController.prototype, \"animationFrameService\", void 0);\n __decorate$5([\n Autowired('rowModel')\n ], ColumnController.prototype, \"rowModel\", void 0);\n __decorate$5([\n Autowired('columnApi')\n ], ColumnController.prototype, \"columnApi\", void 0);\n __decorate$5([\n Autowired('gridApi')\n ], ColumnController.prototype, \"gridApi\", void 0);\n __decorate$5([\n Autowired('sortController')\n ], ColumnController.prototype, \"sortController\", void 0);\n __decorate$5([\n Autowired('columnDefFactory')\n ], ColumnController.prototype, \"columnDefFactory\", void 0);\n __decorate$5([\n PostConstruct\n ], ColumnController.prototype, \"init\", null);\n __decorate$5([\n __param$2(0, Qualifier('loggerFactory'))\n ], ColumnController.prototype, \"setBeans\", null);\n ColumnController = __decorate$5([\n Bean('columnController')\n ], ColumnController);\n return ColumnController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction padStartWidthZeros(value, totalStringSize) {\n return padStart(value.toString(), totalStringSize, '0');\n}\nfunction createArrayOfNumbers(first, last) {\n var result = [];\n for (var i = first; i <= last; i++) {\n result.push(i);\n }\n return result;\n}\n/**\n * Check if a value is numeric\n * from http://stackoverflow.com/questions/9716468/is-there-any-function-like-isnumeric-in-javascript-to-validate-numbers\n * @param {any} value\n * @return {boolean}\n */\nfunction isNumeric(value) {\n return value !== '' && !isNaN(parseFloat(value)) && isFinite(value);\n}\nfunction getMaxSafeInteger() {\n // @ts-ignore\n return Number.MAX_SAFE_INTEGER || 9007199254740991;\n}\nfunction cleanNumber(value) {\n if (typeof value === 'string') {\n value = parseInt(value, 10);\n }\n if (typeof value === 'number') {\n return Math.floor(value);\n }\n return null;\n}\nfunction decToHex(number, bytes) {\n var hex = '';\n for (var i = 0; i < bytes; i++) {\n hex += String.fromCharCode(number & 0xff);\n number >>>= 8;\n }\n return hex;\n}\nfunction formatNumberTwoDecimalPlacesAndCommas(value) {\n if (typeof value !== 'number') {\n return '';\n }\n return formatNumberCommas(Math.round(value * 100) / 100);\n}\n/**\n * the native method number.toLocaleString(undefined, {minimumFractionDigits: 0})\n * puts in decimal places in IE, so we use this method instead\n * from: http://blog.tompawlak.org/number-currency-formatting-javascript\n * @param {number} value\n * @returns {string}\n */\nfunction formatNumberCommas(value) {\n if (typeof value !== 'number') {\n return '';\n }\n return value.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1,\");\n}\nfunction sum(values) {\n return values == null ? null : values.reduce(function (total, value) { return total + value; }, 0);\n}\n\nvar NumberUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n padStartWidthZeros: padStartWidthZeros,\n createArrayOfNumbers: createArrayOfNumbers,\n isNumeric: isNumeric,\n getMaxSafeInteger: getMaxSafeInteger,\n cleanNumber: cleanNumber,\n decToHex: decToHex,\n formatNumberTwoDecimalPlacesAndCommas: formatNumberTwoDecimalPlacesAndCommas,\n formatNumberCommas: formatNumberCommas,\n sum: sum\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2 = (undefined && undefined.__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$6 = (undefined && undefined.__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};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar ColumnUtils = /** @class */ (function (_super) {\n __extends$2(ColumnUtils, _super);\n function ColumnUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnUtils.prototype.calculateColInitialWidth = function (colDef) {\n var optionsWrapper = this.gridOptionsWrapper;\n var minColWidth = colDef.minWidth != null ? colDef.minWidth : optionsWrapper.getMinColWidth();\n var maxColWidth = colDef.maxWidth != null ? colDef.maxWidth : (optionsWrapper.getMaxColWidth() || getMaxSafeInteger());\n var width;\n var colDefWidth = attrToNumber(colDef.width);\n var colDefInitialWidth = attrToNumber(colDef.initialWidth);\n if (colDefWidth != null) {\n width = colDefWidth;\n }\n else if (colDefInitialWidth != null) {\n width = colDefInitialWidth;\n }\n else {\n width = optionsWrapper.getColWidth();\n }\n return Math.max(Math.min(width, maxColWidth), minColWidth);\n };\n ColumnUtils.prototype.getOriginalPathForColumn = function (column, originalBalancedTree) {\n var result = [];\n var found = false;\n var recursePath = function (balancedColumnTree, dept) {\n for (var i = 0; i < balancedColumnTree.length; i++) {\n if (found) {\n return;\n }\n // quit the search, so 'result' is kept with the found result\n var node = balancedColumnTree[i];\n if (node instanceof OriginalColumnGroup) {\n var nextNode = node;\n recursePath(nextNode.getChildren(), dept + 1);\n result[dept] = node;\n }\n else if (node === column) {\n found = true;\n }\n }\n };\n recursePath(originalBalancedTree, 0);\n // we should always find the path, but in case there is a bug somewhere, returning null\n // will make it fail rather than provide a 'hard to track down' bug\n return found ? result : null;\n };\n ColumnUtils.prototype.depthFirstOriginalTreeSearch = function (parent, tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof OriginalColumnGroup) {\n _this.depthFirstOriginalTreeSearch(child, child.getChildren(), callback);\n }\n callback(child, parent);\n });\n };\n ColumnUtils.prototype.depthFirstAllColumnTreeSearch = function (tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n _this.depthFirstAllColumnTreeSearch(child.getChildren(), callback);\n }\n callback(child);\n });\n };\n ColumnUtils.prototype.depthFirstDisplayedColumnTreeSearch = function (tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n _this.depthFirstDisplayedColumnTreeSearch(child.getDisplayedChildren(), callback);\n }\n callback(child);\n });\n };\n ColumnUtils = __decorate$6([\n Bean('columnUtils')\n ], ColumnUtils);\n return ColumnUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$3 = (undefined && undefined.__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$7 = (undefined && undefined.__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};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar DisplayedGroupCreator = /** @class */ (function (_super) {\n __extends$3(DisplayedGroupCreator, _super);\n function DisplayedGroupCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DisplayedGroupCreator.prototype.createDisplayedGroups = function (\n // all displayed columns sorted - this is the columns the grid should show\n sortedVisibleColumns, \n // the tree of columns, as provided by the users, used to know what groups columns roll up into\n balancedColumnTree, \n // creates unique id's for the group\n groupInstanceIdCreator, \n // whether it's left, right or center col\n pinned, \n // we try to reuse old groups if we can, to allow gui to do animation\n oldDisplayedGroups) {\n var _this = this;\n var result = [];\n var previousRealPath;\n var previousOriginalPath;\n var oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);\n // go through each column, then do a bottom up comparison to the previous column, and start\n // to share groups if they converge at any point.\n sortedVisibleColumns.forEach(function (currentColumn) {\n var currentOriginalPath = _this.getOriginalPathForColumn(balancedColumnTree, currentColumn);\n var currentRealPath = [];\n var firstColumn = !previousOriginalPath;\n for (var i = 0; i < currentOriginalPath.length; i++) {\n if (firstColumn || currentOriginalPath[i] !== previousOriginalPath[i]) {\n // new group needed\n var newGroup = _this.createColumnGroup(currentOriginalPath[i], groupInstanceIdCreator, oldColumnsMapped, pinned);\n currentRealPath[i] = newGroup;\n // if top level, add to result, otherwise add to parent\n if (i == 0) {\n result.push(newGroup);\n }\n else {\n currentRealPath[i - 1].addChild(newGroup);\n }\n }\n else {\n // reuse old group\n currentRealPath[i] = previousRealPath[i];\n }\n }\n var noColumnGroups = currentRealPath.length === 0;\n if (noColumnGroups) {\n // if we are not grouping, then the result of the above is an empty\n // path (no groups), and we just add the column to the root list.\n result.push(currentColumn);\n }\n else {\n var leafGroup = last(currentRealPath);\n leafGroup.addChild(currentColumn);\n }\n previousRealPath = currentRealPath;\n previousOriginalPath = currentOriginalPath;\n });\n this.setupParentsIntoColumns(result, null);\n return result;\n };\n DisplayedGroupCreator.prototype.createColumnGroup = function (originalGroup, groupInstanceIdCreator, oldColumnsMapped, pinned) {\n var groupId = originalGroup.getGroupId();\n var instanceId = groupInstanceIdCreator.getInstanceIdForKey(groupId);\n var uniqueId = ColumnGroup.createUniqueId(groupId, instanceId);\n var columnGroup = oldColumnsMapped[uniqueId];\n // if the user is setting new colDefs, it is possible that the id's overlap, and we\n // would have a false match from above. so we double check we are talking about the\n // same original column group.\n if (columnGroup && columnGroup.getOriginalColumnGroup() !== originalGroup) {\n columnGroup = null;\n }\n if (exists(columnGroup)) {\n // clean out the old column group here, as we will be adding children into it again\n columnGroup.reset();\n }\n else {\n columnGroup = new ColumnGroup(originalGroup, groupId, instanceId, pinned);\n this.context.createBean(columnGroup);\n }\n return columnGroup;\n };\n // returns back a 2d map of ColumnGroup as follows: groupId -> instanceId -> ColumnGroup\n DisplayedGroupCreator.prototype.mapOldGroupsById = function (displayedGroups) {\n var result = {};\n var recursive = function (columnsOrGroups) {\n columnsOrGroups.forEach(function (columnOrGroup) {\n if (columnOrGroup instanceof ColumnGroup) {\n var columnGroup = columnOrGroup;\n result[columnOrGroup.getUniqueId()] = columnGroup;\n recursive(columnGroup.getChildren());\n }\n });\n };\n if (displayedGroups) {\n recursive(displayedGroups);\n }\n return result;\n };\n DisplayedGroupCreator.prototype.setupParentsIntoColumns = function (columnsOrGroups, parent) {\n var _this = this;\n columnsOrGroups.forEach(function (columnsOrGroup) {\n columnsOrGroup.setParent(parent);\n if (columnsOrGroup instanceof ColumnGroup) {\n var columnGroup = columnsOrGroup;\n _this.setupParentsIntoColumns(columnGroup.getChildren(), columnGroup);\n }\n });\n };\n DisplayedGroupCreator.prototype.getOriginalPathForColumn = function (balancedColumnTree, column) {\n var result = [];\n var found = false;\n var recursePath = function (columnTree, dept) {\n for (var i = 0; i < columnTree.length; i++) {\n // quit the search, so 'result' is kept with the found result\n if (found) {\n return;\n }\n var node = columnTree[i];\n if (node instanceof OriginalColumnGroup) {\n var nextNode = node;\n recursePath(nextNode.getChildren(), dept + 1);\n result[dept] = node;\n }\n else if (node === column) {\n found = true;\n }\n }\n };\n recursePath(balancedColumnTree, 0);\n // it's possible we didn't find a path. this happens if the column is generated\n // by the grid (auto-group), in that the definition didn't come from the client. in this case,\n // we create a fake original path.\n if (found) {\n return result;\n }\n console.warn('could not get path');\n return null;\n };\n DisplayedGroupCreator = __decorate$7([\n Bean('displayedGroupCreator')\n ], DisplayedGroupCreator);\n return DisplayedGroupCreator;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$4 = (undefined && undefined.__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$8 = (undefined && undefined.__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 HeadlessService = /** @class */ (function (_super) {\n __extends$4(HeadlessService, _super);\n function HeadlessService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeadlessService_1 = HeadlessService;\n HeadlessService.prototype.getHeaderRows = function () {\n return this.headerRows;\n };\n HeadlessService.prototype.getRows = function () {\n return this.rows;\n };\n HeadlessService.prototype.getCenterRowContainer = function () {\n return this.centerRowContainer;\n };\n HeadlessService.prototype.postConstruct = function () {\n var _this = this;\n this.createHeaderRows();\n this.onPageLoaded();\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, function () {\n _this.createHeaderRows();\n _this.onPageLoaded();\n });\n };\n HeadlessService.prototype.createHeaderRows = function () {\n this.headerRows = [];\n var headerRowCount = this.columnController.getHeaderRowCount();\n for (var i = 0; i < headerRowCount; i++) {\n var groupLevel = i === (headerRowCount - 1);\n this.headerRows.push(this.createHeaderRow(i, groupLevel));\n }\n this.dispatchEvent({ type: HeadlessService_1.EVENT_HEADERS_UPDATED });\n };\n HeadlessService.prototype.onPageLoaded = function () {\n var _this = this;\n this.rows = [];\n var firstRow = this.paginationProxy.getPageFirstRow();\n var lastRow = this.paginationProxy.getPageLastRow();\n // first and last rows are -1 if no rows to display\n if (firstRow < 0 || lastRow < 0) {\n return;\n }\n var displayedColumns = this.columnController.getDisplayedColumns(null);\n var _loop_1 = function (rowIndex) {\n var rowNode = this_1.paginationProxy.getRow(rowIndex);\n if (!rowNode) {\n return \"continue\";\n }\n var cells = [];\n var rowVo = {\n cells: cells,\n index: rowIndex,\n id: rowNode.id,\n height: rowNode.rowHeight,\n top: rowNode.rowTop\n };\n displayedColumns.forEach(function (col) {\n cells.push({\n value: _this.valueService.getValue(col, rowNode),\n colId: col.getId(),\n width: col.getActualWidth(),\n left: col.getLeft()\n });\n });\n this_1.rows.push(rowVo);\n };\n var this_1 = this;\n for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {\n _loop_1(rowIndex);\n }\n this.dispatchEvent({ type: HeadlessService_1.EVENT_ROWS_UPDATED });\n this.centerRowContainer = {\n height: Math.max(this.paginationProxy.getCurrentPageHeight(), 1),\n width: this.columnController.getBodyContainerWidth()\n };\n this.dispatchEvent({ type: HeadlessService_1.EVENT_ROW_CONTAINER_UPDATED });\n };\n HeadlessService.prototype.createHeaderRow = function (depth, groupLevel) {\n var _this = this;\n var items = this.columnController.getVirtualHeaderGroupRow(null, depth);\n var mapColumn = function (item) {\n var isCol = item instanceof Column;\n var name = isCol\n ? _this.columnController.getDisplayNameForColumn(item, 'header')\n : _this.columnController.getDisplayNameForColumnGroup(item, 'header');\n var res = {\n name: name,\n id: item.getUniqueId()\n };\n return res;\n };\n var res = {\n headerRowIndex: depth,\n groupLevel: groupLevel,\n columns: items.map(mapColumn)\n };\n return res;\n };\n var HeadlessService_1;\n HeadlessService.EVENT_ROWS_UPDATED = 'rowsUpdated';\n HeadlessService.EVENT_HEADERS_UPDATED = 'headersUpdated';\n HeadlessService.EVENT_ROW_CONTAINER_UPDATED = 'rowContainerUpdated';\n __decorate$8([\n Autowired('columnController')\n ], HeadlessService.prototype, \"columnController\", void 0);\n __decorate$8([\n Autowired('paginationProxy')\n ], HeadlessService.prototype, \"paginationProxy\", void 0);\n __decorate$8([\n Autowired('valueService')\n ], HeadlessService.prototype, \"valueService\", void 0);\n __decorate$8([\n PostConstruct\n ], HeadlessService.prototype, \"postConstruct\", null);\n HeadlessService = HeadlessService_1 = __decorate$8([\n Bean('headlessService')\n ], HeadlessService);\n return HeadlessService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/**\n * These variables are lazy loaded, as otherwise they try and get initialised when we are loading\n * unit tests and we don't have references to window or document in the unit tests\n * from http://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\n */\nvar isSafari;\nvar isIE;\nvar isEdge;\nvar isChrome;\nvar isFirefox;\nvar isIOS;\nvar invisibleScrollbar;\nvar browserScrollbarWidth;\nfunction isBrowserIE() {\n if (isIE === undefined) {\n isIE = /*@cc_on!@*/ !!document.documentMode; // At least IE6\n }\n return isIE;\n}\nfunction isBrowserEdge() {\n if (isEdge === undefined) {\n isEdge = !isBrowserIE() && !!window.StyleMedia;\n }\n return isEdge;\n}\nfunction isBrowserSafari() {\n if (isSafari === undefined) {\n // taken from https://stackoverflow.com/a/23522755/1388233\n isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n return isSafari;\n}\nfunction isBrowserChrome() {\n if (isChrome === undefined) {\n var win = window;\n isChrome = (!!win.chrome && (!!win.chrome.webstore || !!win.chrome.runtime)) ||\n (/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));\n }\n return isChrome;\n}\nfunction isBrowserFirefox() {\n if (isFirefox === undefined) {\n var win = window;\n isFirefox = typeof win.InstallTrigger !== 'undefined';\n }\n return isFirefox;\n}\nfunction isIOSUserAgent() {\n if (isIOS === undefined) {\n // taken from https://stackoverflow.com/a/58064481/1388233\n isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||\n // eslint-disable-next-line\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n !window.MSStream;\n }\n return isIOS;\n}\nfunction getTabIndex(el) {\n if (!el) {\n return null;\n }\n var numberTabIndex = el.tabIndex;\n var tabIndex = el.getAttribute('tabIndex');\n if (isBrowserIE() && numberTabIndex === 0 && tabIndex === null) {\n var map = {\n a: true,\n body: true,\n button: true,\n frame: true,\n iframe: true,\n img: true,\n input: true,\n isindex: true,\n object: true,\n select: true,\n textarea: true\n };\n return map[el.nodeName.toLowerCase()] === true ? '0' : null;\n }\n if (numberTabIndex === -1 && (tabIndex === null || (tabIndex === '' && !isBrowserFirefox()))) {\n return null;\n }\n return numberTabIndex.toString();\n}\nfunction getMaxDivHeight() {\n if (!document.body) {\n return -1;\n }\n var res = 1000000;\n // FF reports the height back but still renders blank after ~6M px\n var testUpTo = navigator.userAgent.toLowerCase().match(/firefox/) ? 6000000 : 1000000000;\n var div = document.createElement('div');\n document.body.appendChild(div);\n while (true) {\n var test = res * 2;\n div.style.height = test + 'px';\n if (test > testUpTo || div.clientHeight !== test) {\n break;\n }\n else {\n res = test;\n }\n }\n document.body.removeChild(div);\n return res;\n}\nfunction getScrollbarWidth() {\n if (browserScrollbarWidth == null) {\n initScrollbarWidthAndVisibility();\n }\n return browserScrollbarWidth;\n}\nfunction initScrollbarWidthAndVisibility() {\n var body = document.body;\n var div = document.createElement('div');\n div.style.width = div.style.height = '100px';\n div.style.opacity = '0';\n div.style.overflow = 'scroll';\n div.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n div.style.position = 'absolute';\n body.appendChild(div);\n var width = div.offsetWidth - div.clientWidth;\n // if width is 0 and client width is 0, means the DOM isn't ready\n if (width === 0 && div.clientWidth === 0) {\n width = null;\n }\n // remove div\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n if (width != null) {\n browserScrollbarWidth = width;\n invisibleScrollbar = width === 0;\n }\n}\nfunction isInvisibleScrollbar() {\n if (invisibleScrollbar == null) {\n initScrollbarWidthAndVisibility();\n }\n return invisibleScrollbar;\n}\n/** @deprecated */\nfunction hasOverflowScrolling() {\n var prefixes = ['webkit', 'moz', 'o', 'ms'];\n var div = document.createElement('div');\n var body = document.getElementsByTagName('body')[0];\n var found = false;\n var p;\n body.appendChild(div);\n div.setAttribute('style', prefixes.map(function (prefix) { return \"-\" + prefix + \"-overflow-scrolling: touch\"; }).concat('overflow-scrolling: touch').join(';'));\n var computedStyle = window.getComputedStyle(div);\n if (computedStyle.overflowScrolling === 'touch') {\n found = true;\n }\n if (!found) {\n for (var _i = 0, prefixes_1 = prefixes; _i < prefixes_1.length; _i++) {\n p = prefixes_1[_i];\n if (computedStyle[p + \"OverflowScrolling\"] === 'touch') {\n found = true;\n break;\n }\n }\n }\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n return found;\n}\n/**\n * Gets the document body width\n * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code\n * @returns {number}\n */\nfunction getBodyWidth() {\n if (document.body) {\n return document.body.clientWidth;\n }\n if (window.innerHeight) {\n return window.innerWidth;\n }\n if (document.documentElement && document.documentElement.clientWidth) {\n return document.documentElement.clientWidth;\n }\n return -1;\n}\n/**\n * Gets the body height\n * from: http://stackoverflow.com/questions/1038727/how-to-get-browser-width-using-javascript-code\n * @returns {number}\n */\nfunction getBodyHeight() {\n if (document.body) {\n return document.body.clientHeight;\n }\n if (window.innerHeight) {\n return window.innerHeight;\n }\n if (document.documentElement && document.documentElement.clientHeight) {\n return document.documentElement.clientHeight;\n }\n return -1;\n}\n\nvar BrowserUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isBrowserIE: isBrowserIE,\n isBrowserEdge: isBrowserEdge,\n isBrowserSafari: isBrowserSafari,\n isBrowserChrome: isBrowserChrome,\n isBrowserFirefox: isBrowserFirefox,\n isIOSUserAgent: isIOSUserAgent,\n getTabIndex: getTabIndex,\n getMaxDivHeight: getMaxDivHeight,\n getScrollbarWidth: getScrollbarWidth,\n isInvisibleScrollbar: isInvisibleScrollbar,\n hasOverflowScrolling: hasOverflowScrolling,\n getBodyWidth: getBodyWidth,\n getBodyHeight: getBodyHeight\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar rtlNegativeScroll;\nfunction addCssClass(element, className) {\n if (!element || !className || className.length === 0) {\n return;\n }\n if (className.indexOf(' ') >= 0) {\n className.split(' ').forEach(function (value) { return addCssClass(element, value); });\n return;\n }\n if (element.classList) {\n element.classList.add(className);\n }\n else if (element.className && element.className.length > 0) {\n var cssClasses = element.className.split(' ');\n if (cssClasses.indexOf(className) < 0) {\n cssClasses.push(className);\n element.setAttribute('class', cssClasses.join(' '));\n }\n }\n else {\n // do not use element.classList = className here, it will cause\n // a read-only assignment error on some browsers (IE/Edge).\n element.setAttribute('class', className);\n }\n return element;\n}\nfunction removeCssClass(element, className) {\n if (!element || !className || className.length === 0) {\n return;\n }\n if (className.indexOf(' ') >= 0) {\n className.split(' ').forEach(function (value) { return removeCssClass(element, value); });\n return;\n }\n if (element.classList) {\n element.classList.remove(className);\n }\n else if (element.className && element.className.length > 0) {\n var newClassName = element.className.split(' ').filter(function (c) { return c !== className; }).join(' ');\n element.setAttribute('class', newClassName);\n }\n}\nfunction addOrRemoveCssClass(element, className, addOrRemove) {\n if (addOrRemove) {\n addCssClass(element, className);\n }\n else {\n removeCssClass(element, className);\n }\n}\n/**\n * This method adds a class to an element and remove that class from all siblings.\n * Useful for toggling state.\n * @param {HTMLElement} element The element to receive the class\n * @param {string} elementClass The class to be assigned to the element\n * @param {boolean} otherElementClass The class to be assigned to siblings of the element, but not the element itself\n */\nfunction radioCssClass(element, elementClass, otherElementClass) {\n var parent = element.parentElement;\n var sibling = parent && parent.firstChild;\n while (sibling) {\n if (elementClass) {\n addOrRemoveCssClass(sibling, elementClass, sibling === element);\n }\n if (otherElementClass) {\n addOrRemoveCssClass(sibling, otherElementClass, sibling !== element);\n }\n sibling = sibling.nextSibling;\n }\n}\nfunction containsClass(element, className) {\n if (element.classList) {\n // for modern browsers\n return element.classList.contains(className);\n }\n if (element.className) {\n // for older browsers, check against the string of class names\n // if only one class, can check for exact match\n var onlyClass = element.className === className;\n // if many classes, check for class name, we have to pad with ' ' to stop other\n // class names that are a substring of this class\n var contains = element.className.indexOf(' ' + className + ' ') >= 0;\n // the padding above then breaks when it's the first or last class names\n var startsWithClass = element.className.indexOf(className + ' ') === 0;\n var endsWithClass = element.className.lastIndexOf(' ' + className) === (element.className.length - className.length - 1);\n return onlyClass || contains || startsWithClass || endsWithClass;\n }\n // if item is not a node\n return false;\n}\nfunction isFocusableFormField(element) {\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n var isFocusable = matches.call(element, Constants.INPUT_SELECTOR);\n var isNotFocusable = matches.call(element, Constants.FOCUSABLE_EXCLUDE);\n var isElementVisible = isVisible(element);\n var focusable = isFocusable && !isNotFocusable && isElementVisible;\n return focusable;\n}\nfunction setDisplayed(element, displayed) {\n addOrRemoveCssClass(element, 'ag-hidden', !displayed);\n}\nfunction setVisible(element, visible) {\n addOrRemoveCssClass(element, 'ag-invisible', !visible);\n}\nfunction setDisabled(element, disabled) {\n var attributeName = 'disabled';\n var addOrRemoveDisabledAttribute = disabled ?\n function (e) { return e.setAttribute(attributeName, ''); } :\n function (e) { return e.removeAttribute(attributeName); };\n addOrRemoveDisabledAttribute(element);\n nodeListForEach(element.querySelectorAll('input'), function (input) { return addOrRemoveDisabledAttribute(input); });\n}\nfunction isElementChildOfClass(element, cls, maxNest) {\n var counter = 0;\n while (element) {\n if (containsClass(element, cls)) {\n return true;\n }\n element = element.parentElement;\n if (maxNest && ++counter > maxNest) {\n break;\n }\n }\n return false;\n}\n// returns back sizes as doubles instead of strings. similar to\n// getBoundingClientRect, however getBoundingClientRect does not:\n// a) work with fractions (eg browser is zooming)\n// b) has CSS transitions applied (eg CSS scale, browser zoom), which we don't want, we want the un-transitioned values\nfunction getElementSize(el) {\n var _a = window.getComputedStyle(el), height = _a.height, width = _a.width, paddingTop = _a.paddingTop, paddingRight = _a.paddingRight, paddingBottom = _a.paddingBottom, paddingLeft = _a.paddingLeft, marginTop = _a.marginTop, marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, boxSizing = _a.boxSizing;\n return {\n height: parseFloat(height),\n width: parseFloat(width),\n paddingTop: parseFloat(paddingTop),\n paddingRight: parseFloat(paddingRight),\n paddingBottom: parseFloat(paddingBottom),\n paddingLeft: parseFloat(paddingLeft),\n marginTop: parseFloat(marginTop),\n marginRight: parseFloat(marginRight),\n marginBottom: parseFloat(marginBottom),\n marginLeft: parseFloat(marginLeft),\n boxSizing: boxSizing\n };\n}\nfunction getInnerHeight(el) {\n var size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.height - size.paddingTop - size.paddingBottom;\n }\n return size.height;\n}\nfunction getInnerWidth(el) {\n var size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.width - size.paddingLeft - size.paddingRight;\n }\n return size.width;\n}\nfunction getAbsoluteHeight(el) {\n var size = getElementSize(el);\n var marginRight = size.marginBottom + size.marginTop;\n return Math.ceil(el.offsetHeight + marginRight);\n}\nfunction getAbsoluteWidth(el) {\n var size = getElementSize(el);\n var marginWidth = size.marginLeft + size.marginRight;\n return Math.ceil(el.offsetWidth + marginWidth);\n}\nfunction isRtlNegativeScroll() {\n if (typeof rtlNegativeScroll === \"boolean\") {\n return rtlNegativeScroll;\n }\n var template = document.createElement('div');\n template.style.direction = 'rtl';\n template.style.width = '1px';\n template.style.height = '1px';\n template.style.position = 'fixed';\n template.style.top = '0px';\n template.style.overflow = 'hidden';\n template.dir = 'rtl';\n template.innerHTML = /* html */\n \"
\\n \\n \\n
\";\n document.body.appendChild(template);\n template.scrollLeft = 1;\n rtlNegativeScroll = Math.floor(template.scrollLeft) === 0;\n document.body.removeChild(template);\n return rtlNegativeScroll;\n}\nfunction getScrollLeft(element, rtl) {\n var scrollLeft = element.scrollLeft;\n if (rtl) {\n // Absolute value - for FF that reports RTL scrolls in negative numbers\n scrollLeft = Math.abs(scrollLeft);\n if (isBrowserChrome() && !isRtlNegativeScroll()) {\n scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;\n }\n }\n return scrollLeft;\n}\nfunction setScrollLeft(element, value, rtl) {\n if (rtl) {\n // Chrome and Safari when doing RTL have the END position of the scroll as zero, not the start\n if (isRtlNegativeScroll()) {\n value *= -1;\n }\n else if (isBrowserSafari() || isBrowserChrome()) {\n value = element.scrollWidth - element.clientWidth - value;\n }\n }\n element.scrollLeft = value;\n}\nfunction clearElement(el) {\n while (el && el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n/** @deprecated */\nfunction removeElement(parent, cssSelector) {\n removeFromParent(parent.querySelector(cssSelector));\n}\nfunction removeFromParent(node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction isVisible(element) {\n return element.offsetParent !== null;\n}\n/**\n * Loads the template and returns it as an element. makes up for no simple way in\n * the dom api to load html directly, eg we cannot do this: document.createElement(template)\n * @param {string} template\n * @returns {HTMLElement}\n */\nfunction loadTemplate(template) {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = (template || '').trim();\n return tempDiv.firstChild;\n}\nfunction appendHtml(eContainer, htmlTemplate) {\n if (eContainer.lastChild) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML\n // we put the items at the start, so new items appear underneath old items,\n // so when expanding/collapsing groups, the new rows don't go on top of the\n // rows below that are moving our of the way\n eContainer.insertAdjacentHTML('afterbegin', htmlTemplate);\n }\n else {\n eContainer.innerHTML = htmlTemplate;\n }\n}\n/** @deprecated */\nfunction getElementAttribute(element, attributeName) {\n if (element.attributes && element.attributes[attributeName]) {\n var attribute = element.attributes[attributeName];\n return attribute.value;\n }\n return null;\n}\nfunction offsetHeight(element) {\n return element && element.clientHeight ? element.clientHeight : 0;\n}\nfunction offsetWidth(element) {\n return element && element.clientWidth ? element.clientWidth : 0;\n}\nfunction ensureDomOrder(eContainer, eChild, eChildBefore) {\n // if already in right order, do nothing\n if (eChildBefore && eChildBefore.nextSibling === eChild) {\n return;\n }\n if (eChildBefore) {\n if (eChildBefore.nextSibling) {\n // insert between the eRowBefore and the row after it\n eContainer.insertBefore(eChild, eChildBefore.nextSibling);\n }\n else {\n // if nextSibling is missing, means other row is at end, so just append new row at the end\n eContainer.appendChild(eChild);\n }\n }\n else {\n // otherwise put at start\n if (eContainer.firstChild && eContainer.firstChild !== eChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eChild);\n }\n }\n}\nfunction setDomChildOrder(eContainer, orderedChildren) {\n for (var i = 0; i < orderedChildren.length; i++) {\n var correctCellAtIndex = orderedChildren[i];\n var actualCellAtIndex = eContainer.children[i];\n if (actualCellAtIndex !== correctCellAtIndex) {\n eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);\n }\n }\n}\nfunction insertWithDomOrder(eContainer, eToInsert, eChildBefore) {\n if (eChildBefore) {\n // if previous element exists, just slot in after the previous element\n eChildBefore.insertAdjacentElement('afterend', eToInsert);\n }\n else {\n if (eContainer.firstChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eToInsert);\n }\n else {\n // otherwise eContainer is empty, so just append it\n eContainer.appendChild(eToInsert);\n }\n }\n}\n/** @deprecated */\nfunction prependDC(parent, documentFragment) {\n if (exists(parent.firstChild)) {\n parent.insertBefore(documentFragment, parent.firstChild);\n }\n else {\n parent.appendChild(documentFragment);\n }\n}\nfunction addStylesToElement(eElement, styles) {\n if (!styles) {\n return;\n }\n Object.keys(styles).forEach(function (key) {\n var keyCamelCase = hyphenToCamelCase(key);\n if (keyCamelCase) {\n eElement.style[keyCamelCase] = styles[key];\n }\n });\n}\nfunction isHorizontalScrollShowing(element) {\n return element.clientWidth < element.scrollWidth;\n}\nfunction isVerticalScrollShowing(element) {\n return element.clientHeight < element.scrollHeight;\n}\nfunction setElementWidth(element, width) {\n if (width === 'flex') {\n element.style.removeProperty('width');\n element.style.removeProperty('minWidth');\n element.style.removeProperty('maxWidth');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedWidth(element, width);\n }\n}\nfunction setFixedWidth(element, width) {\n width = formatSize(width);\n element.style.width = width.toString();\n element.style.maxWidth = width.toString();\n element.style.minWidth = width.toString();\n}\nfunction setElementHeight(element, height) {\n if (height === 'flex') {\n element.style.removeProperty('height');\n element.style.removeProperty('minHeight');\n element.style.removeProperty('maxHeight');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedHeight(element, height);\n }\n}\nfunction setFixedHeight(element, height) {\n height = formatSize(height);\n element.style.height = height.toString();\n element.style.maxHeight = height.toString();\n element.style.minHeight = height.toString();\n}\nfunction formatSize(size) {\n if (typeof size === 'number') {\n return size + \"px\";\n }\n return size;\n}\n/**\n * Returns true if it is a DOM node\n * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n * @param {any} o\n * @return {boolean}\n */\nfunction isNode(o) {\n return (typeof Node === 'function'\n ? o instanceof Node\n : o && typeof o === 'object' && typeof o.nodeType === 'number' && typeof o.nodeName === 'string');\n}\n//\n/**\n * Returns true if it is a DOM element\n * taken from: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n * @param {any} o\n * @returns {boolean}\n */\nfunction isElement(o) {\n return (typeof HTMLElement === 'function'\n ? o instanceof HTMLElement //DOM2\n : o && isNonNullObject(o) && o.nodeType === 1 && typeof o.nodeName === 'string');\n}\nfunction isNodeOrElement(o) {\n return isNode(o) || isElement(o);\n}\n/**\n * Makes a copy of a node list into a list\n * @param {NodeList} nodeList\n * @returns {Node[]}\n */\nfunction copyNodeList(nodeList) {\n if (nodeList == null) {\n return [];\n }\n var result = [];\n nodeListForEach(nodeList, function (node) { return result.push(node); });\n return result;\n}\nfunction iterateNamedNodeMap(map, callback) {\n if (!map) {\n return;\n }\n for (var i = 0; i < map.length; i++) {\n var attr = map[i];\n callback(attr.name, attr.value);\n }\n}\n/** @deprecated */\nfunction setCheckboxState(eCheckbox, state) {\n if (typeof state === 'boolean') {\n eCheckbox.checked = state;\n eCheckbox.indeterminate = false;\n }\n else {\n // isNodeSelected returns back undefined if it's a group and the children\n // are a mix of selected and unselected\n eCheckbox.indeterminate = true;\n }\n}\nfunction addOrRemoveAttribute(element, name, value) {\n if (value == null) {\n element.removeAttribute(name);\n }\n else {\n element.setAttribute(name, value.toString());\n }\n}\nfunction nodeListForEach(nodeList, action) {\n if (nodeList == null) {\n return;\n }\n for (var i = 0; i < nodeList.length; i++) {\n action(nodeList[i]);\n }\n}\n\nvar DomUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addCssClass: addCssClass,\n removeCssClass: removeCssClass,\n addOrRemoveCssClass: addOrRemoveCssClass,\n radioCssClass: radioCssClass,\n containsClass: containsClass,\n isFocusableFormField: isFocusableFormField,\n setDisplayed: setDisplayed,\n setVisible: setVisible,\n setDisabled: setDisabled,\n isElementChildOfClass: isElementChildOfClass,\n getElementSize: getElementSize,\n getInnerHeight: getInnerHeight,\n getInnerWidth: getInnerWidth,\n getAbsoluteHeight: getAbsoluteHeight,\n getAbsoluteWidth: getAbsoluteWidth,\n isRtlNegativeScroll: isRtlNegativeScroll,\n getScrollLeft: getScrollLeft,\n setScrollLeft: setScrollLeft,\n clearElement: clearElement,\n removeElement: removeElement,\n removeFromParent: removeFromParent,\n isVisible: isVisible,\n loadTemplate: loadTemplate,\n appendHtml: appendHtml,\n getElementAttribute: getElementAttribute,\n offsetHeight: offsetHeight,\n offsetWidth: offsetWidth,\n ensureDomOrder: ensureDomOrder,\n setDomChildOrder: setDomChildOrder,\n insertWithDomOrder: insertWithDomOrder,\n prependDC: prependDC,\n addStylesToElement: addStylesToElement,\n isHorizontalScrollShowing: isHorizontalScrollShowing,\n isVerticalScrollShowing: isVerticalScrollShowing,\n setElementWidth: setElementWidth,\n setFixedWidth: setFixedWidth,\n setElementHeight: setElementHeight,\n setFixedHeight: setFixedHeight,\n formatSize: formatSize,\n isNode: isNode,\n isElement: isElement,\n isNodeOrElement: isNodeOrElement,\n copyNodeList: copyNodeList,\n iterateNamedNodeMap: iterateNamedNodeMap,\n setCheckboxState: setCheckboxState,\n addOrRemoveAttribute: addOrRemoveAttribute,\n nodeListForEach: nodeListForEach\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar TestHeadless = /** @class */ (function () {\n function TestHeadless() {\n }\n TestHeadless.prototype.doSomething = function (eDiv, gridOptions) {\n var headlessService = gridOptions.api.headlessService;\n var headerRows = headlessService.getHeaderRows();\n var rows = headlessService.getRows();\n clearElement(eDiv);\n var eTable = document.createElement('table');\n headerRows.forEach(function (headerRow) {\n var eTr = document.createElement('tr');\n eTable.appendChild(eTr);\n headerRow.columns.forEach(function (col) {\n var eTh = document.createElement('th');\n eTr.appendChild(eTh);\n if (col.name != null) {\n eTh.innerText = col.name;\n }\n });\n });\n rows.forEach(function (row) {\n var eTr = document.createElement('tr');\n eTable.appendChild(eTr);\n row.cells.forEach(function (cell) {\n var eTd = document.createElement('td');\n eTr.appendChild(eTd);\n if (cell.value != null) {\n eTd.innerText = cell.value.toString();\n }\n });\n });\n eDiv.append(eTable);\n console.warn('TestHeadless.doSomething');\n };\n return TestHeadless;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __spreadArrays = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\n/**\n * These keys are used for validating properties supplied on a gridOptions object, and for code generation.\n * If you change the properties on the gridOptions interface, you *must* update this file as well to be consistent.\n */\nvar PropertyKeys = /** @class */ (function () {\n function PropertyKeys() {\n }\n PropertyKeys.STRING_PROPERTIES = [\n 'sortingOrder', 'rowClass', 'rowSelection', 'overlayLoadingTemplate', 'overlayNoRowsTemplate',\n 'quickFilterText', 'rowModelType', 'editType', 'domLayout', 'clipboardDeliminator', 'rowGroupPanelShow',\n 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',\n 'serverSideStoreType'\n ];\n PropertyKeys.OBJECT_PROPERTIES = [\n 'components', 'frameworkComponents', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons',\n 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams',\n 'defaultColGroupDef', 'defaultColDef', 'defaultExportParams', 'defaultCsvExportParams', 'defaultExcelExportParams', 'columnTypes',\n 'rowClassRules', 'detailGridOptions', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',\n 'noRowsOverlayComponentParams', 'popupParent', 'colResizeDefault', 'reduxStore', 'statusBar', 'sideBar', 'chartThemeOverrides',\n 'customChartThemes'\n ];\n PropertyKeys.ARRAY_PROPERTIES = [\n 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes'\n ];\n PropertyKeys.NUMBER_PROPERTIES = [\n 'rowHeight', 'detailRowHeight', 'rowBuffer', 'colWidth', 'headerHeight', 'groupHeaderHeight', 'floatingFiltersHeight',\n 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'minColWidth', 'maxColWidth', 'viewportRowModelPageSize',\n 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',\n 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'scrollbarWidth',\n 'batchUpdateWaitMillis', 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount',\n 'undoRedoCellEditingLimit', 'cellFlashDelay', 'cellFadeDelay', 'tabIndex'\n ];\n PropertyKeys.BOOLEAN_PROPERTIES = [\n 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellSelection', 'suppressHorizontalScroll',\n 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions',\n 'angularCompileRows', 'angularCompileFilters', 'groupSuppressAutoColumn', 'groupSelectsChildren', 'groupIncludeFooter',\n 'groupIncludeTotalFooter', 'groupUseEntireRow', 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection',\n 'unSortIcon', 'suppressMultiSort', 'singleClickEdit', 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize',\n 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation', 'suppressMovableColumns',\n 'suppressFieldDotNotation', 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction',\n 'deltaSort', 'suppressTouch', 'suppressAsyncEvents', 'allowContextMenuWithControlKey', 'suppressContextMenu',\n 'rememberGroupStateWhenNewData', 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns', 'suppressMiddleClickScrolls',\n 'suppressPreventDefaultOnMouseWheel', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard', 'pivotMode',\n 'suppressAggFuncInHeader', 'suppressColumnVirtualisation', 'suppressAggAtRootLevel', 'suppressFocusAfterRefresh',\n 'functionsPassive', 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren',\n 'groupRemoveLowestSingleChildren', 'enableRtl', 'suppressClickEdit', 'rowDragManaged', 'suppressRowDrag',\n 'suppressMoveWhenRowDragging', 'enableMultiRowDragging', 'enableGroupEdit', 'embedFullWidthRows', 'deprecatedEmbedFullWidthRows',\n 'suppressPaginationPanel', 'floatingFilter', 'groupHideOpenParents', 'groupMultiAutoColumn', 'pagination',\n 'stopEditingWhenGridLosesFocus', 'paginationAutoPageSize', 'suppressScrollOnNewData', 'purgeClosedRowNodes', 'cacheQuickFilter',\n 'deltaRowDataMode', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection', 'valueCache', 'valueCacheNeverExpires',\n 'aggregateOnlyChangedColumns', 'suppressAnimationFrame', 'suppressExcelExport', 'suppressCsvExport', 'treeData',\n 'masterDetail', 'suppressMultiRangeSelection', 'enterMovesDownAfterEdit', 'enterMovesDown', 'suppressPropertyNamesCheck',\n 'rowMultiSelectWithClick', 'suppressEnterpriseResetOnNewColumns', 'enableOldSetFilterModel', 'suppressRowHoverHighlight',\n 'suppressRowTransform', 'suppressClipboardPaste', 'suppressLastEmptyLineOnPaste', 'serverSideSortingAlwaysResets',\n 'reactNext', 'suppressSetColumnStateEvents', 'suppressColumnStateEvents', 'enableCharts', 'deltaColumnMode', 'suppressMaintainUnsortedOrder',\n 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction',\n 'excludeChildrenWhenTreeDataFiltering', 'tooltipMouseTrack', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu',\n 'undoRedoCellEditing', 'allowDragFromColumnsToolPanel', 'immutableData', 'immutableColumns', 'pivotSuppressAutoColumn',\n 'suppressExpandablePivotGroups', 'applyColumnDefOrder', 'debounceVerticalScrollbar', 'detailRowAutoHeight',\n 'serverSideFilteringAlwaysResets', 'suppressAggFilteredOnly', 'showOpenedGroup', 'suppressClipboardApi',\n 'suppressModelUpdateAfterUpdateTransaction', 'stopEditingWhenCellsLoseFocus'\n ];\n /** You do not need to include event callbacks in this list, as they are generated automatically. */\n PropertyKeys.FUNCTION_PROPERTIES = [\n 'localeTextFunc', 'groupRowInnerRenderer', 'groupRowInnerRendererFramework', 'dateComponent', 'dateComponentFramework', 'groupRowRenderer',\n 'groupRowRendererFramework', 'isExternalFilterPresent', 'getRowHeight', 'doesExternalFilterPass', 'getRowClass', 'getRowStyle',\n 'getRowClassRules', 'traverseNode', 'getContextMenuItems', 'getMainMenuItems', 'processRowPostCreate', 'processCellForClipboard',\n 'groupRowAggNodes', 'getRowNodeId', 'isFullWidthCell', 'fullWidthCellRenderer', 'fullWidthCellRendererFramework', 'processSecondaryColDef',\n 'processSecondaryColGroupDef', 'getBusinessKeyForNode', 'sendToClipboard', 'navigateToNextHeader', 'tabToNextHeader', 'navigateToNextCell',\n 'tabToNextCell', 'getDetailRowData', 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount', 'getDataPath',\n 'loadingCellRenderer', 'loadingCellRendererFramework', 'loadingOverlayComponent', 'loadingOverlayComponentFramework', 'noRowsOverlayComponent',\n 'noRowsOverlayComponentFramework', 'detailCellRenderer', 'detailCellRendererFramework', 'defaultGroupSortComparator', 'isRowMaster',\n 'isRowSelectable', 'postSort', 'processHeaderForClipboard', 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey',\n 'isServerSideGroup', 'suppressKeyboardEvent', 'createChartContainer', 'processChartOptions', 'getChartToolbarItems', 'fillOperation',\n 'isApplyServerSideTransaction', 'getServerSideStoreParams', 'isServerSideGroupOpenByDefault', 'isGroupOpenByDefault'\n ];\n PropertyKeys.ALL_PROPERTIES = __spreadArrays(PropertyKeys.ARRAY_PROPERTIES, PropertyKeys.OBJECT_PROPERTIES, PropertyKeys.STRING_PROPERTIES, PropertyKeys.NUMBER_PROPERTIES, PropertyKeys.FUNCTION_PROPERTIES, PropertyKeys.BOOLEAN_PROPERTIES);\n /**\n * Used when performing property checks. This avoids noise caused when using frameworks, which can add their own\n * framework-specific properties to colDefs, gridOptions etc.\n */\n PropertyKeys.FRAMEWORK_PROPERTIES = [\n '__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns', 'toColDef', 'createColDefFromGridColumn'\n ];\n return PropertyKeys;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays$1 = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar ComponentUtil = /** @class */ (function () {\n function ComponentUtil() {\n }\n ComponentUtil.getEventCallbacks = function () {\n if (!ComponentUtil.EVENT_CALLBACKS) {\n ComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(function (event) { return ComponentUtil.getCallbackForEvent(event); });\n }\n return ComponentUtil.EVENT_CALLBACKS;\n };\n ComponentUtil.copyAttributesToGridOptions = function (gridOptions, component, skipEventDeprecationCheck) {\n // create empty grid options if none were passed\n if (typeof gridOptions !== 'object') {\n gridOptions = {};\n }\n // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'\n var pGridOptions = gridOptions;\n var keyExists = function (key) { return typeof component[key] !== 'undefined'; };\n // add in all the simple properties\n __spreadArrays$1(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.FUNCTION_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = component[key]; });\n ComponentUtil.BOOLEAN_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(component[key]); });\n ComponentUtil.NUMBER_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(component[key]); });\n return gridOptions;\n };\n ComponentUtil.getCallbackForEvent = function (eventName) {\n if (!eventName || eventName.length < 2) {\n return eventName;\n }\n return 'on' + eventName[0].toUpperCase() + eventName.substr(1);\n };\n ComponentUtil.processOnChange = function (changes, gridOptions, api, columnApi) {\n if (!changes) {\n return;\n }\n var changesToApply = __assign({}, changes);\n // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'\n var pGridOptions = gridOptions;\n var keyExists = function (key) { return changesToApply[key]; };\n // check if any change for the simple types, and if so, then just copy in the new value\n __spreadArrays$1(ComponentUtil.ARRAY_PROPERTIES, ComponentUtil.OBJECT_PROPERTIES, ComponentUtil.STRING_PROPERTIES, ComponentUtil.getEventCallbacks()).filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = changesToApply[key].currentValue; });\n ComponentUtil.BOOLEAN_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toBoolean(changesToApply[key].currentValue); });\n ComponentUtil.NUMBER_PROPERTIES\n .filter(keyExists)\n .forEach(function (key) { return pGridOptions[key] = ComponentUtil.toNumber(changesToApply[key].currentValue); });\n if (changesToApply.enableCellTextSelection) {\n api.setEnableCellTextSelection(ComponentUtil.toBoolean(changesToApply.enableCellTextSelection.currentValue));\n delete changesToApply.enableCellTextSelection;\n }\n if (changesToApply.quickFilterText) {\n api.setQuickFilter(changesToApply.quickFilterText.currentValue);\n delete changesToApply.quickFilterText;\n }\n if (changesToApply.autoGroupColumnDef) {\n api.setAutoGroupColumnDef(changesToApply.autoGroupColumnDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.autoGroupColumnDef;\n }\n if (changesToApply.columnDefs) {\n api.setColumnDefs(changesToApply.columnDefs.currentValue, \"gridOptionsChanged\");\n delete changesToApply.columnDefs;\n }\n if (changesToApply.paginationPageSize) {\n api.paginationSetPageSize(ComponentUtil.toNumber(changesToApply.paginationPageSize.currentValue));\n delete changesToApply.paginationPageSize;\n }\n if (changesToApply.pivotMode) {\n columnApi.setPivotMode(ComponentUtil.toBoolean(changesToApply.pivotMode.currentValue));\n delete changesToApply.pivotMode;\n }\n if (changesToApply.groupRemoveSingleChildren) {\n api.setGroupRemoveSingleChildren(ComponentUtil.toBoolean(changesToApply.groupRemoveSingleChildren.currentValue));\n delete changesToApply.groupRemoveSingleChildren;\n }\n if (changesToApply.suppressRowDrag) {\n api.setSuppressRowDrag(ComponentUtil.toBoolean(changesToApply.suppressRowDrag.currentValue));\n delete changesToApply.suppressRowDrag;\n }\n if (changesToApply.suppressMoveWhenRowDragging) {\n api.setSuppressMoveWhenRowDragging(ComponentUtil.toBoolean(changesToApply.suppressMoveWhenRowDragging.currentValue));\n delete changesToApply.suppressMoveWhenRowDragging;\n }\n if (changesToApply.suppressRowClickSelection) {\n api.setSuppressRowClickSelection(ComponentUtil.toBoolean(changesToApply.suppressRowClickSelection.currentValue));\n delete changesToApply.suppressRowClickSelection;\n }\n if (changesToApply.suppressClipboardPaste) {\n api.setSuppressClipboardPaste(ComponentUtil.toBoolean(changesToApply.suppressClipboardPaste.currentValue));\n delete changesToApply.suppressClipboardPaste;\n }\n if (changesToApply.headerHeight) {\n api.setHeaderHeight(ComponentUtil.toNumber(changesToApply.headerHeight.currentValue));\n delete changesToApply.headerHeight;\n }\n // any remaining properties can be set in a generic way\n // ie the setter takes the form of setXXX and the argument requires no formatting/translation first\n var dynamicApi = api;\n Object.keys(changesToApply)\n .forEach(function (property) {\n var setterName = \"set\" + property.charAt(0).toUpperCase() + property.substring(1);\n if (dynamicApi[setterName]) {\n dynamicApi[setterName](changes[property].currentValue);\n }\n });\n // copy changes into an event for dispatch\n var event = {\n type: Events.EVENT_COMPONENT_STATE_CHANGED,\n api: gridOptions.api,\n columnApi: gridOptions.columnApi\n };\n iterateObject(changes, function (key, value) {\n event[key] = value;\n });\n api.dispatchEvent(event);\n };\n ComponentUtil.toBoolean = function (value) {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n // for boolean, compare to empty String to allow attributes appearing with\n // no value to be treated as 'true'\n return value.toUpperCase() === 'TRUE' || value == '';\n }\n return false;\n };\n ComponentUtil.toNumber = function (value) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return Number(value);\n }\n };\n // all the events are populated in here AFTER this class (at the bottom of the file).\n ComponentUtil.EVENTS = [];\n ComponentUtil.STRING_PROPERTIES = PropertyKeys.STRING_PROPERTIES;\n ComponentUtil.OBJECT_PROPERTIES = PropertyKeys.OBJECT_PROPERTIES;\n ComponentUtil.ARRAY_PROPERTIES = PropertyKeys.ARRAY_PROPERTIES;\n ComponentUtil.NUMBER_PROPERTIES = PropertyKeys.NUMBER_PROPERTIES;\n ComponentUtil.BOOLEAN_PROPERTIES = PropertyKeys.BOOLEAN_PROPERTIES;\n ComponentUtil.FUNCTION_PROPERTIES = PropertyKeys.FUNCTION_PROPERTIES;\n ComponentUtil.ALL_PROPERTIES = PropertyKeys.ALL_PROPERTIES;\n return ComponentUtil;\n}());\nComponentUtil.EVENTS = values(Events);\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __spreadArrays$2 = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar ColDefUtil = /** @class */ (function () {\n function ColDefUtil() {\n }\n ColDefUtil.STRING_PROPERTIES = [\n 'headerName',\n 'columnGroupShow',\n 'headerClass',\n 'toolPanelClass',\n 'headerValueGetter',\n 'pivotKeys',\n 'groupId',\n 'colId',\n 'sort',\n 'initialSort',\n 'field',\n 'type',\n 'tooltipComponent',\n 'tooltipField',\n 'headerTooltip',\n 'cellClass',\n 'showRowGroup',\n 'template',\n 'templateUrl',\n 'filter',\n 'initialAggFunc',\n 'aggFunc',\n 'cellRenderer',\n 'cellEditor',\n 'pinned',\n 'initialPinned',\n 'chartDataType'\n ];\n ColDefUtil.OBJECT_PROPERTIES = [\n 'headerGroupComponent',\n 'headerGroupComponentFramework',\n 'headerGroupComponentParams',\n 'cellStyle',\n 'cellRendererParams',\n 'cellEditorFramework',\n 'cellEditorParams',\n 'pinnedRowCellRendererFramework',\n 'pinnedRowCellRendererParams',\n 'filterFramework',\n 'filterParams',\n 'pivotValueColumn',\n 'headerComponent',\n 'headerComponentFramework',\n 'headerComponentParams',\n 'floatingFilterComponent',\n 'floatingFilterComponentParams',\n 'floatingFilterComponentFramework',\n 'tooltipComponent',\n 'tooltipComponentParams',\n 'tooltipComponentFramework',\n 'refData',\n 'columnsMenuParams'\n ];\n ColDefUtil.ARRAY_PROPERTIES = [\n 'children',\n 'sortingOrder',\n 'allowedAggFuncs',\n 'menuTabs',\n 'pivotTotalColumnIds',\n 'cellClassRules',\n 'icons'\n ];\n ColDefUtil.NUMBER_PROPERTIES = [\n 'sortedAt',\n 'sortIndex',\n 'initialSortIndex',\n 'flex',\n 'initialFlex',\n 'width',\n 'initialWidth',\n 'minWidth',\n 'maxWidth',\n 'rowGroupIndex',\n 'initialRowGroupIndex',\n 'pivotIndex',\n 'initialPivotIndex'\n ];\n ColDefUtil.BOOLEAN_PROPERTIES = [\n 'suppressCellFlash',\n 'suppressColumnsToolPanel',\n 'suppressFiltersToolPanel',\n 'openByDefault',\n 'marryChildren',\n 'hide',\n 'initialHide',\n 'rowGroup',\n 'initialRowGroup',\n 'pivot',\n 'initialPivot',\n 'checkboxSelection',\n 'headerCheckboxSelection',\n 'headerCheckboxSelectionFilteredOnly',\n 'suppressMenu',\n 'suppressMovable',\n 'lockPosition',\n 'lockVisible',\n 'lockPinned',\n 'unSortIcon',\n 'suppressSizeToFit',\n 'suppressAutoSize',\n 'enableRowGroup',\n 'enablePivot',\n 'enableValue',\n 'editable',\n 'suppressPaste',\n 'suppressNavigable',\n 'enableCellChangeFlash',\n 'rowDrag',\n 'dndSource',\n 'autoHeight',\n 'wrapText',\n 'sortable',\n 'resizable',\n 'singleClickEdit',\n 'floatingFilter',\n ];\n ColDefUtil.FUNCTION_PROPERTIES = [\n 'dndSourceOnRowDrag',\n 'valueGetter',\n 'valueSetter',\n 'filterValueGetter',\n 'keyCreator',\n 'cellRenderer',\n 'cellRendererFramework',\n 'pinnedRowCellRenderer',\n 'valueFormatter',\n 'pinnedRowValueFormatter',\n 'valueParser',\n 'comparator',\n 'equals',\n 'pivotComparator',\n 'suppressKeyboardEvent',\n 'suppressHeaderKeyboardEvent',\n 'colSpan',\n 'rowSpan',\n 'getQuickFilterText',\n 'newValueHandler',\n 'onCellValueChanged',\n 'onCellClicked',\n 'onCellDoubleClicked',\n 'onCellContextMenu',\n 'rowDragText',\n 'tooltipValueGetter',\n 'tooltipComponent',\n 'tooltipComponentFramework',\n 'cellRendererSelector',\n 'cellEditorSelector'\n ];\n ColDefUtil.ALL_PROPERTIES = __spreadArrays$2(ColDefUtil.ARRAY_PROPERTIES, ColDefUtil.OBJECT_PROPERTIES, ColDefUtil.STRING_PROPERTIES, ColDefUtil.NUMBER_PROPERTIES, ColDefUtil.FUNCTION_PROPERTIES, ColDefUtil.BOOLEAN_PROPERTIES);\n // used when doing property checks - this causes noise when using frameworks which can add their own fw specific\n // properties to colDefs, gridOptions etc\n ColDefUtil.FRAMEWORK_PROPERTIES = ['__ob__', '__v_skip', '__metadata__', 'mappedColumnProperties', 'hasChildColumns',\n 'toColDef', 'createColDefFromGridColumn'];\n return ColDefUtil;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar Color = /** @class */ (function () {\n /**\n * Every color component should be in the [0, 1] range.\n * Some easing functions (such as elastic easing) can overshoot the target value by some amount.\n * So, when animating colors, if the source or target color components are already near\n * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color\n * component value to end up outside of that range mid-animation. For this reason the constructor\n * performs range checking/constraining.\n * @param r Red component.\n * @param g Green component.\n * @param b Blue component.\n * @param a Alpha (opacity) component.\n */\n function Color(r, g, b, a) {\n if (a === void 0) { a = 1; }\n // NaN is treated as 0.\n this.r = Math.min(1, Math.max(0, r || 0));\n this.g = Math.min(1, Math.max(0, g || 0));\n this.b = Math.min(1, Math.max(0, b || 0));\n this.a = Math.min(1, Math.max(0, a || 0));\n }\n /**\n * The given string can be in one of the following formats:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n * @param str\n */\n Color.fromString = function (str) {\n // hexadecimal notation\n if (str.indexOf('#') >= 0) { // there can be some leading whitespace\n return Color.fromHexString(str);\n }\n // color name\n var hex = Color.nameToHex[str];\n if (hex) {\n return Color.fromHexString(hex);\n }\n // rgb(a) notation\n if (str.indexOf('rgb') >= 0) {\n return Color.fromRgbaString(str);\n }\n throw new Error(\"Invalid color string: '\" + str + \"'\");\n };\n // Using separate RegExp for the short hex notation because strings like `#abcd`\n // are matched as ['#abcd', 'ab', 'c', 'd', undefined] when the `{1,2}` quantifier is used.\n Color.fromHexString = function (str) {\n var values = str.match(Color.hexRe);\n if (values) {\n var r = parseInt(values[1], 16);\n var g = parseInt(values[2], 16);\n var b = parseInt(values[3], 16);\n var a = values[4] !== undefined ? parseInt(values[4], 16) : 255;\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n values = str.match(Color.shortHexRe);\n if (values) {\n var r = parseInt(values[1], 16);\n var g = parseInt(values[2], 16);\n var b = parseInt(values[3], 16);\n var a = values[4] !== undefined ? parseInt(values[4], 16) : 15;\n r += r * 16;\n g += g * 16;\n b += b * 16;\n a += a * 16;\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n throw new Error(\"Malformed hexadecimal color string: '\" + str + \"'\");\n };\n Color.fromRgbaString = function (str) {\n var values = str.match(Color.rgbRe);\n if (values) {\n return new Color(+values[1] / 255, +values[2] / 255, +values[3] / 255);\n }\n values = str.match(Color.rgbaRe);\n if (values) {\n return new Color(+values[1] / 255, +values[2] / 255, +values[3] / 255, +values[4]);\n }\n throw new Error(\"Malformed rgb/rgba color string: '\" + str + \"'\");\n };\n Color.fromArray = function (arr) {\n if (arr.length === 4) {\n return new Color(arr[0], arr[1], arr[2], arr[3]);\n }\n if (arr.length === 3) {\n return new Color(arr[0], arr[1], arr[2]);\n }\n throw new Error('The given array should contain 3 or 4 color components (numbers).');\n };\n /**\n * Creates an instance of the Color class from the given HSB(A) components.\n * @param h Hue in the [0, 360) range.\n * @param s Saturation in the [0, 1] range.\n * @param b Brightness in the [0, 1] range.\n * @param alpha Opacity in the [0, 1] range. Defaults to 1 (completely opaque).\n */\n Color.fromHSB = function (h, s, b, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var rgb = Color.HSBtoRGB(h, s, b);\n return new Color(rgb[0], rgb[1], rgb[2], alpha);\n };\n Color.padHex = function (str) {\n // Can't use `padStart(2, '0')` here because of IE.\n return str.length === 1 ? '0' + str : str;\n };\n Color.prototype.toHexString = function () {\n var hex = '#'\n + Color.padHex(Math.round(this.r * 255).toString(16))\n + Color.padHex(Math.round(this.g * 255).toString(16))\n + Color.padHex(Math.round(this.b * 255).toString(16));\n if (this.a < 1) {\n hex += Color.padHex(Math.round(this.a * 255).toString(16));\n }\n return hex;\n };\n Color.prototype.toRgbaString = function (fractionDigits) {\n if (fractionDigits === void 0) { fractionDigits = 3; }\n var components = [\n Math.round(this.r * 255),\n Math.round(this.g * 255),\n Math.round(this.b * 255)\n ];\n var k = Math.pow(10, fractionDigits);\n if (this.a !== 1) {\n components.push(Math.round(this.a * k) / k);\n return \"rgba(\" + components.join(', ') + \")\";\n }\n return \"rgb(\" + components.join(', ') + \")\";\n };\n Color.prototype.toString = function () {\n if (this.a === 1) {\n return this.toHexString();\n }\n return this.toRgbaString();\n };\n Color.prototype.toHSB = function () {\n return Color.RGBtoHSB(this.r, this.g, this.b);\n };\n /**\n * Converts the given RGB triple to an array of HSB (HSV) components.\n * The hue component will be `NaN` for achromatic colors.\n */\n Color.RGBtoHSB = function (r, g, b) {\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var S = max !== 0 ? (max - min) / max : 0;\n var H = NaN;\n // min == max, means all components are the same\n // and the color is a shade of gray with no hue (H is NaN)\n if (min !== max) {\n var delta = max - min;\n var rc = (max - r) / delta;\n var gc = (max - g) / delta;\n var bc = (max - b) / delta;\n if (r === max) {\n H = bc - gc;\n }\n else if (g === max) {\n H = 2.0 + rc - bc;\n }\n else {\n H = 4.0 + gc - rc;\n }\n H /= 6.0;\n if (H < 0) {\n H = H + 1.0;\n }\n }\n return [H * 360, S, max];\n };\n /**\n * Converts the given HSB (HSV) triple to an array of RGB components.\n */\n Color.HSBtoRGB = function (H, S, B) {\n if (isNaN(H)) {\n H = 0;\n }\n H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]\n var r = 0;\n var g = 0;\n var b = 0;\n if (S === 0) {\n r = g = b = B;\n }\n else {\n var h = (H - Math.floor(H)) * 6;\n var f = h - Math.floor(h);\n var p = B * (1 - S);\n var q = B * (1 - S * f);\n var t = B * (1 - (S * (1 - f)));\n switch (h >> 0) { // discard the floating point part of the number\n case 0:\n r = B;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = B;\n b = p;\n break;\n case 2:\n r = p;\n g = B;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = B;\n break;\n case 4:\n r = t;\n g = p;\n b = B;\n break;\n case 5:\n r = B;\n g = p;\n b = q;\n break;\n }\n }\n return [r, g, b];\n };\n Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {\n var hsb = Color.RGBtoHSB(this.r, this.g, this.b);\n var b = hsb[2];\n if (b == 0 && brightnessFactor > 1.0) {\n b = 0.05;\n }\n var h = (((hsb[0] + hueShift) % 360) + 360) % 360;\n var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);\n b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);\n var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);\n var rgba = Color.HSBtoRGB(h, s, b);\n rgba.push(a);\n return Color.fromArray(rgba);\n };\n Color.prototype.brighter = function () {\n return this.derive(0, 1.0, 1.0 / 0.7, 1.0);\n };\n Color.prototype.darker = function () {\n return this.derive(0, 1.0, 0.7, 1.0);\n };\n // See https://drafts.csswg.org/css-color/#hex-notation\n Color.hexRe = /\\s*#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?\\s*$/;\n Color.shortHexRe = /\\s*#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])?\\s*$/;\n Color.rgbRe = /\\s*rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)\\s*/;\n Color.rgbaRe = /\\s*rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*([.\\d]+)\\)\\s*/;\n /**\n * CSS Color Module Level 4:\n * https://drafts.csswg.org/css-color/#named-colors\n */\n Color.nameToHex = Object.freeze({\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32'\n });\n return Color;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n// Based on https://stackoverflow.com/a/14991797\n// This will parse a delimited string into an array of arrays.\nfunction stringToArray(strData, delimiter) {\n if (delimiter === void 0) { delimiter = ','; }\n var data = [];\n var isNewline = function (char) { return char === '\\r' || char === '\\n'; };\n var insideQuotedField = false;\n if (strData === '') {\n return [['']];\n }\n var _loop_1 = function (row, column, position) {\n var previousChar = strData[position - 1];\n var currentChar = strData[position];\n var nextChar = strData[position + 1];\n var ensureDataExists = function () {\n if (!data[row]) {\n // create row if it doesn't exist\n data[row] = [];\n }\n if (!data[row][column]) {\n // create column if it doesn't exist\n data[row][column] = '';\n }\n };\n ensureDataExists();\n if (currentChar === '\"') {\n if (insideQuotedField) {\n if (nextChar === '\"') {\n // unescape double quote\n data[row][column] += '\"';\n position++;\n }\n else {\n // exit quoted field\n insideQuotedField = false;\n }\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n else if (previousChar === undefined || previousChar === delimiter || isNewline(previousChar)) {\n // enter quoted field\n insideQuotedField = true;\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n }\n if (!insideQuotedField) {\n if (currentChar === delimiter) {\n // move to next column\n column++;\n ensureDataExists();\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n else if (isNewline(currentChar)) {\n // move to next row\n column = 0;\n row++;\n ensureDataExists();\n if (currentChar === '\\r' && nextChar === '\\n') {\n // skip over second newline character if it exists\n position++;\n }\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n }\n // add current character to current column\n data[row][column] += currentChar;\n out_row_1 = row;\n out_column_1 = column;\n out_position_1 = position;\n };\n var out_row_1, out_column_1, out_position_1;\n // iterate over each character, keep track of current row and column (of the returned array)\n for (var row = 0, column = 0, position = 0; position < strData.length; position++) {\n _loop_1(row, column, position);\n row = out_row_1;\n column = out_column_1;\n position = out_position_1;\n }\n return data;\n}\n\nvar CsvUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n stringToArray: stringToArray\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/** @deprecated */\nfunction getNameOfClass(theClass) {\n var funcNameRegex = /function (.{1,})\\(/;\n var funcAsString = theClass.toString();\n var results = funcNameRegex.exec(funcAsString);\n return results && results.length > 1 ? results[1] : \"\";\n}\nfunction findLineByLeastSquares(values) {\n var len = values.length;\n var maxDecimals = 0;\n if (len <= 1) {\n return values;\n }\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if (Math.floor(value) === value) {\n continue;\n }\n maxDecimals = Math.max(maxDecimals, value.toString().split('.')[1].length);\n }\n var sum_x = 0;\n var sum_y = 0;\n var sum_xy = 0;\n var sum_xx = 0;\n var y = 0;\n for (var x = 0; x < len; x++) {\n y = values[x];\n sum_x += x;\n sum_y += y;\n sum_xx += x * x;\n sum_xy += x * y;\n }\n var m = (len * sum_xy - sum_x * sum_y) / (len * sum_xx - sum_x * sum_x);\n var b = (sum_y / len) - (m * sum_x) / len;\n var result = [];\n for (var x = 0; x <= len; x++) {\n result.push(parseFloat((x * m + b).toFixed(maxDecimals)));\n }\n return result;\n}\n/**\n * Converts a CSS object into string\n * @param {Object} stylesToUse an object eg: {color: 'black', top: '25px'}\n * @return {string} A string like \"color: black; top: 25px;\" for html\n */\nfunction cssStyleObjectToMarkup(stylesToUse) {\n if (!stylesToUse) {\n return '';\n }\n var resParts = [];\n iterateObject(stylesToUse, function (styleKey, styleValue) {\n var styleKeyDashed = camelCaseToHyphen(styleKey);\n resParts.push(styleKeyDashed + \": \" + styleValue + \";\");\n });\n return resParts.join(' ');\n}\n/**\n * Displays a message to the browser. this is useful in iPad, where you can't easily see the console.\n * so the javascript code can use this to give feedback. this is NOT intended to be called in production.\n * it is intended the AG Grid developer calls this to troubleshoot, but then takes out the calls before\n * checking in.\n * @param {string} msg\n */\nfunction message(msg) {\n var eMessage = document.createElement('div');\n var eBox = document.querySelector('#__ag__message');\n eMessage.innerHTML = msg;\n if (!eBox) {\n var template = \"
\";\n eBox = loadTemplate(template);\n if (document.body) {\n document.body.appendChild(eBox);\n }\n }\n eBox.insertBefore(eMessage, eBox.children[0]);\n}\n/**\n * cell renderers are used in a few places. they bind to dom slightly differently to other cell renderes as they\n * can return back strings (instead of html elemnt) in the getGui() method. common code placed here to handle that.\n * @param {AgPromise} cellRendererPromise\n * @param {HTMLElement} eTarget\n */\nfunction bindCellRendererToHtmlElement(cellRendererPromise, eTarget) {\n cellRendererPromise.then(function (cellRenderer) {\n var gui = cellRenderer.getGui();\n if (gui != null) {\n if (typeof gui === 'object') {\n eTarget.appendChild(gui);\n }\n else {\n eTarget.innerHTML = gui;\n }\n }\n });\n}\n\nvar GeneralUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getNameOfClass: getNameOfClass,\n findLineByLeastSquares: findLineByLeastSquares,\n cssStyleObjectToMarkup: cssStyleObjectToMarkup,\n message: message,\n bindCellRendererToHtmlElement: bindCellRendererToHtmlElement\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n// ARIA HELPER FUNCTIONS\nfunction setAriaAttribute(element, attribute, value) {\n element.setAttribute(ariaAttributeName(attribute), value.toString());\n}\nfunction removeAriaAttribute(element, attribute) {\n element.removeAttribute(ariaAttributeName(attribute));\n}\nfunction ariaAttributeName(attribute) {\n return \"aria-\" + attribute;\n}\nfunction getAriaSortState(column) {\n var sort;\n if (column.isSortAscending()) {\n sort = 'ascending';\n }\n else if (column.isSortDescending()) {\n sort = 'descending';\n }\n else {\n sort = 'none';\n }\n return sort;\n}\n// ARIA ATTRIBUTE GETTERS\nfunction getAriaLevel(element) {\n return parseInt(element.getAttribute('aria-level'), 10);\n}\nfunction getAriaPosInSet(element) {\n return parseInt(element.getAttribute('aria-posinset'), 10);\n}\nfunction getAriaDescribedBy(element) {\n return element.getAttribute('aria-describedby') || '';\n}\n// ARIA ATTRIBUTE SETTERS\nfunction setAriaLabel(element, label) {\n setAriaAttribute(element, 'label', label);\n}\nfunction setAriaLabelledBy(element, labelledBy) {\n setAriaAttribute(element, 'labelledby', labelledBy);\n}\nfunction setAriaDescribedBy(element, describedby) {\n setAriaAttribute(element, 'describedby', describedby);\n}\nfunction setAriaLevel(element, level) {\n setAriaAttribute(element, 'level', level);\n}\nfunction setAriaDisabled(element, disabled) {\n setAriaAttribute(element, 'disabled', disabled);\n}\nfunction setAriaExpanded(element, expanded) {\n setAriaAttribute(element, 'expanded', expanded);\n}\nfunction removeAriaExpanded(element) {\n removeAriaAttribute(element, 'expanded');\n}\nfunction setAriaSetSize(element, setsize) {\n setAriaAttribute(element, 'setsize', setsize);\n}\nfunction setAriaPosInSet(element, position) {\n setAriaAttribute(element, 'posinset', position);\n}\nfunction setAriaMultiSelectable(element, multiSelectable) {\n setAriaAttribute(element, 'multiselectable', multiSelectable);\n}\nfunction setAriaRowCount(element, rowCount) {\n setAriaAttribute(element, 'rowcount', rowCount);\n}\nfunction setAriaRowIndex(element, rowIndex) {\n setAriaAttribute(element, 'rowindex', rowIndex);\n}\nfunction setAriaColCount(element, colCount) {\n setAriaAttribute(element, 'colcount', colCount);\n}\nfunction setAriaColIndex(element, colIndex) {\n setAriaAttribute(element, 'colindex', colIndex);\n}\nfunction setAriaColSpan(element, colSpan) {\n setAriaAttribute(element, 'colspan', colSpan);\n}\nfunction setAriaSort(element, sort) {\n setAriaAttribute(element, 'sort', sort);\n}\nfunction removeAriaSort(element) {\n removeAriaAttribute(element, 'sort');\n}\nfunction setAriaSelected(element, selected) {\n var attributeName = 'selected';\n if (selected) {\n setAriaAttribute(element, attributeName, selected);\n }\n else {\n removeAriaAttribute(element, attributeName);\n }\n}\nfunction setAriaChecked(element, checked) {\n setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);\n}\n\nvar AriaUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getAriaSortState: getAriaSortState,\n getAriaLevel: getAriaLevel,\n getAriaPosInSet: getAriaPosInSet,\n getAriaDescribedBy: getAriaDescribedBy,\n setAriaLabel: setAriaLabel,\n setAriaLabelledBy: setAriaLabelledBy,\n setAriaDescribedBy: setAriaDescribedBy,\n setAriaLevel: setAriaLevel,\n setAriaDisabled: setAriaDisabled,\n setAriaExpanded: setAriaExpanded,\n removeAriaExpanded: removeAriaExpanded,\n setAriaSetSize: setAriaSetSize,\n setAriaPosInSet: setAriaPosInSet,\n setAriaMultiSelectable: setAriaMultiSelectable,\n setAriaRowCount: setAriaRowCount,\n setAriaRowIndex: setAriaRowIndex,\n setAriaColCount: setAriaColCount,\n setAriaColIndex: setAriaColIndex,\n setAriaColSpan: setAriaColSpan,\n setAriaSort: setAriaSort,\n removeAriaSort: removeAriaSort,\n setAriaSelected: setAriaSelected,\n setAriaChecked: setAriaChecked\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/**\n * Serialises a Date to a string of format `yyyy-MM-dd HH:mm:ss`.\n * An alternative separator can be provided to be used instead of hyphens.\n * @param date The date to serialise\n * @param includeTime Whether to include the time in the serialised string\n * @param separator The separator to use between date parts\n */\nfunction serialiseDate(date, includeTime, separator) {\n if (includeTime === void 0) { includeTime = true; }\n if (separator === void 0) { separator = '-'; }\n if (!date) {\n return null;\n }\n var serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(function (part) { return padStartWidthZeros(part, 2); }).join(separator);\n if (includeTime) {\n serialised += ' ' + [date.getHours(), date.getMinutes(), date.getSeconds()].map(function (part) { return padStartWidthZeros(part, 2); }).join(':');\n }\n return serialised;\n}\n/**\n * Parses a date and time from a string in the format `yyyy-MM-dd HH:mm:ss`\n */\nfunction parseDateTimeFromString(value) {\n if (!value) {\n return null;\n }\n var _a = value.split(' '), dateStr = _a[0], timeStr = _a[1];\n if (!dateStr) {\n return null;\n }\n var fields = dateStr.split('-').map(function (f) { return parseInt(f, 10); });\n if (fields.filter(function (f) { return !isNaN(f); }).length !== 3) {\n return null;\n }\n var year = fields[0], month = fields[1], day = fields[2];\n var date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year ||\n date.getMonth() !== month - 1 ||\n date.getDate() !== day) {\n // date was not parsed as expected so must have been invalid\n return null;\n }\n if (!timeStr || timeStr === '00:00:00') {\n return date;\n }\n var _b = timeStr.split(':').map(function (part) { return parseInt(part, 10); }), hours = _b[0], minutes = _b[1], seconds = _b[2];\n if (hours >= 0 && hours < 24) {\n date.setHours(hours);\n }\n if (minutes >= 0 && minutes < 60) {\n date.setMinutes(minutes);\n }\n if (seconds >= 0 && seconds < 60) {\n date.setSeconds(seconds);\n }\n return date;\n}\n\nvar DateUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n serialiseDate: serialiseDate,\n parseDateTimeFromString: parseDateTimeFromString\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction fuzzyCheckStrings(inputValues, validValues, allSuggestions) {\n var fuzzyMatches = {};\n var invalidInputs = inputValues.filter(function (inputValue) {\n return !validValues.some(function (validValue) { return validValue === inputValue; });\n });\n if (invalidInputs.length > 0) {\n invalidInputs.forEach(function (invalidInput) {\n return fuzzyMatches[invalidInput] = fuzzySuggestions(invalidInput, allSuggestions);\n });\n }\n return fuzzyMatches;\n}\n/**\n *\n * @param {String} inputValue The value to be compared against a list of strings\n * @param allSuggestions The list of strings to be compared against\n * @param hideIrrelevant By default, fuzzy suggestions will just sort the allSuggestions list, set this to true\n * to filter out the irrelevant values\n * @param weighted Set this to true, to make letters matched in the order they were typed have priority in the results.\n */\nfunction fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, weighted) {\n var search = weighted ? string_weighted_distances : string_distances;\n var thisSuggestions = allSuggestions.map(function (text) { return ({\n value: text,\n relevance: search(inputValue.toLowerCase(), text.toLocaleLowerCase())\n }); });\n thisSuggestions.sort(function (a, b) { return b.relevance - a.relevance; });\n if (hideIrrelevant) {\n thisSuggestions = thisSuggestions.filter(function (suggestion) { return suggestion.relevance !== 0; });\n }\n return thisSuggestions.map(function (suggestion) { return suggestion.value; });\n}\n/**\n * Algorithm to do fuzzy search\n * from https://stackoverflow.com/questions/23305000/javascript-fuzzy-search-that-makes-sense\n * @param {string} from\n * @return {[]}\n */\nfunction get_bigrams(from) {\n var s = from.toLowerCase();\n var v = new Array(s.length - 1);\n var i;\n var j;\n var ref;\n for (i = j = 0, ref = v.length; j <= ref; i = j += 1) {\n v[i] = s.slice(i, i + 2);\n }\n return v;\n}\nfunction string_distances(str1, str2) {\n if (str1.length === 0 && str2.length === 0) {\n return 0;\n }\n var pairs1 = get_bigrams(str1);\n var pairs2 = get_bigrams(str2);\n var union = pairs1.length + pairs2.length;\n var hit_count = 0;\n var j;\n var len;\n for (j = 0, len = pairs1.length; j < len; j++) {\n var x = pairs1[j];\n var k = void 0;\n var len1 = void 0;\n for (k = 0, len1 = pairs2.length; k < len1; k++) {\n var y = pairs2[k];\n if (x === y) {\n hit_count++;\n }\n }\n }\n return hit_count > 0 ? (2 * hit_count) / union : 0;\n}\nfunction string_weighted_distances(str1, str2) {\n var a = str1.replace(/\\s/g, '');\n var b = str2.replace(/\\s/g, '');\n var weight = 0;\n var lastIndex = 0;\n for (var i = 0; i < a.length; i++) {\n var idx = b.indexOf(a[i], lastIndex);\n if (idx === -1) {\n continue;\n }\n lastIndex = idx;\n weight += (100 - (lastIndex * 100 / 10000) * 100);\n }\n return weight;\n}\n\nvar FuzzyMatchUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fuzzyCheckStrings: fuzzyCheckStrings,\n fuzzySuggestions: fuzzySuggestions,\n get_bigrams: get_bigrams,\n string_distances: string_distances,\n string_weighted_distances: string_weighted_distances\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n//\n// IMPORTANT NOTE!\n//\n// If you change the list below, copy/paste the new content into the docs page javascript-grid-icons\n//\nvar iconNameClassMap = {\n // header column group shown when expanded (click to contract)\n columnGroupOpened: 'expanded',\n // header column group shown when contracted (click to expand)\n columnGroupClosed: 'contracted',\n // tool panel column group contracted (click to expand)\n columnSelectClosed: 'tree-closed',\n // tool panel column group expanded (click to contract)\n columnSelectOpen: 'tree-open',\n // column tool panel header expand/collapse all button, shown when some children are expanded and\n // others are collapsed\n columnSelectIndeterminate: 'tree-indeterminate',\n // shown on ghost icon while dragging column to the side of the grid to pin\n columnMovePin: 'pin',\n // shown on ghost icon while dragging over part of the page that is not a drop zone\n columnMoveHide: 'eye-slash',\n // shown on ghost icon while dragging columns to reorder\n columnMoveMove: 'arrows',\n // animating icon shown when dragging a column to the right of the grid causes horizontal scrolling\n columnMoveLeft: 'left',\n // animating icon shown when dragging a column to the left of the grid causes horizontal scrolling\n columnMoveRight: 'right',\n // shown on ghost icon while dragging over Row Groups drop zone\n columnMoveGroup: 'group',\n // shown on ghost icon while dragging over Values drop zone\n columnMoveValue: 'aggregation',\n // shown on ghost icon while dragging over pivot drop zone\n columnMovePivot: 'pivot',\n // shown on ghost icon while dragging over drop zone that doesn't support it, e.g.\n // string column over aggregation drop zone\n dropNotAllowed: 'not-allowed',\n // shown on row group when contracted (click to expand)\n groupContracted: 'tree-closed',\n // shown on row group when expanded (click to contract)\n groupExpanded: 'tree-open',\n // context menu chart item\n chart: 'chart',\n // chart window title bar\n close: 'cross',\n // X (remove) on column 'pill' after adding it to a drop zone list\n cancel: 'cancel',\n // indicates the currently active pin state in the \"Pin column\" sub-menu of the column menu\n check: 'tick',\n // \"go to first\" button in pagination controls\n first: 'first',\n // \"go to previous\" button in pagination controls\n previous: 'previous',\n // \"go to next\" button in pagination controls\n next: 'next',\n // \"go to last\" button in pagination controls\n last: 'last',\n // shown on top right of chart when chart is linked to range data (click to unlink)\n linked: 'linked',\n // shown on top right of chart when chart is not linked to range data (click to link)\n unlinked: 'unlinked',\n // \"Choose colour\" button on chart settings tab\n colorPicker: 'color-picker',\n // rotating spinner shown by the loading cell renderer\n groupLoading: 'loading',\n // button to launch enterprise column menu\n menu: 'menu',\n // filter tool panel tab\n filter: 'filter',\n // column tool panel tab\n columns: 'columns',\n // button in chart regular size window title bar (click to maximise)\n maximize: 'maximize',\n // button in chart maximised window title bar (click to make regular size)\n minimize: 'minimize',\n // \"Pin column\" item in column header menu\n menuPin: 'pin',\n // \"Value aggregation\" column menu item (shown on numeric columns when grouping is active)\"\n menuValue: 'aggregation',\n // \"Group by {column-name}\" item in column header menu\n menuAddRowGroup: 'group',\n // \"Un-Group by {column-name}\" item in column header menu\n menuRemoveRowGroup: 'group',\n // context menu copy item\n clipboardCopy: 'copy',\n // context menu paste item\n clipboardPaste: 'paste',\n // identifies the pivot drop zone\n pivotPanel: 'pivot',\n // \"Row groups\" drop zone in column tool panel\n rowGroupPanel: 'group',\n // columns tool panel Values drop zone\n valuePanel: 'aggregation',\n // drag handle used to pick up draggable columns\n columnDrag: 'grip',\n // drag handle used to pick up draggable rows\n rowDrag: 'grip',\n // context menu export item\n save: 'save',\n // csv export\n csvExport: 'csv',\n // excel export,\n excelExport: 'excel',\n // icon on dropdown editors\n smallDown: 'small-down',\n // version of small-right used in RTL mode\n smallLeft: 'small-left',\n // separater between column 'pills' when you add multiple columns to the header drop zone\n smallRight: 'small-right',\n smallUp: 'small-up',\n // show on column header when column is sorted ascending\n sortAscending: 'asc',\n // show on column header when column is sorted descending\n sortDescending: 'desc',\n // show on column header when column has no sort, only when enabled with gridOptions.unSortIcon=true\n sortUnSort: 'none'\n};\n/**\n * If icon provided, use this (either a string, or a function callback).\n * if not, then use the default icon from the theme\n * @param {string} iconName\n * @param {GridOptionsWrapper} gridOptionsWrapper\n * @param {Column | null} [column]\n * @returns {HTMLElement}\n */\nfunction createIcon(iconName, gridOptionsWrapper, column) {\n var iconContents = createIconNoSpan(iconName, gridOptionsWrapper, column);\n if (iconContents && iconContents.className.indexOf('ag-icon') > -1) {\n return iconContents;\n }\n var eResult = document.createElement('span');\n eResult.appendChild(iconContents);\n return eResult;\n}\nfunction createIconNoSpan(iconName, gridOptionsWrapper, column, forceCreate) {\n var userProvidedIcon = null;\n // check col for icon first\n var icons = column && column.getColDef().icons;\n if (icons) {\n userProvidedIcon = icons[iconName];\n }\n // if not in col, try grid options\n if (gridOptionsWrapper && !userProvidedIcon) {\n var optionsIcons = gridOptionsWrapper.getIcons();\n if (optionsIcons) {\n userProvidedIcon = optionsIcons[iconName];\n }\n }\n // now if user provided, use it\n if (userProvidedIcon) {\n var rendererResult = void 0;\n if (typeof userProvidedIcon === 'function') {\n rendererResult = userProvidedIcon();\n }\n else if (typeof userProvidedIcon === 'string') {\n rendererResult = userProvidedIcon;\n }\n else {\n throw new Error('icon from grid options needs to be a string or a function');\n }\n if (typeof rendererResult === 'string') {\n return loadTemplate(rendererResult);\n }\n if (isNodeOrElement(rendererResult)) {\n return rendererResult;\n }\n console.warn('AG Grid: iconRenderer should return back a string or a dom object');\n }\n else {\n var span = document.createElement('span');\n var cssClass = iconNameClassMap[iconName];\n if (!cssClass) {\n if (!forceCreate) {\n console.warn(\"AG Grid: Did not find icon \" + iconName);\n cssClass = '';\n }\n else {\n cssClass = iconName;\n }\n }\n span.setAttribute('class', \"ag-icon ag-icon-\" + cssClass);\n span.setAttribute('unselectable', 'on');\n span.setAttribute('role', 'presentation');\n return span;\n }\n}\n\nvar IconUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n iconNameClassMap: iconNameClassMap,\n createIcon: createIcon,\n createIconNoSpan: createIconNoSpan\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar NUMPAD_DEL_NUMLOCK_ON_KEY = 'Del';\nvar NUMPAD_DEL_NUMLOCK_ON_CHARCODE = 46;\nfunction isKeyPressed(event, keyToCheck) {\n return (event.which || event.keyCode) === keyToCheck;\n}\nfunction isEventFromPrintableCharacter(event) {\n // no allowed printable chars have alt or ctrl key combinations\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return false;\n }\n // if key is length 1, eg if it is 'a' for the a key, or '2' for the '2' key.\n // non-printable characters have names, eg 'Enter' or 'Backspace'.\n var printableCharacter = event.key.length === 1;\n // IE11 & Edge treat the numpad del key differently - with numlock on we get \"Del\" for key,\n // so this addition checks if its IE11/Edge and handles that specific case the same was as all other browsers\n var numpadDelWithNumlockOnForEdgeOrIe = isNumpadDelWithNumlockOnForEdgeOrIe(event);\n return printableCharacter || numpadDelWithNumlockOnForEdgeOrIe;\n}\n/**\n * Allows user to tell the grid to skip specific keyboard events\n * @param {GridOptionsWrapper} gridOptionsWrapper\n * @param {KeyboardEvent} keyboardEvent\n * @param {RowNode} rowNode\n * @param {Column} column\n * @param {boolean} editing\n * @returns {boolean}\n */\nfunction isUserSuppressingKeyboardEvent(gridOptionsWrapper, keyboardEvent, rowNode, column, editing) {\n var gridOptionsFunc = gridOptionsWrapper.getSuppressKeyboardEventFunc();\n var colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;\n // if no callbacks provided by user, then do nothing\n if (!gridOptionsFunc && !colDefFunc) {\n return false;\n }\n var params = {\n event: keyboardEvent,\n editing: editing,\n column: column,\n api: gridOptionsWrapper.getApi(),\n node: rowNode,\n data: rowNode.data,\n colDef: column.getColDef(),\n context: gridOptionsWrapper.getContext(),\n columnApi: gridOptionsWrapper.getColumnApi()\n };\n // colDef get first preference on suppressing events\n if (colDefFunc) {\n var colDefFuncResult = colDefFunc(params);\n // if colDef func suppressed, then return now, no need to call gridOption func\n if (colDefFuncResult) {\n return true;\n }\n }\n if (gridOptionsFunc) {\n // if gridOption func, return the result\n return gridOptionsFunc(params);\n }\n // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions\n return false;\n}\nfunction isUserSuppressingHeaderKeyboardEvent(gridOptionsWrapper, keyboardEvent, headerRowIndex, column) {\n var colDef = column.getDefinition();\n var colDefFunc = colDef && colDef.suppressHeaderKeyboardEvent;\n if (!exists(colDefFunc)) {\n return false;\n }\n var params = {\n api: gridOptionsWrapper.getApi(),\n columnApi: gridOptionsWrapper.getColumnApi(),\n context: gridOptionsWrapper.getContext(),\n colDef: colDef,\n column: column,\n headerRowIndex: headerRowIndex,\n event: keyboardEvent\n };\n return !!colDefFunc(params);\n}\nfunction isNumpadDelWithNumlockOnForEdgeOrIe(event) {\n return (isBrowserEdge() || isBrowserIE()) &&\n event.key === NUMPAD_DEL_NUMLOCK_ON_KEY &&\n event.charCode === NUMPAD_DEL_NUMLOCK_ON_CHARCODE;\n}\n\nvar KeyboardUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isKeyPressed: isKeyPressed,\n isEventFromPrintableCharacter: isEventFromPrintableCharacter,\n isUserSuppressingKeyboardEvent: isUserSuppressingKeyboardEvent,\n isUserSuppressingHeaderKeyboardEvent: isUserSuppressingHeaderKeyboardEvent\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/**\n * @deprecated\n * Mouse wheel (and 2-finger trackpad) support on the web sucks. It is\n * complicated, thus this doc is long and (hopefully) detailed enough to answer\n * your questions.\n *\n * If you need to react to the mouse wheel in a predictable way, this code is\n * like your bestest friend. * hugs *\n *\n * As of today, there are 4 DOM event types you can listen to:\n *\n * 'wheel' -- Chrome(31+), FF(17+), IE(9+)\n * 'mousewheel' -- Chrome, IE(6+), Opera, Safari\n * 'MozMousePixelScroll' -- FF(3.5 only!) (2010-2013) -- don't bother!\n * 'DOMMouseScroll' -- FF(0.9.7+) since 2003\n *\n * So what to do? The is the best:\n *\n * normalizeWheel.getEventType();\n *\n * In your event callback, use this code to get sane interpretation of the\n * deltas. This code will return an object with properties:\n *\n * spinX -- normalized spin speed (use for zoom) - x plane\n * spinY -- \" - y plane\n * pixelX -- normalized distance (to pixels) - x plane\n * pixelY -- \" - y plane\n *\n * Wheel values are provided by the browser assuming you are using the wheel to\n * scroll a web page by a number of lines or pixels (or pages). Values can vary\n * significantly on different platforms and browsers, forgetting that you can\n * scroll at different speeds. Some devices (like trackpads) emit more events\n * at smaller increments with fine granularity, and some emit massive jumps with\n * linear speed or acceleration.\n *\n * This code does its best to normalize the deltas for you:\n *\n * - spin is trying to normalize how far the wheel was spun (or trackpad\n * dragged). This is super useful for zoom support where you want to\n * throw away the chunky scroll steps on the PC and make those equal to\n * the slow and smooth tiny steps on the Mac. Key data: This code tries to\n * resolve a single slow step on a wheel to 1.\n *\n * - pixel is normalizing the desired scroll delta in pixel units. You'll\n * get the crazy differences between browsers, but at least it'll be in\n * pixels!\n *\n * - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT. This\n * should translate to positive value zooming IN, negative zooming OUT.\n * This matches the newer 'wheel' event.\n *\n * Why are there spinX, spinY (or pixels)?\n *\n * - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn\n * with a mouse. It results in side-scrolling in the browser by default.\n *\n * - spinY is what you expect -- it's the classic axis of a mouse wheel.\n *\n * - I dropped spinZ/pixelZ. It is supported by the DOM 3 'wheel' event and\n * probably is by browsers in conjunction with fancy 3D controllers .. but\n * you know.\n *\n * Implementation info:\n *\n * Examples of 'wheel' event if you scroll slowly (down) by one step with an\n * average mouse:\n *\n * OS X + Chrome (mouse) - 4 pixel delta (wheelDelta -120)\n * OS X + Safari (mouse) - N/A pixel delta (wheelDelta -12)\n * OS X + Firefox (mouse) - 0.1 line delta (wheelDelta N/A)\n * Win8 + Chrome (mouse) - 100 pixel delta (wheelDelta -120)\n * Win8 + Firefox (mouse) - 3 line delta (wheelDelta -120)\n *\n * On the trackpad:\n *\n * OS X + Chrome (trackpad) - 2 pixel delta (wheelDelta -6)\n * OS X + Firefox (trackpad) - 1 pixel delta (wheelDelta N/A)\n *\n * On other/older browsers.. it's more complicated as there can be multiple and\n * also missing delta values.\n *\n * The 'wheel' event is more standard:\n *\n * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents\n *\n * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and\n * deltaX, deltaY and deltaZ. Some browsers provide other values to maintain\n * backward compatibility with older events. Those other values help us\n * better normalize spin speed. Example of what the browsers provide:\n *\n * | event.wheelDelta | event.detail\n * ------------------+------------------+--------------\n * Safari v5/OS X | -120 | 0\n * Safari v5/Win7 | -120 | 0\n * Chrome v17/OS X | -120 | 0\n * Chrome v17/Win7 | -120 | 0\n * IE9/Win7 | -120 | undefined\n * Firefox v4/OS X | undefined | 1\n * Firefox v4/Win7 | undefined | 3\n *\n * from: https://github.com/facebook/fixed-data-table/blob/master/src/vendor_upstream/dom/normalizeWheel.js\n * @param {any} event\n * @return {any}\n */\nfunction normalizeWheel(event) {\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n // spinX, spinY\n var sX = 0;\n var sY = 0;\n // pixelX, pixelY\n var pX = 0;\n var pY = 0;\n // Legacy\n if ('detail' in event) {\n sY = event.detail;\n }\n if ('wheelDelta' in event) {\n sY = -event.wheelDelta / 120;\n }\n if ('wheelDeltaY' in event) {\n sY = -event.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in event) {\n sX = -event.wheelDeltaX / 120;\n }\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in event && event.axis === event.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in event) {\n pY = event.deltaY;\n }\n if ('deltaX' in event) {\n pX = event.deltaX;\n }\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode == 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n }\n else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n}\n/**\n * @deprecated\n * Checks if event was issued by a left click\n * from https://stackoverflow.com/questions/3944122/detect-left-mouse-button-press\n * @param {MouseEvent} mouseEvent\n * @returns {boolean}\n */\nfunction isLeftClick(mouseEvent) {\n if ('buttons' in mouseEvent) {\n return mouseEvent.buttons == 1;\n }\n var button = mouseEvent.which || mouseEvent.button;\n return button == 1;\n}\n/**\n * `True` if the event is close to the original event by X pixels either vertically or horizontally.\n * we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n * @param {MouseEvent | TouchEvent} e1\n * @param {MouseEvent | TouchEvent} e2\n * @param {number} pixelCount\n * @returns {boolean}\n */\nfunction areEventsNear(e1, e2, pixelCount) {\n // by default, we wait 4 pixels before starting the drag\n if (pixelCount === 0) {\n return false;\n }\n var diffX = Math.abs(e1.clientX - e2.clientX);\n var diffY = Math.abs(e1.clientY - e2.clientY);\n return Math.max(diffX, diffY) <= pixelCount;\n}\n\nvar MouseUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n normalizeWheel: normalizeWheel,\n isLeftClick: isLeftClick,\n areEventsNear: areEventsNear\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/**\n * Gets called by: a) ClientSideNodeManager and b) GroupStage to do sorting.\n * when in ClientSideNodeManager we always have indexes (as this sorts the items the\n * user provided) but when in GroupStage, the nodes can contain filler nodes that\n * don't have order id's\n * @param {RowNode[]} rowNodes\n * @param {Object} rowNodeOrder\n */\nfunction sortRowNodesByOrder(rowNodes, rowNodeOrder) {\n if (!rowNodes) {\n return;\n }\n var comparator = function (nodeA, nodeB) {\n var positionA = rowNodeOrder[nodeA.id];\n var positionB = rowNodeOrder[nodeB.id];\n var aHasIndex = positionA !== undefined;\n var bHasIndex = positionB !== undefined;\n var bothNodesAreUserNodes = aHasIndex && bHasIndex;\n var bothNodesAreFillerNodes = !aHasIndex && !bHasIndex;\n if (bothNodesAreUserNodes) {\n // when comparing two nodes the user has provided, they always\n // have indexes\n return positionA - positionB;\n }\n if (bothNodesAreFillerNodes) {\n // when comparing two filler nodes, we have no index to compare them\n // against, however we want this sorting to be deterministic, so that\n // the rows don't jump around as the user does delta updates. so we\n // want the same sort result. so we use the __objectId - which doesn't make sense\n // from a sorting point of view, but does give consistent behaviour between\n // calls. otherwise groups jump around as delta updates are done.\n // note: previously here we used nodeId, however this gave a strange order\n // as string ordering of numbers is wrong, so using id based on creation order\n // as least gives better looking order.\n return nodeA.__objectId - nodeB.__objectId;\n }\n if (aHasIndex) {\n return 1;\n }\n return -1;\n };\n // check if the list first needs sorting\n var rowNodeA;\n var rowNodeB;\n var atLeastOneOutOfOrder = false;\n for (var i = 0; i < rowNodes.length - 1; i++) {\n rowNodeA = rowNodes[i];\n rowNodeB = rowNodes[i + 1];\n if (comparator(rowNodeA, rowNodeB) > 0) {\n atLeastOneOutOfOrder = true;\n break;\n }\n }\n if (atLeastOneOutOfOrder) {\n rowNodes.sort(comparator);\n }\n}\nfunction traverseNodesWithKey(nodes, callback) {\n var keyParts = [];\n recursiveSearchNodes(nodes);\n function recursiveSearchNodes(currentNodes) {\n if (!currentNodes) {\n return;\n }\n currentNodes.forEach(function (node) {\n // also checking for children for tree data\n if (node.group || node.hasChildren()) {\n keyParts.push(node.key);\n var key = keyParts.join('|');\n callback(node, key);\n recursiveSearchNodes(node.childrenAfterGroup);\n keyParts.pop();\n }\n });\n }\n}\n\nvar RowNodeUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n sortRowNodesByOrder: sortRowNodesByOrder,\n traverseNodesWithKey: traverseNodesWithKey\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction convertToSet(list) {\n var set = new Set();\n list.forEach(function (x) { return set.add(x); });\n return set;\n}\n\nvar SetUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n convertToSet: convertToSet\n});\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$1 = (undefined && undefined.__assign) || function () {\n __assign$1 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\nvar utils = __assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1(__assign$1({}, GeneralUtils), AriaUtils), ArrayUtils), BrowserUtils), CsvUtils), DateUtils), DomUtils), EventUtils), FunctionUtils), FuzzyMatchUtils), GenericUtils), IconUtils), KeyboardUtils), MapUtils), MouseUtils), NumberUtils), ObjectUtils), RowNodeUtils), SetUtils), StringUtils);\nvar _ = utils;\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar NumberSequence = /** @class */ (function () {\n function NumberSequence(initValue, step) {\n if (initValue === void 0) { initValue = 0; }\n if (step === void 0) { step = 1; }\n this.nextValue = initValue;\n this.step = step;\n }\n NumberSequence.prototype.next = function () {\n var valToReturn = this.nextValue;\n this.nextValue += this.step;\n return valToReturn;\n };\n NumberSequence.prototype.peek = function () {\n return this.nextValue;\n };\n NumberSequence.prototype.skip = function (count) {\n this.nextValue += count;\n };\n return NumberSequence;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n(function (AgPromiseStatus) {\n AgPromiseStatus[AgPromiseStatus[\"IN_PROGRESS\"] = 0] = \"IN_PROGRESS\";\n AgPromiseStatus[AgPromiseStatus[\"RESOLVED\"] = 1] = \"RESOLVED\";\n})(exports.AgPromiseStatus || (exports.AgPromiseStatus = {}));\nvar AgPromise = /** @class */ (function () {\n function AgPromise(callback) {\n var _this = this;\n this.status = exports.AgPromiseStatus.IN_PROGRESS;\n this.resolution = null;\n this.waiters = [];\n callback(function (value) { return _this.onDone(value); }, function (params) { return _this.onReject(params); });\n }\n AgPromise.all = function (promises) {\n return new AgPromise(function (resolve) {\n var remainingToResolve = promises.length;\n var combinedValues = new Array(remainingToResolve);\n forEach(promises, function (promise, index) {\n promise.then(function (value) {\n combinedValues[index] = value;\n remainingToResolve--;\n if (remainingToResolve === 0) {\n resolve(combinedValues);\n }\n });\n });\n });\n };\n AgPromise.resolve = function (value) {\n if (value === void 0) { value = null; }\n return new AgPromise(function (resolve) { return resolve(value); });\n };\n AgPromise.prototype.then = function (func) {\n var _this = this;\n return new AgPromise(function (resolve) {\n if (_this.status === exports.AgPromiseStatus.RESOLVED) {\n resolve(func(_this.resolution));\n }\n else {\n _this.waiters.push(function (value) { return resolve(func(value)); });\n }\n });\n };\n AgPromise.prototype.resolveNow = function (ifNotResolvedValue, ifResolved) {\n return this.status === exports.AgPromiseStatus.RESOLVED ? ifResolved(this.resolution) : ifNotResolvedValue;\n };\n AgPromise.prototype.onDone = function (value) {\n this.status = exports.AgPromiseStatus.RESOLVED;\n this.resolution = value;\n forEach(this.waiters, function (waiter) { return waiter(value); });\n };\n AgPromise.prototype.onReject = function (params) {\n console.warn('TBI');\n };\n return AgPromise;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/**\n * A Util Class only used when debugging for printing time to console\n */\nvar Timer = /** @class */ (function () {\n function Timer() {\n this.timestamp = new Date().getTime();\n }\n Timer.prototype.print = function (msg) {\n var duration = (new Date().getTime()) - this.timestamp;\n console.info(msg + \" = \" + duration);\n this.timestamp = new Date().getTime();\n };\n return Timer;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$5 = (undefined && undefined.__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 __assign$2 = (undefined && undefined.__assign) || function () {\n __assign$2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$2.apply(this, arguments);\n};\nvar __decorate$9 = (undefined && undefined.__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 TooltipStates;\n(function (TooltipStates) {\n TooltipStates[TooltipStates[\"NOTHING\"] = 0] = \"NOTHING\";\n TooltipStates[TooltipStates[\"WAITING_TO_SHOW\"] = 1] = \"WAITING_TO_SHOW\";\n TooltipStates[TooltipStates[\"SHOWING\"] = 2] = \"SHOWING\";\n})(TooltipStates || (TooltipStates = {}));\nvar TooltipFeature = /** @class */ (function (_super) {\n __extends$5(TooltipFeature, _super);\n function TooltipFeature(parentComp) {\n var _this = _super.call(this) || this;\n _this.DEFAULT_HIDE_TOOLTIP_TIMEOUT = 10000;\n _this.SHOW_QUICK_TOOLTIP_DIFF = 1000;\n _this.FADE_OUT_TOOLTIP_TIMEOUT = 1000;\n _this.state = TooltipStates.NOTHING;\n // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to\n // async we could request two tooltips before the first instance returns, in which case we should\n // disregard the second instance.\n _this.tooltipInstanceCount = 0;\n _this.tooltipMouseTrack = false;\n _this.parentComp = parentComp;\n return _this;\n }\n TooltipFeature.prototype.postConstruct = function () {\n this.tooltipShowDelay = this.gridOptionsWrapper.getTooltipShowDelay() || 2000;\n this.tooltipMouseTrack = this.gridOptionsWrapper.isTooltipMouseTrack();\n var el = this.parentComp.getGui();\n this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));\n this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));\n this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));\n this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));\n this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));\n };\n TooltipFeature.prototype.destroy = function () {\n // if this component gets destroyed while tooltip is showing, need to make sure\n // we don't end with no mouseLeave event resulting in zombie tooltip\n this.setToDoNothing();\n _super.prototype.destroy.call(this);\n };\n TooltipFeature.prototype.onMouseEnter = function (e) {\n // every mouseenter should be following by a mouseleave, however for some unkonwn, it's possible for\n // mouseenter to be called twice in a row, which can happen if editing the cell. this was reported\n // in https://ag-grid.atlassian.net/browse/AG-4422. to get around this, we check the state, and if\n // state is !=nothing, then we know mouseenter was already received.\n if (this.state != TooltipStates.NOTHING) {\n return;\n }\n // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time\n var delay = this.isLastTooltipHiddenRecently() ? 200 : this.tooltipShowDelay;\n this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);\n this.lastMouseEvent = e;\n this.state = TooltipStates.WAITING_TO_SHOW;\n };\n TooltipFeature.prototype.onMouseLeave = function () {\n this.setToDoNothing();\n };\n TooltipFeature.prototype.onKeyDown = function () {\n this.setToDoNothing();\n };\n TooltipFeature.prototype.setToDoNothing = function () {\n if (this.state === TooltipStates.SHOWING) {\n this.hideTooltip();\n }\n this.clearTimeouts();\n this.state = TooltipStates.NOTHING;\n };\n TooltipFeature.prototype.onMouseMove = 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 if (this.tooltipMouseTrack &&\n this.state === TooltipStates.SHOWING &&\n this.tooltipComp) {\n this.positionTooltipUnderLastMouseEvent();\n }\n };\n TooltipFeature.prototype.onMouseDown = function () {\n this.setToDoNothing();\n };\n TooltipFeature.prototype.hideTooltip = function () {\n // check if comp exists - due to async, although we asked for\n // one, the instance may not be back yet\n if (this.tooltipComp) {\n this.destroyTooltipComp();\n TooltipFeature.lastTooltipHideTime = new Date().getTime();\n }\n this.state = TooltipStates.NOTHING;\n };\n TooltipFeature.prototype.destroyTooltipComp = function () {\n var _this = this;\n // add class to fade out the tooltip\n addCssClass(this.tooltipComp.getGui(), 'ag-tooltip-hiding');\n // make local copies of these variables, as we use them in the async function below,\n // and we clear then to 'undefined' later, so need to take a copy before they are undefined.\n var tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;\n var tooltipComp = this.tooltipComp;\n window.setTimeout(function () {\n tooltipPopupDestroyFunc();\n _this.getContext().destroyBean(tooltipComp);\n }, this.FADE_OUT_TOOLTIP_TIMEOUT);\n this.tooltipPopupDestroyFunc = undefined;\n this.tooltipComp = undefined;\n };\n TooltipFeature.prototype.isLastTooltipHiddenRecently = function () {\n // return true if <1000ms since last time we hid a tooltip\n var now = new Date().getTime();\n var then = TooltipFeature.lastTooltipHideTime;\n return (now - then) < this.SHOW_QUICK_TOOLTIP_DIFF;\n };\n TooltipFeature.prototype.showTooltip = function () {\n var params = __assign$2({ api: this.gridApi, columnApi: this.columnApi, context: this.gridOptionsWrapper.getContext() }, this.parentComp.getTooltipParams());\n if (!exists(params.value)) {\n this.setToDoNothing();\n return;\n }\n this.state = TooltipStates.SHOWING;\n this.tooltipInstanceCount++;\n // we pass in tooltipInstanceCount so the callback knows what the count was when\n // we requested the tooltip, so if another tooltip was requested in the mean time\n // we disregard it\n var callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);\n this.userComponentFactory.newTooltipComponent(params).then(callback);\n };\n TooltipFeature.prototype.newTooltipComponentCallback = function (tooltipInstanceCopy, tooltipComp) {\n var compNoLongerNeeded = this.state !== TooltipStates.SHOWING || this.tooltipInstanceCount !== tooltipInstanceCopy;\n if (compNoLongerNeeded) {\n this.getContext().destroyBean(tooltipComp);\n return;\n }\n var eGui = tooltipComp.getGui();\n this.tooltipComp = tooltipComp;\n if (!containsClass(eGui, 'ag-tooltip')) {\n addCssClass(eGui, 'ag-tooltip-custom');\n }\n var addPopupRes = this.popupService.addPopup({\n eChild: eGui\n });\n if (addPopupRes) {\n this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;\n }\n // this.tooltipPopupDestroyFunc = this.popupService.addPopup(false, eGui, false);\n this.positionTooltipUnderLastMouseEvent();\n this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.DEFAULT_HIDE_TOOLTIP_TIMEOUT);\n };\n TooltipFeature.prototype.positionTooltipUnderLastMouseEvent = function () {\n this.popupService.positionPopupUnderMouseEvent({\n type: 'tooltip',\n mouseEvent: this.lastMouseEvent,\n ePopup: this.tooltipComp.getGui(),\n nudgeY: 18\n });\n };\n TooltipFeature.prototype.clearTimeouts = function () {\n if (this.showTooltipTimeoutId) {\n window.clearTimeout(this.showTooltipTimeoutId);\n this.showTooltipTimeoutId = undefined;\n }\n if (this.hideTooltipTimeoutId) {\n window.clearTimeout(this.hideTooltipTimeoutId);\n this.hideTooltipTimeoutId = undefined;\n }\n };\n __decorate$9([\n Autowired('popupService')\n ], TooltipFeature.prototype, \"popupService\", void 0);\n __decorate$9([\n Autowired('userComponentFactory')\n ], TooltipFeature.prototype, \"userComponentFactory\", void 0);\n __decorate$9([\n Autowired('columnApi')\n ], TooltipFeature.prototype, \"columnApi\", void 0);\n __decorate$9([\n Autowired('gridApi')\n ], TooltipFeature.prototype, \"gridApi\", void 0);\n __decorate$9([\n PostConstruct\n ], TooltipFeature.prototype, \"postConstruct\", null);\n return TooltipFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$6 = (undefined && undefined.__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$a = (undefined && undefined.__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 compIdSequence = new NumberSequence();\nvar elementGettingCreated;\nvar Component = /** @class */ (function (_super) {\n __extends$6(Component, _super);\n function Component(template) {\n var _this = _super.call(this) || this;\n _this.annotatedGuiListeners = [];\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 // to minimise DOM hits, we only apply CSS classes if they have changed. as addding a CSS class that is already\n // there, or removing one that wasn't present, all takes CPU.\n _this.cssClassStates = {};\n if (template) {\n _this.setTemplate(template);\n }\n return _this;\n }\n Component.prototype.preConstructOnComponent = function () {\n this.usingBrowserTooltips = this.gridOptionsWrapper.isEnableBrowserTooltips();\n };\n Component.prototype.getCompId = function () {\n return this.compId;\n };\n Component.prototype.getTooltipParams = function () {\n return {\n value: this.tooltipText,\n location: 'UNKNOWN'\n };\n };\n Component.prototype.setTooltip = function (newTooltipText) {\n var _this = this;\n var removeTooltip = function () {\n if (_this.usingBrowserTooltips) {\n _this.getGui().removeAttribute('title');\n }\n else {\n _this.tooltipFeature = _this.destroyBean(_this.tooltipFeature);\n }\n };\n var addTooltip = function () {\n if (_this.usingBrowserTooltips) {\n _this.getGui().setAttribute('title', _this.tooltipText);\n }\n else {\n _this.tooltipFeature = _this.createBean(new TooltipFeature(_this));\n }\n };\n if (this.tooltipText != newTooltipText) {\n if (this.tooltipText) {\n removeTooltip();\n }\n if (newTooltipText != null) {\n this.tooltipText = newTooltipText;\n if (this.tooltipText) {\n addTooltip();\n }\n }\n }\n };\n // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag\n Component.prototype.createChildComponentsFromTags = function (parentNode, paramsMap) {\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 = copyNodeList(parentNode.childNodes);\n forEach(childNodeList, function (childNode) {\n if (!(childNode instanceof HTMLElement)) {\n return;\n }\n var childComp = _this.createComponentFromElement(childNode, function (comp) {\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, comp.getGui());\n }, paramsMap);\n if (childComp) {\n if (childComp.addItems && childNode.children.length) {\n _this.createChildComponentsFromTags(childNode, paramsMap);\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, paramsMap);\n }\n });\n };\n Component.prototype.createComponentFromElement = function (element, afterPreCreateCallback, paramsMap) {\n var key = element.nodeName;\n var componentParams = paramsMap ? paramsMap[element.getAttribute('ref')] : undefined;\n var ComponentClass = this.agStackComponentsRegistry.getComponentClass(key);\n if (ComponentClass) {\n elementGettingCreated = element;\n var newComponent = new ComponentClass(componentParams);\n newComponent.setParentComponent(this);\n this.createBean(newComponent, null, afterPreCreateCallback);\n return newComponent;\n }\n return null;\n };\n Component.prototype.copyAttributesFromNode = function (source, dest) {\n iterateNamedNodeMap(source.attributes, function (name, value) { return dest.setAttribute(name, value); });\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.addDestroyFunc(this.destroyBean.bind(this, newComponent));\n this.swapInComponentForQuerySelectors(newComponent, childNode);\n };\n Component.prototype.swapInComponentForQuerySelectors = function (newComponent, childNode) {\n var thisNoType = this;\n this.iterateOverQuerySelectors(function (querySelector) {\n if (thisNoType[querySelector.attributeName] === childNode) {\n thisNoType[querySelector.attributeName] = newComponent;\n }\n });\n };\n Component.prototype.iterateOverQuerySelectors = function (action) {\n var thisPrototype = Object.getPrototypeOf(this);\n while (thisPrototype != null) {\n var metaData = thisPrototype.__agComponentMetaData;\n var currentProtoName = getFunctionName(thisPrototype.constructor);\n if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {\n forEach(metaData[currentProtoName].querySelectors, function (querySelector) { return action(querySelector); });\n }\n thisPrototype = Object.getPrototypeOf(thisPrototype);\n }\n };\n Component.prototype.setTemplate = function (template, paramsMap) {\n var eGui = loadTemplate(template);\n this.setTemplateFromElement(eGui, paramsMap);\n };\n Component.prototype.setTemplateFromElement = function (element, paramsMap) {\n this.eGui = element;\n this.eGui.__agComponent = this;\n this.addAnnotatedGuiEventListeners();\n this.wireQuerySelectors();\n // context will not be available when user sets template in constructor\n if (!!this.getContext()) {\n this.createChildComponentsFromTags(this.getGui(), paramsMap);\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 if (!!this.getGui()) {\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 thisNoType = this;\n this.iterateOverQuerySelectors(function (querySelector) {\n var setResult = function (result) { return thisNoType[querySelector.attributeName] = result; };\n // if it's a ref selector, and match is on top level component, we return\n // the element. otherwise no way of components putting ref=xxx on the top\n // level element as querySelector only looks at children.\n var topLevelRefMatch = querySelector.refSelector\n && _this.eGui.getAttribute('ref') === querySelector.refSelector;\n if (topLevelRefMatch) {\n setResult(_this.eGui);\n }\n else {\n // otherwise use querySelector, which looks at children\n var resultOfQuery = _this.eGui.querySelector(querySelector.querySelector);\n if (resultOfQuery) {\n setResult(resultOfQuery.__agComponent || resultOfQuery);\n }\n }\n });\n };\n Component.prototype.addAnnotatedGuiEventListeners = function () {\n var _this = this;\n this.removeAnnotatedGuiEventListeners();\n if (!this.eGui) {\n return;\n }\n var listenerMethods = this.getAgComponentMetaData('guiListenerMethods');\n if (!listenerMethods) {\n return;\n }\n if (!this.annotatedGuiListeners) {\n this.annotatedGuiListeners = [];\n }\n listenerMethods.forEach(function (meta) {\n var element = _this.getRefElement(meta.ref);\n if (!element) {\n return;\n }\n var listener = _this[meta.methodName].bind(_this);\n element.addEventListener(meta.eventName, listener);\n _this.annotatedGuiListeners.push({ eventName: meta.eventName, listener: listener, element: element });\n });\n };\n Component.prototype.addAnnotatedGridEventListeners = function () {\n var _this = this;\n var listenerMetas = this.getAgComponentMetaData('gridListenerMethods');\n if (!listenerMetas) {\n return;\n }\n listenerMetas.forEach(function (meta) {\n var listener = _this[meta.methodName].bind(_this);\n _this.addManagedListener(_this.eventService, meta.eventName, 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 = getFunctionName(thisProto.constructor);\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.removeAnnotatedGuiEventListeners = function () {\n if (!this.annotatedGuiListeners) {\n return;\n }\n forEach(this.annotatedGuiListeners, function (e) {\n e.element.removeEventListener(e.eventName, e.listener);\n });\n this.annotatedGuiListeners = [];\n };\n Component.prototype.getGui = function () {\n return this.eGui;\n };\n Component.prototype.getFocusableElement = 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, container) {\n if (!container) {\n container = this.eGui;\n }\n if (newChild == null) {\n return;\n }\n if (isNodeOrElement(newChild)) {\n container.appendChild(newChild);\n }\n else {\n var childComponent = newChild;\n container.appendChild(childComponent.getGui());\n this.addDestroyFunc(this.destroyBean.bind(this, childComponent));\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 setVisible(this.eGui, visible);\n }\n };\n Component.prototype.setDisplayed = function (displayed) {\n if (displayed !== this.displayed) {\n this.displayed = displayed;\n 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 Component.prototype.destroy = function () {\n this.removeAnnotatedGuiEventListeners();\n if (this.tooltipFeature) {\n this.tooltipFeature = this.destroyBean(this.tooltipFeature);\n }\n _super.prototype.destroy.call(this);\n };\n Component.prototype.addGuiEventListener = function (event, listener) {\n var _this = this;\n this.eGui.addEventListener(event, listener);\n this.addDestroyFunc(function () { return _this.eGui.removeEventListener(event, listener); });\n };\n Component.prototype.addCssClass = function (className) {\n var updateNeeded = this.cssClassStates[className] !== true;\n if (updateNeeded) {\n addCssClass(this.eGui, className);\n this.cssClassStates[className] = true;\n }\n };\n Component.prototype.removeCssClass = function (className) {\n var updateNeeded = this.cssClassStates[className] !== false;\n if (updateNeeded) {\n removeCssClass(this.eGui, className);\n this.cssClassStates[className] = false;\n }\n };\n Component.prototype.addOrRemoveCssClass = function (className, addOrRemove) {\n var updateNeeded = this.cssClassStates[className] !== addOrRemove;\n if (updateNeeded) {\n addOrRemoveCssClass(this.eGui, className, addOrRemove);\n this.cssClassStates[className] = addOrRemove;\n }\n };\n Component.prototype.getAttribute = function (key) {\n var eGui = this.eGui;\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$a([\n Autowired('agStackComponentsRegistry')\n ], Component.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$a([\n PreConstruct\n ], Component.prototype, \"preConstructOnComponent\", null);\n __decorate$a([\n PreConstruct\n ], Component.prototype, \"createChildComponentsPreConstruct\", null);\n __decorate$a([\n PostConstruct\n ], Component.prototype, \"addAnnotatedGridEventListeners\", null);\n return Component;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$7 = (undefined && undefined.__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 PopupComponent = /** @class */ (function (_super) {\n __extends$7(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 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 removeCssClass(parentComp.getGui(), 'ag-has-popup');\n }\n _super.prototype.destroy.call(this);\n };\n return PopupComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction QuerySelector(selector) {\n return querySelectorFunc.bind(this, selector, undefined);\n}\nfunction RefSelector(ref) {\n return querySelectorFunc.bind(this, \"[ref=\" + ref + \"]\", ref);\n}\nfunction querySelectorFunc(selector, refSelector, 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 refSelector: refSelector\n });\n}\n// think we should take this out, put property bindings on the\nfunction GridListener(eventName) {\n return gridListenerFunc.bind(this, eventName);\n}\nfunction gridListenerFunc(eventName, target, methodName) {\n if (eventName == null) {\n console.error('AG Grid: GridListener eventName is missing');\n return;\n }\n addToObjectProps(target, 'gridListenerMethods', {\n methodName: methodName,\n eventName: eventName\n });\n}\n// think we should take this out, put property bindings on the\nfunction GuiListener(ref, eventName) {\n return guiListenerFunc.bind(this, ref, eventName);\n}\nfunction guiListenerFunc(ref, eventName, target, methodName) {\n if (eventName == null) {\n console.error('AG Grid: GuiListener eventName is missing');\n return;\n }\n addToObjectProps(target, 'guiListenerMethods', {\n methodName: methodName,\n eventName: eventName,\n ref: ref\n });\n}\n// // think we should take this out, put property bindings on the\n// export function Method(eventName?: string): Function {\n// return methodFunc.bind(this, eventName);\n// }\n//\n// function methodFunc(alias: string, target: Object, methodName: string) {\n// if (alias === null) {\n// console.error(\"AG Grid: EventListener eventName should not be null\");\n// return;\n// }\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$1(target, getFunctionName(target.constructor));\n if (!props[key]) {\n props[key] = [];\n }\n props[key].push(value);\n}\nfunction getOrCreateProps$1(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/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar KeyCode = /** @class */ (function () {\n function KeyCode() {\n }\n KeyCode.BACKSPACE = 8;\n KeyCode.TAB = 9;\n KeyCode.ENTER = 13;\n KeyCode.SHIFT = 16;\n KeyCode.ESCAPE = 27;\n KeyCode.SPACE = 32;\n KeyCode.LEFT = 37;\n KeyCode.UP = 38;\n KeyCode.RIGHT = 39;\n KeyCode.DOWN = 40;\n KeyCode.DELETE = 46;\n KeyCode.A = 65;\n KeyCode.C = 67;\n KeyCode.V = 86;\n KeyCode.D = 68;\n KeyCode.Z = 90;\n KeyCode.Y = 89;\n KeyCode.F2 = 113;\n KeyCode.PAGE_UP = 33;\n KeyCode.PAGE_DOWN = 34;\n KeyCode.PAGE_HOME = 36;\n KeyCode.PAGE_END = 35;\n return KeyCode;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$8 = (undefined && undefined.__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$b = (undefined && undefined.__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 TextCellEditor = /** @class */ (function (_super) {\n __extends$8(TextCellEditor, _super);\n function TextCellEditor() {\n return _super.call(this, TextCellEditor.TEMPLATE) || this;\n }\n TextCellEditor.prototype.init = function (params) {\n this.params = params;\n var eInput = this.eInput;\n var startValue;\n // cellStartedEdit is only false if we are doing fullRow editing\n if (params.cellStartedEdit) {\n this.focusAfterAttached = true;\n if (params.keyPress === KeyCode.BACKSPACE || params.keyPress === KeyCode.DELETE) {\n startValue = '';\n }\n else if (params.charPress) {\n startValue = params.charPress;\n }\n else {\n startValue = this.getStartValue(params);\n if (params.keyPress !== KeyCode.F2) {\n this.highlightAllOnFocus = true;\n }\n }\n }\n else {\n this.focusAfterAttached = false;\n startValue = this.getStartValue(params);\n }\n if (startValue != null) {\n eInput.setValue(startValue, true);\n }\n this.addManagedListener(eInput.getGui(), 'keydown', function (event) {\n var keyCode = event.keyCode;\n if (keyCode === KeyCode.PAGE_UP || keyCode === KeyCode.PAGE_DOWN) {\n event.preventDefault();\n }\n });\n };\n TextCellEditor.prototype.afterGuiAttached = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var eInput = this.eInput;\n eInput.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (!this.focusAfterAttached) {\n return;\n }\n // Added for AG-3238. We can't remove this explicit focus() because Chrome requires an input\n // to be focused before setSelectionRange will work. But it triggers a bug in Safari where\n // explicitly focusing then blurring an empty field will cause the parent container to scroll.\n if (!isBrowserSafari()) {\n eInput.getFocusableElement().focus();\n }\n var inputEl = eInput.getInputElement();\n if (this.highlightAllOnFocus) {\n inputEl.select();\n }\n else {\n // when we started editing, we want the caret at the end, not the start.\n // this comes into play in two scenarios: a) when user hits F2 and b)\n // when user hits a printable character, then on IE (and only IE) the caret\n // was placed after the first character, thus 'apply' would end up as 'pplea'\n var value = eInput.getValue();\n var len = (exists(value) && value.length) || 0;\n if (len) {\n inputEl.setSelectionRange(len, len);\n }\n }\n };\n // gets called when tabbing trough cells and in full row edit mode\n TextCellEditor.prototype.focusIn = function () {\n var eInput = this.eInput;\n var focusEl = eInput.getFocusableElement();\n var inputEl = eInput.getInputElement();\n focusEl.focus();\n inputEl.select();\n };\n TextCellEditor.prototype.focusOut = function () {\n var inputEl = this.eInput.getInputElement();\n if (isBrowserIE()) {\n inputEl.setSelectionRange(0, 0);\n }\n };\n TextCellEditor.prototype.getValue = function () {\n var eInput = this.eInput;\n return this.params.parseValue(eInput.getValue());\n };\n TextCellEditor.prototype.getStartValue = function (params) {\n var formatValue = params.useFormatter || params.column.getColDef().refData;\n return formatValue ? params.formatValue(params.value) : params.value;\n };\n TextCellEditor.prototype.isPopup = function () {\n return false;\n };\n TextCellEditor.TEMPLATE = '
';\n __decorate$b([\n RefSelector('eInput')\n ], TextCellEditor.prototype, \"eInput\", void 0);\n return TextCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/** Provides sync access to async component. Date component can be lazy created - this class encapsulates\n * this by keeping value locally until DateComp has loaded, then passing DateComp the value. */\nvar DateCompWrapper = /** @class */ (function () {\n function DateCompWrapper(context, userComponentFactory, dateComponentParams, eParent) {\n var _this = this;\n this.alive = true;\n this.context = context;\n userComponentFactory.newDateComponent(dateComponentParams).then(function (dateComp) {\n // because async, check the filter still exists after component comes back\n if (!_this.alive) {\n context.destroyBean(dateComp);\n return;\n }\n _this.dateComp = dateComp;\n if (!dateComp) {\n return;\n }\n eParent.appendChild(dateComp.getGui());\n if (dateComp.afterGuiAttached) {\n dateComp.afterGuiAttached();\n }\n if (_this.tempValue) {\n dateComp.setDate(_this.tempValue);\n }\n });\n }\n DateCompWrapper.prototype.destroy = function () {\n this.alive = false;\n this.dateComp = this.context.destroyBean(this.dateComp);\n };\n DateCompWrapper.prototype.getDate = function () {\n return this.dateComp ? this.dateComp.getDate() : this.tempValue;\n };\n DateCompWrapper.prototype.setDate = function (value) {\n if (this.dateComp) {\n this.dateComp.setDate(value);\n }\n else {\n this.tempValue = value;\n }\n };\n DateCompWrapper.prototype.setInputPlaceholder = function (placeholder) {\n if (this.dateComp && this.dateComp.setInputPlaceholder) {\n this.dateComp.setInputPlaceholder(placeholder);\n }\n };\n DateCompWrapper.prototype.setInputAriaLabel = function (label) {\n if (this.dateComp && this.dateComp.setInputAriaLabel) {\n this.dateComp.setInputAriaLabel(label);\n }\n };\n DateCompWrapper.prototype.afterGuiAttached = function (params) {\n if (this.dateComp && typeof this.dateComp.afterGuiAttached === 'function') {\n this.dateComp.afterGuiAttached(params);\n }\n };\n return DateCompWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n/* Common logic for options, used by both filters and floating filters. */\nvar OptionsFactory = /** @class */ (function () {\n function OptionsFactory() {\n this.customFilterOptions = {};\n }\n OptionsFactory.prototype.init = function (params, defaultOptions) {\n this.filterOptions = params.filterOptions || defaultOptions;\n this.mapCustomOptions();\n this.selectDefaultItem(params);\n };\n OptionsFactory.prototype.getFilterOptions = function () {\n return this.filterOptions;\n };\n OptionsFactory.prototype.mapCustomOptions = function () {\n var _this = this;\n if (!this.filterOptions) {\n return;\n }\n this.filterOptions.forEach(function (filterOption) {\n if (typeof filterOption === 'string') {\n return;\n }\n var requiredProperties = ['displayKey', 'displayName', 'test'];\n if (every(requiredProperties, function (key) {\n if (!filterOption[key]) {\n console.warn(\"AG Grid: ignoring FilterOptionDef as it doesn't contain a '\" + key + \"'\");\n return false;\n }\n return true;\n })) {\n _this.customFilterOptions[filterOption.displayKey] = filterOption;\n }\n });\n };\n OptionsFactory.prototype.selectDefaultItem = function (params) {\n if (params.defaultOption) {\n this.defaultOption = params.defaultOption;\n }\n else if (this.filterOptions.length >= 1) {\n var firstFilterOption = this.filterOptions[0];\n if (typeof firstFilterOption === 'string') {\n this.defaultOption = firstFilterOption;\n }\n else if (firstFilterOption.displayKey) {\n this.defaultOption = firstFilterOption.displayKey;\n }\n else {\n console.warn(\"AG Grid: invalid FilterOptionDef supplied as it doesn't contain a 'displayKey'\");\n }\n }\n else {\n console.warn('AG Grid: no filter options for filter');\n }\n };\n OptionsFactory.prototype.getDefaultOption = function () {\n return this.defaultOption;\n };\n OptionsFactory.prototype.getCustomOption = function (name) {\n return this.customFilterOptions[name];\n };\n return OptionsFactory;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar DEFAULT_FILTER_LOCALE_TEXT = {\n applyFilter: 'Apply',\n clearFilter: 'Clear',\n resetFilter: 'Reset',\n cancelFilter: 'Cancel',\n textFilter: 'Text Filter',\n numberFilter: 'Number Filter',\n dateFilter: 'Date Filter',\n setFilter: 'Set Filter',\n filterOoo: 'Filter...',\n empty: 'Choose One',\n equals: 'Equals',\n notEqual: 'Not equal',\n lessThan: 'Less than',\n greaterThan: 'Greater than',\n inRange: 'In range',\n inRangeStart: 'From',\n inRangeEnd: 'To',\n lessThanOrEqual: 'Less than or equals',\n greaterThanOrEqual: 'Greater than or equals',\n contains: 'Contains',\n notContains: 'Not contains',\n startsWith: 'Starts with',\n endsWith: 'Ends with',\n andCondition: 'AND',\n orCondition: 'OR',\n dateFormatOoo: 'yyyy-mm-dd',\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$9 = (undefined && undefined.__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$c = (undefined && undefined.__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};\n/**\n * This provides logic to override the default browser focus logic.\n *\n * When the component gets focus, it uses the grid logic to find out what should be focused,\n * and then focuses that instead.\n *\n * This is how we ensure when user tabs into the relevant section, we focus the correct item.\n * For example GridCore extends ManagedFocusComponent, and it ensures when it receives focus\n * that focus goes to the first cell of the first header row.\n */\nvar ManagedFocusComponent = /** @class */ (function (_super) {\n __extends$9(ManagedFocusComponent, _super);\n /*\n * Set isFocusableContainer to true if this component will contain multiple focus-managed\n * elements within. When set to true, this component will add tabGuards that will be responsible\n * for receiving focus from outside and focusing an internal element using the focusInnerElementMethod\n */\n function ManagedFocusComponent(template, isFocusableContainer) {\n if (isFocusableContainer === void 0) { isFocusableContainer = false; }\n var _this = _super.call(this, template) || this;\n _this.isFocusableContainer = isFocusableContainer;\n _this.skipTabGuardFocus = false;\n return _this;\n }\n ManagedFocusComponent.prototype.postConstruct = function () {\n var _this = this;\n var focusableElement = this.getFocusableElement();\n if (!focusableElement) {\n return;\n }\n addCssClass(focusableElement, ManagedFocusComponent.FOCUS_MANAGED_CLASS);\n if (this.isFocusableContainer) {\n this.topTabGuard = this.createTabGuard('top');\n this.bottomTabGuard = this.createTabGuard('bottom');\n this.addTabGuards();\n this.activateTabGuards();\n this.forEachTabGuard(function (guard) { return _this.addManagedListener(guard, 'focus', _this.onFocus.bind(_this)); });\n }\n this.addKeyDownListeners(focusableElement);\n this.addManagedListener(focusableElement, 'focusin', this.onFocusIn.bind(this));\n this.addManagedListener(focusableElement, 'focusout', this.onFocusOut.bind(this));\n };\n /*\n * Override this method if focusing the default element requires special logic.\n */\n ManagedFocusComponent.prototype.focusInnerElement = function (fromBottom) {\n if (fromBottom === void 0) { fromBottom = false; }\n var focusable = this.focusController.findFocusableElements(this.getFocusableElement());\n if (this.isFocusableContainer && this.tabGuardsAreActive()) {\n // remove tab guards from this component from list of focusable elements\n focusable.splice(0, 1);\n focusable.splice(focusable.length - 1, 1);\n }\n if (!focusable.length) {\n return;\n }\n focusable[fromBottom ? focusable.length - 1 : 0].focus();\n };\n /**\n * By default this will tab though the elements in the default order. Override if you require special logic.\n */\n ManagedFocusComponent.prototype.onTabKeyDown = function (e) {\n var _this = this;\n if (e.defaultPrevented) {\n return;\n }\n var tabGuardsAreActive = this.tabGuardsAreActive();\n if (this.isFocusableContainer && tabGuardsAreActive) {\n this.deactivateTabGuards();\n }\n var nextRoot = this.focusController.findNextFocusableElement(this.getFocusableElement(), false, e.shiftKey);\n if (this.isFocusableContainer && tabGuardsAreActive) {\n // ensure the tab guards are only re-instated once the event has finished processing, to avoid the browser\n // tabbing to the tab guard from inside the component\n setTimeout(function () { return _this.activateTabGuards(); }, 0);\n }\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n };\n ManagedFocusComponent.prototype.onFocusIn = function (e) {\n if (this.isFocusableContainer) {\n this.deactivateTabGuards();\n }\n };\n ManagedFocusComponent.prototype.onFocusOut = function (e) {\n if (this.isFocusableContainer && !this.getFocusableElement().contains(e.relatedTarget)) {\n this.activateTabGuards();\n }\n };\n ManagedFocusComponent.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n if (!this.isFocusableContainer) {\n return;\n }\n this.activateTabGuards();\n this.skipTabGuardFocus = true;\n var tabGuardToFocus = up ? this.topTabGuard : this.bottomTabGuard;\n if (tabGuardToFocus) {\n tabGuardToFocus.focus();\n }\n };\n ManagedFocusComponent.prototype.appendChild = function (newChild, container) {\n if (this.isFocusableContainer) {\n if (!isNodeOrElement(newChild)) {\n newChild = newChild.getGui();\n }\n var bottomTabGuard = this.bottomTabGuard;\n if (bottomTabGuard) {\n bottomTabGuard.insertAdjacentElement('beforebegin', newChild);\n }\n else {\n _super.prototype.appendChild.call(this, newChild, container);\n }\n }\n else {\n _super.prototype.appendChild.call(this, newChild, container);\n }\n };\n ManagedFocusComponent.prototype.createTabGuard = function (side) {\n var tabGuard = document.createElement('div');\n tabGuard.classList.add('ag-tab-guard');\n tabGuard.classList.add(\"ag-tab-guard-\" + side);\n tabGuard.setAttribute('role', 'presentation');\n return tabGuard;\n };\n ManagedFocusComponent.prototype.addTabGuards = function () {\n var focusableEl = this.getFocusableElement();\n focusableEl.insertAdjacentElement('afterbegin', this.topTabGuard);\n focusableEl.insertAdjacentElement('beforeend', this.bottomTabGuard);\n };\n ManagedFocusComponent.prototype.forEachTabGuard = function (callback) {\n if (this.topTabGuard) {\n callback(this.topTabGuard);\n }\n if (this.bottomTabGuard) {\n callback(this.bottomTabGuard);\n }\n };\n ManagedFocusComponent.prototype.addKeyDownListeners = function (eGui) {\n var _this = this;\n this.addManagedListener(eGui, 'keydown', function (e) {\n if (e.defaultPrevented || isStopPropagationForAgGrid(e)) {\n return;\n }\n if (_this.shouldStopEventPropagation(e)) {\n stopPropagationForAgGrid(e);\n return;\n }\n if (e.keyCode === KeyCode.TAB) {\n _this.onTabKeyDown(e);\n }\n else if (_this.handleKeyDown) {\n _this.handleKeyDown(e);\n }\n });\n };\n ManagedFocusComponent.prototype.shouldStopEventPropagation = function (e) {\n return false;\n };\n ManagedFocusComponent.prototype.onFocus = function (e) {\n if (this.skipTabGuardFocus) {\n this.skipTabGuardFocus = false;\n return;\n }\n this.focusInnerElement(e.target === this.bottomTabGuard);\n };\n ManagedFocusComponent.prototype.activateTabGuards = function () {\n var _this = this;\n this.forEachTabGuard(function (guard) { return guard.setAttribute('tabIndex', _this.gridOptionsWrapper.getGridTabIndex()); });\n };\n ManagedFocusComponent.prototype.deactivateTabGuards = function () {\n this.forEachTabGuard(function (guard) { return guard.removeAttribute('tabIndex'); });\n };\n ManagedFocusComponent.prototype.tabGuardsAreActive = function () {\n return !!this.topTabGuard && this.topTabGuard.hasAttribute('tabIndex');\n };\n ManagedFocusComponent.prototype.clearGui = function () {\n var tabGuardsAreActive = this.tabGuardsAreActive();\n clearElement(this.getFocusableElement());\n if (this.isFocusableContainer) {\n this.addTabGuards();\n if (tabGuardsAreActive) {\n this.activateTabGuards();\n }\n }\n };\n ManagedFocusComponent.FOCUS_MANAGED_CLASS = 'ag-focus-managed';\n __decorate$c([\n Autowired('focusController')\n ], ManagedFocusComponent.prototype, \"focusController\", void 0);\n __decorate$c([\n PostConstruct\n ], ManagedFocusComponent.prototype, \"postConstruct\", null);\n return ManagedFocusComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$a = (undefined && undefined.__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$d = (undefined && undefined.__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};\n/**\n * Contains common logic to all provided filters (apply button, clear button, etc).\n * All the filters that come with AG Grid extend this class. User filters do not\n * extend this class.\n */\nvar ProvidedFilter = /** @class */ (function (_super) {\n __extends$a(ProvidedFilter, _super);\n function ProvidedFilter(filterNameKey) {\n var _this = _super.call(this) || this;\n _this.filterNameKey = filterNameKey;\n _this.applyActive = false;\n _this.hidePopup = null;\n // after the user hits 'apply' the model gets copied to here. this is then the model that we use for\n // all filtering. so if user changes UI but doesn't hit apply, then the UI will be out of sync with this model.\n // this is what we want, as the UI should only become the 'active' filter once it's applied. when apply is\n // inactive, this model will be in sync (following the debounce ms). if the UI is not a valid filter\n // (eg the value is missing so nothing to filter on, or for set filter all checkboxes are checked so filter\n // not active) then this appliedModel will be null/undefined.\n _this.appliedModel = null;\n return _this;\n }\n ProvidedFilter.prototype.getFilterTitle = function () {\n return this.translate(this.filterNameKey);\n };\n /** @deprecated */\n ProvidedFilter.prototype.onFilterChanged = function () {\n console.warn(\"AG Grid: you should not call onFilterChanged() directly on the filter, please call\\n gridApi.onFilterChanged() instead. onFilterChanged is not part of the exposed filter interface (it was\\n a method that existed on an old version of the filters that was not intended for public use.\");\n this.providedFilterParams.filterChangedCallback();\n };\n ProvidedFilter.prototype.isFilterActive = function () {\n // filter is active if we have a valid applied model\n return !!this.appliedModel;\n };\n ProvidedFilter.prototype.postConstruct = function () {\n this.resetTemplate(); // do this first to create the DOM\n _super.prototype.postConstruct.call(this);\n };\n ProvidedFilter.prototype.resetTemplate = function (paramsMap) {\n var templateString = /* html */ \"\\n
\\n
\\n \" + this.createBodyTemplate() + \"\\n
\\n
\";\n this.setTemplate(templateString, paramsMap);\n };\n ProvidedFilter.prototype.init = function (params) {\n var _this = this;\n this.setParams(params);\n this.resetUiToDefaults(true).then(function () {\n _this.updateUiVisibility();\n _this.setupOnBtApplyDebounce();\n });\n };\n ProvidedFilter.prototype.setParams = function (params) {\n ProvidedFilter.checkForDeprecatedParams(params);\n this.providedFilterParams = params;\n if (params.newRowsAction === 'keep') {\n this.newRowsActionKeep = true;\n }\n else if (params.newRowsAction === 'clear') {\n this.newRowsActionKeep = false;\n }\n else {\n // the default for SSRM and IRM is 'keep', for CSRM and VRM the default is 'clear'\n var modelsForKeep = [Constants.ROW_MODEL_TYPE_SERVER_SIDE, Constants.ROW_MODEL_TYPE_INFINITE];\n this.newRowsActionKeep = modelsForKeep.indexOf(this.rowModel.getType()) >= 0;\n }\n this.applyActive = ProvidedFilter.isUseApplyButton(params);\n this.createButtonPanel();\n };\n ProvidedFilter.prototype.createButtonPanel = function () {\n var _this = this;\n var buttons = this.providedFilterParams.buttons;\n if (!buttons || buttons.length < 1) {\n return;\n }\n var eButtonsPanel = document.createElement('div');\n addCssClass(eButtonsPanel, 'ag-filter-apply-panel');\n var addButton = function (type) {\n var text;\n var clickListener;\n switch (type) {\n case 'apply':\n text = _this.translate('applyFilter');\n clickListener = function (e) { return _this.onBtApply(false, false, e); };\n break;\n case 'clear':\n text = _this.translate('clearFilter');\n clickListener = function () { return _this.onBtClear(); };\n break;\n case 'reset':\n text = _this.translate('resetFilter');\n clickListener = function () { return _this.onBtReset(); };\n break;\n case 'cancel':\n text = _this.translate('cancelFilter');\n clickListener = function (e) { _this.onBtCancel(e); };\n break;\n default:\n console.warn('Unknown button type specified');\n return;\n }\n var button = loadTemplate(\n /* html */\n \"\" + text + \"\\n \");\n eButtonsPanel.appendChild(button);\n _this.addManagedListener(button, 'click', clickListener);\n };\n convertToSet(buttons).forEach(function (type) { return addButton(type); });\n this.getGui().appendChild(eButtonsPanel);\n };\n ProvidedFilter.checkForDeprecatedParams = function (params) {\n var buttons = params.buttons || [];\n if (buttons.length > 0) {\n return;\n }\n var applyButton = params.applyButton, resetButton = params.resetButton, clearButton = params.clearButton;\n if (clearButton) {\n console.warn('AG Grid: as of AG Grid v23.2, filterParams.clearButton is deprecated. Please use filterParams.buttons instead');\n buttons.push('clear');\n }\n if (resetButton) {\n console.warn('AG Grid: as of AG Grid v23.2, filterParams.resetButton is deprecated. Please use filterParams.buttons instead');\n buttons.push('reset');\n }\n if (applyButton) {\n console.warn('AG Grid: as of AG Grid v23.2, filterParams.applyButton is deprecated. Please use filterParams.buttons instead');\n buttons.push('apply');\n }\n if (params.apply) {\n console.warn('AG Grid: as of AG Grid v21, filterParams.apply is deprecated. Please use filterParams.buttons instead');\n buttons.push('apply');\n }\n params.buttons = buttons;\n };\n // subclasses can override this to provide alternative debounce defaults\n ProvidedFilter.prototype.getDefaultDebounceMs = function () {\n return 0;\n };\n ProvidedFilter.prototype.setupOnBtApplyDebounce = function () {\n var debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());\n this.onBtApplyDebounce = debounce(this.onBtApply.bind(this), debounceMs);\n };\n ProvidedFilter.prototype.getModel = function () {\n return this.appliedModel;\n };\n ProvidedFilter.prototype.setModel = function (model) {\n var _this = this;\n var promise = model ? this.setModelIntoUi(model) : this.resetUiToDefaults();\n return promise.then(function () {\n _this.updateUiVisibility();\n // we set the model from the GUI, rather than the provided model,\n // so the model is consistent, e.g. handling of null/undefined will be the same,\n // or if model is case insensitive, then casing is removed.\n _this.applyModel();\n });\n };\n ProvidedFilter.prototype.onBtCancel = function (e) {\n var _this = this;\n var currentModel = this.getModel();\n var afterAppliedFunc = function () {\n _this.onUiChanged(false, 'prevent');\n if (_this.providedFilterParams.closeOnApply) {\n _this.close(e);\n }\n };\n if (currentModel != null) {\n this.setModelIntoUi(currentModel).then(afterAppliedFunc);\n }\n else {\n this.resetUiToDefaults().then(afterAppliedFunc);\n }\n };\n ProvidedFilter.prototype.onBtClear = function () {\n var _this = this;\n this.resetUiToDefaults().then(function () { return _this.onUiChanged(); });\n };\n ProvidedFilter.prototype.onBtReset = function () {\n this.onBtClear();\n this.onBtApply();\n };\n /**\n * Applies changes made in the UI to the filter, and returns true if the model has changed.\n */\n ProvidedFilter.prototype.applyModel = function () {\n var newModel = this.getModelFromUi();\n if (!this.isModelValid(newModel)) {\n return false;\n }\n var previousModel = this.appliedModel;\n this.appliedModel = newModel;\n // models can be same if user pasted same content into text field, or maybe just changed the case\n // and it's a case insensitive filter\n return !this.areModelsEqual(previousModel, newModel);\n };\n ProvidedFilter.prototype.isModelValid = function (model) {\n return true;\n };\n ProvidedFilter.prototype.onBtApply = function (afterFloatingFilter, afterDataChange, e) {\n if (afterFloatingFilter === void 0) { afterFloatingFilter = false; }\n if (afterDataChange === void 0) { afterDataChange = false; }\n if (this.applyModel()) {\n // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change\n // came from floating filter\n this.providedFilterParams.filterChangedCallback({ afterFloatingFilter: afterFloatingFilter, afterDataChange: afterDataChange });\n }\n var closeOnApply = this.providedFilterParams.closeOnApply;\n // only close if an apply button is visible, otherwise we'd be closing every time a change was made!\n if (closeOnApply && this.applyActive && !afterFloatingFilter && !afterDataChange) {\n this.close(e);\n }\n };\n ProvidedFilter.prototype.onNewRowsLoaded = function () {\n var _this = this;\n if (!this.newRowsActionKeep) {\n this.resetUiToDefaults().then(function () { return _this.appliedModel = null; });\n }\n };\n ProvidedFilter.prototype.close = function (e) {\n if (!this.hidePopup) {\n return;\n }\n var keyboardEvent = e;\n var key = keyboardEvent && keyboardEvent.key;\n var params;\n if (key === 'Enter' || key === 'Space') {\n params = { keyboardEvent: keyboardEvent };\n }\n this.hidePopup(params);\n this.hidePopup = null;\n };\n // called by set filter\n ProvidedFilter.prototype.isNewRowsActionKeep = function () {\n return this.newRowsActionKeep;\n };\n /**\n * By default, if the change came from a floating filter it will be applied immediately, otherwise if there is no\n * apply button it will be applied after a debounce, otherwise it will not be applied at all. This behaviour can\n * be adjusted by using the apply parameter.\n */\n ProvidedFilter.prototype.onUiChanged = function (fromFloatingFilter, apply) {\n if (fromFloatingFilter === void 0) { fromFloatingFilter = false; }\n this.updateUiVisibility();\n this.providedFilterParams.filterModifiedCallback();\n if (this.applyActive) {\n var isValid = this.isModelValid(this.getModelFromUi());\n setDisabled(this.getRefElement('applyFilterButton'), !isValid);\n }\n if ((fromFloatingFilter && !apply) || apply === 'immediately') {\n this.onBtApply(fromFloatingFilter);\n }\n else if ((!this.applyActive && !apply) || apply === 'debounce') {\n this.onBtApplyDebounce();\n }\n };\n ProvidedFilter.prototype.afterGuiAttached = function (params) {\n if (params == null) {\n return;\n }\n this.hidePopup = params.hidePopup;\n };\n // static, as used by floating filter also\n ProvidedFilter.getDebounceMs = function (params, debounceDefault) {\n if (ProvidedFilter.isUseApplyButton(params)) {\n if (params.debounceMs != null) {\n console.warn('AG Grid: debounceMs is ignored when apply button is present');\n }\n return 0;\n }\n return params.debounceMs != null ? params.debounceMs : debounceDefault;\n };\n // static, as used by floating filter also\n ProvidedFilter.isUseApplyButton = function (params) {\n ProvidedFilter.checkForDeprecatedParams(params);\n return !!params.buttons && params.buttons.indexOf('apply') >= 0;\n };\n ProvidedFilter.prototype.destroy = function () {\n this.hidePopup = null;\n _super.prototype.destroy.call(this);\n };\n ProvidedFilter.prototype.translate = function (key) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n return translate(key, DEFAULT_FILTER_LOCALE_TEXT[key]);\n };\n __decorate$d([\n Autowired('rowModel')\n ], ProvidedFilter.prototype, \"rowModel\", void 0);\n __decorate$d([\n PostConstruct\n ], ProvidedFilter.prototype, \"postConstruct\", null);\n return ProvidedFilter;\n}(ManagedFocusComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$b = (undefined && undefined.__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$e = (undefined && undefined.__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 ConditionPosition;\n(function (ConditionPosition) {\n ConditionPosition[ConditionPosition[\"One\"] = 0] = \"One\";\n ConditionPosition[ConditionPosition[\"Two\"] = 1] = \"Two\";\n})(ConditionPosition || (ConditionPosition = {}));\n/**\n * Every filter with a dropdown where the user can specify a comparing type against the filter values\n */\nvar SimpleFilter = /** @class */ (function (_super) {\n __extends$b(SimpleFilter, _super);\n function SimpleFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // returns true if this type requires a 'from' field, eg any filter that requires at least one text value\n SimpleFilter.prototype.showValueFrom = function (type) {\n return !this.doesFilterHaveHiddenInput(type) && type !== SimpleFilter.EMPTY;\n };\n // returns true if this type requires a 'to' field, currently only 'range' returns true\n SimpleFilter.prototype.showValueTo = function (type) {\n return type === SimpleFilter.IN_RANGE;\n };\n // floating filter calls this when user applies filter from floating filter\n SimpleFilter.prototype.onFloatingFilterChanged = function (type, value) {\n this.setTypeFromFloatingFilter(type);\n this.setValueFromFloatingFilter(value);\n this.onUiChanged(true);\n };\n SimpleFilter.prototype.setTypeFromFloatingFilter = function (type) {\n this.eType1.setValue(type);\n this.eType2.setValue(this.optionsFactory.getDefaultOption());\n (this.isDefaultOperator('AND') ? this.eJoinOperatorAnd : this.eJoinOperatorOr).setValue(true);\n };\n SimpleFilter.prototype.getModelFromUi = function () {\n if (!this.isConditionUiComplete(ConditionPosition.One)) {\n return null;\n }\n if (this.isAllowTwoConditions() && this.isConditionUiComplete(ConditionPosition.Two)) {\n return {\n filterType: this.getFilterType(),\n operator: this.getJoinOperator(),\n condition1: this.createCondition(ConditionPosition.One),\n condition2: this.createCondition(ConditionPosition.Two)\n };\n }\n return this.createCondition(ConditionPosition.One);\n };\n SimpleFilter.prototype.getCondition1Type = function () {\n return this.eType1.getValue();\n };\n SimpleFilter.prototype.getCondition2Type = function () {\n return this.eType2.getValue();\n };\n SimpleFilter.prototype.getJoinOperator = function () {\n return this.eJoinOperatorOr.getValue() === true ? 'OR' : 'AND';\n };\n SimpleFilter.prototype.areModelsEqual = function (a, b) {\n // both are missing\n if (!a && !b) {\n return true;\n }\n // one is missing, other present\n if ((!a && b) || (a && !b)) {\n return false;\n }\n // one is combined, the other is not\n var aIsSimple = !a.operator;\n var bIsSimple = !b.operator;\n var oneSimpleOneCombined = (!aIsSimple && bIsSimple) || (aIsSimple && !bIsSimple);\n if (oneSimpleOneCombined) {\n return false;\n }\n var res;\n // otherwise both present, so compare\n if (aIsSimple) {\n var aSimple = a;\n var bSimple = b;\n res = this.areSimpleModelsEqual(aSimple, bSimple);\n }\n else {\n var aCombined = a;\n var bCombined = b;\n res = aCombined.operator === bCombined.operator\n && this.areSimpleModelsEqual(aCombined.condition1, bCombined.condition1)\n && this.areSimpleModelsEqual(aCombined.condition2, bCombined.condition2);\n }\n return res;\n };\n SimpleFilter.prototype.setModelIntoUi = function (model) {\n var isCombined = model.operator;\n if (isCombined) {\n var combinedModel = model;\n var orChecked = combinedModel.operator === 'OR';\n this.eJoinOperatorAnd.setValue(!orChecked);\n this.eJoinOperatorOr.setValue(orChecked);\n this.eType1.setValue(combinedModel.condition1.type);\n this.eType2.setValue(combinedModel.condition2.type);\n this.setConditionIntoUi(combinedModel.condition1, ConditionPosition.One);\n this.setConditionIntoUi(combinedModel.condition2, ConditionPosition.Two);\n }\n else {\n var simpleModel = model;\n this.eJoinOperatorAnd.setValue(this.isDefaultOperator('AND'));\n this.eJoinOperatorOr.setValue(this.isDefaultOperator('OR'));\n this.eType1.setValue(simpleModel.type);\n this.eType2.setValue(this.optionsFactory.getDefaultOption());\n this.setConditionIntoUi(simpleModel, ConditionPosition.One);\n this.setConditionIntoUi(null, ConditionPosition.Two);\n }\n return AgPromise.resolve();\n };\n SimpleFilter.prototype.doesFilterPass = function (params) {\n var _this = this;\n var model = this.getModel();\n if (model == null) {\n return true;\n }\n var operator = model.operator;\n var models = [];\n if (operator) {\n var combinedModel = model;\n models.push(combinedModel.condition1, combinedModel.condition2);\n }\n else {\n models.push(model);\n }\n var combineFunction = operator && operator === 'OR' ? some : every;\n return combineFunction(models, function (m) { return _this.individualConditionPasses(params, m); });\n };\n SimpleFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params, this.getDefaultFilterOptions());\n this.allowTwoConditions = !params.suppressAndOrCondition;\n this.alwaysShowBothConditions = !!params.alwaysShowBothConditions;\n this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);\n this.putOptionsIntoDropdown();\n this.addChangedListeners();\n };\n SimpleFilter.prototype.getDefaultJoinOperator = function (defaultJoinOperator) {\n return includes(['AND', 'OR'], defaultJoinOperator) ? defaultJoinOperator : 'AND';\n };\n SimpleFilter.prototype.putOptionsIntoDropdown = function () {\n var _this = this;\n var filterOptions = this.optionsFactory.getFilterOptions();\n forEach(filterOptions, function (option) {\n var value;\n var text;\n if (typeof option === 'string') {\n value = option;\n text = _this.translate(value);\n }\n else {\n value = option.displayKey;\n var customOption = _this.optionsFactory.getCustomOption(value);\n text = customOption ?\n _this.gridOptionsWrapper.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :\n _this.translate(value);\n }\n var createOption = function () { return ({ value: value, text: text }); };\n _this.eType1.addOption(createOption());\n _this.eType2.addOption(createOption());\n });\n var readOnly = filterOptions.length <= 1;\n this.eType1.setDisabled(readOnly);\n this.eType2.setDisabled(readOnly);\n };\n SimpleFilter.prototype.isAllowTwoConditions = function () {\n return this.allowTwoConditions;\n };\n SimpleFilter.prototype.createBodyTemplate = function () {\n return /* html */ \"\\n \\n \" + this.createValueTemplate(ConditionPosition.One) + \"\\n
\\n \\n \\n
\\n \\n \" + this.createValueTemplate(ConditionPosition.Two);\n };\n SimpleFilter.prototype.getCssIdentifier = function () {\n return 'simple-filter';\n };\n SimpleFilter.prototype.updateUiVisibility = function () {\n var isCondition2Enabled = this.isCondition2Enabled();\n if (this.alwaysShowBothConditions) {\n this.eJoinOperatorAnd.setDisabled(!isCondition2Enabled);\n this.eJoinOperatorOr.setDisabled(!isCondition2Enabled);\n this.eType2.setDisabled(!isCondition2Enabled);\n setDisabled(this.eCondition2Body, !isCondition2Enabled);\n }\n else {\n setDisplayed(this.eJoinOperatorPanel, isCondition2Enabled);\n setDisplayed(this.eType2.getGui(), isCondition2Enabled);\n setDisplayed(this.eCondition2Body, isCondition2Enabled);\n }\n };\n SimpleFilter.prototype.isCondition2Enabled = function () {\n return this.allowTwoConditions && this.isConditionUiComplete(ConditionPosition.One);\n };\n SimpleFilter.prototype.resetUiToDefaults = function (silent) {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');\n var uniqueGroupId = 'ag-simple-filter-and-or-' + this.getCompId();\n var defaultOption = this.optionsFactory.getDefaultOption();\n this.eType1.setValue(defaultOption, silent).setAriaLabel(filteringLabel);\n this.eType2.setValue(defaultOption, silent).setAriaLabel(filteringLabel);\n this.eJoinOperatorAnd\n .setValue(this.isDefaultOperator('AND'), silent)\n .setName(uniqueGroupId)\n .setLabel(this.translate('andCondition'));\n this.eJoinOperatorOr\n .setValue(this.isDefaultOperator('OR'), silent)\n .setName(uniqueGroupId)\n .setLabel(this.translate('orCondition'));\n return AgPromise.resolve();\n };\n SimpleFilter.prototype.isDefaultOperator = function (operator) {\n return operator === this.defaultJoinOperator;\n };\n SimpleFilter.prototype.addChangedListeners = function () {\n var _this = this;\n var listener = function () { return _this.onUiChanged(); };\n this.eType1.onValueChange(listener);\n this.eType2.onValueChange(listener);\n this.eJoinOperatorOr.onValueChange(listener);\n this.eJoinOperatorAnd.onValueChange(listener);\n };\n SimpleFilter.prototype.doesFilterHaveHiddenInput = function (filterType) {\n var customFilterOption = this.optionsFactory.getCustomOption(filterType);\n return customFilterOption && customFilterOption.hideFilterInput;\n };\n SimpleFilter.EMPTY = 'empty';\n SimpleFilter.EQUALS = 'equals';\n SimpleFilter.NOT_EQUAL = 'notEqual';\n SimpleFilter.LESS_THAN = 'lessThan';\n SimpleFilter.LESS_THAN_OR_EQUAL = 'lessThanOrEqual';\n SimpleFilter.GREATER_THAN = 'greaterThan';\n SimpleFilter.GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';\n SimpleFilter.IN_RANGE = 'inRange';\n SimpleFilter.CONTAINS = 'contains';\n SimpleFilter.NOT_CONTAINS = 'notContains';\n SimpleFilter.STARTS_WITH = 'startsWith';\n SimpleFilter.ENDS_WITH = 'endsWith';\n __decorate$e([\n RefSelector('eOptions1')\n ], SimpleFilter.prototype, \"eType1\", void 0);\n __decorate$e([\n RefSelector('eOptions2')\n ], SimpleFilter.prototype, \"eType2\", void 0);\n __decorate$e([\n RefSelector('eJoinOperatorPanel')\n ], SimpleFilter.prototype, \"eJoinOperatorPanel\", void 0);\n __decorate$e([\n RefSelector('eJoinOperatorAnd')\n ], SimpleFilter.prototype, \"eJoinOperatorAnd\", void 0);\n __decorate$e([\n RefSelector('eJoinOperatorOr')\n ], SimpleFilter.prototype, \"eJoinOperatorOr\", void 0);\n __decorate$e([\n RefSelector('eCondition1Body')\n ], SimpleFilter.prototype, \"eCondition1Body\", void 0);\n __decorate$e([\n RefSelector('eCondition2Body')\n ], SimpleFilter.prototype, \"eCondition2Body\", void 0);\n return SimpleFilter;\n}(ProvidedFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$c = (undefined && undefined.__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 ScalarFilter = /** @class */ (function (_super) {\n __extends$c(ScalarFilter, _super);\n function ScalarFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScalarFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.scalarFilterParams = params;\n this.checkDeprecatedParams();\n };\n ScalarFilter.prototype.checkDeprecatedParams = function () {\n if (this.scalarFilterParams.nullComparator) {\n console.warn('AG Grid: Since v21.0, the property filterParams.nullComparator is deprecated. ' +\n 'Please use filterParams.includeBlanksInEquals, filterParams.includeBlanksInLessThan and ' +\n 'filterParams.includeBlanksInGreaterThan instead.');\n this.scalarFilterParams.includeBlanksInEquals = this.scalarFilterParams.nullComparator.equals;\n this.scalarFilterParams.includeBlanksInLessThan = this.scalarFilterParams.nullComparator.lessThan;\n this.scalarFilterParams.includeBlanksInGreaterThan = this.scalarFilterParams.nullComparator.greaterThan;\n }\n };\n ScalarFilter.prototype.individualConditionPasses = function (params, filterModel) {\n var cellValue = this.scalarFilterParams.valueGetter(params.node);\n var range = this.mapRangeFromModel(filterModel);\n var filterValue = range.from;\n var filterValueTo = range.to;\n var filterType = filterModel.type;\n var customFilterOption = this.optionsFactory.getCustomOption(filterType);\n if (customFilterOption) {\n // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden\n if (filterValue != null || customFilterOption.hideFilterInput) {\n return customFilterOption.test(filterValue, cellValue);\n }\n }\n if (cellValue == null) {\n switch (filterType) {\n case ScalarFilter.EQUALS:\n case ScalarFilter.NOT_EQUAL:\n if (this.scalarFilterParams.includeBlanksInEquals) {\n return true;\n }\n break;\n case ScalarFilter.GREATER_THAN:\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInGreaterThan) {\n return true;\n }\n break;\n case ScalarFilter.LESS_THAN:\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInLessThan) {\n return true;\n }\n break;\n case ScalarFilter.IN_RANGE:\n if (this.scalarFilterParams.includeBlanksInRange) {\n return true;\n }\n break;\n }\n return false;\n }\n var comparator = this.comparator();\n var compareResult = comparator(filterValue, cellValue);\n switch (filterType) {\n case ScalarFilter.EQUALS:\n return compareResult === 0;\n case ScalarFilter.NOT_EQUAL:\n return compareResult !== 0;\n case ScalarFilter.GREATER_THAN:\n return compareResult > 0;\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n return compareResult >= 0;\n case ScalarFilter.LESS_THAN:\n return compareResult < 0;\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n return compareResult <= 0;\n case ScalarFilter.IN_RANGE: {\n var compareToResult = comparator(filterValueTo, cellValue);\n return this.scalarFilterParams.inRangeInclusive ?\n compareResult >= 0 && compareToResult <= 0 :\n compareResult > 0 && compareToResult < 0;\n }\n default:\n console.warn('AG Grid: Unexpected type of filter \"' + filterType + '\", it looks like the filter was configured with incorrect Filter Options');\n return true;\n }\n };\n return ScalarFilter;\n}(SimpleFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$d = (undefined && undefined.__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$f = (undefined && undefined.__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 DateFilter = /** @class */ (function (_super) {\n __extends$d(DateFilter, _super);\n function DateFilter() {\n return _super.call(this, 'dateFilter') || this;\n }\n DateFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.dateCondition1FromComp.afterGuiAttached(params);\n };\n DateFilter.prototype.mapRangeFromModel = function (filterModel) {\n // unlike the other filters, we do two things here:\n // 1) allow for different attribute names (same as done for other filters) (eg the 'from' and 'to'\n // are in different locations in Date and Number filter models)\n // 2) convert the type (because Date filter uses Dates, however model is 'string')\n //\n // NOTE: The conversion of string to date also removes the timezone - i.e. when user picks\n // a date from the UI, it will have timezone info in it. This is lost when creating\n // the model. When we recreate the date again here, it's without a timezone.\n return {\n from: parseDateTimeFromString(filterModel.dateFrom),\n to: parseDateTimeFromString(filterModel.dateTo)\n };\n };\n DateFilter.prototype.setValueFromFloatingFilter = function (value) {\n this.dateCondition1FromComp.setDate(value == null ? null : parseDateTimeFromString(value));\n this.dateCondition1ToComp.setDate(null);\n this.dateCondition2FromComp.setDate(null);\n this.dateCondition2ToComp.setDate(null);\n };\n DateFilter.prototype.setConditionIntoUi = function (model, position) {\n var _a = model ?\n [parseDateTimeFromString(model.dateFrom), parseDateTimeFromString(model.dateTo)] :\n [null, null], dateFrom = _a[0], dateTo = _a[1];\n var _b = this.getFromToComponents(position), compFrom = _b[0], compTo = _b[1];\n compFrom.setDate(dateFrom);\n compTo.setDate(dateTo);\n };\n DateFilter.prototype.resetUiToDefaults = function (silent) {\n var _this = this;\n return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {\n _this.dateCondition1FromComp.setDate(null);\n _this.dateCondition1ToComp.setDate(null);\n _this.dateCondition2FromComp.setDate(null);\n _this.dateCondition2ToComp.setDate(null);\n });\n };\n DateFilter.prototype.comparator = function () {\n return this.dateFilterParams.comparator ? this.dateFilterParams.comparator : this.defaultComparator.bind(this);\n };\n DateFilter.prototype.defaultComparator = function (filterDate, cellValue) {\n // The default comparator assumes that the cellValue is a date\n var cellAsDate = cellValue;\n if (cellValue == null || cellAsDate < filterDate) {\n return -1;\n }\n if (cellAsDate > filterDate) {\n return 1;\n }\n return 0;\n };\n DateFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.dateFilterParams = params;\n this.createDateComponents();\n };\n DateFilter.prototype.createDateComponents = function () {\n var _this = this;\n var createDateCompWrapper = function (element) {\n return new DateCompWrapper(_this.getContext(), _this.userComponentFactory, {\n onDateChanged: function () { return _this.onUiChanged(); },\n filterParams: _this.dateFilterParams\n }, element);\n };\n this.dateCondition1FromComp = createDateCompWrapper(this.eCondition1PanelFrom);\n this.dateCondition1ToComp = createDateCompWrapper(this.eCondition1PanelTo);\n this.dateCondition2FromComp = createDateCompWrapper(this.eCondition2PanelFrom);\n this.dateCondition2ToComp = createDateCompWrapper(this.eCondition2PanelTo);\n this.addDestroyFunc(function () {\n _this.dateCondition1FromComp.destroy();\n _this.dateCondition1ToComp.destroy();\n _this.dateCondition2FromComp.destroy();\n _this.dateCondition2ToComp.destroy();\n });\n };\n DateFilter.prototype.getDefaultFilterOptions = function () {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n };\n DateFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n return /* html */ \"\\n
\\n
\\n
\\n
\";\n };\n DateFilter.prototype.isConditionUiComplete = function (position) {\n var positionOne = position === ConditionPosition.One;\n var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();\n if (option === SimpleFilter.EMPTY) {\n return false;\n }\n if (this.doesFilterHaveHiddenInput(option)) {\n return true;\n }\n var _a = this.getFromToComponents(position), compFrom = _a[0], compTo = _a[1];\n var minValidYear = this.dateFilterParams.minValidYear == null ? 1000 : this.dateFilterParams.minValidYear;\n var isValidDate = function (value) { return value != null && value.getUTCFullYear() > minValidYear; };\n return isValidDate(compFrom.getDate()) && (!this.showValueTo(option) || isValidDate(compTo.getDate()));\n };\n DateFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.dateFrom === bSimple.dateFrom\n && aSimple.dateTo === bSimple.dateTo\n && aSimple.type === bSimple.type;\n };\n DateFilter.prototype.getFilterType = function () {\n return 'date';\n };\n DateFilter.prototype.createCondition = function (position) {\n var positionOne = position === ConditionPosition.One;\n var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();\n var _a = this.getFromToComponents(position), compFrom = _a[0], compTo = _a[1];\n return {\n dateFrom: serialiseDate(compFrom.getDate()),\n dateTo: serialiseDate(compTo.getDate()),\n type: type,\n filterType: this.getFilterType()\n };\n };\n DateFilter.prototype.resetPlaceholder = function () {\n var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();\n var placeholder = this.translate('dateFormatOoo');\n var ariaLabel = globalTranslate('ariaFilterValue', 'Filter Value');\n this.dateCondition1FromComp.setInputPlaceholder(placeholder);\n this.dateCondition1FromComp.setInputAriaLabel(ariaLabel);\n this.dateCondition1ToComp.setInputPlaceholder(placeholder);\n this.dateCondition1ToComp.setInputAriaLabel(ariaLabel);\n this.dateCondition2FromComp.setInputPlaceholder(placeholder);\n this.dateCondition2FromComp.setInputAriaLabel(ariaLabel);\n this.dateCondition2ToComp.setInputPlaceholder(placeholder);\n this.dateCondition2ToComp.setInputAriaLabel(ariaLabel);\n };\n DateFilter.prototype.updateUiVisibility = function () {\n _super.prototype.updateUiVisibility.call(this);\n this.resetPlaceholder();\n var condition1Type = this.getCondition1Type();\n setDisplayed(this.eCondition1PanelFrom, this.showValueFrom(condition1Type));\n setDisplayed(this.eCondition1PanelTo, this.showValueTo(condition1Type));\n var condition2Type = this.getCondition2Type();\n setDisplayed(this.eCondition2PanelFrom, this.showValueFrom(condition2Type));\n setDisplayed(this.eCondition2PanelTo, this.showValueTo(condition2Type));\n };\n DateFilter.prototype.getFromToComponents = function (position) {\n return position === ConditionPosition.One ?\n [this.dateCondition1FromComp, this.dateCondition1ToComp] :\n [this.dateCondition2FromComp, this.dateCondition2ToComp];\n };\n DateFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.LESS_THAN,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.IN_RANGE\n ];\n __decorate$f([\n RefSelector('eCondition1PanelFrom')\n ], DateFilter.prototype, \"eCondition1PanelFrom\", void 0);\n __decorate$f([\n RefSelector('eCondition1PanelTo')\n ], DateFilter.prototype, \"eCondition1PanelTo\", void 0);\n __decorate$f([\n RefSelector('eCondition2PanelFrom')\n ], DateFilter.prototype, \"eCondition2PanelFrom\", void 0);\n __decorate$f([\n RefSelector('eCondition2PanelTo')\n ], DateFilter.prototype, \"eCondition2PanelTo\", void 0);\n __decorate$f([\n Autowired('userComponentFactory')\n ], DateFilter.prototype, \"userComponentFactory\", void 0);\n return DateFilter;\n}(ScalarFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\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();\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 = !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}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$e = (undefined && undefined.__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$g = (undefined && undefined.__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 HeaderComp = /** @class */ (function (_super) {\n __extends$e(HeaderComp, _super);\n function HeaderComp() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastMovingChanged = 0;\n return _this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n HeaderComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n HeaderComp.prototype.refresh = function (params) {\n this.params = params;\n // if template changed, then recreate the whole comp, the code required to manage\n // a changing template is to difficult for what it's worth.\n if (this.workOutTemplate() != this.currentTemplate) {\n return false;\n }\n if (this.workOutShowMenu() != this.currentShowMenu) {\n return false;\n }\n if (this.workOutSort() != this.currentSort) {\n return false;\n }\n this.setDisplayName(params);\n return true;\n };\n HeaderComp.prototype.workOutTemplate = function () {\n var template = firstExistingValue(this.params.template, HeaderComp.TEMPLATE);\n // take account of any newlines & whitespace before/after the actual template\n template = template && template.trim ? template.trim() : template;\n return template;\n };\n HeaderComp.prototype.init = function (params) {\n this.params = params;\n this.currentTemplate = this.workOutTemplate();\n this.setTemplate(this.currentTemplate);\n this.setupTap();\n this.setupIcons(params.column);\n this.setMenu();\n this.setupSort();\n this.setupFilterIcon();\n this.setDisplayName(params);\n };\n HeaderComp.prototype.setDisplayName = function (params) {\n if (this.currentDisplayName != params.displayName) {\n this.currentDisplayName = params.displayName;\n var displayNameSanitised = escapeString(this.currentDisplayName);\n if (this.eText) {\n this.eText.innerHTML = displayNameSanitised;\n }\n }\n };\n HeaderComp.prototype.setupIcons = function (column) {\n this.addInIcon('sortAscending', this.eSortAsc, column);\n this.addInIcon('sortDescending', this.eSortDesc, column);\n this.addInIcon('sortUnSort', this.eSortNone, column);\n this.addInIcon('menu', this.eMenu, column);\n this.addInIcon('filter', this.eFilter, column);\n };\n HeaderComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = createIconNoSpan(iconName, this.gridOptionsWrapper, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n };\n HeaderComp.prototype.setupTap = function () {\n var _this = this;\n var options = this.gridOptionsWrapper;\n if (options.isSuppressTouch()) {\n return;\n }\n var touchListener = new TouchListener(this.getGui(), true);\n var suppressMenuHide = options.isSuppressMenuHide();\n var tapMenuButton = suppressMenuHide && exists(this.eMenu);\n var menuTouchListener = tapMenuButton ? new TouchListener(this.eMenu, true) : touchListener;\n if (this.params.enableMenu) {\n var eventType = tapMenuButton ? 'EVENT_TAP' : 'EVENT_LONG_TAP';\n var showMenuFn = function (event) {\n options.getApi().showColumnMenuAfterMouseClick(_this.params.column, event.touchStart);\n };\n this.addManagedListener(menuTouchListener, TouchListener[eventType], showMenuFn);\n }\n if (this.params.enableSorting) {\n var tapListener = function (event) {\n var target = event.touchStart.target;\n // When suppressMenuHide is true, a tap on the menu icon will bubble up\n // to the header container, in that case we should not sort\n if (suppressMenuHide && _this.eMenu.contains(target)) {\n return;\n }\n _this.sortController.progressSort(_this.params.column, false, \"uiColumnSorted\");\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, tapListener);\n }\n // if tapMenuButton is true `touchListener` and `menuTouchListener` are different\n // so we need to make sure to destroy both listeners here\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n if (tapMenuButton) {\n this.addDestroyFunc(function () { return menuTouchListener.destroy(); });\n }\n };\n HeaderComp.prototype.workOutShowMenu = function () {\n // we don't show the menu if on an iPad/iPhone, as the user cannot have a pointer device/\n // However if suppressMenuHide is set to true the menu will be displayed alwasys, so it's ok\n // to show it on iPad in this case (as hover isn't needed). If suppressMenuHide\n // is false (default) user will need to use longpress to display the menu.\n var menuHides = !this.gridOptionsWrapper.isSuppressMenuHide();\n var onIpadAndMenuHides = isIOSUserAgent() && menuHides;\n var showMenu = this.params.enableMenu && !onIpadAndMenuHides;\n return showMenu;\n };\n HeaderComp.prototype.setMenu = function () {\n var _this = this;\n // if no menu provided in template, do nothing\n if (!this.eMenu) {\n return;\n }\n this.currentShowMenu = this.workOutShowMenu();\n if (!this.currentShowMenu) {\n removeFromParent(this.eMenu);\n return;\n }\n var suppressMenuHide = this.gridOptionsWrapper.isSuppressMenuHide();\n this.addManagedListener(this.eMenu, 'click', function () { return _this.showMenu(_this.eMenu); });\n addOrRemoveCssClass(this.eMenu, 'ag-header-menu-always-show', suppressMenuHide);\n };\n HeaderComp.prototype.showMenu = function (eventSource) {\n if (!eventSource) {\n eventSource = this.eMenu;\n }\n this.menuFactory.showMenuAfterButtonClick(this.params.column, eventSource);\n };\n HeaderComp.prototype.removeSortIcons = function () {\n removeFromParent(this.eSortAsc);\n removeFromParent(this.eSortDesc);\n removeFromParent(this.eSortNone);\n removeFromParent(this.eSortOrder);\n };\n HeaderComp.prototype.workOutSort = function () {\n return this.params.enableSorting;\n };\n HeaderComp.prototype.setupSort = function () {\n var _this = this;\n this.currentSort = this.params.enableSorting;\n if (!this.currentSort) {\n this.removeSortIcons();\n return;\n }\n var sortUsingCtrl = this.gridOptionsWrapper.isMultiSortKeyCtrl();\n // keep track of last time the moving changed flag was set\n this.addManagedListener(this.params.column, Column.EVENT_MOVING_CHANGED, function () {\n _this.lastMovingChanged = new Date().getTime();\n });\n // add the event on the header, so when clicked, we do sorting\n if (this.eLabel) {\n this.addManagedListener(this.eLabel, 'click', function (event) {\n // sometimes when moving a column via dragging, this was also firing a clicked event.\n // here is issue raised by user: https://ag-grid.zendesk.com/agent/tickets/1076\n // this check stops sort if a) column is moving or b) column moved less than 200ms ago (so caters for race condition)\n var moving = _this.params.column.isMoving();\n var nowTime = new Date().getTime();\n // typically there is <2ms if moving flag was set recently, as it would be done in same VM turn\n var movedRecently = (nowTime - _this.lastMovingChanged) < 50;\n var columnMoving = moving || movedRecently;\n if (!columnMoving) {\n var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;\n _this.params.progressSort(multiSort);\n }\n });\n }\n this.addManagedListener(this.params.column, Column.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.onSortChanged();\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.setMultiSortOrder.bind(this));\n this.setMultiSortOrder();\n };\n HeaderComp.prototype.onSortChanged = function () {\n addOrRemoveCssClass(this.getGui(), 'ag-header-cell-sorted-asc', this.params.column.isSortAscending());\n addOrRemoveCssClass(this.getGui(), 'ag-header-cell-sorted-desc', this.params.column.isSortDescending());\n addOrRemoveCssClass(this.getGui(), 'ag-header-cell-sorted-none', this.params.column.isSortNone());\n if (this.eSortAsc) {\n addOrRemoveCssClass(this.eSortAsc, 'ag-hidden', !this.params.column.isSortAscending());\n }\n if (this.eSortDesc) {\n addOrRemoveCssClass(this.eSortDesc, 'ag-hidden', !this.params.column.isSortDescending());\n }\n if (this.eSortNone) {\n var alwaysHideNoSort = !this.params.column.getColDef().unSortIcon && !this.gridOptionsWrapper.isUnSortIcon();\n addOrRemoveCssClass(this.eSortNone, 'ag-hidden', alwaysHideNoSort || !this.params.column.isSortNone());\n }\n };\n // we listen here for global sort events, NOT column sort events, as we want to do this\n // when sorting has been set on all column (if we listened just for our col (where we\n // set the asc / desc icons) then it's possible other cols are yet to get their sorting state.\n HeaderComp.prototype.setMultiSortOrder = function () {\n if (!this.eSortOrder) {\n return;\n }\n var col = this.params.column;\n var allColumnsWithSorting = this.sortController.getColumnsWithSortingOrdered();\n var indexThisCol = allColumnsWithSorting.indexOf(col);\n var moreThanOneColSorting = allColumnsWithSorting.length > 1;\n var showIndex = col.isSorting() && moreThanOneColSorting;\n setDisplayed(this.eSortOrder, showIndex);\n if (indexThisCol >= 0) {\n this.eSortOrder.innerHTML = (indexThisCol + 1).toString();\n }\n else {\n clearElement(this.eSortOrder);\n }\n };\n HeaderComp.prototype.setupFilterIcon = function () {\n if (!this.eFilter) {\n return;\n }\n this.addManagedListener(this.params.column, Column.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.onFilterChanged();\n };\n HeaderComp.prototype.onFilterChanged = function () {\n var filterPresent = this.params.column.isFilterActive();\n addOrRemoveCssClass(this.eFilter, 'ag-hidden', !filterPresent);\n };\n HeaderComp.TEMPLATE = \"
\\n \\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\";\n __decorate$g([\n Autowired('sortController')\n ], HeaderComp.prototype, \"sortController\", void 0);\n __decorate$g([\n Autowired('menuFactory')\n ], HeaderComp.prototype, \"menuFactory\", void 0);\n __decorate$g([\n RefSelector('eFilter')\n ], HeaderComp.prototype, \"eFilter\", void 0);\n __decorate$g([\n RefSelector('eSortAsc')\n ], HeaderComp.prototype, \"eSortAsc\", void 0);\n __decorate$g([\n RefSelector('eSortDesc')\n ], HeaderComp.prototype, \"eSortDesc\", void 0);\n __decorate$g([\n RefSelector('eSortNone')\n ], HeaderComp.prototype, \"eSortNone\", void 0);\n __decorate$g([\n RefSelector('eSortOrder')\n ], HeaderComp.prototype, \"eSortOrder\", void 0);\n __decorate$g([\n RefSelector('eMenu')\n ], HeaderComp.prototype, \"eMenu\", void 0);\n __decorate$g([\n RefSelector('eLabel')\n ], HeaderComp.prototype, \"eLabel\", void 0);\n __decorate$g([\n RefSelector('eText')\n ], HeaderComp.prototype, \"eText\", void 0);\n return HeaderComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$f = (undefined && undefined.__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$h = (undefined && undefined.__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 HeaderGroupComp = /** @class */ (function (_super) {\n __extends$f(HeaderGroupComp, _super);\n function HeaderGroupComp() {\n return _super.call(this, HeaderGroupComp.TEMPLATE) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n HeaderGroupComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n HeaderGroupComp.prototype.init = function (params) {\n this.params = params;\n this.checkWarnings();\n this.setupLabel();\n this.addGroupExpandIcon();\n this.setupExpandIcons();\n };\n HeaderGroupComp.prototype.checkWarnings = function () {\n var paramsAny = this.params;\n if (paramsAny.template) {\n var message_1 = \"A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)\";\n doOnce(function () { return console.warn(message_1); }, 'HeaderGroupComp.templateNotSupported');\n }\n };\n HeaderGroupComp.prototype.setupExpandIcons = function () {\n var _this = this;\n this.addInIcon(\"columnGroupOpened\", \"agOpened\");\n this.addInIcon(\"columnGroupClosed\", \"agClosed\");\n var expandAction = function (event) {\n if (isStopPropagationForAgGrid(event)) {\n return;\n }\n var newExpandedValue = !_this.params.columnGroup.isExpanded();\n _this.columnController.setColumnGroupOpened(_this.params.columnGroup.getOriginalColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n };\n this.addTouchAndClickListeners(this.eCloseIcon, expandAction);\n this.addTouchAndClickListeners(this.eOpenIcon, expandAction);\n var stopPropagationAction = function (event) {\n stopPropagationForAgGrid(event);\n };\n // adding stopPropagation to the double click for the icons prevents double click action happening\n // when the icons are clicked. if the icons are double clicked, then the groups should open and\n // then close again straight away. if we also listened to double click, then the group would open,\n // close, then open, which is not what we want. double click should only action if the user double\n // clicks outside of the icons.\n this.addManagedListener(this.eCloseIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.eOpenIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.getGui(), \"dblclick\", expandAction);\n this.updateIconVisibility();\n var originalColumnGroup = this.params.columnGroup.getOriginalColumnGroup();\n this.addManagedListener(originalColumnGroup, OriginalColumnGroup.EVENT_EXPANDED_CHANGED, this.updateIconVisibility.bind(this));\n this.addManagedListener(originalColumnGroup, OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED, this.updateIconVisibility.bind(this));\n };\n HeaderGroupComp.prototype.addTouchAndClickListeners = function (eElement, action) {\n var touchListener = new TouchListener(eElement, true);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, action);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n this.addManagedListener(eElement, \"click\", action);\n };\n HeaderGroupComp.prototype.updateIconVisibility = function () {\n var columnGroup = this.params.columnGroup;\n if (columnGroup.isExpandable()) {\n var expanded = this.params.columnGroup.isExpanded();\n setDisplayed(this.eOpenIcon, expanded);\n setDisplayed(this.eCloseIcon, !expanded);\n }\n else {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n }\n };\n HeaderGroupComp.prototype.addInIcon = function (iconName, refName) {\n var eIcon = createIconNoSpan(iconName, this.gridOptionsWrapper, null);\n if (eIcon) {\n this.getRefElement(refName).appendChild(eIcon);\n }\n };\n HeaderGroupComp.prototype.addGroupExpandIcon = function () {\n if (!this.params.columnGroup.isExpandable()) {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n return;\n }\n };\n HeaderGroupComp.prototype.setupLabel = function () {\n // no renderer, default text render\n var displayName = this.params.displayName;\n if (exists(displayName)) {\n var displayNameSanitised = escapeString(displayName);\n this.getRefElement('agLabel').innerHTML = displayNameSanitised;\n }\n };\n HeaderGroupComp.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$h([\n Autowired(\"columnController\")\n ], HeaderGroupComp.prototype, \"columnController\", void 0);\n __decorate$h([\n RefSelector(\"agOpened\")\n ], HeaderGroupComp.prototype, \"eOpenIcon\", void 0);\n __decorate$h([\n RefSelector(\"agClosed\")\n ], HeaderGroupComp.prototype, \"eCloseIcon\", void 0);\n return HeaderGroupComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$i = (undefined && undefined.__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 RowNode = /** @class */ (function () {\n function RowNode() {\n /** The index of this node in the grid, only valid if node is displayed in the grid, otherwise it should be ignored as old index may be present */\n this.rowIndex = null;\n /** Groups only - The key for the group eg Ireland, UK, USA */\n this.key = null;\n /** Children mapped by the pivot columns */\n this.childrenMapped = {};\n /**\n * True if the RowNode is not filtered, or in a collapsed group.\n */\n this.displayed = false;\n /** The top pixel for this row */\n this.rowTop = null;\n /** The top pixel for this row last time, makes sense if data set was ordered or filtered,\n * it is used so new rows can animate in from their old position. */\n this.oldRowTop = null;\n /** True by default - can be overridden via gridOptions.isRowSelectable(rowNode) */\n this.selectable = true;\n /** Used by sorting service - to give deterministic sort to groups. Previously we\n * just id for this, however id is a string and had slower sorting compared to numbers. */\n this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;\n /** True when nodes with the same id are being removed and added as part of the same batch transaction */\n this.alreadyRendered = false;\n this.highlighted = null;\n this.selected = false;\n }\n RowNode.prototype.setData = function (data) {\n this.setDataCommon(data, false);\n };\n // similar to setRowData, however it is expected that the data is the same data item. this\n // is intended to be used with Redux type stores, where the whole data can be changed. we are\n // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the\n // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving\n // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).\n RowNode.prototype.updateData = function (data) {\n this.setDataCommon(data, true);\n };\n RowNode.prototype.setDataCommon = function (data, update) {\n var oldData = this.data;\n this.data = data;\n this.valueCache.onDataChanged();\n this.updateDataOnDetailNode();\n this.checkRowSelectable();\n var event = this.createDataChangedEvent(data, oldData, update);\n this.dispatchLocalEvent(event);\n };\n // when we are doing master / detail, the detail node is lazy created, but then kept around.\n // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data\n // in sync, otherwise expand/collapse of the detail would still show the old values.\n RowNode.prototype.updateDataOnDetailNode = function () {\n if (this.detailNode) {\n this.detailNode.data = this.data;\n }\n };\n RowNode.prototype.createDataChangedEvent = function (newData, oldData, update) {\n return {\n type: RowNode.EVENT_DATA_CHANGED,\n node: this,\n oldData: oldData,\n newData: newData,\n update: update\n };\n };\n RowNode.prototype.createLocalRowEvent = function (type) {\n return {\n type: type,\n node: this\n };\n };\n RowNode.prototype.getRowIndexString = function () {\n if (this.rowPinned === Constants.PINNED_TOP) {\n return 't-' + this.rowIndex;\n }\n if (this.rowPinned === Constants.PINNED_BOTTOM) {\n return 'b-' + this.rowIndex;\n }\n return this.rowIndex.toString();\n };\n RowNode.prototype.createDaemonNode = function () {\n var oldNode = new RowNode();\n this.context.createBean(oldNode);\n // just copy the id and data, this is enough for the node to be used\n // in the selection controller (the selection controller is the only\n // place where daemon nodes can live).\n oldNode.id = this.id;\n oldNode.data = this.data;\n oldNode.daemon = true;\n oldNode.selected = this.selected;\n oldNode.level = this.level;\n return oldNode;\n };\n RowNode.prototype.setDataAndId = function (data, id) {\n var oldNode = exists(this.id) ? this.createDaemonNode() : null;\n var oldData = this.data;\n this.data = data;\n this.updateDataOnDetailNode();\n this.setId(id);\n this.selectionController.syncInRowNode(this, oldNode);\n this.checkRowSelectable();\n var event = this.createDataChangedEvent(data, oldData, false);\n this.dispatchLocalEvent(event);\n };\n RowNode.prototype.checkRowSelectable = function () {\n var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();\n this.setRowSelectable(isRowSelectableFunc ? isRowSelectableFunc(this) : true);\n };\n RowNode.prototype.setRowSelectable = function (newVal) {\n if (this.selectable !== newVal) {\n this.selectable = newVal;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));\n }\n }\n };\n RowNode.prototype.setId = function (id) {\n // see if user is providing the id's\n var getRowNodeId = this.gridOptionsWrapper.getRowNodeIdFunc();\n if (getRowNodeId) {\n // if user is providing the id's, then we set the id only after the data has been set.\n // this is important for virtual pagination and viewport, where empty rows exist.\n if (this.data) {\n this.id = getRowNodeId(this.data);\n // make sure id provided doesn't start with 'row-group-' as this is reserved. also check that\n // it has 'startsWith' in case the user provided a number.\n if (this.id && typeof this.id === 'string' && startsWith(this.id, RowNode.ID_PREFIX_ROW_GROUP)) {\n console.error(\"AG Grid: Row ID's cannot start with \" + RowNode.ID_PREFIX_ROW_GROUP + \", this is a reserved prefix for AG Grid's row grouping feature.\");\n }\n }\n else {\n // this can happen if user has set blank into the rowNode after the row previously\n // having data. this happens in virtual page row model, when data is delete and\n // the page is refreshed.\n this.id = undefined;\n }\n }\n else {\n this.id = id;\n }\n };\n RowNode.prototype.isPixelInRange = function (pixel) {\n if (!exists(this.rowTop) || !exists(this.rowHeight)) {\n return false;\n }\n return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);\n };\n RowNode.prototype.setFirstChild = function (firstChild) {\n if (this.firstChild === firstChild) {\n return;\n }\n this.firstChild = firstChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setLastChild = function (lastChild) {\n if (this.lastChild === lastChild) {\n return;\n }\n this.lastChild = lastChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setChildIndex = function (childIndex) {\n if (this.childIndex === childIndex) {\n return;\n }\n this.childIndex = childIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setRowTop = function (rowTop) {\n this.oldRowTop = this.rowTop;\n if (this.rowTop === rowTop) {\n return;\n }\n this.rowTop = rowTop;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));\n }\n this.setDisplayed(rowTop !== null);\n };\n RowNode.prototype.clearRowTopAndRowIndex = function () {\n this.oldRowTop = null;\n this.setRowTop(null);\n this.setRowIndex(null);\n };\n RowNode.prototype.setDisplayed = function (displayed) {\n if (this.displayed === displayed) {\n return;\n }\n this.displayed = displayed;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DISPLAYED_CHANGED));\n }\n };\n RowNode.prototype.setDragging = function (dragging) {\n if (this.dragging === dragging) {\n return;\n }\n this.dragging = dragging;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));\n }\n };\n RowNode.prototype.setHighlighted = function (highlighted) {\n if (highlighted === this.highlighted) {\n return;\n }\n this.highlighted = highlighted;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HIGHLIGHT_CHANGED));\n }\n };\n RowNode.prototype.setAllChildrenCount = function (allChildrenCount) {\n if (this.allChildrenCount === allChildrenCount) {\n return;\n }\n this.allChildrenCount = allChildrenCount;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));\n }\n };\n RowNode.prototype.setMaster = function (master) {\n if (this.master === master) {\n return;\n }\n // if changing AWAY from master, then unexpand, otherwise\n // next time it's shown it is expanded again\n if (this.master && !master) {\n this.expanded = false;\n }\n this.master = master;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_MASTER_CHANGED));\n }\n };\n RowNode.prototype.setRowHeight = function (rowHeight, estimated) {\n if (estimated === void 0) { estimated = false; }\n this.rowHeight = rowHeight;\n this.rowHeightEstimated = estimated;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));\n }\n };\n RowNode.prototype.setRowIndex = function (rowIndex) {\n if (this.rowIndex === rowIndex) {\n return;\n }\n this.rowIndex = rowIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setUiLevel = function (uiLevel) {\n if (this.uiLevel === uiLevel) {\n return;\n }\n this.uiLevel = uiLevel;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));\n }\n };\n RowNode.prototype.setExpanded = function (expanded) {\n if (this.expanded === expanded) {\n return;\n }\n this.expanded = expanded;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));\n }\n var event = assign({}, this.createGlobalRowEvent(Events.EVENT_ROW_GROUP_OPENED), {\n expanded: expanded\n });\n this.mainEventService.dispatchEvent(event);\n // when using footers we need to refresh the group row, as the aggregation\n // values jump between group and footer\n if (this.gridOptionsWrapper.isGroupIncludeFooter()) {\n this.rowRenderer.refreshCells({ rowNodes: [this] });\n }\n };\n RowNode.prototype.createGlobalRowEvent = function (type) {\n return {\n type: type,\n node: this,\n data: this.data,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned,\n context: this.gridOptionsWrapper.getContext(),\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi()\n };\n };\n RowNode.prototype.dispatchLocalEvent = function (event) {\n if (this.eventService) {\n this.eventService.dispatchEvent(event);\n }\n };\n // we also allow editing the value via the editors. when it is done via\n // the editors, no 'cell changed' event gets fired, as it's assumed that\n // the cell knows about the change given it's in charge of the editing.\n // this method is for the client to call, so the cell listens for the change\n // event, and also flashes the cell when the change occurs.\n RowNode.prototype.setDataValue = function (colKey, newValue) {\n var column = this.columnController.getPrimaryColumn(colKey);\n var oldValue = this.valueService.getValue(column, this);\n this.valueService.setValue(this, column, newValue);\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n };\n RowNode.prototype.setGroupValue = function (colKey, newValue) {\n var column = this.columnController.getGridColumn(colKey);\n if (missing(this.groupData)) {\n this.groupData = {};\n }\n var columnId = column.getColId();\n var oldValue = this.groupData[columnId];\n if (oldValue === newValue) {\n return;\n }\n this.groupData[columnId] = newValue;\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n };\n // sets the data for an aggregation\n RowNode.prototype.setAggData = function (newAggData) {\n var _this = this;\n // find out all keys that could potentially change\n var colIds = getAllKeysInObjects([this.aggData, newAggData]);\n var oldAggData = this.aggData;\n this.aggData = newAggData;\n // if no event service, nobody has registered for events, so no need fire event\n if (this.eventService) {\n colIds.forEach(function (colId) {\n var column = _this.columnController.getGridColumn(colId);\n var value = _this.aggData ? _this.aggData[colId] : undefined;\n var oldValue = oldAggData ? oldAggData[colId] : undefined;\n _this.dispatchCellChangedEvent(column, value, oldValue);\n });\n }\n };\n RowNode.prototype.updateHasChildren = function () {\n // we need to return true when this.group=true, as this is used by server side row model\n // (as children are lazy loaded and stored in a cache anyway). otherwise we return true\n // if children exist.\n var newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);\n if (newValue !== this.__hasChildren) {\n this.__hasChildren = !!newValue;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HAS_CHILDREN_CHANGED));\n }\n }\n };\n RowNode.prototype.hasChildren = function () {\n if (this.__hasChildren == null) {\n this.updateHasChildren();\n }\n return this.__hasChildren;\n };\n RowNode.prototype.isEmptyRowGroupNode = function () {\n return this.group && missingOrEmpty(this.childrenAfterGroup);\n };\n RowNode.prototype.dispatchCellChangedEvent = function (column, newValue, oldValue) {\n var cellChangedEvent = {\n type: RowNode.EVENT_CELL_CHANGED,\n node: this,\n column: column,\n newValue: newValue,\n oldValue: oldValue\n };\n this.dispatchLocalEvent(cellChangedEvent);\n };\n RowNode.prototype.resetQuickFilterAggregateText = function () {\n this.quickFilterAggregateText = null;\n };\n RowNode.prototype.isExpandable = function () {\n return this.hasChildren() || this.master ? true : false;\n };\n RowNode.prototype.isSelected = function () {\n // for footers, we just return what our sibling selected state is, as cannot select a footer\n if (this.footer) {\n return this.sibling.isSelected();\n }\n return this.selected;\n };\n RowNode.prototype.depthFirstSearch = function (callback) {\n if (this.childrenAfterGroup) {\n this.childrenAfterGroup.forEach(function (child) { return child.depthFirstSearch(callback); });\n }\n callback(this);\n };\n // + rowController.updateGroupsInSelection()\n // + selectionController.calculatedSelectedForAllGroupNodes()\n RowNode.prototype.calculateSelectedFromChildren = function () {\n var atLeastOneSelected = false;\n var atLeastOneDeSelected = false;\n var atLeastOneMixed = false;\n var newSelectedValue;\n if (this.childrenAfterGroup) {\n for (var i = 0; i < this.childrenAfterGroup.length; i++) {\n var child = this.childrenAfterGroup[i];\n // skip non-selectable nodes to prevent inconsistent selection values\n if (!child.selectable) {\n continue;\n }\n var childState = child.isSelected();\n switch (childState) {\n case true:\n atLeastOneSelected = true;\n break;\n case false:\n atLeastOneDeSelected = true;\n break;\n default:\n atLeastOneMixed = true;\n break;\n }\n }\n }\n if (atLeastOneMixed) {\n newSelectedValue = undefined;\n }\n else if (atLeastOneSelected && !atLeastOneDeSelected) {\n newSelectedValue = true;\n }\n else if (!atLeastOneSelected && atLeastOneDeSelected) {\n newSelectedValue = false;\n }\n else {\n newSelectedValue = undefined;\n }\n this.selectThisNode(newSelectedValue);\n };\n RowNode.prototype.setSelectedInitialValue = function (selected) {\n this.selected = selected;\n };\n RowNode.prototype.setSelected = function (newValue, clearSelection, suppressFinishActions) {\n if (clearSelection === void 0) { clearSelection = false; }\n if (suppressFinishActions === void 0) { suppressFinishActions = false; }\n this.setSelectedParams({\n newValue: newValue,\n clearSelection: clearSelection,\n suppressFinishActions: suppressFinishActions,\n rangeSelect: false\n });\n };\n RowNode.prototype.isRowPinned = function () {\n return this.rowPinned === Constants.PINNED_TOP || this.rowPinned === Constants.PINNED_BOTTOM;\n };\n // to make calling code more readable, this is the same method as setSelected except it takes names parameters\n RowNode.prototype.setSelectedParams = function (params) {\n var groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n var newValue = params.newValue === true;\n var clearSelection = params.clearSelection === true;\n var suppressFinishActions = params.suppressFinishActions === true;\n var rangeSelect = params.rangeSelect === true;\n // groupSelectsFiltered only makes sense when group selects children\n var groupSelectsFiltered = groupSelectsChildren && (params.groupSelectsFiltered === true);\n if (this.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return 0;\n }\n if (this.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return 0;\n }\n // if we are a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n if (this.footer) {\n return this.sibling.setSelectedParams(params);\n }\n if (rangeSelect && this.selectionController.getLastSelectedNode()) {\n var newRowClicked = this.selectionController.getLastSelectedNode() !== this;\n var allowMultiSelect = this.gridOptionsWrapper.isRowSelectionMulti();\n if (newRowClicked && allowMultiSelect) {\n var nodesChanged = this.doRowRangeSelection(params.newValue);\n this.selectionController.setLastSelectedNode(this);\n return nodesChanged;\n }\n }\n var updatedCount = 0;\n // when groupSelectsFiltered, then this node may end up intermediate despite\n // trying to set it to true / false. this group will be calculated further on\n // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it\n // here, otherwise the updatedCount would include it.\n var skipThisNode = groupSelectsFiltered && this.group;\n if (!skipThisNode) {\n var thisNodeWasSelected = this.selectThisNode(newValue);\n if (thisNodeWasSelected) {\n updatedCount++;\n }\n }\n if (groupSelectsChildren && this.group) {\n updatedCount += this.selectChildNodes(newValue, groupSelectsFiltered);\n }\n // clear other nodes if not doing multi select\n if (!suppressFinishActions) {\n var clearOtherNodes = newValue && (clearSelection || !this.gridOptionsWrapper.isRowSelectionMulti());\n if (clearOtherNodes) {\n updatedCount += this.selectionController.clearOtherNodes(this);\n }\n // only if we selected something, then update groups and fire events\n if (updatedCount > 0) {\n this.selectionController.updateGroupsFromChildrenSelections();\n // this is the very end of the 'action node', so we are finished all the updates,\n // include any parent / child changes that this method caused\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.mainEventService.dispatchEvent(event_1);\n }\n // so if user next does shift-select, we know where to start the selection from\n if (newValue) {\n this.selectionController.setLastSelectedNode(this);\n }\n }\n return updatedCount;\n };\n // selects all rows between this node and the last selected node (or the top if this is the first selection).\n // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by\n // holding down 'shift'.\n RowNode.prototype.doRowRangeSelection = function (value) {\n var _this = this;\n if (value === void 0) { value = true; }\n var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n var lastSelectedNode = this.selectionController.getLastSelectedNode();\n var nodesToSelect = this.rowModel.getNodesInRangeForSelection(this, lastSelectedNode);\n var updatedCount = 0;\n nodesToSelect.forEach(function (rowNode) {\n if (rowNode.group && groupsSelectChildren || (value === false && _this === rowNode)) {\n return;\n }\n var nodeWasSelected = rowNode.selectThisNode(value);\n if (nodeWasSelected) {\n updatedCount++;\n }\n });\n this.selectionController.updateGroupsFromChildrenSelections();\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.mainEventService.dispatchEvent(event);\n return updatedCount;\n };\n RowNode.prototype.isParentOfNode = function (potentialParent) {\n var parentNode = this.parent;\n while (parentNode) {\n if (parentNode === potentialParent) {\n return true;\n }\n parentNode = parentNode.parent;\n }\n return false;\n };\n RowNode.prototype.selectThisNode = function (newValue) {\n // we only check selectable when newValue=true (ie selecting) to allow unselecting values,\n // as selectable is dynamic, need a way to unselect rows when selectable becomes false.\n var selectionNotAllowed = !this.selectable && newValue;\n var selectionNotChanged = this.selected === newValue;\n if (selectionNotAllowed || selectionNotChanged) {\n return false;\n }\n this.selected = newValue;\n if (this.eventService) {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n }\n var event = this.createGlobalRowEvent(Events.EVENT_ROW_SELECTED);\n this.mainEventService.dispatchEvent(event);\n return true;\n };\n RowNode.prototype.selectChildNodes = function (newValue, groupSelectsFiltered) {\n var children = groupSelectsFiltered ? this.childrenAfterFilter : this.childrenAfterGroup;\n if (missing(children)) {\n return 0;\n }\n var updatedCount = 0;\n for (var i = 0; i < children.length; i++) {\n updatedCount += children[i].setSelectedParams({\n newValue: newValue,\n clearSelection: false,\n suppressFinishActions: true,\n groupSelectsFiltered: groupSelectsFiltered\n });\n }\n return updatedCount;\n };\n RowNode.prototype.addEventListener = function (eventType, listener) {\n if (!this.eventService) {\n this.eventService = new EventService();\n }\n this.eventService.addEventListener(eventType, listener);\n };\n RowNode.prototype.removeEventListener = function (eventType, listener) {\n if (!this.eventService) {\n return;\n }\n this.eventService.removeEventListener(eventType, listener);\n if (this.eventService.noRegisteredListenersExist()) {\n this.eventService = null;\n }\n };\n RowNode.prototype.onMouseEnter = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));\n };\n RowNode.prototype.onMouseLeave = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));\n };\n RowNode.prototype.getFirstChildOfFirstChild = function (rowGroupColumn) {\n var currentRowNode = this;\n var isCandidate = true;\n var foundFirstChildPath = false;\n var nodeToSwapIn = null;\n // if we are hiding groups, then if we are the first child, of the first child,\n // all the way up to the column we are interested in, then we show the group cell.\n while (isCandidate && !foundFirstChildPath) {\n var parentRowNode = currentRowNode.parent;\n var firstChild = exists(parentRowNode) && currentRowNode.firstChild;\n if (firstChild) {\n if (parentRowNode.rowGroupColumn === rowGroupColumn) {\n foundFirstChildPath = true;\n nodeToSwapIn = parentRowNode;\n }\n }\n else {\n isCandidate = false;\n }\n currentRowNode = parentRowNode;\n }\n return foundFirstChildPath ? nodeToSwapIn : null;\n };\n RowNode.prototype.isFullWidthCell = function () {\n var isFullWidthCellFunc = this.gridOptionsWrapper.getIsFullWidthCellFunc();\n return isFullWidthCellFunc ? isFullWidthCellFunc(this) : false;\n };\n RowNode.prototype.getRoute = function () {\n if (this.key == null) {\n return;\n }\n var res = [];\n var pointer = this;\n while (pointer.key != null) {\n res.push(pointer.key);\n pointer = pointer.parent;\n }\n return res.reverse();\n };\n RowNode.ID_PREFIX_ROW_GROUP = 'row-group-';\n RowNode.ID_PREFIX_TOP_PINNED = 't-';\n RowNode.ID_PREFIX_BOTTOM_PINNED = 'b-';\n RowNode.OBJECT_ID_SEQUENCE = 0;\n RowNode.EVENT_ROW_SELECTED = 'rowSelected';\n RowNode.EVENT_DATA_CHANGED = 'dataChanged';\n RowNode.EVENT_CELL_CHANGED = 'cellChanged';\n RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';\n RowNode.EVENT_MASTER_CHANGED = 'masterChanged';\n RowNode.EVENT_MOUSE_ENTER = 'mouseEnter';\n RowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';\n RowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';\n RowNode.EVENT_TOP_CHANGED = 'topChanged';\n RowNode.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n RowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';\n RowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';\n RowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';\n RowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';\n RowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n RowNode.EVENT_HAS_CHILDREN_CHANGED = 'hasChildrenChanged';\n RowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';\n RowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';\n RowNode.EVENT_HIGHLIGHT_CHANGED = 'rowHighlightChanged';\n RowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';\n __decorate$i([\n Autowired('eventService')\n ], RowNode.prototype, \"mainEventService\", void 0);\n __decorate$i([\n Autowired('rowRenderer')\n ], RowNode.prototype, \"rowRenderer\", void 0);\n __decorate$i([\n Autowired('gridOptionsWrapper')\n ], RowNode.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$i([\n Autowired('selectionController')\n ], RowNode.prototype, \"selectionController\", void 0);\n __decorate$i([\n Autowired('columnController')\n ], RowNode.prototype, \"columnController\", void 0);\n __decorate$i([\n Autowired('valueService')\n ], RowNode.prototype, \"valueService\", void 0);\n __decorate$i([\n Autowired('rowModel')\n ], RowNode.prototype, \"rowModel\", void 0);\n __decorate$i([\n Autowired('context')\n ], RowNode.prototype, \"context\", void 0);\n __decorate$i([\n Autowired('valueCache')\n ], RowNode.prototype, \"valueCache\", void 0);\n __decorate$i([\n Autowired('columnApi')\n ], RowNode.prototype, \"columnApi\", void 0);\n __decorate$i([\n Autowired('gridApi')\n ], RowNode.prototype, \"gridApi\", void 0);\n return RowNode;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$g = (undefined && undefined.__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$j = (undefined && undefined.__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 CheckboxSelectionComponent = /** @class */ (function (_super) {\n __extends$g(CheckboxSelectionComponent, _super);\n function CheckboxSelectionComponent() {\n return _super.call(this, /* html*/ \"\\n
\\n \\n
\") || this;\n }\n CheckboxSelectionComponent.prototype.postConstruct = function () {\n this.eCheckbox.setPassive(true);\n };\n CheckboxSelectionComponent.prototype.getCheckboxId = function () {\n return this.eCheckbox.getInputElement().id;\n };\n CheckboxSelectionComponent.prototype.onDataChanged = function () {\n // when rows are loaded for the second time, this can impact the selection, as a row\n // could be loaded as already selected (if user scrolls down, and then up again).\n this.onSelectionChanged();\n };\n CheckboxSelectionComponent.prototype.onSelectableChanged = function () {\n this.showOrHideSelect();\n };\n CheckboxSelectionComponent.prototype.onSelectionChanged = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var state = this.rowNode.isSelected();\n var stateName = state === undefined\n ? translate('ariaIndeterminate', 'indeterminate')\n : (state === true\n ? translate('ariaChecked', 'checked')\n : translate('ariaUnchecked', 'unchecked'));\n var ariaLabel = translate('ariaRowToggleSelection', 'Press Space to toggle row selection');\n this.eCheckbox.setValue(state, true);\n this.eCheckbox.setInputAriaLabel(ariaLabel + \" (\" + stateName + \")\");\n };\n CheckboxSelectionComponent.prototype.onCheckedClicked = function (event) {\n var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({ newValue: false, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });\n return updatedCount;\n };\n CheckboxSelectionComponent.prototype.onUncheckedClicked = function (event) {\n var groupSelectsFiltered = this.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({ newValue: true, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered });\n return updatedCount;\n };\n CheckboxSelectionComponent.prototype.init = function (params) {\n var _this = this;\n this.rowNode = params.rowNode;\n this.column = params.column;\n this.onSelectionChanged();\n // we don't want the row clicked event to fire when selecting the checkbox, otherwise the row\n // would possibly get selected twice\n this.addGuiEventListener('click', function (event) { return stopPropagationForAgGrid(event); });\n // likewise we don't want double click on this icon to open a group\n this.addGuiEventListener('dblclick', function (event) { return stopPropagationForAgGrid(event); });\n this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {\n var isSelected = _this.eCheckbox.getValue();\n var previousValue = _this.eCheckbox.getPreviousValue();\n if (previousValue === undefined) { // indeterminate\n var result = _this.onUncheckedClicked(event || {});\n if (result === 0) {\n _this.onCheckedClicked(event);\n }\n }\n else if (isSelected) {\n _this.onCheckedClicked(event);\n }\n else {\n _this.onUncheckedClicked(event || {});\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_SELECTABLE_CHANGED, this.onSelectableChanged.bind(this));\n var isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();\n var checkboxVisibleIsDynamic = isRowSelectableFunc || this.checkboxCallbackExists();\n if (checkboxVisibleIsDynamic) {\n var showOrHideSelectListener = this.showOrHideSelect.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, showOrHideSelectListener);\n this.showOrHideSelect();\n }\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n };\n CheckboxSelectionComponent.prototype.showOrHideSelect = function () {\n // if the isRowSelectable() is not provided the row node is selectable by default\n var selectable = this.rowNode.selectable;\n // checkboxSelection callback is deemed a legacy solution however we will still consider it's result.\n // If selectable, then also check the colDef callback. if not selectable, this it short circuits - no need\n // to call the colDef callback.\n if (selectable && this.checkboxCallbackExists()) {\n selectable = this.column.isCellCheckboxSelection(this.rowNode);\n }\n // show checkbox if both conditions are true\n this.setVisible(selectable);\n };\n CheckboxSelectionComponent.prototype.checkboxCallbackExists = function () {\n // column will be missing if groupUseEntireRow=true\n var colDef = this.column ? this.column.getColDef() : null;\n return !!colDef && typeof colDef.checkboxSelection === 'function';\n };\n __decorate$j([\n RefSelector('eCheckbox')\n ], CheckboxSelectionComponent.prototype, \"eCheckbox\", void 0);\n __decorate$j([\n PostConstruct\n ], CheckboxSelectionComponent.prototype, \"postConstruct\", null);\n return CheckboxSelectionComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar DateComponent = {\n propertyName: 'dateComponent',\n isCellRenderer: function () { return false; }\n};\nvar HeaderComponent = {\n propertyName: 'headerComponent',\n isCellRenderer: function () { return false; },\n};\nvar HeaderGroupComponent = {\n propertyName: 'headerGroupComponent',\n isCellRenderer: function () { return false; },\n};\nvar CellRendererComponent = {\n propertyName: 'cellRenderer',\n isCellRenderer: function () { return true; },\n};\nvar PinnedRowCellRendererComponent = {\n propertyName: 'pinnedRowCellRenderer',\n isCellRenderer: function () { return true; },\n};\nvar CellEditorComponent = {\n propertyName: 'cellEditor',\n isCellRenderer: function () { return false; },\n};\nvar InnerRendererComponent = {\n propertyName: 'innerRenderer',\n isCellRenderer: function () { return true; },\n};\nvar LoadingOverlayComponent = {\n propertyName: 'loadingOverlayComponent',\n isCellRenderer: function () { return false; },\n};\nvar NoRowsOverlayComponent = {\n propertyName: 'noRowsOverlayComponent',\n isCellRenderer: function () { return false; },\n};\nvar TooltipComponent = {\n propertyName: 'tooltipComponent',\n isCellRenderer: function () { return false; },\n};\nvar FilterComponent = {\n propertyName: 'filter',\n isCellRenderer: function () { return false; },\n};\nvar FloatingFilterComponent = {\n propertyName: 'floatingFilterComponent',\n isCellRenderer: function () { return false; },\n};\nvar ToolPanelComponent = {\n propertyName: 'toolPanel',\n isCellRenderer: function () { return false; },\n};\nvar StatusPanelComponent = {\n propertyName: 'statusPanel',\n isCellRenderer: function () { return false; },\n};\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$h = (undefined && undefined.__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$k = (undefined && undefined.__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 ComponentSource;\n(function (ComponentSource) {\n ComponentSource[ComponentSource[\"DEFAULT\"] = 0] = \"DEFAULT\";\n ComponentSource[ComponentSource[\"REGISTERED_BY_NAME\"] = 1] = \"REGISTERED_BY_NAME\";\n ComponentSource[ComponentSource[\"HARDCODED\"] = 2] = \"HARDCODED\";\n})(ComponentSource || (ComponentSource = {}));\nvar UserComponentFactory = /** @class */ (function (_super) {\n __extends$h(UserComponentFactory, _super);\n function UserComponentFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n UserComponentFactory.prototype.newDateComponent = function (params) {\n return this.createAndInitUserComponent(this.gridOptions, params, DateComponent, 'agDateInput');\n };\n UserComponentFactory.prototype.newHeaderComponent = function (params) {\n return this.createAndInitUserComponent(params.column.getColDef(), params, HeaderComponent, 'agColumnHeader');\n };\n UserComponentFactory.prototype.newHeaderGroupComponent = function (params) {\n return this.createAndInitUserComponent(params.columnGroup.getColGroupDef(), params, HeaderGroupComponent, 'agColumnGroupHeader');\n };\n UserComponentFactory.prototype.newFullWidthGroupRowInnerCellRenderer = function (params) {\n return this.createAndInitUserComponent(this.gridOptions.groupRowRendererParams, params, InnerRendererComponent, null, true);\n };\n // this one is unusual, as it can be LoadingCellRenderer, DetailCellRenderer, FullWidthCellRenderer or GroupRowRenderer.\n // so we have to pass the type in.\n UserComponentFactory.prototype.newFullWidthCellRenderer = function (params, cellRendererType, cellRendererName) {\n return this.createAndInitUserComponent(null, params, { propertyName: cellRendererType, isCellRenderer: function () { return true; } }, cellRendererName);\n };\n UserComponentFactory.prototype.newCellRenderer = function (target, params, isPinned) {\n if (isPinned === void 0) { isPinned = false; }\n return this.createAndInitUserComponent(target, params, isPinned ? PinnedRowCellRendererComponent : CellRendererComponent, null, true);\n };\n UserComponentFactory.prototype.newCellEditor = function (colDef, params) {\n return this.createAndInitUserComponent(colDef, params, CellEditorComponent, 'agCellEditor');\n };\n UserComponentFactory.prototype.newInnerCellRenderer = function (target, params) {\n return this.createAndInitUserComponent(target, params, InnerRendererComponent, null);\n };\n UserComponentFactory.prototype.newLoadingOverlayComponent = function (params) {\n return this.createAndInitUserComponent(this.gridOptions, params, LoadingOverlayComponent, 'agLoadingOverlay');\n };\n UserComponentFactory.prototype.newNoRowsOverlayComponent = function (params) {\n return this.createAndInitUserComponent(this.gridOptions, params, NoRowsOverlayComponent, 'agNoRowsOverlay');\n };\n UserComponentFactory.prototype.newTooltipComponent = function (params) {\n return this.createAndInitUserComponent(params.colDef, params, TooltipComponent, 'agTooltipComponent');\n };\n UserComponentFactory.prototype.newFilterComponent = function (def, params, defaultFilter) {\n return this.createAndInitUserComponent(def, params, FilterComponent, defaultFilter, false);\n };\n UserComponentFactory.prototype.newSetFilterCellRenderer = function (target, params) {\n return this.createAndInitUserComponent(target, params, CellRendererComponent, null, true);\n };\n UserComponentFactory.prototype.newFloatingFilterComponent = function (def, params, defaultFloatingFilter) {\n return this.createAndInitUserComponent(def, params, FloatingFilterComponent, defaultFloatingFilter, true);\n };\n UserComponentFactory.prototype.newToolPanelComponent = function (toolPanelDef, params) {\n return this.createAndInitUserComponent(toolPanelDef, params, ToolPanelComponent);\n };\n UserComponentFactory.prototype.newStatusPanelComponent = function (def, params) {\n return this.createAndInitUserComponent(def, params, StatusPanelComponent);\n };\n /**\n * This method creates a component given everything needed to guess what sort of component needs to be instantiated\n * It takes\n * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions\n * (global) or columnDef mostly.\n * @param paramsFromGrid: Params to be passed to the component and passed by AG Grid. This will get merged with any params\n * specified by the user in the configuration\n * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:\n * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component\n * @param defaultComponentName: The actual name of the component to instantiate, this is usually the same as propertyName, but in\n * some cases is not, like floatingFilter, if it is the same is not necessary to specify\n * @param optional: Handy method to tell if this should return a component ALWAYS. if that is the case, but there is no\n * component found, it throws an error, by default all components are MANDATORY\n */\n UserComponentFactory.prototype.createAndInitUserComponent = function (definitionObject, paramsFromGrid, componentType, defaultComponentName, \n // optional items are: FloatingFilter, CellComp (for cellRenderer)\n optional) {\n if (optional === void 0) { optional = false; }\n if (!definitionObject) {\n definitionObject = this.gridOptions;\n }\n // Create the component instance\n var componentAndParams = this.createComponentInstance(definitionObject, componentType, paramsFromGrid, defaultComponentName, optional);\n if (!componentAndParams) {\n return null;\n }\n var componentInstance = componentAndParams.componentInstance;\n // Wire the component and call the init method with the correct params\n var params = this.createFinalParams(definitionObject, componentType.propertyName, paramsFromGrid, componentAndParams.paramsFromSelector);\n this.addReactHacks(params);\n var deferredInit = this.initComponent(componentInstance, params);\n if (deferredInit == null) {\n return AgPromise.resolve(componentInstance);\n }\n return deferredInit.then(function () { return componentInstance; });\n };\n UserComponentFactory.prototype.addReactHacks = function (params) {\n // a temporary fix for AG-1574\n // AG-1715 raised to do a wider ranging refactor to improve this\n var agGridReact = this.context.getBean('agGridReact');\n if (agGridReact) {\n params.agGridReact = cloneObject(agGridReact);\n }\n // AG-1716 - directly related to AG-1574 and AG-1715\n var frameworkComponentWrapper = this.context.getBean('frameworkComponentWrapper');\n if (frameworkComponentWrapper) {\n params.frameworkComponentWrapper = frameworkComponentWrapper;\n }\n };\n /**\n * This method creates a component given everything needed to guess what sort of component needs to be instantiated\n * It takes\n * @param clazz: The class to instantiate,\n * @param agGridParams: Params to be passed to the component and passed by AG Grid. This will get merged with any params\n * specified by the user in the configuration\n * @param modifyParamsCallback: A chance to customise the params passed to the init method. It receives what the current\n * params are and the component that init is about to get called for\n */\n UserComponentFactory.prototype.createUserComponentFromConcreteClass = function (clazz, agGridParams) {\n var internalComponent = new clazz();\n this.initComponent(internalComponent, agGridParams);\n return internalComponent;\n };\n /**\n * This method returns the underlying representation of the component to be created. ie for Javascript the\n * underlying function where we should be calling new into. In case of the frameworks, the framework class\n * object that represents the component to be created.\n *\n * This method is handy for different reasons, for example if you want to check if a component has a particular\n * method implemented without having to create the component, just by inspecting the source component\n *\n * It takes\n * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions\n * (global) or columnDef mostly.\n * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:\n * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component\n * @param params: Params to be passed to the dynamic component function in case it needs to be\n * invoked\n * @param defaultComponentName: The name of the component to load if there is no component specified\n */\n UserComponentFactory.prototype.lookupComponentClassDef = function (definitionObject, propertyName, params, defaultComponentName) {\n if (params === void 0) { params = null; }\n /**\n * There are five things that can happen when resolving a component.\n * a) HardcodedFwComponent: That holder[propertyName]Framework has associated a Framework native component\n * b) HardcodedJsComponent: That holder[propertyName] has associate a JS component\n * c) hardcodedJsFunction: That holder[propertyName] has associate a JS function\n * d) hardcodedNameComponent: That holder[propertyName] has associate a string that represents a component to load\n * e) That none of the three previous are specified, then we need to use the DefaultRegisteredComponent\n */\n var hardcodedNameComponent = null;\n var HardcodedJsComponent = null;\n var hardcodedJsFunction = null;\n var HardcodedFwComponent = null;\n var componentSelectorFunc = null;\n if (definitionObject != null) {\n var componentPropertyValue = definitionObject[propertyName];\n // for filters only, we allow 'true' for the component, which means default filter to be used\n var usingDefaultComponent = componentPropertyValue === true;\n if (componentPropertyValue != null && !usingDefaultComponent) {\n if (typeof componentPropertyValue === 'string') {\n hardcodedNameComponent = componentPropertyValue;\n }\n else if (typeof componentPropertyValue === 'boolean') ;\n else if (this.agComponentUtils.doesImplementIComponent(componentPropertyValue)) {\n HardcodedJsComponent = componentPropertyValue;\n }\n else {\n hardcodedJsFunction = componentPropertyValue;\n }\n }\n HardcodedFwComponent = definitionObject[propertyName + \"Framework\"];\n componentSelectorFunc = definitionObject[propertyName + \"Selector\"];\n }\n /**\n * Since we allow many types of flavors for specifying the components, let's make sure this is not an illegal\n * combination\n */\n if ((HardcodedJsComponent && HardcodedFwComponent) ||\n (hardcodedNameComponent && HardcodedFwComponent) ||\n (hardcodedJsFunction && HardcodedFwComponent)) {\n throw Error(\"ag-grid: you are trying to specify: \" + propertyName + \" twice as a component.\");\n }\n if (HardcodedFwComponent && !this.frameworkComponentWrapper) {\n throw Error(\"ag-grid: you are specifying a framework component but you are not using a framework version of ag-grid for : \" + propertyName);\n }\n if (componentSelectorFunc && (hardcodedNameComponent || HardcodedJsComponent || hardcodedJsFunction || HardcodedFwComponent)) {\n throw Error(\"ag-grid: you can't specify both, the selector and the component of ag-grid for : \" + propertyName);\n }\n /**\n * At this stage we are guaranteed to either have,\n * DEPRECATED\n * - A unique HardcodedFwComponent\n * - A unique HardcodedJsComponent\n * - A unique hardcodedJsFunction\n * BY NAME- FAVOURED APPROACH\n * - A unique hardcodedNameComponent\n * - None of the previous, hence we revert to: RegisteredComponent\n */\n if (HardcodedFwComponent) {\n // console.warn(`ag-grid: Since version 12.1.0 specifying a component directly is deprecated, you should register the component by name`);\n // console.warn(`${HardcodedFwComponent}`);\n return {\n componentFromFramework: true,\n component: HardcodedFwComponent,\n source: ComponentSource.HARDCODED,\n paramsFromSelector: null\n };\n }\n if (HardcodedJsComponent) {\n // console.warn(`ag-grid: Since version 12.1.0 specifying a component directly is deprecated, you should register the component by name`);\n // console.warn(`${HardcodedJsComponent}`);\n return {\n componentFromFramework: false,\n component: HardcodedJsComponent,\n source: ComponentSource.HARDCODED,\n paramsFromSelector: null\n };\n }\n if (hardcodedJsFunction) {\n // console.warn(`ag-grid: Since version 12.1.0 specifying a function directly is deprecated, you should register the component by name`);\n // console.warn(`${hardcodedJsFunction}`);\n return this.agComponentUtils.adaptFunction(propertyName, hardcodedJsFunction, false, ComponentSource.HARDCODED);\n }\n var selectorResult = componentSelectorFunc ? componentSelectorFunc(params) : null;\n var componentNameToUse;\n if (selectorResult && selectorResult.component) {\n componentNameToUse = selectorResult.component;\n }\n else if (hardcodedNameComponent) {\n componentNameToUse = hardcodedNameComponent;\n }\n else {\n componentNameToUse = defaultComponentName;\n }\n if (!componentNameToUse) {\n return null;\n }\n var registeredCompClassDef = this.lookupFromRegisteredComponents(propertyName, componentNameToUse);\n if (!registeredCompClassDef) {\n return null;\n }\n return {\n componentFromFramework: registeredCompClassDef.componentFromFramework,\n component: registeredCompClassDef.component,\n source: registeredCompClassDef.source,\n paramsFromSelector: selectorResult ? selectorResult.params : null\n };\n };\n UserComponentFactory.prototype.lookupFromRegisteredComponents = function (propertyName, componentNameOpt) {\n var componentName = componentNameOpt != null ? componentNameOpt : propertyName;\n var registeredComponent = this.userComponentRegistry.retrieve(componentName);\n if (registeredComponent == null) {\n return null;\n }\n //If it is a FW it has to be registered as a component\n if (registeredComponent.componentFromFramework) {\n return {\n component: registeredComponent.component,\n componentFromFramework: true,\n source: ComponentSource.REGISTERED_BY_NAME,\n paramsFromSelector: null\n };\n }\n //If it is JS it may be a function or a component\n if (this.agComponentUtils.doesImplementIComponent(registeredComponent.component)) {\n return {\n component: registeredComponent.component,\n componentFromFramework: false,\n source: (registeredComponent.source == RegisteredComponentSource.REGISTERED) ? ComponentSource.REGISTERED_BY_NAME : ComponentSource.DEFAULT,\n paramsFromSelector: null\n };\n }\n // This is a function\n return this.agComponentUtils.adaptFunction(propertyName, registeredComponent.component, registeredComponent.componentFromFramework, (registeredComponent.source == RegisteredComponentSource.REGISTERED) ? ComponentSource.REGISTERED_BY_NAME : ComponentSource.DEFAULT);\n };\n /**\n * Useful to check what would be the resultant params for a given object\n * @param definitionObject: This is the context for which this component needs to be created, it can be gridOptions\n * (global) or columnDef mostly.\n * @param propertyName: The name of the property used in ag-grid as a convention to refer to the component, it can be:\n * 'floatingFilter', 'cellRenderer', is used to find if the user is specifying a custom component\n * @param paramsFromGrid: Params to be passed to the component and passed by AG Grid. This will get merged with any params\n * specified by the user in the configuration\n * @returns {TParams} It merges the user agGridParams with the actual params specified by the user.\n */\n UserComponentFactory.prototype.createFinalParams = function (definitionObject, propertyName, paramsFromGrid, paramsFromSelector) {\n if (paramsFromSelector === void 0) { paramsFromSelector = null; }\n var params = {};\n mergeDeep(params, paramsFromGrid);\n var userParams = definitionObject ? definitionObject[propertyName + \"Params\"] : null;\n if (userParams != null) {\n if (typeof userParams === 'function') {\n var userParamsFromFunc = userParams(paramsFromGrid);\n mergeDeep(params, userParamsFromFunc);\n }\n else if (typeof userParams === 'object') {\n mergeDeep(params, userParams);\n }\n }\n mergeDeep(params, paramsFromSelector);\n return params;\n };\n UserComponentFactory.prototype.createComponentInstance = function (holder, componentType, paramsForSelector, defaultComponentName, optional) {\n var propertyName = componentType.propertyName;\n var componentToUse = this.lookupComponentClassDef(holder, propertyName, paramsForSelector, defaultComponentName);\n var missing = !componentToUse || !componentToUse.component;\n if (missing) {\n // to help the user, we print out the name they are looking for, rather than the default name.\n // i don't know why the default name was originally printed out (that doesn't help the user)\n var overrideName = holder ? holder[propertyName] : defaultComponentName;\n var nameToReport = overrideName ? overrideName : defaultComponentName;\n if (!optional) {\n console.error(\"Could not find component \" + nameToReport + \", did you forget to configure this component?\");\n }\n return null;\n }\n var componentInstance;\n if (componentToUse.componentFromFramework) {\n // Using framework component\n var FrameworkComponentRaw = componentToUse.component;\n var thisComponentConfig = this.componentMetadataProvider.retrieve(propertyName);\n componentInstance = this.frameworkComponentWrapper.wrap(FrameworkComponentRaw, thisComponentConfig.mandatoryMethodList, thisComponentConfig.optionalMethodList, componentType, defaultComponentName);\n }\n else {\n // Using plain JavaScript component\n componentInstance = new componentToUse.component();\n }\n return { componentInstance: componentInstance, paramsFromSelector: componentToUse.paramsFromSelector };\n };\n UserComponentFactory.prototype.initComponent = function (component, params) {\n this.context.createBean(component);\n if (component.init == null) {\n return;\n }\n return component.init(params);\n };\n __decorate$k([\n Autowired('gridOptions')\n ], UserComponentFactory.prototype, \"gridOptions\", void 0);\n __decorate$k([\n Autowired('agComponentUtils')\n ], UserComponentFactory.prototype, \"agComponentUtils\", void 0);\n __decorate$k([\n Autowired('componentMetadataProvider')\n ], UserComponentFactory.prototype, \"componentMetadataProvider\", void 0);\n __decorate$k([\n Autowired('userComponentRegistry')\n ], UserComponentFactory.prototype, \"userComponentRegistry\", void 0);\n __decorate$k([\n Optional('frameworkComponentWrapper')\n ], UserComponentFactory.prototype, \"frameworkComponentWrapper\", void 0);\n UserComponentFactory = __decorate$k([\n Bean('userComponentFactory')\n ], UserComponentFactory);\n return UserComponentFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$i = (undefined && undefined.__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$l = (undefined && undefined.__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};\n(function (DragSourceType) {\n DragSourceType[DragSourceType[\"ToolPanel\"] = 0] = \"ToolPanel\";\n DragSourceType[DragSourceType[\"HeaderCell\"] = 1] = \"HeaderCell\";\n DragSourceType[DragSourceType[\"RowDrag\"] = 2] = \"RowDrag\";\n DragSourceType[DragSourceType[\"ChartPanel\"] = 3] = \"ChartPanel\";\n})(exports.DragSourceType || (exports.DragSourceType = {}));\n(function (VerticalDirection) {\n VerticalDirection[VerticalDirection[\"Up\"] = 0] = \"Up\";\n VerticalDirection[VerticalDirection[\"Down\"] = 1] = \"Down\";\n})(exports.VerticalDirection || (exports.VerticalDirection = {}));\n(function (HorizontalDirection) {\n HorizontalDirection[HorizontalDirection[\"Left\"] = 0] = \"Left\";\n HorizontalDirection[HorizontalDirection[\"Right\"] = 1] = \"Right\";\n})(exports.HorizontalDirection || (exports.HorizontalDirection = {}));\nvar DragAndDropService = /** @class */ (function (_super) {\n __extends$i(DragAndDropService, _super);\n function DragAndDropService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dragSourceAndParamsList = [];\n _this.dropTargets = [];\n return _this;\n }\n DragAndDropService_1 = DragAndDropService;\n DragAndDropService.prototype.init = function () {\n this.ePinnedIcon = createIcon('columnMovePin', this.gridOptionsWrapper, null);\n this.eHideIcon = createIcon('columnMoveHide', this.gridOptionsWrapper, null);\n this.eMoveIcon = createIcon('columnMoveMove', this.gridOptionsWrapper, null);\n this.eLeftIcon = createIcon('columnMoveLeft', this.gridOptionsWrapper, null);\n this.eRightIcon = createIcon('columnMoveRight', this.gridOptionsWrapper, null);\n this.eGroupIcon = createIcon('columnMoveGroup', this.gridOptionsWrapper, null);\n this.eAggregateIcon = createIcon('columnMoveValue', this.gridOptionsWrapper, null);\n this.ePivotIcon = createIcon('columnMovePivot', this.gridOptionsWrapper, null);\n this.eDropNotAllowedIcon = createIcon('dropNotAllowed', this.gridOptionsWrapper, null);\n };\n DragAndDropService.prototype.addDragSource = function (dragSource, allowTouch) {\n if (allowTouch === void 0) { allowTouch = false; }\n var params = {\n eElement: dragSource.eElement,\n dragStartPixels: dragSource.dragStartPixels,\n onDragStart: this.onDragStart.bind(this, dragSource),\n onDragStop: this.onDragStop.bind(this),\n onDragging: this.onDragging.bind(this)\n };\n this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });\n this.dragService.addDragSource(params, allowTouch);\n };\n DragAndDropService.prototype.removeDragSource = function (dragSource) {\n var sourceAndParams = find(this.dragSourceAndParamsList, function (item) { return item.dragSource === dragSource; });\n if (sourceAndParams) {\n this.dragService.removeDragSource(sourceAndParams.params);\n removeFromArray(this.dragSourceAndParamsList, sourceAndParams);\n }\n };\n DragAndDropService.prototype.clearDragSourceParamsList = function () {\n var _this = this;\n this.dragSourceAndParamsList.forEach(function (sourceAndParams) { return _this.dragService.removeDragSource(sourceAndParams.params); });\n this.dragSourceAndParamsList.length = 0;\n };\n DragAndDropService.prototype.nudge = function () {\n if (this.dragging) {\n this.onDragging(this.eventLastTime, true);\n }\n };\n DragAndDropService.prototype.onDragStart = function (dragSource, mouseEvent) {\n this.dragging = true;\n this.dragSource = dragSource;\n this.eventLastTime = mouseEvent;\n this.dragItem = this.dragSource.getDragItem();\n this.lastDropTarget = this.dragSource.dragSourceDropTarget;\n if (this.dragSource.onDragStarted) {\n this.dragSource.onDragStarted();\n }\n this.createGhost();\n };\n DragAndDropService.prototype.onDragStop = function (mouseEvent) {\n this.eventLastTime = null;\n this.dragging = false;\n if (this.dragSource.onDragStopped) {\n this.dragSource.onDragStopped();\n }\n if (this.lastDropTarget && this.lastDropTarget.onDragStop) {\n var draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);\n this.lastDropTarget.onDragStop(draggingEvent);\n }\n this.lastDropTarget = null;\n this.dragItem = null;\n this.removeGhost();\n };\n DragAndDropService.prototype.onDragging = function (mouseEvent, fromNudge) {\n var _this = this;\n var hDirection = this.getHorizontalDirection(mouseEvent);\n var vDirection = this.getVerticalDirection(mouseEvent);\n this.eventLastTime = mouseEvent;\n this.positionGhost(mouseEvent);\n // check if mouseEvent intersects with any of the drop targets\n var validDropTargets = this.dropTargets.filter(function (target) { return _this.isMouseOnDropTarget(mouseEvent, target); });\n var len = validDropTargets.length;\n var dropTarget = null;\n if (len > 0) {\n dropTarget = len === 1\n ? validDropTargets[0]\n // the current mouse position could intersect with more than 1 element\n // if they are nested. In that case we need to get the most specific\n // container, which is the one that does not contain any other targets.\n : validDropTargets.reduce(function (prevTarget, currTarget) {\n if (!prevTarget) {\n return currTarget;\n }\n var prevContainer = prevTarget.getContainer();\n var currContainer = currTarget.getContainer();\n if (prevContainer.contains(currContainer)) {\n return currTarget;\n }\n return prevTarget;\n });\n }\n if (dropTarget !== this.lastDropTarget) {\n this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);\n this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget = dropTarget;\n }\n else if (dropTarget && dropTarget.onDragging) {\n var draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragging(draggingEvent);\n }\n };\n DragAndDropService.prototype.enterDragTargetIfExists = function (dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {\n if (!dropTarget) {\n return;\n }\n if (dropTarget.onDragEnter) {\n var dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragEnter(dragEnterEvent);\n }\n this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);\n };\n DragAndDropService.prototype.leaveLastTargetIfExists = function (mouseEvent, hDirection, vDirection, fromNudge) {\n if (!this.lastDropTarget) {\n return;\n }\n if (this.lastDropTarget.onDragLeave) {\n var dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget.onDragLeave(dragLeaveEvent);\n }\n this.setGhostIcon(null);\n };\n DragAndDropService.prototype.getAllContainersFromDropTarget = function (dropTarget) {\n var containers = [dropTarget.getContainer()];\n var secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;\n if (secondaryContainers) {\n containers = containers.concat(secondaryContainers);\n }\n return containers;\n };\n // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers\n DragAndDropService.prototype.isMouseOnDropTarget = function (mouseEvent, dropTarget) {\n var mouseOverTarget = false;\n this.getAllContainersFromDropTarget(dropTarget)\n .filter(function (eContainer) { return eContainer; }) // secondary can be missing\n .forEach(function (eContainer) {\n var rect = eContainer.getBoundingClientRect();\n // if element is not visible, then width and height are zero\n if (rect.width === 0 || rect.height === 0) {\n return;\n }\n var horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX < rect.right;\n var verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY < rect.bottom;\n if (horizontalFit && verticalFit) {\n mouseOverTarget = true;\n }\n });\n return mouseOverTarget && dropTarget.isInterestedIn(this.dragSource.type);\n };\n DragAndDropService.prototype.addDropTarget = function (dropTarget) {\n this.dropTargets.push(dropTarget);\n };\n DragAndDropService.prototype.removeDropTarget = function (dropTarget) {\n this.dropTargets = this.dropTargets.filter(function (target) { return target.getContainer() !== dropTarget.getContainer(); });\n };\n DragAndDropService.prototype.hasExternalDropZones = function () {\n return this.dropTargets.some(function (zones) { return zones.external; });\n };\n DragAndDropService.prototype.findExternalZone = function (params) {\n var externalTargets = this.dropTargets.filter(function (target) { return target.external; });\n return find(externalTargets, function (zone) { return zone.getContainer() === params.getContainer(); });\n };\n DragAndDropService.prototype.getHorizontalDirection = function (event) {\n var clientX = this.eventLastTime && this.eventLastTime.clientX;\n var eClientX = event.clientX;\n if (clientX === eClientX) {\n return null;\n }\n return clientX > eClientX ? exports.HorizontalDirection.Left : exports.HorizontalDirection.Right;\n };\n DragAndDropService.prototype.getVerticalDirection = function (event) {\n var clientY = this.eventLastTime && this.eventLastTime.clientY;\n var eClientY = event.clientY;\n if (clientY === eClientY) {\n return null;\n }\n return clientY > eClientY ? exports.VerticalDirection.Up : exports.VerticalDirection.Down;\n };\n DragAndDropService.prototype.createDropTargetEvent = function (dropTarget, event, hDirection, vDirection, fromNudge) {\n // localise x and y to the target\n var dropZoneTarget = dropTarget.getContainer();\n var rect = dropZoneTarget.getBoundingClientRect();\n var _a = this, api = _a.gridApi, columnApi = _a.columnApi, dragItem = _a.dragItem, dragSource = _a.dragSource;\n var x = event.clientX - rect.left;\n var y = event.clientY - rect.top;\n return { event: event, x: x, y: y, vDirection: vDirection, hDirection: hDirection, dragSource: dragSource, fromNudge: fromNudge, dragItem: dragItem, api: api, columnApi: columnApi, dropZoneTarget: dropZoneTarget };\n };\n DragAndDropService.prototype.positionGhost = function (event) {\n var ghost = this.eGhost;\n if (!ghost) {\n return;\n }\n var ghostRect = ghost.getBoundingClientRect();\n var ghostHeight = ghostRect.height;\n // for some reason, without the '-2', it still overlapped by 1 or 2 pixels, which\n // then brought in scrollbars to the browser. no idea why, but putting in -2 here\n // works around it which is good enough for me.\n var browserWidth = getBodyWidth() - 2;\n var browserHeight = getBodyHeight() - 2;\n var top = event.pageY - (ghostHeight / 2);\n var left = event.pageX - 10;\n var usrDocument = this.gridOptionsWrapper.getDocument();\n var windowScrollY = window.pageYOffset || usrDocument.documentElement.scrollTop;\n var windowScrollX = window.pageXOffset || usrDocument.documentElement.scrollLeft;\n // check ghost is not positioned outside of the browser\n if (browserWidth > 0 && ((left + ghost.clientWidth) > (browserWidth + windowScrollX))) {\n left = browserWidth + windowScrollX - ghost.clientWidth;\n }\n if (left < 0) {\n left = 0;\n }\n if (browserHeight > 0 && ((top + ghost.clientHeight) > (browserHeight + windowScrollY))) {\n top = browserHeight + windowScrollY - ghost.clientHeight;\n }\n if (top < 0) {\n top = 0;\n }\n ghost.style.left = left + \"px\";\n ghost.style.top = top + \"px\";\n };\n DragAndDropService.prototype.removeGhost = function () {\n if (this.eGhost && this.eGhostParent) {\n this.eGhostParent.removeChild(this.eGhost);\n }\n this.eGhost = null;\n };\n DragAndDropService.prototype.createGhost = function () {\n this.eGhost = loadTemplate(DragAndDropService_1.GHOST_TEMPLATE);\n var theme = this.environment.getTheme().theme;\n if (theme) {\n addCssClass(this.eGhost, theme);\n }\n this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');\n this.setGhostIcon(null);\n var eText = this.eGhost.querySelector('.ag-dnd-ghost-label');\n var dragItemName = this.dragSource.dragItemName;\n if (isFunction(dragItemName)) {\n dragItemName = dragItemName();\n }\n eText.innerHTML = escapeString(dragItemName) || '';\n this.eGhost.style.height = '25px';\n this.eGhost.style.top = '20px';\n this.eGhost.style.left = '20px';\n var usrDocument = this.gridOptionsWrapper.getDocument();\n var targetEl = usrDocument.fullscreenElement || usrDocument.querySelector('body');\n this.eGhostParent = targetEl;\n if (!this.eGhostParent) {\n console.warn('AG Grid: could not find document body, it is needed for dragging columns');\n }\n else {\n this.eGhostParent.appendChild(this.eGhost);\n }\n };\n DragAndDropService.prototype.setGhostIcon = function (iconName, shake) {\n if (shake === void 0) { shake = false; }\n clearElement(this.eGhostIcon);\n var eIcon = null;\n if (!iconName) {\n iconName = this.dragSource.defaultIconName || DragAndDropService_1.ICON_NOT_ALLOWED;\n }\n switch (iconName) {\n case DragAndDropService_1.ICON_PINNED:\n eIcon = this.ePinnedIcon;\n break;\n case DragAndDropService_1.ICON_MOVE:\n eIcon = this.eMoveIcon;\n break;\n case DragAndDropService_1.ICON_LEFT:\n eIcon = this.eLeftIcon;\n break;\n case DragAndDropService_1.ICON_RIGHT:\n eIcon = this.eRightIcon;\n break;\n case DragAndDropService_1.ICON_GROUP:\n eIcon = this.eGroupIcon;\n break;\n case DragAndDropService_1.ICON_AGGREGATE:\n eIcon = this.eAggregateIcon;\n break;\n case DragAndDropService_1.ICON_PIVOT:\n eIcon = this.ePivotIcon;\n break;\n case DragAndDropService_1.ICON_NOT_ALLOWED:\n eIcon = this.eDropNotAllowedIcon;\n break;\n case DragAndDropService_1.ICON_HIDE:\n eIcon = this.eHideIcon;\n break;\n }\n addOrRemoveCssClass(this.eGhostIcon, 'ag-shake-left-to-right', shake);\n if (eIcon === this.eHideIcon && this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns()) {\n return;\n }\n if (eIcon) {\n this.eGhostIcon.appendChild(eIcon);\n }\n };\n var DragAndDropService_1;\n DragAndDropService.ICON_PINNED = 'pinned';\n DragAndDropService.ICON_MOVE = 'move';\n DragAndDropService.ICON_LEFT = 'left';\n DragAndDropService.ICON_RIGHT = 'right';\n DragAndDropService.ICON_GROUP = 'group';\n DragAndDropService.ICON_AGGREGATE = 'aggregate';\n DragAndDropService.ICON_PIVOT = 'pivot';\n DragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';\n DragAndDropService.ICON_HIDE = 'hide';\n DragAndDropService.GHOST_TEMPLATE = \"
\\n \\n
\\n
\";\n __decorate$l([\n Autowired('dragService')\n ], DragAndDropService.prototype, \"dragService\", void 0);\n __decorate$l([\n Autowired('environment')\n ], DragAndDropService.prototype, \"environment\", void 0);\n __decorate$l([\n Autowired('columnApi')\n ], DragAndDropService.prototype, \"columnApi\", void 0);\n __decorate$l([\n Autowired('gridApi')\n ], DragAndDropService.prototype, \"gridApi\", void 0);\n __decorate$l([\n PostConstruct\n ], DragAndDropService.prototype, \"init\", null);\n __decorate$l([\n PreDestroy\n ], DragAndDropService.prototype, \"clearDragSourceParamsList\", null);\n DragAndDropService = DragAndDropService_1 = __decorate$l([\n Bean('dragAndDropService')\n ], DragAndDropService);\n return DragAndDropService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$j = (undefined && undefined.__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$m = (undefined && undefined.__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 RowDragComp = /** @class */ (function (_super) {\n __extends$j(RowDragComp, _super);\n function RowDragComp(cellValueFn, rowNode, column, customGui, dragStartPixels) {\n var _this = _super.call(this) || this;\n _this.cellValueFn = cellValueFn;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.customGui = customGui;\n _this.dragStartPixels = dragStartPixels;\n _this.isCustomGui = false;\n _this.dragSource = null;\n return _this;\n }\n RowDragComp.prototype.postConstruct = function () {\n if (!this.customGui) {\n this.setTemplate(/* html */ \"
\");\n var eGui = this.getGui();\n eGui.appendChild(createIconNoSpan('rowDrag', this.beans.gridOptionsWrapper, null));\n this.addDragSource();\n }\n else {\n this.isCustomGui = true;\n this.setDragElement(this.customGui, this.dragStartPixels);\n }\n this.checkCompatibility();\n var strategy = this.beans.gridOptionsWrapper.isRowDragManaged() ?\n new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column) :\n new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column);\n this.createManagedBean(strategy, this.beans.context);\n };\n RowDragComp.prototype.setDragElement = function (dragElement, dragStartPixels) {\n this.setTemplateFromElement(dragElement);\n this.addDragSource(dragStartPixels);\n };\n RowDragComp.prototype.getSelectedCount = function () {\n var multiRowEnabled = this.beans.gridOptionsWrapper.isEnableMultiRowDragging();\n if (!multiRowEnabled) {\n return 1;\n }\n var selection = this.beans.selectionController.getSelectedNodes();\n return selection.indexOf(this.rowNode) !== -1 ? selection.length : 1;\n };\n // returns true if all compatibility items work out\n RowDragComp.prototype.checkCompatibility = function () {\n var managed = this.beans.gridOptionsWrapper.isRowDragManaged();\n var treeData = this.beans.gridOptionsWrapper.isTreeData();\n if (treeData && managed) {\n doOnce(function () {\n return console.warn('AG Grid: If using row drag with tree data, you cannot have rowDragManaged=true');\n }, 'RowDragComp.managedAndTreeData');\n }\n };\n RowDragComp.prototype.addDragSource = function (dragStartPixels) {\n var _this = this;\n if (dragStartPixels === void 0) { dragStartPixels = 4; }\n // if this is changing the drag element, delete the previous dragSource\n if (this.dragSource) {\n this.removeDragSource();\n }\n var dragItem = {\n rowNode: this.rowNode,\n columns: this.column ? [this.column] : undefined,\n defaultTextValue: this.cellValueFn(),\n };\n var rowDragText = this.column && this.column.getColDef().rowDragText;\n this.dragSource = {\n type: exports.DragSourceType.RowDrag,\n eElement: this.getGui(),\n dragItemName: function () {\n var dragItemCount = _this.getSelectedCount();\n if (rowDragText) {\n return rowDragText(dragItem, dragItemCount);\n }\n return dragItemCount === 1 ? _this.cellValueFn() : dragItemCount + \" rows\";\n },\n getDragItem: function () { return dragItem; },\n dragStartPixels: dragStartPixels,\n dragSourceDomDataKey: this.beans.gridOptionsWrapper.getDomDataKey()\n };\n this.beans.dragAndDropService.addDragSource(this.dragSource, true);\n };\n RowDragComp.prototype.removeDragSource = function () {\n if (this.dragSource) {\n this.beans.dragAndDropService.removeDragSource(this.dragSource);\n }\n this.dragSource = null;\n };\n __decorate$m([\n Autowired('beans')\n ], RowDragComp.prototype, \"beans\", void 0);\n __decorate$m([\n PostConstruct\n ], RowDragComp.prototype, \"postConstruct\", null);\n __decorate$m([\n PreDestroy\n ], RowDragComp.prototype, \"removeDragSource\", null);\n return RowDragComp;\n}(Component));\nvar VisibilityStrategy = /** @class */ (function (_super) {\n __extends$j(VisibilityStrategy, _super);\n function VisibilityStrategy(parent, rowNode, column) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.column = column;\n _this.rowNode = rowNode;\n return _this;\n }\n VisibilityStrategy.prototype.setDisplayedOrVisible = function (neverDisplayed) {\n if (neverDisplayed) {\n this.parent.setDisplayed(false);\n }\n else {\n var shown = true;\n var isShownSometimes = false;\n if (this.column) {\n shown = this.column.isRowDrag(this.rowNode) || this.parent.isCustomGui;\n isShownSometimes = isFunction(this.column.getColDef().rowDrag);\n }\n // if shown sometimes, them some rows can have drag handle while other don't,\n // so we use setVisible to keep the handles horizontally aligned (as setVisible\n // keeps the empty space, whereas setDisplayed looses the space)\n if (isShownSometimes) {\n this.parent.setDisplayed(true);\n this.parent.setVisible(shown);\n }\n else {\n this.parent.setDisplayed(shown);\n }\n }\n };\n return VisibilityStrategy;\n}(BeanStub));\n// when non managed, the visibility depends on suppressRowDrag property only\nvar NonManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends$j(NonManagedVisibilityStrategy, _super);\n function NonManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n NonManagedVisibilityStrategy.prototype.postConstruct = function () {\n this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var neverDisplayed = this.beans.gridOptionsWrapper.isSuppressRowDrag();\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$m([\n PostConstruct\n ], NonManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return NonManagedVisibilityStrategy;\n}(VisibilityStrategy));\n// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property\nvar ManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends$j(ManagedVisibilityStrategy, _super);\n function ManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n ManagedVisibilityStrategy.prototype.postConstruct = function () {\n // we do not show the component if sort, filter or grouping is active\n this.addManagedListener(this.beans.eventService, Events.EVENT_SORT_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_FILTER_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.workOutVisibility.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.gridOptionsWrapper, 'suppressRowDrag', this.onSuppressRowDrag.bind(this));\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var gridBodyCon = this.beans.controllersService.getGridBodyController();\n var rowDragFeature = gridBodyCon.getRowDragFeature();\n var shouldPreventRowMove = rowDragFeature && rowDragFeature.shouldPreventRowMove();\n var suppressRowDrag = this.beans.gridOptionsWrapper.isSuppressRowDrag();\n var hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();\n var neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$m([\n PostConstruct\n ], ManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return ManagedVisibilityStrategy;\n}(VisibilityStrategy));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$k = (undefined && undefined.__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$n = (undefined && undefined.__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 GroupCellRenderer = /** @class */ (function (_super) {\n __extends$k(GroupCellRenderer, _super);\n function GroupCellRenderer() {\n return _super.call(this, GroupCellRenderer.TEMPLATE) || this;\n }\n GroupCellRenderer.prototype.isTopLevelFooter = function () {\n if (!this.gridOptionsWrapper.isGroupIncludeTotalFooter()) {\n return false;\n }\n if (this.params.value != null || this.params.node.level != -1) {\n return false;\n }\n // at this point, we know it's the root node and there is no value present, so it's a footer cell.\n // the only thing to work out is if we are displaying groups across multiple\n // columns (groupMultiAutoColumn=true), we only want 'total' to appear in the first column.\n var colDef = this.params.colDef;\n var doingFullWidth = colDef == null;\n if (doingFullWidth) {\n return true;\n }\n if (colDef.showRowGroup === true) {\n return true;\n }\n var rowGroupCols = this.columnController.getRowGroupColumns();\n // this is a sanity check, rowGroupCols should always be present\n if (!rowGroupCols || rowGroupCols.length === 0) {\n return true;\n }\n var firstRowGroupCol = rowGroupCols[0];\n return firstRowGroupCol.getId() === colDef.showRowGroup;\n };\n GroupCellRenderer.prototype.init = function (params) {\n this.params = params;\n var topLevelFooter = this.isTopLevelFooter();\n var embeddedRowMismatch = this.isEmbeddedRowMismatch();\n // This allows for empty strings to appear as groups since\n // it will only return for null or undefined.\n var nullValue = params.value == null;\n var skipCell = false;\n // if the groupCellRenderer is inside of a footer and groupHideOpenParents is true\n // we should only display the groupCellRenderer if the current column is the rowGroupedColumn\n if (this.gridOptionsWrapper.isGroupIncludeFooter() && this.gridOptionsWrapper.isGroupHideOpenParents()) {\n var node = params.node;\n if (node.footer) {\n var showRowGroup = params.colDef && params.colDef.showRowGroup;\n var rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();\n skipCell = showRowGroup !== rowGroupColumnId;\n }\n }\n this.cellIsBlank = topLevelFooter ? false : (embeddedRowMismatch || nullValue || skipCell);\n if (this.cellIsBlank) {\n return;\n }\n this.setupDragOpenParents();\n this.addFullWidthRowDraggerIfNeeded();\n this.addExpandAndContract();\n this.addCheckboxIfNeeded();\n this.addValueElement();\n this.setupIndent();\n };\n // if we are doing embedded full width rows, we only show the renderer when\n // in the body, or if pinning in the pinned section, or if pinning and RTL,\n // in the right section. otherwise we would have the cell repeated in each section.\n GroupCellRenderer.prototype.isEmbeddedRowMismatch = function () {\n if (!this.params.fullWidth || !this.gridOptionsWrapper.isEmbedFullWidthRows()) {\n return false;\n }\n var pinnedLeftCell = this.params.pinned === Constants.PINNED_LEFT;\n var pinnedRightCell = this.params.pinned === Constants.PINNED_RIGHT;\n var bodyCell = !pinnedLeftCell && !pinnedRightCell;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n if (this.columnController.isPinningLeft()) {\n return !pinnedRightCell;\n }\n return !bodyCell;\n }\n if (this.columnController.isPinningLeft()) {\n return !pinnedLeftCell;\n }\n return !bodyCell;\n };\n GroupCellRenderer.prototype.setIndent = function () {\n if (this.gridOptionsWrapper.isGroupHideOpenParents()) {\n return;\n }\n var params = this.params;\n var rowNode = params.node;\n // if we are only showing one group column, we don't want to be indenting based on level\n var fullWithRow = !!params.colDef;\n var manyDimensionThisColumn = !fullWithRow || params.colDef.showRowGroup === true;\n var paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;\n var userProvidedPaddingPixelsTheDeprecatedWay = params.padding >= 0;\n if (userProvidedPaddingPixelsTheDeprecatedWay) {\n this.setPaddingDeprecatedWay(paddingCount, params.padding);\n return;\n }\n if (this.indentClass) {\n this.removeCssClass(this.indentClass);\n }\n this.indentClass = 'ag-row-group-indent-' + paddingCount;\n this.addCssClass(this.indentClass);\n };\n GroupCellRenderer.prototype.setPaddingDeprecatedWay = function (paddingCount, padding) {\n doOnce(function () { return console.warn('AG Grid: since v14.2, configuring padding for groupCellRenderer should be done with Sass variables and themes. Please see the AG Grid documentation page for Themes, in particular the property $row-group-indent-size.'); }, 'groupCellRenderer->doDeprecatedWay');\n var paddingPx = paddingCount * padding;\n var eGui = this.getGui();\n var paddingSide = this.gridOptionsWrapper.isEnableRtl() ? 'paddingRight' : 'paddingLeft';\n eGui.style[paddingSide] = paddingPx + \"px\";\n };\n GroupCellRenderer.prototype.setupIndent = function () {\n // only do this if an indent - as this overwrites the padding that\n // the theme set, which will make things look 'not aligned' for the\n // first group level.\n var node = this.params.node;\n var suppressPadding = this.params.suppressPadding;\n if (!suppressPadding) {\n this.addManagedListener(node, RowNode.EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));\n this.setIndent();\n }\n };\n GroupCellRenderer.prototype.addValueElement = function () {\n if (this.displayedGroup.footer) {\n this.addFooterValue();\n }\n else {\n this.addGroupValue();\n this.addChildCount();\n }\n };\n GroupCellRenderer.prototype.addFooterValue = function () {\n var footerValueGetter = this.params.footerValueGetter;\n var footerValue;\n if (footerValueGetter) {\n // params is same as we were given, except we set the value as the item to display\n var paramsClone = cloneObject(this.params);\n paramsClone.value = this.params.value;\n if (typeof footerValueGetter === 'function') {\n footerValue = footerValueGetter(paramsClone);\n }\n else if (typeof footerValueGetter === 'string') {\n footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);\n }\n else {\n console.warn('AG Grid: footerValueGetter should be either a function or a string (expression)');\n }\n }\n else {\n footerValue = 'Total ' + (this.params.value != null ? this.params.value : '');\n }\n this.eValue.innerHTML = footerValue;\n };\n GroupCellRenderer.prototype.addGroupValue = function () {\n var _this = this;\n var params = this.params;\n var rowGroupColumn = this.displayedGroup.rowGroupColumn;\n // we try and use the cellRenderer of the column used for the grouping if we can\n var columnToUse = rowGroupColumn ? rowGroupColumn : params.column;\n var groupName = this.params.value;\n var valueFormatted = columnToUse ?\n this.valueFormatterService.formatValue(columnToUse, params.node, params.scope, groupName) : null;\n params.valueFormatted = valueFormatted;\n var rendererPromise;\n rendererPromise = params.fullWidth\n ? this.useFullWidth(params)\n : this.useInnerRenderer(this.params.colDef.cellRendererParams, columnToUse.getColDef(), params);\n // retain a reference to the created renderer - we'll use this later for cleanup (in destroy)\n if (rendererPromise) {\n rendererPromise.then(function (value) {\n _this.innerCellRenderer = value;\n });\n }\n };\n GroupCellRenderer.prototype.useInnerRenderer = function (groupCellRendererParams, groupedColumnDef, // the column this group row is for, eg 'Country'\n params) {\n var _this = this;\n // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country\n // and then rating, we will use the country cell renderer for each country group row and likewise the rating\n // cell renderer for each rating group row.\n //\n // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers\n // of the grouped columns.\n //\n // so we check and use in the following order:\n //\n // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)\n // 2) groupedColDef.cellRenderer of the grouped column\n // 3) groupedColDef.cellRendererParams.innerRenderer\n var cellRendererPromise = null;\n // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer\n var groupInnerRendererClass = this.userComponentFactory\n .lookupComponentClassDef(groupCellRendererParams, \"innerRenderer\");\n if (groupInnerRendererClass && groupInnerRendererClass.component != null\n && groupInnerRendererClass.source != ComponentSource.DEFAULT) {\n // use the renderer defined in cellRendererParams.innerRenderer\n cellRendererPromise = this.userComponentFactory.newInnerCellRenderer(groupCellRendererParams, params);\n }\n else {\n // otherwise see if we can use the cellRenderer of the column we are grouping by\n var groupColumnRendererClass = this.userComponentFactory\n .lookupComponentClassDef(groupedColumnDef, \"cellRenderer\");\n if (groupColumnRendererClass &&\n groupColumnRendererClass.source != ComponentSource.DEFAULT) {\n // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it\n cellRendererPromise = this.userComponentFactory.newCellRenderer(groupedColumnDef, params);\n }\n else if (groupColumnRendererClass &&\n groupColumnRendererClass.source == ComponentSource.DEFAULT &&\n (get(groupedColumnDef, 'cellRendererParams.innerRenderer', null))) {\n // EDGE CASE - THIS COMES FROM A COLUMN WHICH HAS BEEN GROUPED DYNAMICALLY, THAT HAS AS RENDERER 'group'\n // AND HAS A INNER CELL RENDERER\n cellRendererPromise = this.userComponentFactory.newInnerCellRenderer(groupedColumnDef.cellRendererParams, params);\n }\n else {\n // This forces the retrieval of the default plain cellRenderer that just renders the values.\n cellRendererPromise = this.userComponentFactory.newCellRenderer({}, params);\n }\n }\n if (cellRendererPromise != null) {\n cellRendererPromise.then(function (rendererToUse) {\n if (rendererToUse == null) {\n _this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;\n return;\n }\n bindCellRendererToHtmlElement(cellRendererPromise, _this.eValue);\n });\n }\n else {\n this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;\n }\n return cellRendererPromise;\n };\n GroupCellRenderer.prototype.useFullWidth = function (params) {\n var cellRendererPromise = this.userComponentFactory.newFullWidthGroupRowInnerCellRenderer(params);\n if (cellRendererPromise != null) {\n bindCellRendererToHtmlElement(cellRendererPromise, this.eValue);\n }\n else {\n this.eValue.innerText = params.valueFormatted != null ? params.valueFormatted : params.value;\n }\n return cellRendererPromise;\n };\n GroupCellRenderer.prototype.addFullWidthRowDraggerIfNeeded = function () {\n var _this = this;\n if (!this.params.fullWidth || !this.params.rowDrag) {\n return;\n }\n var rowDragComp = new RowDragComp(function () { return _this.params.value; }, this.params.node);\n this.createManagedBean(rowDragComp, this.context);\n this.getGui().insertAdjacentElement('afterbegin', rowDragComp.getGui());\n };\n GroupCellRenderer.prototype.addChildCount = function () {\n // only include the child count if it's included, eg if user doing custom aggregation,\n // then this could be left out, or set to -1, ie no child count\n if (this.params.suppressCount) {\n return;\n }\n this.addManagedListener(this.displayedGroup, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));\n // filtering changes the child count, so need to cater for it\n this.updateChildCount();\n };\n GroupCellRenderer.prototype.updateChildCount = function () {\n var allChildrenCount = this.displayedGroup.allChildrenCount;\n var showingGroupForThisNode = this.isShowRowGroupForThisRow();\n var showCount = showingGroupForThisNode && allChildrenCount != null && allChildrenCount >= 0;\n var countString = showCount ? \"(\" + allChildrenCount + \")\" : \"\";\n this.eChildCount.innerHTML = countString;\n };\n GroupCellRenderer.prototype.isUserWantsSelected = function () {\n var paramsCheckbox = this.params.checkbox;\n if (typeof paramsCheckbox === 'function') {\n return paramsCheckbox(this.params);\n }\n return paramsCheckbox === true;\n };\n GroupCellRenderer.prototype.addCheckboxIfNeeded = function () {\n var _this = this;\n var rowNode = this.displayedGroup;\n var checkboxNeeded = this.isUserWantsSelected() &&\n // footers cannot be selected\n !rowNode.footer &&\n // pinned rows cannot be selected\n !rowNode.rowPinned &&\n // details cannot be selected\n !rowNode.detail;\n if (checkboxNeeded) {\n var cbSelectionComponent_1 = new CheckboxSelectionComponent();\n this.getContext().createBean(cbSelectionComponent_1);\n cbSelectionComponent_1.init({ rowNode: rowNode, column: this.params.column });\n this.eCheckbox.appendChild(cbSelectionComponent_1.getGui());\n this.addDestroyFunc(function () { return _this.getContext().destroyBean(cbSelectionComponent_1); });\n }\n addOrRemoveCssClass(this.eCheckbox, 'ag-invisible', !checkboxNeeded);\n };\n GroupCellRenderer.prototype.addExpandAndContract = function () {\n var params = this.params;\n var eGroupCell = params.eGridCell;\n var eExpandedIcon = createIconNoSpan('groupExpanded', this.gridOptionsWrapper, null);\n var eContractedIcon = createIconNoSpan('groupContracted', this.gridOptionsWrapper, null);\n setAriaExpanded(eGroupCell, !!params.node.expanded);\n if (eExpandedIcon) {\n this.eExpanded.appendChild(eExpandedIcon);\n }\n if (eContractedIcon) {\n this.eContracted.appendChild(eContractedIcon);\n }\n this.addManagedListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eContracted, 'click', this.onExpandClicked.bind(this));\n // expand / contract as the user hits enter\n this.addManagedListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));\n this.addManagedListener(params.node, RowNode.EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));\n this.showExpandAndContractIcons();\n // because we don't show the expand / contract when there are no children, we need to check every time\n // the number of children change.\n var expandableChangedListener = this.onRowNodeIsExpandableChanged.bind(this);\n this.addManagedListener(this.displayedGroup, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroup, RowNode.EVENT_MASTER_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroup, RowNode.EVENT_HAS_CHILDREN_CHANGED, expandableChangedListener);\n // if editing groups, then double click is to start editing\n if (!this.gridOptionsWrapper.isEnableGroupEdit() && this.isExpandable() && !params.suppressDoubleClickExpand) {\n this.addManagedListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));\n }\n };\n GroupCellRenderer.prototype.onRowNodeIsExpandableChanged = function () {\n // maybe if no children now, we should hide the expand / contract icons\n this.showExpandAndContractIcons();\n // if we have no children, this impacts the indent\n this.setIndent();\n };\n GroupCellRenderer.prototype.onKeyDown = function (event) {\n var enterKeyPressed = isKeyPressed(event, KeyCode.ENTER);\n if (!enterKeyPressed || this.params.suppressEnterExpand) {\n return;\n }\n var cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);\n if (cellEditable) {\n return;\n }\n this.onExpandOrContract();\n };\n GroupCellRenderer.prototype.setupDragOpenParents = function () {\n var column = this.params.column;\n var rowNode = this.params.node;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {\n this.draggedFromHideOpenParents = false;\n }\n else if (!rowNode.hasChildren()) {\n // if we are here, and we are not a group, then we must of been dragged down,\n // as otherwise the cell would be blank, and if cell is blank, this method is never called.\n this.draggedFromHideOpenParents = true;\n }\n else {\n var rowGroupColumn = rowNode.rowGroupColumn;\n if (rowGroupColumn) {\n // if the displayGroup column for this col matches the rowGroupColumn we grouped by for this node,\n // then nothing was dragged down\n this.draggedFromHideOpenParents = !column.isRowGroupDisplayed(rowGroupColumn.getId());\n }\n else {\n // the only way we can end up here (no column, but a group) is if we are at the root node,\n // which only happens when 'groupIncludeTotalFooter' is true. here, we are never dragging\n this.draggedFromHideOpenParents = false;\n }\n }\n if (this.draggedFromHideOpenParents) {\n var pointer = rowNode.parent;\n while (true) {\n if (missing(pointer)) {\n break;\n }\n if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {\n this.displayedGroup = pointer;\n break;\n }\n pointer = pointer.parent;\n }\n }\n // if we didn't find a displayed group, set it to the row node\n if (missing(this.displayedGroup)) {\n this.displayedGroup = rowNode;\n }\n };\n GroupCellRenderer.prototype.onExpandClicked = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // so if we expand a node, it does not also get selected.\n stopPropagationForAgGrid(mouseEvent);\n this.onExpandOrContract();\n };\n GroupCellRenderer.prototype.onCellDblClicked = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // we want to avoid acting on double click events on the expand / contract icon,\n // as that icons already has expand / collapse functionality on it. otherwise if\n // the icon was double clicked, we would get 'click', 'click', 'dblclick' which\n // is open->close->open, however double click should be open->close only.\n var targetIsExpandIcon = isElementInEventPath(this.eExpanded, mouseEvent)\n || isElementInEventPath(this.eContracted, mouseEvent);\n if (!targetIsExpandIcon) {\n this.onExpandOrContract();\n }\n };\n GroupCellRenderer.prototype.onExpandOrContract = function () {\n // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row\n var rowNode = this.displayedGroup;\n var params = this.params;\n var nextExpandState = !rowNode.expanded;\n rowNode.setExpanded(nextExpandState);\n setAriaExpanded(params.eGridCell, nextExpandState);\n };\n GroupCellRenderer.prototype.isShowRowGroupForThisRow = function () {\n if (this.gridOptionsWrapper.isTreeData()) {\n return true;\n }\n var rowGroupColumn = this.displayedGroup.rowGroupColumn;\n if (!rowGroupColumn) {\n return false;\n }\n // column is null for fullWidthRows\n var column = this.params.column;\n var thisColumnIsInterested = column == null || column.isRowGroupDisplayed(rowGroupColumn.getId());\n return thisColumnIsInterested;\n };\n GroupCellRenderer.prototype.isExpandable = function () {\n if (this.draggedFromHideOpenParents) {\n return true;\n }\n var rowNode = this.displayedGroup;\n var reducedLeafNode = this.columnController.isPivotMode() && rowNode.leafGroup;\n var expandableGroup = rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode;\n if (!expandableGroup) {\n return false;\n }\n // column is null for fullWidthRows\n var column = this.params.column;\n var displayingForOneColumnOnly = column != null && typeof column.getColDef().showRowGroup === 'string';\n if (displayingForOneColumnOnly) {\n var showing = this.isShowRowGroupForThisRow();\n return showing;\n }\n return true;\n };\n GroupCellRenderer.prototype.showExpandAndContractIcons = function () {\n var _a = this, eContracted = _a.eContracted, eExpanded = _a.eExpanded, params = _a.params, displayedGroup = _a.displayedGroup, columnController = _a.columnController;\n var eGridCell = params.eGridCell, node = params.node;\n var isExpandable = this.isExpandable();\n if (isExpandable) {\n // if expandable, show one based on expand state.\n // if we were dragged down, means our parent is always expanded\n var expanded = this.draggedFromHideOpenParents ? true : node.expanded;\n setDisplayed(eContracted, !expanded);\n setDisplayed(eExpanded, expanded);\n }\n else {\n // it not expandable, show neither\n removeAriaExpanded(eGridCell);\n setDisplayed(eExpanded, false);\n setDisplayed(eContracted, false);\n }\n // compensation padding for leaf nodes, so there is blank space instead of the expand icon\n var pivotMode = columnController.isPivotMode();\n var pivotModeAndLeafGroup = pivotMode && displayedGroup.leafGroup;\n var addExpandableCss = isExpandable && !pivotModeAndLeafGroup;\n var isTotalFooterNode = node.footer && node.level === -1;\n this.addOrRemoveCssClass('ag-cell-expandable', addExpandableCss);\n this.addOrRemoveCssClass('ag-row-group', addExpandableCss);\n if (pivotMode) {\n this.addOrRemoveCssClass('ag-pivot-leaf-group', pivotModeAndLeafGroup);\n }\n else if (!isTotalFooterNode) {\n this.addOrRemoveCssClass('ag-row-group-leaf-indent', !addExpandableCss);\n }\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to have public here instead of private or protected\n GroupCellRenderer.prototype.destroy = function () {\n this.getContext().destroyBean(this.innerCellRenderer);\n _super.prototype.destroy.call(this);\n };\n GroupCellRenderer.prototype.refresh = function () {\n return false;\n };\n GroupCellRenderer.TEMPLATE = \"\\n \\n \\n \\n \\n \\n \";\n __decorate$n([\n Autowired('rowRenderer')\n ], GroupCellRenderer.prototype, \"rowRenderer\", void 0);\n __decorate$n([\n Autowired('expressionService')\n ], GroupCellRenderer.prototype, \"expressionService\", void 0);\n __decorate$n([\n Autowired('valueFormatterService')\n ], GroupCellRenderer.prototype, \"valueFormatterService\", void 0);\n __decorate$n([\n Autowired('columnController')\n ], GroupCellRenderer.prototype, \"columnController\", void 0);\n __decorate$n([\n Autowired('userComponentFactory')\n ], GroupCellRenderer.prototype, \"userComponentFactory\", void 0);\n __decorate$n([\n RefSelector('eExpanded')\n ], GroupCellRenderer.prototype, \"eExpanded\", void 0);\n __decorate$n([\n RefSelector('eContracted')\n ], GroupCellRenderer.prototype, \"eContracted\", void 0);\n __decorate$n([\n RefSelector('eCheckbox')\n ], GroupCellRenderer.prototype, \"eCheckbox\", void 0);\n __decorate$n([\n RefSelector('eValue')\n ], GroupCellRenderer.prototype, \"eValue\", void 0);\n __decorate$n([\n RefSelector('eChildCount')\n ], GroupCellRenderer.prototype, \"eChildCount\", void 0);\n return GroupCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$l = (undefined && undefined.__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$o = (undefined && undefined.__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 ARROW_UP = '\\u2191';\nvar ARROW_DOWN = '\\u2193';\nvar AnimateShowChangeCellRenderer = /** @class */ (function (_super) {\n __extends$l(AnimateShowChangeCellRenderer, _super);\n function AnimateShowChangeCellRenderer() {\n var _this = _super.call(this, AnimateShowChangeCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n return _this;\n }\n AnimateShowChangeCellRenderer.prototype.init = function (params) {\n // this.params = params;\n this.eValue = this.queryForHtmlElement('.ag-value-change-value');\n this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');\n this.refresh(params);\n };\n AnimateShowChangeCellRenderer.prototype.showDelta = function (params, delta) {\n var absDelta = Math.abs(delta);\n var valueFormatted = params.formatValue(absDelta);\n var valueToUse = exists(valueFormatted) ? valueFormatted : absDelta;\n var deltaUp = (delta >= 0);\n if (deltaUp) {\n this.eDelta.innerHTML = ARROW_UP + valueToUse;\n }\n else {\n // because negative, use ABS to remove sign\n this.eDelta.innerHTML = ARROW_DOWN + valueToUse;\n }\n addOrRemoveCssClass(this.eDelta, 'ag-value-change-delta-up', deltaUp);\n addOrRemoveCssClass(this.eDelta, 'ag-value-change-delta-down', !deltaUp);\n };\n AnimateShowChangeCellRenderer.prototype.setTimerToRemoveDelta = function () {\n var _this = this;\n // the refreshCount makes sure that if the value updates again while\n // the below timer is waiting, then the below timer will realise it\n // is not the most recent and will not try to remove the delta value.\n this.refreshCount++;\n var refreshCountCopy = this.refreshCount;\n window.setTimeout(function () {\n if (refreshCountCopy === _this.refreshCount) {\n _this.hideDeltaValue();\n }\n }, 2000);\n };\n AnimateShowChangeCellRenderer.prototype.hideDeltaValue = function () {\n removeCssClass(this.eValue, 'ag-value-change-value-highlight');\n clearElement(this.eDelta);\n };\n AnimateShowChangeCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (value === this.lastValue) {\n return false;\n }\n if (exists(params.valueFormatted)) {\n this.eValue.innerHTML = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eValue.innerHTML = value;\n }\n else {\n clearElement(this.eValue);\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n if (typeof value === 'number' && typeof this.lastValue === 'number') {\n var delta = value - this.lastValue;\n this.showDelta(params, delta);\n }\n // highlight the current value, but only if it's not new, otherwise it\n // would get highlighted first time the value is shown\n if (this.lastValue) {\n addCssClass(this.eValue, 'ag-value-change-value-highlight');\n }\n this.setTimerToRemoveDelta();\n this.lastValue = value;\n return true;\n };\n AnimateShowChangeCellRenderer.TEMPLATE = '' +\n '' +\n '' +\n '';\n __decorate$o([\n Autowired('filterManager')\n ], AnimateShowChangeCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateShowChangeCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$m = (undefined && undefined.__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$p = (undefined && undefined.__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 AnimateSlideCellRenderer = /** @class */ (function (_super) {\n __extends$m(AnimateSlideCellRenderer, _super);\n function AnimateSlideCellRenderer() {\n var _this = _super.call(this, AnimateSlideCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n _this.eCurrent = _this.queryForHtmlElement('.ag-value-slide-current');\n return _this;\n }\n AnimateSlideCellRenderer.prototype.init = function (params) {\n this.refresh(params);\n };\n AnimateSlideCellRenderer.prototype.addSlideAnimation = function () {\n var _this = this;\n this.refreshCount++;\n // below we keep checking this, and stop working on the animation\n // if it no longer matches - this means another animation has started\n // and this one is stale.\n var refreshCountCopy = this.refreshCount;\n // if old animation, remove it\n if (this.ePrevious) {\n this.getGui().removeChild(this.ePrevious);\n }\n this.ePrevious = loadTemplate('');\n this.ePrevious.innerHTML = this.eCurrent.innerHTML;\n this.getGui().insertBefore(this.ePrevious, this.eCurrent);\n // having timeout of 0 allows use to skip to the next css turn,\n // so we know the previous css classes have been applied. so the\n // complex set of setTimeout below creates the animation\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n addCssClass(_this.ePrevious, 'ag-value-slide-out-end');\n }, 50);\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n _this.getGui().removeChild(_this.ePrevious);\n _this.ePrevious = null;\n }, 3000);\n };\n AnimateSlideCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (missing(value)) {\n value = '';\n }\n if (value === this.lastValue) {\n return false;\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n this.addSlideAnimation();\n this.lastValue = value;\n if (exists(params.valueFormatted)) {\n this.eCurrent.innerHTML = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eCurrent.innerHTML = value;\n }\n else {\n clearElement(this.eCurrent);\n }\n return true;\n };\n AnimateSlideCellRenderer.TEMPLATE = \"\\n \\n \";\n __decorate$p([\n Autowired('filterManager')\n ], AnimateSlideCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateSlideCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$n = (undefined && undefined.__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$q = (undefined && undefined.__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 LoadingCellRenderer = /** @class */ (function (_super) {\n __extends$n(LoadingCellRenderer, _super);\n function LoadingCellRenderer() {\n return _super.call(this, LoadingCellRenderer.TEMPLATE) || this;\n }\n LoadingCellRenderer.prototype.init = function (params) {\n params.node.failedLoad ? this.setupFailed() : this.setupLoading();\n };\n LoadingCellRenderer.prototype.setupFailed = function () {\n this.eLoadingText.innerText = 'ERR';\n };\n LoadingCellRenderer.prototype.setupLoading = function () {\n var eLoadingIcon = createIconNoSpan('groupLoading', this.gridOptionsWrapper, null);\n if (eLoadingIcon) {\n this.eLoadingIcon.appendChild(eLoadingIcon);\n }\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');\n };\n LoadingCellRenderer.prototype.refresh = function (params) {\n return false;\n };\n LoadingCellRenderer.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$q([\n RefSelector('eLoadingIcon')\n ], LoadingCellRenderer.prototype, \"eLoadingIcon\", void 0);\n __decorate$q([\n RefSelector('eLoadingText')\n ], LoadingCellRenderer.prototype, \"eLoadingText\", void 0);\n return LoadingCellRenderer;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$o = (undefined && undefined.__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$r = (undefined && undefined.__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 SelectCellEditor = /** @class */ (function (_super) {\n __extends$o(SelectCellEditor, _super);\n function SelectCellEditor() {\n var _this = _super.call(this, '
') || this;\n _this.startedByEnter = false;\n return _this;\n }\n SelectCellEditor.prototype.init = function (params) {\n var _this = this;\n this.focusAfterAttached = params.cellStartedEdit;\n if (missing(params.values)) {\n console.warn('AG Grid: no values found for select cellEditor');\n return;\n }\n this.startedByEnter = params.keyPress === KeyCode.ENTER;\n var hasValue = false;\n params.values.forEach(function (value) {\n var option = { value: value };\n var valueFormatted = _this.valueFormatterService.formatValue(params.column, null, null, value);\n var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;\n option.text = valueFormattedExits ? valueFormatted : value;\n _this.eSelect.addOption(option);\n hasValue = hasValue || params.value === value;\n });\n if (hasValue) {\n this.eSelect.setValue(params.value, true);\n }\n else if (params.values.length) {\n this.eSelect.setValue(params.values[0], true);\n }\n // we don't want to add this if full row editing, otherwise selecting will stop the\n // full row editing.\n if (!this.gridOptionsWrapper.isFullRowEdit()) {\n this.eSelect.onValueChange(function () { return params.stopEditing(); });\n }\n };\n SelectCellEditor.prototype.afterGuiAttached = function () {\n if (this.focusAfterAttached) {\n this.eSelect.getFocusableElement().focus();\n }\n if (this.startedByEnter) {\n this.eSelect.showPicker();\n }\n };\n SelectCellEditor.prototype.focusIn = function () {\n this.eSelect.getFocusableElement().focus();\n };\n SelectCellEditor.prototype.getValue = function () {\n return this.eSelect.getValue();\n };\n SelectCellEditor.prototype.isPopup = function () {\n return false;\n };\n __decorate$r([\n Autowired('valueFormatterService')\n ], SelectCellEditor.prototype, \"valueFormatterService\", void 0);\n __decorate$r([\n RefSelector('eSelect')\n ], SelectCellEditor.prototype, \"eSelect\", void 0);\n return SelectCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$p = (undefined && undefined.__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 PopupTextCellEditor = /** @class */ (function (_super) {\n __extends$p(PopupTextCellEditor, _super);\n function PopupTextCellEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PopupTextCellEditor.prototype.isPopup = function () {\n return true;\n };\n return PopupTextCellEditor;\n}(TextCellEditor));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$q = (undefined && undefined.__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 PopupSelectCellEditor = /** @class */ (function (_super) {\n __extends$q(PopupSelectCellEditor, _super);\n function PopupSelectCellEditor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PopupSelectCellEditor.prototype.isPopup = function () {\n return true;\n };\n return PopupSelectCellEditor;\n}(SelectCellEditor));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$r = (undefined && undefined.__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$s = (undefined && undefined.__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 LargeTextCellEditor = /** @class */ (function (_super) {\n __extends$r(LargeTextCellEditor, _super);\n function LargeTextCellEditor() {\n return _super.call(this, LargeTextCellEditor.TEMPLATE) || this;\n }\n LargeTextCellEditor.prototype.init = function (params) {\n this.params = params;\n this.focusAfterAttached = params.cellStartedEdit;\n this.eTextArea\n .setMaxLength(params.maxLength || 200)\n .setCols(params.cols || 60)\n .setRows(params.rows || 10);\n if (exists(params.value)) {\n this.eTextArea.setValue(params.value.toString(), true);\n }\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n };\n LargeTextCellEditor.prototype.onKeyDown = function (event) {\n var key = event.which || event.keyCode;\n if (key === KeyCode.LEFT ||\n key === KeyCode.UP ||\n key === KeyCode.RIGHT ||\n key === KeyCode.DOWN ||\n (event.shiftKey && key === KeyCode.ENTER)) { // shift+enter allows for newlines\n event.stopPropagation();\n }\n };\n LargeTextCellEditor.prototype.afterGuiAttached = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eTextArea.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (this.focusAfterAttached) {\n this.eTextArea.getFocusableElement().focus();\n }\n };\n LargeTextCellEditor.prototype.getValue = function () {\n return this.params.parseValue(this.eTextArea.getValue());\n };\n LargeTextCellEditor.TEMPLATE = \"
\\n \\n
\";\n __decorate$s([\n RefSelector(\"eTextArea\")\n ], LargeTextCellEditor.prototype, \"eTextArea\", void 0);\n return LargeTextCellEditor;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$s = (undefined && undefined.__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$t = (undefined && undefined.__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 NumberFilter = /** @class */ (function (_super) {\n __extends$s(NumberFilter, _super);\n function NumberFilter() {\n return _super.call(this, 'numberFilter') || this;\n }\n NumberFilter.prototype.mapRangeFromModel = function (filterModel) {\n return {\n from: filterModel.filter,\n to: filterModel.filterTo\n };\n };\n NumberFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n NumberFilter.prototype.resetUiToDefaults = function (silent) {\n var _this = this;\n return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {\n var fields = [_this.eValueFrom1, _this.eValueFrom2, _this.eValueTo1, _this.eValueTo2];\n fields.forEach(function (field) { return field.setValue(null, silent); });\n _this.resetPlaceholder();\n });\n };\n NumberFilter.prototype.setConditionIntoUi = function (model, position) {\n var positionOne = position === ConditionPosition.One;\n var eValueFrom = positionOne ? this.eValueFrom1 : this.eValueFrom2;\n var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;\n eValueFrom.setValue(model ? ('' + model.filter) : null);\n eValueTo.setValue(model ? ('' + model.filterTo) : null);\n };\n NumberFilter.prototype.setValueFromFloatingFilter = function (value) {\n this.eValueFrom1.setValue(value);\n this.eValueTo1.setValue(null);\n this.eValueFrom2.setValue(null);\n this.eValueTo2.setValue(null);\n };\n NumberFilter.prototype.comparator = function () {\n return function (left, right) {\n if (left === right) {\n return 0;\n }\n return left < right ? 1 : -1;\n };\n };\n NumberFilter.prototype.setParams = function (params) {\n this.numberFilterParams = params;\n var allowedCharPattern = this.getAllowedCharPattern();\n if (allowedCharPattern) {\n var config = { allowedCharPattern: allowedCharPattern };\n this.resetTemplate({\n eValueFrom1: config,\n eValueTo1: config,\n eValueFrom2: config,\n eValueTo2: config,\n });\n }\n _super.prototype.setParams.call(this, params);\n this.addValueChangedListeners();\n };\n NumberFilter.prototype.addValueChangedListeners = function () {\n var _this = this;\n var listener = function () { return _this.onUiChanged(); };\n this.eValueFrom1.onValueChange(listener);\n this.eValueTo1.onValueChange(listener);\n this.eValueFrom2.onValueChange(listener);\n this.eValueTo2.onValueChange(listener);\n };\n NumberFilter.prototype.resetPlaceholder = function () {\n var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();\n var isRange1 = this.showValueTo(this.getCondition1Type());\n var isRange2 = this.showValueTo(this.getCondition2Type());\n this.eValueFrom1.setInputPlaceholder(this.translate(isRange1 ? 'inRangeStart' : 'filterOoo'));\n this.eValueFrom1.setInputAriaLabel(isRange1\n ? globalTranslate('ariaFilterFromValue', 'Filter from value')\n : globalTranslate('ariaFilterValue', 'Filter Value'));\n this.eValueTo1.setInputPlaceholder(this.translate('inRangeEnd'));\n this.eValueTo1.setInputAriaLabel(globalTranslate('ariaFilterToValue', 'Filter to Value'));\n this.eValueFrom2.setInputPlaceholder(this.translate(isRange2 ? 'inRangeStart' : 'filterOoo'));\n this.eValueFrom2.setInputAriaLabel(isRange2\n ? globalTranslate('ariaFilterFromValue', 'Filter from value')\n : globalTranslate('ariaFilterValue', 'Filter Value'));\n this.eValueTo2.setInputPlaceholder(this.translate('inRangeEnd'));\n this.eValueTo2.setInputAriaLabel(globalTranslate('ariaFilterToValue', 'Filter to Value'));\n };\n NumberFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.resetPlaceholder();\n if (!params || !params.suppressFocus) {\n this.eValueFrom1.getInputElement().focus();\n }\n };\n NumberFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n NumberFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n var allowedCharPattern = this.getAllowedCharPattern();\n var agElementTag = allowedCharPattern ? 'ag-input-text-field' : 'ag-input-number-field';\n return /* html */ \"\\n
\\n <\" + agElementTag + \" class=\\\"ag-filter-from ag-filter-filter\\\" ref=\\\"eValueFrom\" + pos + \"\\\">\\n <\" + agElementTag + \" class=\\\"ag-filter-to ag-filter-filter\\\" ref=\\\"eValueTo\" + pos + \"\\\">\\n
\";\n };\n NumberFilter.prototype.isConditionUiComplete = function (position) {\n var positionOne = position === ConditionPosition.One;\n var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();\n if (option === SimpleFilter.EMPTY) {\n return false;\n }\n if (this.doesFilterHaveHiddenInput(option)) {\n return true;\n }\n var eValue = positionOne ? this.eValueFrom1 : this.eValueFrom2;\n var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;\n var value = this.stringToFloat(eValue.getValue());\n return value != null && (!this.showValueTo(option) || this.stringToFloat(eValueTo.getValue()) != null);\n };\n NumberFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.filter === bSimple.filter\n && aSimple.filterTo === bSimple.filterTo\n && aSimple.type === bSimple.type;\n };\n NumberFilter.prototype.getFilterType = function () {\n return 'number';\n };\n NumberFilter.prototype.stringToFloat = function (value) {\n if (typeof value === 'number') {\n return value;\n }\n var filterText = makeNull(value);\n if (filterText != null && filterText.trim() === '') {\n filterText = null;\n }\n if (this.numberFilterParams.numberParser) {\n return this.numberFilterParams.numberParser(filterText);\n }\n return filterText == null || filterText.trim() === '-' ? null : parseFloat(filterText);\n };\n NumberFilter.prototype.createCondition = function (position) {\n var positionOne = position === ConditionPosition.One;\n var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();\n var eValue = positionOne ? this.eValueFrom1 : this.eValueFrom2;\n var value = this.stringToFloat(eValue.getValue());\n var model = {\n filterType: this.getFilterType(),\n type: type\n };\n if (!this.doesFilterHaveHiddenInput(type)) {\n model.filter = value;\n if (this.showValueTo(type)) {\n var eValueTo = positionOne ? this.eValueTo1 : this.eValueTo2;\n var valueTo = this.stringToFloat(eValueTo.getValue());\n model.filterTo = valueTo;\n }\n }\n return model;\n };\n NumberFilter.prototype.updateUiVisibility = function () {\n _super.prototype.updateUiVisibility.call(this);\n this.resetPlaceholder();\n var condition1Type = this.getCondition1Type();\n var condition2Type = this.getCondition2Type();\n setDisplayed(this.eValueFrom1.getGui(), this.showValueFrom(condition1Type));\n setDisplayed(this.eValueTo1.getGui(), this.showValueTo(condition1Type));\n setDisplayed(this.eValueFrom2.getGui(), this.showValueFrom(condition2Type));\n setDisplayed(this.eValueTo2.getGui(), this.showValueTo(condition2Type));\n };\n NumberFilter.prototype.getAllowedCharPattern = function () {\n var allowedCharPattern = (this.numberFilterParams || {}).allowedCharPattern;\n if (allowedCharPattern) {\n return allowedCharPattern;\n }\n if (!isBrowserChrome() && !isBrowserEdge()) {\n // only Chrome and Edge support the HTML5 number field, so for other browsers we provide an equivalent\n // constraint instead\n return '\\\\d\\\\-\\\\.';\n }\n return null;\n };\n NumberFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.LESS_THAN,\n ScalarFilter.LESS_THAN_OR_EQUAL,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.GREATER_THAN_OR_EQUAL,\n ScalarFilter.IN_RANGE\n ];\n __decorate$t([\n RefSelector('eValueFrom1')\n ], NumberFilter.prototype, \"eValueFrom1\", void 0);\n __decorate$t([\n RefSelector('eValueTo1')\n ], NumberFilter.prototype, \"eValueTo1\", void 0);\n __decorate$t([\n RefSelector('eValueFrom2')\n ], NumberFilter.prototype, \"eValueFrom2\", void 0);\n __decorate$t([\n RefSelector('eValueTo2')\n ], NumberFilter.prototype, \"eValueTo2\", void 0);\n return NumberFilter;\n}(ScalarFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$t = (undefined && undefined.__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 LoadingOverlayComponent$1 = /** @class */ (function (_super) {\n __extends$t(LoadingOverlayComponent, _super);\n function LoadingOverlayComponent() {\n return _super.call(this) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n LoadingOverlayComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n LoadingOverlayComponent.prototype.init = function (params) {\n var template = this.gridOptionsWrapper.getOverlayLoadingTemplate() ?\n this.gridOptionsWrapper.getOverlayLoadingTemplate() : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var localisedTemplate = template.replace('[LOADING...]', localeTextFunc('loadingOoo', 'Loading...'));\n this.setTemplate(localisedTemplate);\n };\n LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = '[LOADING...]';\n return LoadingOverlayComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$u = (undefined && undefined.__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 NoRowsOverlayComponent$1 = /** @class */ (function (_super) {\n __extends$u(NoRowsOverlayComponent, _super);\n function NoRowsOverlayComponent() {\n return _super.call(this) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n NoRowsOverlayComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n NoRowsOverlayComponent.prototype.init = function (params) {\n var template = this.gridOptionsWrapper.getOverlayNoRowsTemplate() ?\n this.gridOptionsWrapper.getOverlayNoRowsTemplate() : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var localisedTemplate = template.replace('[NO_ROWS_TO_SHOW]', localeTextFunc('noRowsToShow', 'No Rows To Show'));\n this.setTemplate(localisedTemplate);\n };\n NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = '[NO_ROWS_TO_SHOW]';\n return NoRowsOverlayComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$v = (undefined && undefined.__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 TooltipComponent$1 = /** @class */ (function (_super) {\n __extends$v(TooltipComponent, _super);\n function TooltipComponent() {\n return _super.call(this, /* html */ \"
\") || this;\n }\n // will need to type params\n TooltipComponent.prototype.init = function (params) {\n var value = params.value;\n this.getGui().innerHTML = value;\n };\n return TooltipComponent;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$w = (undefined && undefined.__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$u = (undefined && undefined.__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 DefaultDateComponent = /** @class */ (function (_super) {\n __extends$w(DefaultDateComponent, _super);\n function DefaultDateComponent() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n DefaultDateComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n DefaultDateComponent.prototype.init = function (params) {\n var inputElement = this.eDateInput.getInputElement();\n if (this.shouldUseBrowserDatePicker(params)) {\n if (isBrowserIE()) {\n console.warn('ag-grid: browserDatePicker is specified to true, but it is not supported in IE 11; reverting to text date picker');\n }\n else {\n inputElement.type = 'date';\n }\n }\n // ensures that the input element is focussed when a clear button is clicked\n this.addManagedListener(inputElement, 'mousedown', function () { return inputElement.focus(); });\n this.addManagedListener(this.eDateInput.getInputElement(), 'input', function (e) {\n if (e.target !== document.activeElement) {\n return;\n }\n params.onDateChanged();\n });\n };\n DefaultDateComponent.prototype.getDate = function () {\n return parseDateTimeFromString(this.eDateInput.getValue());\n };\n DefaultDateComponent.prototype.setDate = function (date) {\n this.eDateInput.setValue(serialiseDate(date, false));\n };\n DefaultDateComponent.prototype.setInputPlaceholder = function (placeholder) {\n this.eDateInput.setInputPlaceholder(placeholder);\n };\n DefaultDateComponent.prototype.afterGuiAttached = function (params) {\n if (!params || !params.suppressFocus) {\n this.eDateInput.getInputElement().focus();\n }\n };\n DefaultDateComponent.prototype.shouldUseBrowserDatePicker = function (params) {\n if (params.filterParams && params.filterParams.browserDatePicker != null) {\n return params.filterParams.browserDatePicker;\n }\n return isBrowserChrome() || isBrowserFirefox();\n };\n __decorate$u([\n RefSelector('eDateInput')\n ], DefaultDateComponent.prototype, \"eDateInput\", void 0);\n return DefaultDateComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$x = (undefined && undefined.__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 SimpleFloatingFilter = /** @class */ (function (_super) {\n __extends$x(SimpleFloatingFilter, _super);\n function SimpleFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 0;\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SimpleFloatingFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n // used by:\n // 1) NumberFloatingFilter & TextFloatingFilter: Always, for both when editable and read only.\n // 2) DateFloatingFilter: Only when read only (as we show text rather than a date picker when read only)\n SimpleFloatingFilter.prototype.getTextFromModel = function (model) {\n if (!model) {\n return null;\n }\n var isCombined = model.operator;\n if (isCombined) {\n var combinedModel = model;\n var con1Str = this.conditionToString(combinedModel.condition1);\n var con2Str = this.conditionToString(combinedModel.condition2);\n return con1Str + \" \" + combinedModel.operator + \" \" + con2Str;\n }\n else {\n var condition = model;\n var customOption = this.optionsFactory.getCustomOption(condition.type);\n // For custom filter options we display the Name of the filter instead\n // of displaying the `from` value, as it wouldn't be relevant\n if (customOption && customOption.hideFilterInput) {\n this.gridOptionsWrapper.getLocaleTextFunc()(customOption.displayKey, customOption.displayName);\n return customOption.displayName;\n }\n return this.conditionToString(condition);\n }\n };\n SimpleFloatingFilter.prototype.isEventFromFloatingFilter = function (event) {\n return event && event.afterFloatingFilter;\n };\n SimpleFloatingFilter.prototype.getLastType = function () {\n return this.lastType;\n };\n SimpleFloatingFilter.prototype.setLastTypeFromModel = function (model) {\n // if no model provided by the parent filter use default\n if (!model) {\n this.lastType = this.optionsFactory.getDefaultOption();\n return;\n }\n var isCombined = model.operator;\n var condition;\n if (isCombined) {\n var combinedModel = model;\n condition = combinedModel.condition1;\n }\n else {\n condition = model;\n }\n this.lastType = condition.type;\n };\n SimpleFloatingFilter.prototype.canWeEditAfterModelFromParentFilter = function (model) {\n if (!model) {\n // if no model, then we can edit as long as the lastType is something we can edit, as this\n // is the type we will provide to the parent filter if the user decides to use the floating filter.\n return this.isTypeEditable(this.lastType);\n }\n // never allow editing if the filter is combined (ie has two parts)\n var isCombined = model.operator;\n if (isCombined) {\n return false;\n }\n var simpleModel = model;\n return this.isTypeEditable(simpleModel.type);\n };\n SimpleFloatingFilter.prototype.init = function (params) {\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params.filterParams, this.getDefaultFilterOptions());\n this.lastType = this.optionsFactory.getDefaultOption();\n // we are editable if:\n // 1) there is a type (user has configured filter wrong if not type)\n // AND\n // 2) the default type is not 'in range'\n var editable = this.isTypeEditable(this.lastType);\n this.setEditable(editable);\n };\n SimpleFloatingFilter.prototype.doesFilterHaveHiddenInput = function (filterType) {\n var customFilterOption = this.optionsFactory.getCustomOption(filterType);\n return customFilterOption && customFilterOption.hideFilterInput;\n };\n SimpleFloatingFilter.prototype.isTypeEditable = function (type) {\n return !!type && !this.doesFilterHaveHiddenInput(type) &&\n type !== SimpleFilter.IN_RANGE\n && type !== SimpleFilter.EMPTY;\n };\n return SimpleFloatingFilter;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$y = (undefined && undefined.__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$v = (undefined && undefined.__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 DateFloatingFilter = /** @class */ (function (_super) {\n __extends$y(DateFloatingFilter, _super);\n function DateFloatingFilter() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\\n
\") || this;\n }\n DateFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n };\n DateFloatingFilter.prototype.conditionToString = function (condition) {\n var type = condition.type;\n var dateFrom = parseDateTimeFromString(condition.dateFrom);\n if (type === SimpleFilter.IN_RANGE) {\n var dateTo = parseDateTimeFromString(condition.dateTo);\n return serialiseDate(dateFrom, false) + \"-\" + serialiseDate(dateTo, false);\n }\n // cater for when the type doesn't need a value\n return dateFrom == null ? \"\" + type : \"\" + serialiseDate(dateFrom, false);\n };\n DateFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.params = params;\n this.createDateComponent();\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eReadOnlyText\n .setDisabled(true)\n .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));\n };\n DateFloatingFilter.prototype.setEditable = function (editable) {\n setDisplayed(this.eDateWrapper, editable);\n setDisplayed(this.eReadOnlyText.getGui(), !editable);\n };\n DateFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n // We don't want to update the floating filter if the floating filter caused the change,\n // because the UI is already in sync. if we didn't do this, the UI would behave strangely\n // as it would be updating as the user is typing\n if (this.isEventFromFloatingFilter(event)) {\n return;\n }\n _super.prototype.setLastTypeFromModel.call(this, model);\n var allowEditing = this.canWeEditAfterModelFromParentFilter(model);\n this.setEditable(allowEditing);\n if (allowEditing) {\n if (model) {\n var dateModel = model;\n this.dateComp.setDate(parseDateTimeFromString(dateModel.dateFrom));\n }\n else {\n this.dateComp.setDate(null);\n }\n this.eReadOnlyText.setValue('');\n }\n else {\n this.eReadOnlyText.setValue(this.getTextFromModel(model));\n this.dateComp.setDate(null);\n }\n };\n DateFloatingFilter.prototype.onDateChanged = function () {\n var _this = this;\n var filterValueDate = this.dateComp.getDate();\n var filterValueText = serialiseDate(filterValueDate);\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n var simpleFilter = filterInstance;\n simpleFilter.onFloatingFilterChanged(_this.getLastType(), filterValueText);\n }\n });\n };\n DateFloatingFilter.prototype.createDateComponent = function () {\n var _this = this;\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n var dateComponentParams = {\n onDateChanged: debounce(this.onDateChanged.bind(this), debounceMs),\n filterParams: this.params.column.getColDef().filterParams\n };\n this.dateComp = new DateCompWrapper(this.getContext(), this.userComponentFactory, dateComponentParams, this.eDateWrapper);\n this.addDestroyFunc(function () { return _this.dateComp.destroy(); });\n };\n __decorate$v([\n Autowired('userComponentFactory')\n ], DateFloatingFilter.prototype, \"userComponentFactory\", void 0);\n __decorate$v([\n RefSelector('eReadOnlyText')\n ], DateFloatingFilter.prototype, \"eReadOnlyText\", void 0);\n __decorate$v([\n RefSelector('eDateWrapper')\n ], DateFloatingFilter.prototype, \"eDateWrapper\", void 0);\n return DateFloatingFilter;\n}(SimpleFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$z = (undefined && undefined.__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$w = (undefined && undefined.__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 TextFilter = /** @class */ (function (_super) {\n __extends$z(TextFilter, _super);\n function TextFilter() {\n return _super.call(this, 'textFilter') || this;\n }\n TextFilter.trimInput = function (value) {\n var trimmedInput = value && value.trim();\n // trim the input, unless it is all whitespace (this is consistent with Excel behaviour)\n return trimmedInput === '' ? value : trimmedInput;\n };\n TextFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextFilter.prototype.getCleanValue = function (inputField) {\n var value = makeNull(inputField.getValue());\n return this.textFilterParams.trimInput ? TextFilter.trimInput(value) : value;\n };\n TextFilter.prototype.addValueChangedListeners = function () {\n var _this = this;\n var listener = function () { return _this.onUiChanged(); };\n this.eValue1.onValueChange(listener);\n this.eValue2.onValueChange(listener);\n };\n TextFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.textFilterParams = params;\n this.comparator = this.textFilterParams.textCustomComparator || TextFilter.DEFAULT_COMPARATOR;\n this.formatter = this.textFilterParams.textFormatter ||\n (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);\n this.addValueChangedListeners();\n };\n TextFilter.prototype.setConditionIntoUi = function (model, position) {\n var positionOne = position === ConditionPosition.One;\n var eValue = positionOne ? this.eValue1 : this.eValue2;\n eValue.setValue(model ? model.filter : null);\n };\n TextFilter.prototype.createCondition = function (position) {\n var positionOne = position === ConditionPosition.One;\n var type = positionOne ? this.getCondition1Type() : this.getCondition2Type();\n var eValue = positionOne ? this.eValue1 : this.eValue2;\n var value = this.getCleanValue(eValue);\n eValue.setValue(value, true); // ensure clean value is visible\n var model = {\n filterType: this.getFilterType(),\n type: type\n };\n if (!this.doesFilterHaveHiddenInput(type)) {\n model.filter = value;\n }\n return model;\n };\n TextFilter.prototype.getFilterType = function () {\n return 'text';\n };\n TextFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.filter === bSimple.filter && aSimple.type === bSimple.type;\n };\n TextFilter.prototype.resetUiToDefaults = function (silent) {\n var _this = this;\n return _super.prototype.resetUiToDefaults.call(this, silent).then(function () {\n _this.forEachInput(function (field) { return field.setValue(null, silent); });\n _this.resetPlaceholder();\n });\n };\n TextFilter.prototype.resetPlaceholder = function () {\n var globalTranslate = this.gridOptionsWrapper.getLocaleTextFunc();\n var placeholder = this.translate('filterOoo');\n this.forEachInput(function (field) {\n field.setInputPlaceholder(placeholder);\n field.setInputAriaLabel(globalTranslate('ariaFilterValue', 'Filter Value'));\n });\n };\n TextFilter.prototype.forEachInput = function (action) {\n forEach([this.eValue1, this.eValue2], action);\n };\n TextFilter.prototype.setValueFromFloatingFilter = function (value) {\n this.eValue1.setValue(value);\n this.eValue2.setValue(null);\n };\n TextFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n TextFilter.prototype.createValueTemplate = function (position) {\n var pos = position === ConditionPosition.One ? '1' : '2';\n return /* html */ \"\\n
\\n \\n
\";\n };\n TextFilter.prototype.updateUiVisibility = function () {\n _super.prototype.updateUiVisibility.call(this);\n setDisplayed(this.eCondition1Body, this.showValueFrom(this.getCondition1Type()));\n setDisplayed(this.eCondition2Body, this.isCondition2Enabled() && this.showValueFrom(this.getCondition2Type()));\n };\n TextFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.resetPlaceholder();\n if (!params || !params.suppressFocus) {\n this.eValue1.getInputElement().focus();\n }\n };\n TextFilter.prototype.isConditionUiComplete = function (position) {\n var positionOne = position === ConditionPosition.One;\n var option = positionOne ? this.getCondition1Type() : this.getCondition2Type();\n if (option === SimpleFilter.EMPTY) {\n return false;\n }\n if (this.doesFilterHaveHiddenInput(option)) {\n return true;\n }\n return this.getCleanValue(positionOne ? this.eValue1 : this.eValue2) != null;\n };\n TextFilter.prototype.individualConditionPasses = function (params, filterModel) {\n var filterText = filterModel.filter;\n var filterOption = filterModel.type;\n var cellValue = this.textFilterParams.valueGetter(params.node);\n var cellValueFormatted = this.formatter(cellValue);\n var customFilterOption = this.optionsFactory.getCustomOption(filterOption);\n if (customFilterOption) {\n // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden\n if (filterText != null || customFilterOption.hideFilterInput) {\n return customFilterOption.test(filterText, cellValueFormatted);\n }\n }\n if (cellValue == null) {\n return filterOption === SimpleFilter.NOT_EQUAL || filterOption === SimpleFilter.NOT_CONTAINS;\n }\n var filterTextFormatted = this.formatter(filterText);\n return this.comparator(filterOption, cellValueFormatted, filterTextFormatted);\n };\n TextFilter.DEFAULT_FILTER_OPTIONS = [\n SimpleFilter.CONTAINS,\n SimpleFilter.NOT_CONTAINS,\n SimpleFilter.EQUALS,\n SimpleFilter.NOT_EQUAL,\n SimpleFilter.STARTS_WITH,\n SimpleFilter.ENDS_WITH\n ];\n TextFilter.DEFAULT_FORMATTER = function (from) { return from; };\n TextFilter.DEFAULT_LOWERCASE_FORMATTER = function (from) { return from == null ? null : from.toString().toLowerCase(); };\n TextFilter.DEFAULT_COMPARATOR = function (filter, value, filterText) {\n switch (filter) {\n case TextFilter.CONTAINS:\n return value.indexOf(filterText) >= 0;\n case TextFilter.NOT_CONTAINS:\n return value.indexOf(filterText) < 0;\n case TextFilter.EQUALS:\n return value === filterText;\n case TextFilter.NOT_EQUAL:\n return value != filterText;\n case TextFilter.STARTS_WITH:\n return value.indexOf(filterText) === 0;\n case TextFilter.ENDS_WITH:\n var index = value.lastIndexOf(filterText);\n return index >= 0 && index === (value.length - filterText.length);\n default:\n // should never happen\n console.warn('AG Grid: Unexpected type of filter \"' + filter + '\", it looks like the filter was configured with incorrect Filter Options');\n return false;\n }\n };\n __decorate$w([\n RefSelector('eValue1')\n ], TextFilter.prototype, \"eValue1\", void 0);\n __decorate$w([\n RefSelector('eValue2')\n ], TextFilter.prototype, \"eValue2\", void 0);\n return TextFilter;\n}(SimpleFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$A = (undefined && undefined.__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$x = (undefined && undefined.__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 TextInputFloatingFilter = /** @class */ (function (_super) {\n __extends$A(TextInputFloatingFilter, _super);\n function TextInputFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextInputFloatingFilter.prototype.postConstruct = function () {\n this.setTemplate(/* html */ \"\\n
\\n \\n
\");\n };\n TextInputFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextInputFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n if (this.isEventFromFloatingFilter(event)) {\n // if the floating filter triggered the change, it is already in sync\n return;\n }\n this.setLastTypeFromModel(model);\n this.eFloatingFilterInput.setValue(this.getTextFromModel(model));\n this.setEditable(this.canWeEditAfterModelFromParentFilter(model));\n };\n TextInputFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.params = params;\n this.applyActive = ProvidedFilter.isUseApplyButton(this.params.filterParams);\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n var toDebounce = debounce(this.syncUpWithParentFilter.bind(this), debounceMs);\n var filterGui = this.eFloatingFilterInput.getGui();\n this.addManagedListener(filterGui, 'input', toDebounce);\n this.addManagedListener(filterGui, 'keypress', toDebounce);\n this.addManagedListener(filterGui, 'keydown', toDebounce);\n var columnDef = params.column.getDefinition();\n if (columnDef.filterParams &&\n columnDef.filterParams.filterOptions &&\n columnDef.filterParams.filterOptions.length === 1 &&\n columnDef.filterParams.filterOptions[0] === 'inRange') {\n this.eFloatingFilterInput.setDisabled(true);\n }\n var displayName = this.columnController.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFloatingFilterInput.setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n TextInputFloatingFilter.prototype.syncUpWithParentFilter = function (e) {\n var _this = this;\n var enterKeyPressed = isKeyPressed(e, KeyCode.ENTER);\n if (this.applyActive && !enterKeyPressed) {\n return;\n }\n var value = this.eFloatingFilterInput.getValue();\n if (this.params.filterParams.trimInput) {\n value = TextFilter.trimInput(value);\n this.eFloatingFilterInput.setValue(value, true); // ensure visible value is trimmed\n }\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n var simpleFilter = filterInstance;\n simpleFilter.onFloatingFilterChanged(_this.getLastType(), value);\n }\n });\n };\n TextInputFloatingFilter.prototype.setEditable = function (editable) {\n this.eFloatingFilterInput.setDisabled(!editable);\n };\n __decorate$x([\n Autowired('columnController')\n ], TextInputFloatingFilter.prototype, \"columnController\", void 0);\n __decorate$x([\n RefSelector('eFloatingFilterInput')\n ], TextInputFloatingFilter.prototype, \"eFloatingFilterInput\", void 0);\n __decorate$x([\n PostConstruct\n ], TextInputFloatingFilter.prototype, \"postConstruct\", null);\n return TextInputFloatingFilter;\n}(SimpleFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$B = (undefined && undefined.__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 NumberFloatingFilter = /** @class */ (function (_super) {\n __extends$B(NumberFloatingFilter, _super);\n function NumberFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumberFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n NumberFloatingFilter.prototype.conditionToString = function (condition) {\n var isRange = condition.type == SimpleFilter.IN_RANGE;\n if (isRange) {\n return condition.filter + \"-\" + condition.filterTo;\n }\n // cater for when the type doesn't need a value\n if (condition.filter != null) {\n return \"\" + condition.filter;\n }\n return \"\" + condition.type;\n };\n return NumberFloatingFilter;\n}(TextInputFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$C = (undefined && undefined.__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 TextFloatingFilter = /** @class */ (function (_super) {\n __extends$C(TextFloatingFilter, _super);\n function TextFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextFloatingFilter.prototype.conditionToString = function (condition) {\n // it's not possible to have 'in range' for string, so no need to check for it.\n // also cater for when the type doesn't need a value\n if (condition.filter != null) {\n return \"\" + condition.filter;\n }\n else {\n return \"\" + condition.type;\n }\n };\n TextFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n return TextFloatingFilter;\n}(TextInputFloatingFilter));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$D = (undefined && undefined.__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$y = (undefined && undefined.__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 RegisteredComponentSource;\n(function (RegisteredComponentSource) {\n RegisteredComponentSource[RegisteredComponentSource[\"DEFAULT\"] = 0] = \"DEFAULT\";\n RegisteredComponentSource[RegisteredComponentSource[\"REGISTERED\"] = 1] = \"REGISTERED\";\n})(RegisteredComponentSource || (RegisteredComponentSource = {}));\nvar UserComponentRegistry = /** @class */ (function (_super) {\n __extends$D(UserComponentRegistry, _super);\n function UserComponentRegistry() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.agGridDefaults = {\n //date\n agDateInput: DefaultDateComponent,\n //header\n agColumnHeader: HeaderComp,\n agColumnGroupHeader: HeaderGroupComp,\n //floating filters\n agTextColumnFloatingFilter: TextFloatingFilter,\n agNumberColumnFloatingFilter: NumberFloatingFilter,\n agDateColumnFloatingFilter: DateFloatingFilter,\n // renderers\n agAnimateShowChangeCellRenderer: AnimateShowChangeCellRenderer,\n agAnimateSlideCellRenderer: AnimateSlideCellRenderer,\n agGroupCellRenderer: GroupCellRenderer,\n agGroupRowRenderer: GroupCellRenderer,\n agLoadingCellRenderer: LoadingCellRenderer,\n //editors\n agCellEditor: TextCellEditor,\n agTextCellEditor: TextCellEditor,\n agSelectCellEditor: SelectCellEditor,\n agPopupTextCellEditor: PopupTextCellEditor,\n agPopupSelectCellEditor: PopupSelectCellEditor,\n agLargeTextCellEditor: LargeTextCellEditor,\n //filter\n agTextColumnFilter: TextFilter,\n agNumberColumnFilter: NumberFilter,\n agDateColumnFilter: DateFilter,\n //overlays\n agLoadingOverlay: LoadingOverlayComponent$1,\n agNoRowsOverlay: NoRowsOverlayComponent$1,\n // tooltips\n agTooltipComponent: TooltipComponent$1\n };\n _this.agDeprecatedNames = {\n set: {\n newComponentName: 'agSetColumnFilter',\n propertyHolder: 'filter'\n },\n text: {\n newComponentName: 'agTextColumnFilter',\n propertyHolder: 'filter'\n },\n number: {\n newComponentName: 'agNumberColumnFilter',\n propertyHolder: 'filter'\n },\n date: {\n newComponentName: 'agDateColumnFilter',\n propertyHolder: 'filter'\n },\n group: {\n newComponentName: 'agGroupCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n animateShowChange: {\n newComponentName: 'agAnimateShowChangeCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n animateSlide: {\n newComponentName: 'agAnimateSlideCellRenderer',\n propertyHolder: 'cellRenderer'\n },\n select: {\n newComponentName: 'agSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n largeText: {\n newComponentName: 'agLargeTextCellEditor',\n propertyHolder: 'cellEditor'\n },\n popupSelect: {\n newComponentName: 'agPopupSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n popupText: {\n newComponentName: 'agPopupTextCellEditor',\n propertyHolder: 'cellEditor'\n },\n richSelect: {\n newComponentName: 'agRichSelectCellEditor',\n propertyHolder: 'cellEditor'\n },\n headerComponent: {\n newComponentName: 'agColumnHeader',\n propertyHolder: 'headerComponent'\n }\n };\n _this.jsComponents = {};\n _this.frameworkComponents = {};\n return _this;\n }\n UserComponentRegistry.prototype.init = function () {\n var _this = this;\n if (this.gridOptions.components != null) {\n iterateObject(this.gridOptions.components, function (key, component) { return _this.registerComponent(key, component); });\n }\n if (this.gridOptions.frameworkComponents != null) {\n iterateObject(this.gridOptions.frameworkComponents, function (key, component) { return _this.registerFwComponent(key, component); });\n }\n };\n UserComponentRegistry.prototype.registerDefaultComponent = function (rawName, component) {\n var name = this.translateIfDeprecated(rawName);\n if (this.agGridDefaults[name]) {\n console.error(\"Trying to overwrite a default component. You should call registerComponent\");\n return;\n }\n this.agGridDefaults[name] = component;\n };\n UserComponentRegistry.prototype.registerComponent = function (rawName, component) {\n var name = this.translateIfDeprecated(rawName);\n if (this.frameworkComponents[name]) {\n console.error(\"Trying to register a component that you have already registered for frameworks: \" + name);\n return;\n }\n this.jsComponents[name] = component;\n };\n /**\n * B the business interface (ie IHeader)\n * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid\n */\n UserComponentRegistry.prototype.registerFwComponent = function (rawName, component) {\n var name = this.translateIfDeprecated(rawName);\n if (this.jsComponents[name]) {\n console.error(\"Trying to register a component that you have already registered for plain javascript: \" + name);\n return;\n }\n this.frameworkComponents[name] = component;\n };\n /**\n * B the business interface (ie IHeader)\n * A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid\n */\n UserComponentRegistry.prototype.retrieve = function (rawName) {\n var name = this.translateIfDeprecated(rawName);\n var frameworkComponent = this.frameworkComponents[name];\n if (frameworkComponent) {\n return {\n componentFromFramework: true,\n component: frameworkComponent,\n source: RegisteredComponentSource.REGISTERED\n };\n }\n var jsComponent = this.jsComponents[name];\n if (jsComponent) {\n return {\n componentFromFramework: false,\n component: jsComponent,\n source: RegisteredComponentSource.REGISTERED\n };\n }\n var defaultComponent = this.agGridDefaults[name];\n if (defaultComponent) {\n return {\n componentFromFramework: false,\n component: defaultComponent,\n source: RegisteredComponentSource.DEFAULT\n };\n }\n if (Object.keys(this.agGridDefaults).indexOf(name) < 0) {\n console.warn(\"AG Grid: Looking for component [\" + name + \"] but it wasn't found.\");\n }\n return null;\n };\n UserComponentRegistry.prototype.translateIfDeprecated = function (raw) {\n var deprecatedInfo = this.agDeprecatedNames[raw];\n if (deprecatedInfo != null) {\n doOnce(function () {\n console.warn(\"ag-grid. Since v15.0 component names have been renamed to be namespaced. You should rename \" + deprecatedInfo.propertyHolder + \":\" + raw + \" to \" + deprecatedInfo.propertyHolder + \":\" + deprecatedInfo.newComponentName);\n }, 'DEPRECATE_COMPONENT_' + raw);\n return deprecatedInfo.newComponentName;\n }\n return raw;\n };\n __decorate$y([\n Autowired('gridOptions')\n ], UserComponentRegistry.prototype, \"gridOptions\", void 0);\n __decorate$y([\n PostConstruct\n ], UserComponentRegistry.prototype, \"init\", null);\n UserComponentRegistry = __decorate$y([\n Bean('userComponentRegistry')\n ], UserComponentRegistry);\n return UserComponentRegistry;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar SideBarDefParser = /** @class */ (function () {\n function SideBarDefParser() {\n }\n SideBarDefParser.parse = function (toParse) {\n if (!toParse) {\n return null;\n }\n if (toParse === true) {\n return {\n toolPanels: [\n SideBarDefParser.DEFAULT_COLUMN_COMP,\n SideBarDefParser.DEFAULT_FILTER_COMP,\n ],\n defaultToolPanel: 'columns'\n };\n }\n if (typeof toParse === 'string') {\n return SideBarDefParser.parse([toParse]);\n }\n if (Array.isArray(toParse)) {\n var comps_1 = [];\n toParse.forEach(function (key) {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[key];\n if (!lookupResult) {\n console.warn(\"ag-grid: the key \" + key + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n comps_1.push(lookupResult);\n });\n if (comps_1.length === 0) {\n return null;\n }\n return {\n toolPanels: comps_1,\n defaultToolPanel: comps_1[0].id\n };\n }\n var result = {\n toolPanels: SideBarDefParser.parseComponents(toParse.toolPanels),\n defaultToolPanel: toParse.defaultToolPanel,\n hiddenByDefault: toParse.hiddenByDefault,\n position: toParse.position\n };\n return result;\n };\n SideBarDefParser.parseComponents = function (from) {\n var result = [];\n if (!from) {\n return result;\n }\n from.forEach(function (it) {\n var toAdd = null;\n if (typeof it === 'string') {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[it];\n if (!lookupResult) {\n console.warn(\"ag-grid: the key \" + it + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n toAdd = lookupResult;\n }\n else {\n toAdd = it;\n }\n result.push(toAdd);\n });\n return result;\n };\n SideBarDefParser.DEFAULT_COLUMN_COMP = {\n id: 'columns',\n labelDefault: 'Columns',\n labelKey: 'columns',\n iconKey: 'columns',\n toolPanel: 'agColumnsToolPanel',\n };\n SideBarDefParser.DEFAULT_FILTER_COMP = {\n id: 'filters',\n labelDefault: 'Filters',\n labelKey: 'filters',\n iconKey: 'filter',\n toolPanel: 'agFiltersToolPanel',\n };\n SideBarDefParser.DEFAULT_BY_KEY = {\n columns: SideBarDefParser.DEFAULT_COLUMN_COMP,\n filters: SideBarDefParser.DEFAULT_FILTER_COMP\n };\n return SideBarDefParser;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$z = (undefined && undefined.__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 __param$3 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __spreadArrays$3 = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar DEFAULT_ROW_HEIGHT = 25;\nvar DEFAULT_DETAIL_ROW_HEIGHT = 300;\nvar DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE = 5;\nvar DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE = 5;\nvar DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;\nfunction isTrue(value) {\n return value === true || value === 'true';\n}\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (typeof value == 'string') {\n return parseInt(value, 10);\n }\n}\nfunction zeroOrGreater(value, defaultValue) {\n if (value >= 0) {\n return value;\n }\n // zero gets returned if number is missing or the wrong type\n return defaultValue;\n}\nfunction oneOrGreater(value, defaultValue) {\n var valueNumber = parseInt(value, 10);\n if (isNumeric(valueNumber) && valueNumber > 0) {\n return valueNumber;\n }\n return defaultValue;\n}\nvar GridOptionsWrapper = /** @class */ (function () {\n function GridOptionsWrapper() {\n this.propertyEventService = new EventService();\n this.domDataKey = '__AG_' + Math.random().toString();\n this.destroyed = false;\n }\n GridOptionsWrapper_1 = GridOptionsWrapper;\n GridOptionsWrapper.prototype.agWire = function (gridApi, columnApi) {\n this.gridOptions.api = gridApi;\n this.gridOptions.columnApi = columnApi;\n this.checkForDeprecated();\n this.checkForViolations();\n };\n GridOptionsWrapper.prototype.destroy = function () {\n // need to remove these, as we don't own the lifecycle of the gridOptions, we need to\n // remove the references in case the user keeps the grid options, we want the rest\n // of the grid to be picked up by the garbage collector\n this.gridOptions.api = null;\n this.gridOptions.columnApi = null;\n this.removeEventListener(GridOptionsWrapper_1.PROP_DOM_LAYOUT, this.updateLayoutClassesListener);\n this.destroyed = true;\n };\n GridOptionsWrapper.prototype.init = function () {\n var _this = this;\n if (this.gridOptions.suppressPropertyNamesCheck !== true) {\n this.checkGridOptionsProperties();\n this.checkColumnDefProperties();\n }\n // parse side bar options into correct format\n if (this.gridOptions.sideBar != null) {\n this.gridOptions.sideBar = SideBarDefParser.parse(this.gridOptions.sideBar);\n }\n var async = this.useAsyncEvents();\n this.eventService.addGlobalListener(this.globalEventHandler.bind(this), async);\n if (this.isGroupSelectsChildren() && this.isSuppressParentsInRowNodes()) {\n console.warn(\"AG Grid: 'groupSelectsChildren' does not work with 'suppressParentsInRowNodes', this selection method needs the part in rowNode to work\");\n }\n if (this.isGroupSelectsChildren()) {\n if (!this.isRowSelectionMulti()) {\n console.warn(\"AG Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense\");\n }\n if (this.isRowModelServerSide()) {\n console.warn('AG Grid: group selects children is NOT support for Server Side Row Model. ' +\n 'This is because the rows are lazy loaded, so selecting a group is not possible as' +\n 'the grid has no way of knowing what the children are.');\n }\n }\n if (this.isGroupRemoveSingleChildren() && this.isGroupHideOpenParents()) {\n console.warn(\"AG Grid: groupRemoveSingleChildren and groupHideOpenParents do not work with each other, you need to pick one. And don't ask us how to us these together on our support forum either you will get the same answer!\");\n }\n if (this.isRowModelServerSide()) {\n var msg = function (prop) { return \"AG Grid: '\" + prop + \"' is not supported on the Server-Side Row Model\"; };\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupDefaultExpanded'));\n }\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupIncludeFooter'));\n }\n if (exists(this.gridOptions.groupDefaultExpanded)) {\n console.warn(msg('groupIncludeTotalFooter'));\n }\n }\n if (this.isEnableRangeSelection()) {\n ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'enableRangeSelection');\n }\n if (!this.isEnableRangeSelection() && (this.isEnableRangeHandle() || this.isEnableFillHandle())) {\n console.warn(\"AG Grid: 'enableRangeHandle' and 'enableFillHandle' will not work unless 'enableRangeSelection' is set to true\");\n }\n var warnOfDeprecaredIcon = function (name) {\n if (_this.gridOptions.icons && _this.gridOptions.icons[name]) {\n console.warn(\"gridOptions.icons.\" + name + \" is no longer supported. For information on how to style checkboxes and radio buttons, see https://www.ag-grid.com/javascript-grid-icons/\");\n }\n };\n warnOfDeprecaredIcon('radioButtonOff');\n warnOfDeprecaredIcon('radioButtonOn');\n warnOfDeprecaredIcon('checkboxChecked');\n warnOfDeprecaredIcon('checkboxUnchecked');\n warnOfDeprecaredIcon('checkboxIndeterminate');\n // sets an initial calculation for the scrollbar width\n this.getScrollbarWidth();\n };\n GridOptionsWrapper.prototype.checkColumnDefProperties = function () {\n var _this = this;\n if (this.gridOptions.columnDefs == null) {\n return;\n }\n this.gridOptions.columnDefs.forEach(function (colDef) {\n var userProperties = Object.getOwnPropertyNames(colDef);\n var validProperties = __spreadArrays$3(ColDefUtil.ALL_PROPERTIES, ColDefUtil.FRAMEWORK_PROPERTIES);\n _this.checkProperties(userProperties, validProperties, validProperties, 'colDef', 'https://www.ag-grid.com/javascript-grid-column-properties/');\n });\n };\n GridOptionsWrapper.prototype.checkGridOptionsProperties = function () {\n var userProperties = Object.getOwnPropertyNames(this.gridOptions);\n var validProperties = __spreadArrays$3(PropertyKeys.ALL_PROPERTIES, PropertyKeys.FRAMEWORK_PROPERTIES, values(Events).map(function (event) { return ComponentUtil.getCallbackForEvent(event); }));\n var validPropertiesAndExceptions = __spreadArrays$3(validProperties, ['api', 'columnApi']);\n this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-grid-properties/');\n };\n GridOptionsWrapper.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {\n var invalidProperties = fuzzyCheckStrings(userProperties, validPropertiesAndExceptions, validProperties);\n iterateObject(invalidProperties, function (key, value) {\n console.warn(\"ag-grid: invalid \" + containerName + \" property '\" + key + \"' did you mean any of these: \" + value.slice(0, 8).join(\", \"));\n });\n if (Object.keys(invalidProperties).length > 0) {\n console.warn(\"ag-grid: to see all the valid \" + containerName + \" properties please check: \" + docsUrl);\n }\n };\n GridOptionsWrapper.prototype.getDomDataKey = function () {\n return this.domDataKey;\n };\n // returns the dom data, or undefined if not found\n GridOptionsWrapper.prototype.getDomData = function (element, key) {\n var domData = element[this.getDomDataKey()];\n return domData ? domData[key] : undefined;\n };\n GridOptionsWrapper.prototype.setDomData = function (element, key, value) {\n var domDataKey = this.getDomDataKey();\n var domData = element[domDataKey];\n if (missing(domData)) {\n domData = {};\n element[domDataKey] = domData;\n }\n domData[key] = value;\n };\n GridOptionsWrapper.prototype.isRowSelection = function () {\n return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsWrapper.prototype.isSuppressRowDeselection = function () {\n return isTrue(this.gridOptions.suppressRowDeselection);\n };\n GridOptionsWrapper.prototype.isRowSelectionMulti = function () {\n return this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsWrapper.prototype.isRowMultiSelectWithClick = function () {\n return isTrue(this.gridOptions.rowMultiSelectWithClick);\n };\n GridOptionsWrapper.prototype.getContext = function () {\n return this.gridOptions.context;\n };\n GridOptionsWrapper.prototype.isPivotMode = function () {\n return isTrue(this.gridOptions.pivotMode);\n };\n GridOptionsWrapper.prototype.isSuppressExpandablePivotGroups = function () {\n return isTrue(this.gridOptions.suppressExpandablePivotGroups);\n };\n GridOptionsWrapper.prototype.getPivotColumnGroupTotals = function () {\n return this.gridOptions.pivotColumnGroupTotals;\n };\n GridOptionsWrapper.prototype.getPivotRowTotals = function () {\n return this.gridOptions.pivotRowTotals;\n };\n GridOptionsWrapper.prototype.isRowModelInfinite = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_INFINITE;\n };\n GridOptionsWrapper.prototype.isRowModelViewport = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_VIEWPORT;\n };\n GridOptionsWrapper.prototype.isRowModelServerSide = function () {\n return this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n };\n GridOptionsWrapper.prototype.isRowModelDefault = function () {\n return (missing(this.gridOptions.rowModelType) ||\n this.gridOptions.rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE);\n };\n GridOptionsWrapper.prototype.isFullRowEdit = function () {\n return this.gridOptions.editType === 'fullRow';\n };\n GridOptionsWrapper.prototype.isSuppressFocusAfterRefresh = function () {\n return isTrue(this.gridOptions.suppressFocusAfterRefresh);\n };\n GridOptionsWrapper.prototype.isSuppressBrowserResizeObserver = function () {\n return isTrue(this.gridOptions.suppressBrowserResizeObserver);\n };\n GridOptionsWrapper.prototype.isSuppressMaintainUnsortedOrder = function () {\n return isTrue(this.gridOptions.suppressMaintainUnsortedOrder);\n };\n GridOptionsWrapper.prototype.isSuppressClearOnFillReduction = function () {\n return isTrue(this.gridOptions.suppressClearOnFillReduction);\n };\n GridOptionsWrapper.prototype.isShowToolPanel = function () {\n return isTrue(this.gridOptions.sideBar && Array.isArray(this.getSideBar().toolPanels));\n };\n GridOptionsWrapper.prototype.getSideBar = function () {\n return this.gridOptions.sideBar;\n };\n GridOptionsWrapper.prototype.isSuppressTouch = function () {\n return isTrue(this.gridOptions.suppressTouch);\n };\n GridOptionsWrapper.prototype.isApplyColumnDefOrder = function () {\n return isTrue(this.gridOptions.applyColumnDefOrder);\n };\n GridOptionsWrapper.prototype.isSuppressRowTransform = function () {\n return isTrue(this.gridOptions.suppressRowTransform);\n };\n GridOptionsWrapper.prototype.isSuppressColumnStateEvents = function () {\n return isTrue(this.gridOptions.suppressColumnStateEvents);\n };\n GridOptionsWrapper.prototype.isAllowDragFromColumnsToolPanel = function () {\n return isTrue(this.gridOptions.allowDragFromColumnsToolPanel);\n };\n GridOptionsWrapper.prototype.useAsyncEvents = function () {\n return !isTrue(this.gridOptions.suppressAsyncEvents);\n };\n GridOptionsWrapper.prototype.isEnableCellChangeFlash = function () {\n return isTrue(this.gridOptions.enableCellChangeFlash);\n };\n GridOptionsWrapper.prototype.getCellFlashDelay = function () {\n return this.gridOptions.cellFlashDelay || 500;\n };\n GridOptionsWrapper.prototype.getCellFadeDelay = function () {\n return this.gridOptions.cellFadeDelay || 1000;\n };\n GridOptionsWrapper.prototype.isGroupSelectsChildren = function () {\n var result = isTrue(this.gridOptions.groupSelectsChildren);\n if (result && this.isTreeData()) {\n console.warn('AG Grid: groupSelectsChildren does not work with tree data');\n return false;\n }\n return result;\n };\n GridOptionsWrapper.prototype.isSuppressRowHoverHighlight = function () {\n return isTrue(this.gridOptions.suppressRowHoverHighlight);\n };\n GridOptionsWrapper.prototype.isGroupSelectsFiltered = function () {\n return isTrue(this.gridOptions.groupSelectsFiltered);\n };\n GridOptionsWrapper.prototype.isGroupHideOpenParents = function () {\n return isTrue(this.gridOptions.groupHideOpenParents);\n };\n // if we are doing hideOpenParents, then we always have groupMultiAutoColumn, otherwise hideOpenParents would not work\n GridOptionsWrapper.prototype.isGroupMultiAutoColumn = function () {\n return isTrue(this.gridOptions.groupMultiAutoColumn) || isTrue(this.gridOptions.groupHideOpenParents);\n };\n GridOptionsWrapper.prototype.isGroupRemoveSingleChildren = function () {\n return isTrue(this.gridOptions.groupRemoveSingleChildren);\n };\n GridOptionsWrapper.prototype.isGroupRemoveLowestSingleChildren = function () {\n return isTrue(this.gridOptions.groupRemoveLowestSingleChildren);\n };\n GridOptionsWrapper.prototype.isGroupIncludeFooter = function () {\n return isTrue(this.gridOptions.groupIncludeFooter);\n };\n GridOptionsWrapper.prototype.isGroupIncludeTotalFooter = function () {\n return isTrue(this.gridOptions.groupIncludeTotalFooter);\n };\n GridOptionsWrapper.prototype.isGroupSuppressBlankHeader = function () {\n return isTrue(this.gridOptions.groupSuppressBlankHeader);\n };\n GridOptionsWrapper.prototype.isSuppressRowClickSelection = function () {\n return isTrue(this.gridOptions.suppressRowClickSelection);\n };\n GridOptionsWrapper.prototype.isSuppressCellSelection = function () {\n return isTrue(this.gridOptions.suppressCellSelection);\n };\n GridOptionsWrapper.prototype.isSuppressMultiSort = function () {\n return isTrue(this.gridOptions.suppressMultiSort);\n };\n GridOptionsWrapper.prototype.isMultiSortKeyCtrl = function () {\n return this.gridOptions.multiSortKey === 'ctrl';\n };\n GridOptionsWrapper.prototype.isGroupSuppressAutoColumn = function () {\n return isTrue(this.gridOptions.groupSuppressAutoColumn);\n };\n GridOptionsWrapper.prototype.isPivotSuppressAutoColumn = function () {\n return isTrue(this.gridOptions.pivotSuppressAutoColumn);\n };\n GridOptionsWrapper.prototype.isSuppressDragLeaveHidesColumns = function () {\n return isTrue(this.gridOptions.suppressDragLeaveHidesColumns);\n };\n GridOptionsWrapper.prototype.isSuppressScrollOnNewData = function () {\n return isTrue(this.gridOptions.suppressScrollOnNewData);\n };\n GridOptionsWrapper.prototype.isRowDragManaged = function () {\n return isTrue(this.gridOptions.rowDragManaged);\n };\n GridOptionsWrapper.prototype.isSuppressRowDrag = function () {\n return isTrue(this.gridOptions.suppressRowDrag);\n };\n GridOptionsWrapper.prototype.isSuppressMoveWhenRowDragging = function () {\n return isTrue(this.gridOptions.suppressMoveWhenRowDragging);\n };\n GridOptionsWrapper.prototype.isEnableMultiRowDragging = function () {\n return isTrue(this.gridOptions.enableMultiRowDragging);\n };\n // returns either 'print', 'autoHeight' or 'normal' (normal is the default)\n GridOptionsWrapper.prototype.getDomLayout = function () {\n var domLayout = this.gridOptions.domLayout || Constants.DOM_LAYOUT_NORMAL;\n var validLayouts = [\n Constants.DOM_LAYOUT_PRINT,\n Constants.DOM_LAYOUT_AUTO_HEIGHT,\n Constants.DOM_LAYOUT_NORMAL\n ];\n if (validLayouts.indexOf(domLayout) === -1) {\n doOnce(function () {\n return console.warn(\"AG Grid: \" + domLayout + \" is not valid for DOM Layout, valid values are \" + Constants.DOM_LAYOUT_NORMAL + \", \" + Constants.DOM_LAYOUT_AUTO_HEIGHT + \" and \" + Constants.DOM_LAYOUT_PRINT);\n }, 'warn about dom layout values');\n return Constants.DOM_LAYOUT_NORMAL;\n }\n return domLayout;\n };\n GridOptionsWrapper.prototype.isSuppressHorizontalScroll = function () {\n return isTrue(this.gridOptions.suppressHorizontalScroll);\n };\n GridOptionsWrapper.prototype.isSuppressMaxRenderedRowRestriction = function () {\n return isTrue(this.gridOptions.suppressMaxRenderedRowRestriction);\n };\n GridOptionsWrapper.prototype.isExcludeChildrenWhenTreeDataFiltering = function () {\n return isTrue(this.gridOptions.excludeChildrenWhenTreeDataFiltering);\n };\n GridOptionsWrapper.prototype.isAlwaysShowHorizontalScroll = function () {\n return isTrue(this.gridOptions.alwaysShowHorizontalScroll);\n };\n GridOptionsWrapper.prototype.isAlwaysShowVerticalScroll = function () {\n return isTrue(this.gridOptions.alwaysShowVerticalScroll);\n };\n GridOptionsWrapper.prototype.isDebounceVerticalScrollbar = function () {\n return isTrue(this.gridOptions.debounceVerticalScrollbar);\n };\n GridOptionsWrapper.prototype.isSuppressLoadingOverlay = function () {\n return isTrue(this.gridOptions.suppressLoadingOverlay);\n };\n GridOptionsWrapper.prototype.isSuppressNoRowsOverlay = function () {\n return isTrue(this.gridOptions.suppressNoRowsOverlay);\n };\n GridOptionsWrapper.prototype.isSuppressFieldDotNotation = function () {\n return isTrue(this.gridOptions.suppressFieldDotNotation);\n };\n GridOptionsWrapper.prototype.getPinnedTopRowData = function () {\n return this.gridOptions.pinnedTopRowData;\n };\n GridOptionsWrapper.prototype.getPinnedBottomRowData = function () {\n return this.gridOptions.pinnedBottomRowData;\n };\n GridOptionsWrapper.prototype.isFunctionsPassive = function () {\n return isTrue(this.gridOptions.functionsPassive);\n };\n GridOptionsWrapper.prototype.isSuppressChangeDetection = function () {\n return isTrue(this.gridOptions.suppressChangeDetection);\n };\n GridOptionsWrapper.prototype.isSuppressAnimationFrame = function () {\n return isTrue(this.gridOptions.suppressAnimationFrame);\n };\n GridOptionsWrapper.prototype.getQuickFilterText = function () {\n return this.gridOptions.quickFilterText;\n };\n GridOptionsWrapper.prototype.isCacheQuickFilter = function () {\n return isTrue(this.gridOptions.cacheQuickFilter);\n };\n GridOptionsWrapper.prototype.isUnSortIcon = function () {\n return isTrue(this.gridOptions.unSortIcon);\n };\n GridOptionsWrapper.prototype.isSuppressMenuHide = function () {\n return isTrue(this.gridOptions.suppressMenuHide);\n };\n GridOptionsWrapper.prototype.isEnterMovesDownAfterEdit = function () {\n return isTrue(this.gridOptions.enterMovesDownAfterEdit);\n };\n GridOptionsWrapper.prototype.isEnterMovesDown = function () {\n return isTrue(this.gridOptions.enterMovesDown);\n };\n GridOptionsWrapper.prototype.isUndoRedoCellEditing = function () {\n return isTrue(this.gridOptions.undoRedoCellEditing);\n };\n GridOptionsWrapper.prototype.getUndoRedoCellEditingLimit = function () {\n return this.gridOptions.undoRedoCellEditingLimit;\n };\n GridOptionsWrapper.prototype.getRowStyle = function () {\n return this.gridOptions.rowStyle;\n };\n GridOptionsWrapper.prototype.getRowClass = function () {\n return this.gridOptions.rowClass;\n };\n GridOptionsWrapper.prototype.getRowStyleFunc = function () {\n return this.gridOptions.getRowStyle;\n };\n GridOptionsWrapper.prototype.getRowClassFunc = function () {\n return this.gridOptions.getRowClass;\n };\n GridOptionsWrapper.prototype.rowClassRules = function () {\n return this.gridOptions.rowClassRules;\n };\n GridOptionsWrapper.prototype.getServerSideStoreType = function () {\n return this.gridOptions.serverSideStoreType;\n };\n GridOptionsWrapper.prototype.getServerSideStoreParamsFunc = function () {\n return this.gridOptions.getServerSideStoreParams;\n };\n GridOptionsWrapper.prototype.getCreateChartContainerFunc = function () {\n return this.gridOptions.createChartContainer;\n };\n GridOptionsWrapper.prototype.getPopupParent = function () {\n return this.gridOptions.popupParent;\n };\n GridOptionsWrapper.prototype.getBlockLoadDebounceMillis = function () {\n return this.gridOptions.blockLoadDebounceMillis;\n };\n GridOptionsWrapper.prototype.getPostProcessPopupFunc = function () {\n return this.gridOptions.postProcessPopup;\n };\n GridOptionsWrapper.prototype.getPaginationNumberFormatterFunc = function () {\n return this.gridOptions.paginationNumberFormatter;\n };\n GridOptionsWrapper.prototype.getChildCountFunc = function () {\n return this.gridOptions.getChildCount;\n };\n GridOptionsWrapper.prototype.getIsApplyServerSideTransactionFunc = function () {\n return this.gridOptions.isApplyServerSideTransaction;\n };\n GridOptionsWrapper.prototype.getDefaultGroupSortComparator = function () {\n return this.gridOptions.defaultGroupSortComparator;\n };\n GridOptionsWrapper.prototype.getIsFullWidthCellFunc = function () {\n return this.gridOptions.isFullWidthCell;\n };\n GridOptionsWrapper.prototype.getFullWidthCellRendererParams = function () {\n return this.gridOptions.fullWidthCellRendererParams;\n };\n GridOptionsWrapper.prototype.isEmbedFullWidthRows = function () {\n return isTrue(this.gridOptions.embedFullWidthRows) || isTrue(this.gridOptions.deprecatedEmbedFullWidthRows);\n };\n GridOptionsWrapper.prototype.isDetailRowAutoHeight = function () {\n return isTrue(this.gridOptions.detailRowAutoHeight);\n };\n GridOptionsWrapper.prototype.getSuppressKeyboardEventFunc = function () {\n return this.gridOptions.suppressKeyboardEvent;\n };\n GridOptionsWrapper.prototype.getBusinessKeyForNodeFunc = function () {\n return this.gridOptions.getBusinessKeyForNode;\n };\n GridOptionsWrapper.prototype.getApi = function () {\n return this.gridOptions.api;\n };\n GridOptionsWrapper.prototype.getColumnApi = function () {\n return this.gridOptions.columnApi;\n };\n GridOptionsWrapper.prototype.isImmutableData = function () {\n return isTrue(this.gridOptions.immutableData);\n };\n GridOptionsWrapper.prototype.isEnsureDomOrder = function () {\n return isTrue(this.gridOptions.ensureDomOrder);\n };\n GridOptionsWrapper.prototype.isEnableCharts = function () {\n if (isTrue(this.gridOptions.enableCharts)) {\n return ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'enableCharts');\n }\n return false;\n };\n GridOptionsWrapper.prototype.getColResizeDefault = function () {\n return this.gridOptions.colResizeDefault;\n };\n GridOptionsWrapper.prototype.isSingleClickEdit = function () {\n return isTrue(this.gridOptions.singleClickEdit);\n };\n GridOptionsWrapper.prototype.isSuppressClickEdit = function () {\n return isTrue(this.gridOptions.suppressClickEdit);\n };\n GridOptionsWrapper.prototype.isStopEditingWhenCellsLoseFocus = function () {\n return isTrue(this.gridOptions.stopEditingWhenCellsLoseFocus);\n };\n GridOptionsWrapper.prototype.getGroupDefaultExpanded = function () {\n return this.gridOptions.groupDefaultExpanded;\n };\n GridOptionsWrapper.prototype.getMaxConcurrentDatasourceRequests = function () {\n return this.gridOptions.maxConcurrentDatasourceRequests;\n };\n GridOptionsWrapper.prototype.getMaxBlocksInCache = function () {\n return this.gridOptions.maxBlocksInCache;\n };\n GridOptionsWrapper.prototype.getCacheOverflowSize = function () {\n return this.gridOptions.cacheOverflowSize;\n };\n GridOptionsWrapper.prototype.getPaginationPageSize = function () {\n return toNumber(this.gridOptions.paginationPageSize);\n };\n GridOptionsWrapper.prototype.isPaginateChildRows = function () {\n var shouldPaginate = this.isGroupRemoveSingleChildren() || this.isGroupRemoveLowestSingleChildren();\n if (shouldPaginate) {\n return true;\n }\n return isTrue(this.gridOptions.paginateChildRows);\n };\n GridOptionsWrapper.prototype.getCacheBlockSize = function () {\n return oneOrGreater(this.gridOptions.cacheBlockSize);\n };\n GridOptionsWrapper.prototype.getInfiniteInitialRowCount = function () {\n return this.gridOptions.infiniteInitialRowCount;\n };\n GridOptionsWrapper.prototype.isPurgeClosedRowNodes = function () {\n return isTrue(this.gridOptions.purgeClosedRowNodes);\n };\n GridOptionsWrapper.prototype.isSuppressPaginationPanel = function () {\n return isTrue(this.gridOptions.suppressPaginationPanel);\n };\n GridOptionsWrapper.prototype.getRowData = function () {\n return this.gridOptions.rowData;\n };\n // this property is different - we never allow groupUseEntireRow if in pivot mode,\n // as otherwise we don't see the pivot values.\n GridOptionsWrapper.prototype.isGroupUseEntireRow = function (pivotMode) {\n return pivotMode ? false : isTrue(this.gridOptions.groupUseEntireRow);\n };\n GridOptionsWrapper.prototype.isEnableRtl = function () {\n return isTrue(this.gridOptions.enableRtl);\n };\n GridOptionsWrapper.prototype.getAutoGroupColumnDef = function () {\n return this.gridOptions.autoGroupColumnDef;\n };\n GridOptionsWrapper.prototype.getRowGroupPanelShow = function () {\n return this.gridOptions.rowGroupPanelShow;\n };\n GridOptionsWrapper.prototype.getPivotPanelShow = function () {\n return this.gridOptions.pivotPanelShow;\n };\n GridOptionsWrapper.prototype.isAngularCompileRows = function () {\n return isTrue(this.gridOptions.angularCompileRows);\n };\n GridOptionsWrapper.prototype.isAngularCompileFilters = function () {\n return isTrue(this.gridOptions.angularCompileFilters);\n };\n GridOptionsWrapper.prototype.isDebug = function () {\n return isTrue(this.gridOptions.debug);\n };\n GridOptionsWrapper.prototype.getColumnDefs = function () {\n return this.gridOptions.columnDefs;\n };\n GridOptionsWrapper.prototype.getColumnTypes = function () {\n return this.gridOptions.columnTypes;\n };\n GridOptionsWrapper.prototype.getDatasource = function () {\n return this.gridOptions.datasource;\n };\n GridOptionsWrapper.prototype.getViewportDatasource = function () {\n return this.gridOptions.viewportDatasource;\n };\n GridOptionsWrapper.prototype.getServerSideDatasource = function () {\n return this.gridOptions.serverSideDatasource;\n };\n GridOptionsWrapper.prototype.isAccentedSort = function () {\n return isTrue(this.gridOptions.accentedSort);\n };\n GridOptionsWrapper.prototype.isEnableBrowserTooltips = function () {\n return isTrue(this.gridOptions.enableBrowserTooltips);\n };\n GridOptionsWrapper.prototype.isEnableCellExpressions = function () {\n return isTrue(this.gridOptions.enableCellExpressions);\n };\n GridOptionsWrapper.prototype.isEnableGroupEdit = function () {\n return isTrue(this.gridOptions.enableGroupEdit);\n };\n GridOptionsWrapper.prototype.isSuppressMiddleClickScrolls = function () {\n return isTrue(this.gridOptions.suppressMiddleClickScrolls);\n };\n GridOptionsWrapper.prototype.isPreventDefaultOnContextMenu = function () {\n return isTrue(this.gridOptions.preventDefaultOnContextMenu);\n };\n GridOptionsWrapper.prototype.isSuppressPreventDefaultOnMouseWheel = function () {\n return isTrue(this.gridOptions.suppressPreventDefaultOnMouseWheel);\n };\n GridOptionsWrapper.prototype.isSuppressColumnVirtualisation = function () {\n return isTrue(this.gridOptions.suppressColumnVirtualisation);\n };\n GridOptionsWrapper.prototype.isSuppressContextMenu = function () {\n return isTrue(this.gridOptions.suppressContextMenu);\n };\n GridOptionsWrapper.prototype.isAllowContextMenuWithControlKey = function () {\n return isTrue(this.gridOptions.allowContextMenuWithControlKey);\n };\n GridOptionsWrapper.prototype.isSuppressCopyRowsToClipboard = function () {\n return isTrue(this.gridOptions.suppressCopyRowsToClipboard);\n };\n GridOptionsWrapper.prototype.isCopyHeadersToClipboard = function () {\n return isTrue(this.gridOptions.copyHeadersToClipboard);\n };\n GridOptionsWrapper.prototype.isSuppressClipboardPaste = function () {\n return isTrue(this.gridOptions.suppressClipboardPaste);\n };\n GridOptionsWrapper.prototype.isSuppressLastEmptyLineOnPaste = function () {\n return isTrue(this.gridOptions.suppressLastEmptyLineOnPaste);\n };\n GridOptionsWrapper.prototype.isPagination = function () {\n return isTrue(this.gridOptions.pagination);\n };\n GridOptionsWrapper.prototype.isSuppressEnterpriseResetOnNewColumns = function () {\n return isTrue(this.gridOptions.suppressEnterpriseResetOnNewColumns);\n };\n GridOptionsWrapper.prototype.getProcessDataFromClipboardFunc = function () {\n return this.gridOptions.processDataFromClipboard;\n };\n GridOptionsWrapper.prototype.getAsyncTransactionWaitMillis = function () {\n return exists(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : Constants.BATCH_WAIT_MILLIS;\n };\n GridOptionsWrapper.prototype.isSuppressMovableColumns = function () {\n return isTrue(this.gridOptions.suppressMovableColumns);\n };\n GridOptionsWrapper.prototype.isAnimateRows = function () {\n // never allow animating if enforcing the row order\n if (this.isEnsureDomOrder()) {\n return false;\n }\n return isTrue(this.gridOptions.animateRows);\n };\n GridOptionsWrapper.prototype.isSuppressColumnMoveAnimation = function () {\n return isTrue(this.gridOptions.suppressColumnMoveAnimation);\n };\n GridOptionsWrapper.prototype.isSuppressAggFuncInHeader = function () {\n return isTrue(this.gridOptions.suppressAggFuncInHeader);\n };\n GridOptionsWrapper.prototype.isSuppressAggAtRootLevel = function () {\n return isTrue(this.gridOptions.suppressAggAtRootLevel);\n };\n GridOptionsWrapper.prototype.isSuppressAggFilteredOnly = function () {\n return isTrue(this.gridOptions.suppressAggFilteredOnly);\n };\n GridOptionsWrapper.prototype.isShowOpenedGroup = function () {\n return isTrue(this.gridOptions.showOpenedGroup);\n };\n GridOptionsWrapper.prototype.isEnableRangeSelection = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.RangeSelectionModule) && isTrue(this.gridOptions.enableRangeSelection);\n };\n GridOptionsWrapper.prototype.isEnableRangeHandle = function () {\n return isTrue(this.gridOptions.enableRangeHandle);\n };\n GridOptionsWrapper.prototype.isEnableFillHandle = function () {\n return isTrue(this.gridOptions.enableFillHandle);\n };\n GridOptionsWrapper.prototype.getFillHandleDirection = function () {\n var direction = this.gridOptions.fillHandleDirection;\n if (!direction) {\n return 'xy';\n }\n if (direction !== 'x' && direction !== 'y' && direction !== 'xy') {\n doOnce(function () { return console.warn(\"AG Grid: valid values for fillHandleDirection are 'x', 'y' and 'xy'. Default to 'xy'.\"); }, 'warn invalid fill direction');\n return 'xy';\n }\n return direction;\n };\n GridOptionsWrapper.prototype.getFillOperation = function () {\n return this.gridOptions.fillOperation;\n };\n GridOptionsWrapper.prototype.isSuppressMultiRangeSelection = function () {\n return isTrue(this.gridOptions.suppressMultiRangeSelection);\n };\n GridOptionsWrapper.prototype.isPaginationAutoPageSize = function () {\n return isTrue(this.gridOptions.paginationAutoPageSize);\n };\n GridOptionsWrapper.prototype.isRememberGroupStateWhenNewData = function () {\n return isTrue(this.gridOptions.rememberGroupStateWhenNewData);\n };\n GridOptionsWrapper.prototype.getIcons = function () {\n return this.gridOptions.icons;\n };\n GridOptionsWrapper.prototype.getAggFuncs = function () {\n return this.gridOptions.aggFuncs;\n };\n GridOptionsWrapper.prototype.getSortingOrder = function () {\n return this.gridOptions.sortingOrder;\n };\n GridOptionsWrapper.prototype.getAlignedGrids = function () {\n return this.gridOptions.alignedGrids;\n };\n GridOptionsWrapper.prototype.isMasterDetail = function () {\n var masterDetail = isTrue(this.gridOptions.masterDetail);\n if (masterDetail) {\n return ModuleRegistry.assertRegistered(exports.ModuleNames.MasterDetailModule, 'masterDetail');\n }\n else {\n return false;\n }\n };\n GridOptionsWrapper.prototype.isKeepDetailRows = function () {\n return isTrue(this.gridOptions.keepDetailRows);\n };\n GridOptionsWrapper.prototype.getKeepDetailRowsCount = function () {\n var keepDetailRowsCount = this.gridOptions.keepDetailRowsCount;\n if (exists(keepDetailRowsCount) && keepDetailRowsCount > 0) {\n return this.gridOptions.keepDetailRowsCount;\n }\n return DEFAULT_KEEP_DETAIL_ROW_COUNT;\n };\n GridOptionsWrapper.prototype.getIsRowMasterFunc = function () {\n return this.gridOptions.isRowMaster;\n };\n GridOptionsWrapper.prototype.getIsRowSelectableFunc = function () {\n return this.gridOptions.isRowSelectable;\n };\n GridOptionsWrapper.prototype.getGroupRowRendererParams = function () {\n return this.gridOptions.groupRowRendererParams;\n };\n GridOptionsWrapper.prototype.getOverlayLoadingTemplate = function () {\n return this.gridOptions.overlayLoadingTemplate;\n };\n GridOptionsWrapper.prototype.getOverlayNoRowsTemplate = function () {\n return this.gridOptions.overlayNoRowsTemplate;\n };\n GridOptionsWrapper.prototype.isSuppressAutoSize = function () {\n return isTrue(this.gridOptions.suppressAutoSize);\n };\n GridOptionsWrapper.prototype.isEnableCellTextSelection = function () {\n return isTrue(this.gridOptions.enableCellTextSelection);\n };\n GridOptionsWrapper.prototype.isSuppressParentsInRowNodes = function () {\n return isTrue(this.gridOptions.suppressParentsInRowNodes);\n };\n GridOptionsWrapper.prototype.isSuppressClipboardApi = function () {\n return isTrue(this.gridOptions.suppressClipboardApi);\n };\n GridOptionsWrapper.prototype.isFunctionsReadOnly = function () {\n return isTrue(this.gridOptions.functionsReadOnly);\n };\n GridOptionsWrapper.prototype.isFloatingFilter = function () {\n return this.gridOptions.floatingFilter;\n };\n GridOptionsWrapper.prototype.isEnableCellTextSelect = function () {\n return isTrue(this.gridOptions.enableCellTextSelection);\n };\n GridOptionsWrapper.prototype.isEnableOldSetFilterModel = function () {\n return isTrue(this.gridOptions.enableOldSetFilterModel);\n };\n GridOptionsWrapper.prototype.getDefaultColDef = function () {\n return this.gridOptions.defaultColDef;\n };\n GridOptionsWrapper.prototype.getDefaultColGroupDef = function () {\n return this.gridOptions.defaultColGroupDef;\n };\n GridOptionsWrapper.prototype.getDefaultExportParams = function (type) {\n if (this.gridOptions.defaultExportParams) {\n console.warn(\"AG Grid: Since v25.2 `defaultExportParams` has been replaced by `default\" + capitalise(type) + \"ExportParams`'\");\n if (type === 'csv') {\n return this.gridOptions.defaultExportParams;\n }\n return this.gridOptions.defaultExportParams;\n }\n if (type === 'csv' && this.gridOptions.defaultCsvExportParams) {\n return this.gridOptions.defaultCsvExportParams;\n }\n if (type === 'excel' && this.gridOptions.defaultExcelExportParams) {\n return this.gridOptions.defaultExcelExportParams;\n }\n };\n GridOptionsWrapper.prototype.isSuppressCsvExport = function () {\n return isTrue(this.gridOptions.suppressCsvExport);\n };\n GridOptionsWrapper.prototype.isAllowShowChangeAfterFilter = function () {\n return isTrue(this.gridOptions.allowShowChangeAfterFilter);\n };\n GridOptionsWrapper.prototype.isSuppressExcelExport = function () {\n return isTrue(this.gridOptions.suppressExcelExport);\n };\n GridOptionsWrapper.prototype.isSuppressMakeColumnVisibleAfterUnGroup = function () {\n return isTrue(this.gridOptions.suppressMakeColumnVisibleAfterUnGroup);\n };\n GridOptionsWrapper.prototype.getDataPathFunc = function () {\n return this.gridOptions.getDataPath;\n };\n GridOptionsWrapper.prototype.getIsServerSideGroupFunc = function () {\n return this.gridOptions.isServerSideGroup;\n };\n GridOptionsWrapper.prototype.getIsServerSideGroupOpenByDefaultFunc = function () {\n return this.gridOptions.isServerSideGroupOpenByDefault;\n };\n GridOptionsWrapper.prototype.getIsGroupOpenByDefaultFunc = function () {\n return this.gridOptions.isGroupOpenByDefault;\n };\n GridOptionsWrapper.prototype.getServerSideGroupKeyFunc = function () {\n return this.gridOptions.getServerSideGroupKey;\n };\n GridOptionsWrapper.prototype.getGroupRowAggNodesFunc = function () {\n return this.gridOptions.groupRowAggNodes;\n };\n GridOptionsWrapper.prototype.getContextMenuItemsFunc = function () {\n return this.gridOptions.getContextMenuItems;\n };\n GridOptionsWrapper.prototype.getMainMenuItemsFunc = function () {\n return this.gridOptions.getMainMenuItems;\n };\n GridOptionsWrapper.prototype.getRowNodeIdFunc = function () {\n return this.gridOptions.getRowNodeId;\n };\n GridOptionsWrapper.prototype.getNavigateToNextHeaderFunc = function () {\n return this.gridOptions.navigateToNextHeader;\n };\n GridOptionsWrapper.prototype.getTabToNextHeaderFunc = function () {\n return this.gridOptions.tabToNextHeader;\n };\n GridOptionsWrapper.prototype.getNavigateToNextCellFunc = function () {\n return this.gridOptions.navigateToNextCell;\n };\n GridOptionsWrapper.prototype.getTabToNextCellFunc = function () {\n return this.gridOptions.tabToNextCell;\n };\n GridOptionsWrapper.prototype.getGridTabIndex = function () {\n return (this.gridOptions.tabIndex || 0).toString();\n };\n GridOptionsWrapper.prototype.isTreeData = function () {\n var usingTreeData = isTrue(this.gridOptions.treeData);\n if (usingTreeData) {\n return ModuleRegistry.assertRegistered(exports.ModuleNames.RowGroupingModule, 'Tree Data');\n }\n return false;\n };\n GridOptionsWrapper.prototype.isValueCache = function () {\n return isTrue(this.gridOptions.valueCache);\n };\n GridOptionsWrapper.prototype.isValueCacheNeverExpires = function () {\n return isTrue(this.gridOptions.valueCacheNeverExpires);\n };\n GridOptionsWrapper.prototype.isDeltaSort = function () {\n return isTrue(this.gridOptions.deltaSort);\n };\n GridOptionsWrapper.prototype.isAggregateOnlyChangedColumns = function () {\n return isTrue(this.gridOptions.aggregateOnlyChangedColumns);\n };\n GridOptionsWrapper.prototype.getProcessSecondaryColDefFunc = function () {\n return this.gridOptions.processSecondaryColDef;\n };\n GridOptionsWrapper.prototype.getProcessSecondaryColGroupDefFunc = function () {\n return this.gridOptions.processSecondaryColGroupDef;\n };\n GridOptionsWrapper.prototype.getSendToClipboardFunc = function () {\n return this.gridOptions.sendToClipboard;\n };\n GridOptionsWrapper.prototype.getProcessRowPostCreateFunc = function () {\n return this.gridOptions.processRowPostCreate;\n };\n GridOptionsWrapper.prototype.getProcessCellForClipboardFunc = function () {\n return this.gridOptions.processCellForClipboard;\n };\n GridOptionsWrapper.prototype.getProcessHeaderForClipboardFunc = function () {\n return this.gridOptions.processHeaderForClipboard;\n };\n GridOptionsWrapper.prototype.getProcessCellFromClipboardFunc = function () {\n return this.gridOptions.processCellFromClipboard;\n };\n GridOptionsWrapper.prototype.getViewportRowModelPageSize = function () {\n return oneOrGreater(this.gridOptions.viewportRowModelPageSize, DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE);\n };\n GridOptionsWrapper.prototype.getViewportRowModelBufferSize = function () {\n return zeroOrGreater(this.gridOptions.viewportRowModelBufferSize, DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE);\n };\n GridOptionsWrapper.prototype.isServerSideSortingAlwaysResets = function () {\n return isTrue(this.gridOptions.serverSideSortingAlwaysResets);\n };\n GridOptionsWrapper.prototype.isServerSideFilteringAlwaysResets = function () {\n return isTrue(this.gridOptions.serverSideFilteringAlwaysResets);\n };\n GridOptionsWrapper.prototype.getPostSortFunc = function () {\n return this.gridOptions.postSort;\n };\n GridOptionsWrapper.prototype.getChartToolbarItemsFunc = function () {\n return this.gridOptions.getChartToolbarItems;\n };\n GridOptionsWrapper.prototype.getChartThemeOverrides = function () {\n return this.gridOptions.chartThemeOverrides;\n };\n GridOptionsWrapper.prototype.getCustomChartThemes = function () {\n return this.gridOptions.customChartThemes;\n };\n GridOptionsWrapper.prototype.getChartThemes = function () {\n // return default themes if user hasn't supplied any\n return this.gridOptions.chartThemes || ['ag-default', 'ag-material', 'ag-pastel', 'ag-vivid', 'ag-solar'];\n };\n GridOptionsWrapper.prototype.getProcessChartOptionsFunc = function () {\n return this.gridOptions.processChartOptions;\n };\n GridOptionsWrapper.prototype.getClipboardDeliminator = function () {\n return exists(this.gridOptions.clipboardDeliminator) ? this.gridOptions.clipboardDeliminator : '\\t';\n };\n GridOptionsWrapper.prototype.setProperty = function (key, value, force) {\n if (force === void 0) { force = false; }\n var gridOptionsNoType = this.gridOptions;\n var previousValue = gridOptionsNoType[key];\n if (force || previousValue !== value) {\n gridOptionsNoType[key] = value;\n var event_1 = {\n type: key,\n currentValue: value,\n previousValue: previousValue\n };\n this.propertyEventService.dispatchEvent(event_1);\n }\n };\n GridOptionsWrapper.prototype.addEventListener = function (key, listener) {\n this.propertyEventService.addEventListener(key, listener);\n };\n GridOptionsWrapper.prototype.removeEventListener = function (key, listener) {\n this.propertyEventService.removeEventListener(key, listener);\n };\n GridOptionsWrapper.prototype.isSkipHeaderOnAutoSize = function () {\n return !!this.gridOptions.skipHeaderOnAutoSize;\n };\n GridOptionsWrapper.prototype.getAutoSizePadding = function () {\n var value = this.gridOptions.autoSizePadding;\n return value != null && value >= 0 ? value : 20;\n };\n // properties\n GridOptionsWrapper.prototype.getHeaderHeight = function () {\n if (typeof this.gridOptions.headerHeight === 'number') {\n return this.gridOptions.headerHeight;\n }\n return this.getFromTheme(25, 'headerHeight');\n };\n GridOptionsWrapper.prototype.getFloatingFiltersHeight = function () {\n if (typeof this.gridOptions.floatingFiltersHeight === 'number') {\n return this.gridOptions.floatingFiltersHeight;\n }\n return this.getFromTheme(25, 'headerHeight');\n };\n GridOptionsWrapper.prototype.getGroupHeaderHeight = function () {\n if (typeof this.gridOptions.groupHeaderHeight === 'number') {\n return this.gridOptions.groupHeaderHeight;\n }\n return this.getHeaderHeight();\n };\n GridOptionsWrapper.prototype.getPivotHeaderHeight = function () {\n if (typeof this.gridOptions.pivotHeaderHeight === 'number') {\n return this.gridOptions.pivotHeaderHeight;\n }\n return this.getHeaderHeight();\n };\n GridOptionsWrapper.prototype.getPivotGroupHeaderHeight = function () {\n if (typeof this.gridOptions.pivotGroupHeaderHeight === 'number') {\n return this.gridOptions.pivotGroupHeaderHeight;\n }\n return this.getGroupHeaderHeight();\n };\n GridOptionsWrapper.prototype.isExternalFilterPresent = function () {\n if (typeof this.gridOptions.isExternalFilterPresent === 'function') {\n return this.gridOptions.isExternalFilterPresent();\n }\n return false;\n };\n GridOptionsWrapper.prototype.doesExternalFilterPass = function (node) {\n if (typeof this.gridOptions.doesExternalFilterPass === 'function') {\n return this.gridOptions.doesExternalFilterPass(node);\n }\n return false;\n };\n GridOptionsWrapper.prototype.getTooltipShowDelay = function () {\n var tooltipShowDelay = this.gridOptions.tooltipShowDelay;\n if (exists(tooltipShowDelay)) {\n if (tooltipShowDelay < 0) {\n console.warn('ag-grid: tooltipShowDelay should not be lower than 0');\n }\n return Math.max(200, tooltipShowDelay);\n }\n return null;\n };\n GridOptionsWrapper.prototype.isTooltipMouseTrack = function () {\n return isTrue(this.gridOptions.tooltipMouseTrack);\n };\n GridOptionsWrapper.prototype.isSuppressModelUpdateAfterUpdateTransaction = function () {\n return isTrue(this.gridOptions.suppressModelUpdateAfterUpdateTransaction);\n };\n GridOptionsWrapper.prototype.getDocument = function () {\n // if user is providing document, we use the users one,\n // otherwise we use the document on the global namespace.\n var result = null;\n if (this.gridOptions.getDocument && exists(this.gridOptions.getDocument)) {\n result = this.gridOptions.getDocument();\n }\n if (result && exists(result)) {\n return result;\n }\n return document;\n };\n GridOptionsWrapper.prototype.getMinColWidth = function () {\n var minColWidth = this.gridOptions.minColWidth;\n if (exists(minColWidth) && minColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return this.gridOptions.minColWidth;\n }\n var measuredMin = this.getFromTheme(null, 'headerCellMinWidth');\n return exists(measuredMin) ? Math.max(measuredMin, GridOptionsWrapper_1.MIN_COL_WIDTH) : GridOptionsWrapper_1.MIN_COL_WIDTH;\n };\n GridOptionsWrapper.prototype.getMaxColWidth = function () {\n if (this.gridOptions.maxColWidth && this.gridOptions.maxColWidth > GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return this.gridOptions.maxColWidth;\n }\n return null;\n };\n GridOptionsWrapper.prototype.getColWidth = function () {\n if (typeof this.gridOptions.colWidth !== 'number' || this.gridOptions.colWidth < GridOptionsWrapper_1.MIN_COL_WIDTH) {\n return 200;\n }\n return this.gridOptions.colWidth;\n };\n GridOptionsWrapper.prototype.getRowBuffer = function () {\n var rowBuffer = this.gridOptions.rowBuffer;\n if (typeof rowBuffer === 'number') {\n if (rowBuffer < 0) {\n doOnce(function () { return console.warn(\"AG Grid: rowBuffer should not be negative\"); }, 'warn rowBuffer negative');\n this.gridOptions.rowBuffer = rowBuffer = 0;\n }\n }\n else {\n rowBuffer = Constants.ROW_BUFFER_SIZE;\n }\n return rowBuffer;\n };\n GridOptionsWrapper.prototype.getRowBufferInPixels = function () {\n var rowsToBuffer = this.getRowBuffer();\n var defaultRowHeight = this.getRowHeightAsNumber();\n return rowsToBuffer * defaultRowHeight;\n };\n // the user might be using some non-standard scrollbar, eg a scrollbar that has zero\n // width and overlays (like the Safari scrollbar, but presented in Chrome). so we\n // allow the user to provide the scroll width before we work it out.\n GridOptionsWrapper.prototype.getScrollbarWidth = function () {\n if (this.scrollbarWidth == null) {\n var useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' && this.gridOptions.scrollbarWidth >= 0;\n var scrollbarWidth = useGridOptions ? this.gridOptions.scrollbarWidth : getScrollbarWidth();\n if (scrollbarWidth != null) {\n this.scrollbarWidth = scrollbarWidth;\n this.eventService.dispatchEvent({\n type: Events.EVENT_SCROLLBAR_WIDTH_CHANGED\n });\n }\n }\n return this.scrollbarWidth;\n };\n GridOptionsWrapper.prototype.checkForDeprecated = function () {\n // casting to generic object, so typescript compiles even though\n // we are looking for attributes that don't exist\n var options = this.gridOptions;\n if (options.deprecatedEmbedFullWidthRows) {\n console.warn(\"AG Grid: since v21.2, deprecatedEmbedFullWidthRows has been replaced with embedFullWidthRows.\");\n }\n if (options.enableOldSetFilterModel) {\n console.warn('AG Grid: since v22.x, enableOldSetFilterModel is deprecated. Please move to the new Set Filter Model as the old one may not be supported in v23 onwards.');\n }\n if (options.floatingFilter) {\n console.warn('AG Grid: since v23.1, floatingFilter on the gridOptions is deprecated. Please use floatingFilter on the colDef instead.');\n if (!options.defaultColDef) {\n options.defaultColDef = {};\n }\n if (options.defaultColDef.floatingFilter == null) {\n options.defaultColDef.floatingFilter = true;\n }\n }\n if (options.rowDeselection) {\n console.warn('AG Grid: since v24.x, rowDeselection is deprecated and the behaviour is true by default. Please use `suppressRowDeselection` to prevent rows from being deselected.');\n }\n var checkRenamedProperty = function (oldProp, newProp, version) {\n if (options[oldProp] != null) {\n console.warn(\"ag-grid: since version \" + version + \", '\" + oldProp + \"' is deprecated / renamed, please use the new property name '\" + newProp + \"' instead.\");\n if (options[newProp] == null) {\n options[newProp] = options[oldProp];\n }\n }\n };\n checkRenamedProperty('batchUpdateWaitMillis', 'asyncTransactionWaitMillis', '23.1.x');\n checkRenamedProperty('deltaRowDataMode', 'immutableData', '23.1.x');\n if (options.immutableColumns || options.deltaColumnMode) {\n console.warn('AG Grid: since v24.0, immutableColumns and deltaColumnMode properties are gone. The grid now works like this as default. To keep column order maintained, set grid property applyColumnDefOrder=true');\n }\n checkRenamedProperty('suppressSetColumnStateEvents', 'suppressColumnStateEvents', '24.0.x');\n if (options.groupRowInnerRenderer || options.groupRowInnerRendererParams || options.groupRowInnerRendererFramework) {\n console.warn('AG Grid: since v24.0, grid properties groupRowInnerRenderer, groupRowInnerRendererFramework and groupRowInnerRendererParams are no longer used.');\n console.warn(' Instead use the grid properties groupRowRendererParams.innerRenderer, groupRowRendererParams.innerRendererFramework and groupRowRendererParams.innerRendererParams.');\n console.warn(' For example instead of this:');\n console.warn(' groupRowInnerRenderer: \"myRenderer\"');\n console.warn(' groupRowInnerRendererParams: {x: a}');\n console.warn(' Replace with this:');\n console.warn(' groupRowRendererParams: {');\n console.warn(' innerRenderer: \"myRenderer\",');\n console.warn(' innerRendererParams: {x: a}');\n console.warn(' }');\n console.warn(' We have copied the properties over for you. However to stop this error message, please change your application code.');\n if (!options.groupRowRendererParams) {\n options.groupRowRendererParams = {};\n }\n var params = options.groupRowRendererParams;\n if (options.groupRowInnerRenderer) {\n params.innerRenderer = options.groupRowInnerRenderer;\n }\n if (options.groupRowInnerRendererParams) {\n params.innerRendererParams = options.groupRowInnerRendererParams;\n }\n if (options.groupRowInnerRendererFramework) {\n params.innerRendererFramework = options.groupRowInnerRendererFramework;\n }\n }\n if (options.rememberGroupStateWhenNewData) {\n console.warn('AG Grid: since v24.0, grid property rememberGroupStateWhenNewData is deprecated. This feature was provided before Transaction Updates worked (which keep group state). Now that transaction updates are possible and they keep group state, this feature is no longer needed.');\n }\n if (options.detailCellRendererParams && options.detailCellRendererParams.autoHeight) {\n console.warn('AG Grid: since v24.1, grid property detailCellRendererParams.autoHeight is replaced with grid property detailRowAutoHeight. This allows this feature to work when you provide a custom DetailCellRenderer');\n options.detailRowAutoHeight = true;\n }\n if (options.suppressKeyboardEvent) {\n console.warn(\"AG Grid: since v24.1 suppressKeyboardEvent in the gridOptions has been deprecated and will be removed in\\n future versions of AG Grid. If you need this to be set for every column use the defaultColDef property.\");\n }\n if (options.suppressEnterpriseResetOnNewColumns) {\n console.warn('AG Grid: since v25, grid property suppressEnterpriseResetOnNewColumns is deprecated. This was a temporary property to allow changing columns in Server Side Row Model without triggering a reload. Now that it is possible to dynamically change columns in the grid, this is no longer needed.');\n options.detailRowAutoHeight = true;\n }\n if (options.suppressColumnStateEvents) {\n console.warn('AG Grid: since v25, grid property suppressColumnStateEvents no longer works due to a refactor that we did. It should be possible to achieve similar using event.source, which would be \"api\" if the event was due to setting column state via the API');\n options.detailRowAutoHeight = true;\n }\n if (options.defaultExportParams) {\n console.warn('AG Grid: since v25.2, the grid property `defaultExportParams` has been replaced by `defaultCsvExportParams` and `defaultExcelExportParams`.');\n }\n if (options.stopEditingWhenGridLosesFocus) {\n console.warn('AG Grid: since v25.2.2, the grid property `stopEditingWhenGridLosesFocus`.');\n options.stopEditingWhenCellsLoseFocus = true;\n }\n };\n GridOptionsWrapper.prototype.checkForViolations = function () {\n if (this.isTreeData()) {\n this.treeDataViolations();\n }\n };\n GridOptionsWrapper.prototype.treeDataViolations = function () {\n if (this.isRowModelDefault()) {\n if (missing(this.getDataPathFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=clientSide, but you did not ' +\n 'provide getDataPath function, please provide getDataPath function if using tree data.');\n }\n }\n if (this.isRowModelServerSide()) {\n if (missing(this.getIsServerSideGroupFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide isServerSideGroup function, please provide isServerSideGroup function if using tree data.');\n }\n if (missing(this.getServerSideGroupKeyFunc())) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide getServerSideGroupKey function, please provide getServerSideGroupKey function if using tree data.');\n }\n }\n };\n GridOptionsWrapper.prototype.getLocaleTextFunc = function () {\n if (this.gridOptions.localeTextFunc) {\n return this.gridOptions.localeTextFunc;\n }\n var localeText = this.gridOptions.localeText;\n return function (key, defaultValue) {\n return localeText && localeText[key] ? localeText[key] : defaultValue;\n };\n };\n // responsible for calling the onXXX functions on gridOptions\n GridOptionsWrapper.prototype.globalEventHandler = function (eventName, event) {\n // prevent events from being fired _after_ the grid has been destroyed\n if (this.destroyed) {\n return;\n }\n var callbackMethodName = ComponentUtil.getCallbackForEvent(eventName);\n if (typeof this.gridOptions[callbackMethodName] === 'function') {\n this.gridOptions[callbackMethodName](event);\n }\n };\n // we don't allow dynamic row height for virtual paging\n GridOptionsWrapper.prototype.getRowHeightAsNumber = function () {\n if (!this.gridOptions.rowHeight || missing(this.gridOptions.rowHeight)) {\n return this.getDefaultRowHeight();\n }\n if (this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight)) {\n return this.gridOptions.rowHeight;\n }\n console.warn('AG Grid row height must be a number if not using standard row model');\n return this.getDefaultRowHeight();\n };\n GridOptionsWrapper.prototype.getRowHeightForNode = function (rowNode, allowEstimate) {\n // check the function first, in case use set both function and\n // number, when using virtual pagination then function can be\n // used for pinned rows and the number for the body rows.\n if (allowEstimate === void 0) { allowEstimate = false; }\n if (typeof this.gridOptions.getRowHeight === 'function') {\n if (allowEstimate) {\n return { height: this.getDefaultRowHeight(), estimated: true };\n }\n var params = {\n node: rowNode,\n data: rowNode.data,\n api: this.gridOptions.api,\n context: this.gridOptions.context\n };\n var height = this.gridOptions.getRowHeight(params);\n if (this.isNumeric(height)) {\n if (height === 0) {\n doOnce(function () { return console.warn('AG Grid: The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead.'); }, 'invalidRowHeight');\n }\n return { height: Math.max(1, height), estimated: false };\n }\n }\n if (rowNode.detail && this.isMasterDetail()) {\n if (this.isNumeric(this.gridOptions.detailRowHeight)) {\n return { height: this.gridOptions.detailRowHeight, estimated: false };\n }\n return { height: DEFAULT_DETAIL_ROW_HEIGHT, estimated: false };\n }\n var defaultRowHeight = this.getDefaultRowHeight();\n var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;\n var minRowHeight = exists(rowHeight) ? Math.min(defaultRowHeight, rowHeight) : defaultRowHeight;\n if (this.columnController.isAutoRowHeightActive()) {\n if (allowEstimate) {\n return { height: rowHeight, estimated: true };\n }\n var autoHeight = this.autoHeightCalculator.getPreferredHeightForRow(rowNode);\n // never return less than the default row height - covers when auto height\n // cells are blank.\n return { height: Math.max(autoHeight, minRowHeight), estimated: false };\n }\n return { height: rowHeight, estimated: false };\n };\n GridOptionsWrapper.prototype.isDynamicRowHeight = function () {\n return typeof this.gridOptions.getRowHeight === 'function';\n };\n GridOptionsWrapper.prototype.getListItemHeight = function () {\n return this.getFromTheme(20, 'listItemHeight');\n };\n GridOptionsWrapper.prototype.chartMenuPanelWidth = function () {\n return this.environment.chartMenuPanelWidth();\n };\n GridOptionsWrapper.prototype.isNumeric = function (value) {\n return !isNaN(value) && typeof value === 'number' && isFinite(value);\n };\n GridOptionsWrapper.prototype.getFromTheme = function (defaultValue, sassVariableName) {\n var theme = this.environment.getTheme().theme;\n if (theme && theme.indexOf('ag-theme') === 0) {\n return this.environment.getSassVariable(theme, sassVariableName);\n }\n return defaultValue;\n };\n GridOptionsWrapper.prototype.getDefaultRowHeight = function () {\n return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');\n };\n var GridOptionsWrapper_1;\n GridOptionsWrapper.MIN_COL_WIDTH = 10;\n GridOptionsWrapper.PROP_HEADER_HEIGHT = 'headerHeight';\n GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN = 'groupRemoveSingleChildren';\n GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN = 'groupRemoveLowestSingleChildren';\n GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT = 'pivotHeaderHeight';\n GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE = 'suppressClipboardPaste';\n GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT = 'groupHeaderHeight';\n GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT = 'pivotGroupHeaderHeight';\n GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_CELL = 'navigateToNextCell';\n GridOptionsWrapper.PROP_TAB_TO_NEXT_CELL = 'tabToNextCell';\n GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_HEADER = 'navigateToNextHeader';\n GridOptionsWrapper.PROP_TAB_TO_NEXT_HEADER = 'tabToNextHeader';\n GridOptionsWrapper.PROP_IS_EXTERNAL_FILTER_PRESENT = 'isExternalFilterPresentFunc';\n GridOptionsWrapper.PROP_DOES_EXTERNAL_FILTER_PASS = 'doesExternalFilterPass';\n GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT = 'floatingFiltersHeight';\n GridOptionsWrapper.PROP_SUPPRESS_ROW_CLICK_SELECTION = 'suppressRowClickSelection';\n GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG = 'suppressRowDrag';\n GridOptionsWrapper.PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG = 'suppressMoveWhenRowDragging';\n GridOptionsWrapper.PROP_GET_ROW_CLASS = 'getRowClass';\n GridOptionsWrapper.PROP_GET_ROW_STYLE = 'getRowStyle';\n GridOptionsWrapper.PROP_GET_ROW_HEIGHT = 'getRowHeight';\n GridOptionsWrapper.PROP_POPUP_PARENT = 'popupParent';\n GridOptionsWrapper.PROP_DOM_LAYOUT = 'domLayout';\n GridOptionsWrapper.PROP_FILL_HANDLE_DIRECTION = 'fillHandleDirection';\n GridOptionsWrapper.PROP_GROUP_ROW_AGG_NODES = 'groupRowAggNodes';\n GridOptionsWrapper.PROP_GET_BUSINESS_KEY_FOR_NODE = 'getBusinessKeyForNode';\n GridOptionsWrapper.PROP_GET_CHILD_COUNT = 'getChildCount';\n GridOptionsWrapper.PROP_PROCESS_ROW_POST_CREATE = 'processRowPostCreate';\n GridOptionsWrapper.PROP_GET_ROW_NODE_ID = 'getRowNodeId';\n GridOptionsWrapper.PROP_IS_FULL_WIDTH_CELL = 'isFullWidthCell';\n GridOptionsWrapper.PROP_IS_ROW_SELECTABLE = 'isRowSelectable';\n GridOptionsWrapper.PROP_IS_ROW_MASTER = 'isRowMaster';\n GridOptionsWrapper.PROP_POST_SORT = 'postSort';\n GridOptionsWrapper.PROP_GET_DOCUMENT = 'getDocument';\n GridOptionsWrapper.PROP_POST_PROCESS_POPUP = 'postProcessPopup';\n GridOptionsWrapper.PROP_DEFAULT_GROUP_SORT_COMPARATOR = 'defaultGroupSortComparator';\n GridOptionsWrapper.PROP_PAGINATION_NUMBER_FORMATTER = 'paginationNumberFormatter';\n GridOptionsWrapper.PROP_GET_CONTEXT_MENU_ITEMS = 'getContextMenuItems';\n GridOptionsWrapper.PROP_GET_MAIN_MENU_ITEMS = 'getMainMenuItems';\n GridOptionsWrapper.PROP_PROCESS_CELL_FOR_CLIPBOARD = 'processCellForClipboard';\n GridOptionsWrapper.PROP_PROCESS_CELL_FROM_CLIPBOARD = 'processCellFromClipboard';\n GridOptionsWrapper.PROP_SEND_TO_CLIPBOARD = 'sendToClipboard';\n GridOptionsWrapper.PROP_PROCESS_TO_SECONDARY_COLDEF = 'processSecondaryColDef';\n GridOptionsWrapper.PROP_PROCESS_SECONDARY_COL_GROUP_DEF = 'processSecondaryColGroupDef';\n GridOptionsWrapper.PROP_PROCESS_CHART_OPTIONS = 'processChartOptions';\n GridOptionsWrapper.PROP_GET_CHART_TOOLBAR_ITEMS = 'getChartToolbarItems';\n GridOptionsWrapper.PROP_GET_SERVER_SIDE_STORE_PARAMS = 'getServerSideStoreParams';\n GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT = 'isServerSideGroupOpenByDefault';\n GridOptionsWrapper.PROP_IS_APPLY_SERVER_SIDE_TRANSACTION = 'isApplyServerSideTransaction';\n GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUP = 'isServerSideGroup';\n GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_KEY = 'getServerSideGroupKey';\n __decorate$z([\n Autowired('gridOptions')\n ], GridOptionsWrapper.prototype, \"gridOptions\", void 0);\n __decorate$z([\n Autowired('columnController')\n ], GridOptionsWrapper.prototype, \"columnController\", void 0);\n __decorate$z([\n Autowired('eventService')\n ], GridOptionsWrapper.prototype, \"eventService\", void 0);\n __decorate$z([\n Autowired('environment')\n ], GridOptionsWrapper.prototype, \"environment\", void 0);\n __decorate$z([\n Autowired('autoHeightCalculator')\n ], GridOptionsWrapper.prototype, \"autoHeightCalculator\", void 0);\n __decorate$z([\n __param$3(0, Qualifier('gridApi')), __param$3(1, Qualifier('columnApi'))\n ], GridOptionsWrapper.prototype, \"agWire\", null);\n __decorate$z([\n PreDestroy\n ], GridOptionsWrapper.prototype, \"destroy\", null);\n __decorate$z([\n PostConstruct\n ], GridOptionsWrapper.prototype, \"init\", null);\n GridOptionsWrapper = GridOptionsWrapper_1 = __decorate$z([\n Bean('gridOptionsWrapper')\n ], GridOptionsWrapper);\n return GridOptionsWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n// when doing transactions, or change detection, and grouping is present\n// in the data, there is no need for the ClientSideRowModel to update each\n// group after an update, ony parts that were impacted by the change.\n// this class keeps track of all groups that were impacted by a transaction.\n// the the different CSRM operations (filter, sort etc) use the forEach method\n// to visit each group that was changed.\nvar ChangedPath = /** @class */ (function () {\n function ChangedPath(keepingColumns, rootNode) {\n // whether changed path is active of not. it is active when a) doing\n // a transaction update or b) doing change detection. if we are doing\n // a CSRM refresh for other reasons (after sort or filter, or user calling\n // setRowData() without delta mode) then we are not active. we are also\n // marked as not active if secondary columns change in pivot (as this impacts\n // aggregations)\n this.active = true;\n // for each node in the change path, we also store which columns need\n // to be re-aggregated.\n this.nodeIdsToColumns = {};\n // for quick lookup, all items in the change path are mapped by nodeId\n this.mapToItems = {};\n this.keepingColumns = keepingColumns;\n this.pathRoot = {\n rowNode: rootNode,\n children: null\n };\n this.mapToItems[rootNode.id] = this.pathRoot;\n }\n // can be set inactive by:\n // a) ClientSideRowModel, if no transactions or\n // b) PivotService, if secondary columns changed\n ChangedPath.prototype.setInactive = function () {\n this.active = false;\n };\n ChangedPath.prototype.isActive = function () {\n return this.active;\n };\n ChangedPath.prototype.depthFirstSearchChangedPath = function (pathItem, callback) {\n if (pathItem.children) {\n for (var i = 0; i < pathItem.children.length; i++) {\n this.depthFirstSearchChangedPath(pathItem.children[i], callback);\n }\n }\n callback(pathItem.rowNode);\n };\n ChangedPath.prototype.depthFirstSearchEverything = function (rowNode, callback, traverseEverything) {\n if (rowNode.childrenAfterGroup) {\n for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n var childNode = rowNode.childrenAfterGroup[i];\n if (childNode.childrenAfterGroup) {\n this.depthFirstSearchEverything(rowNode.childrenAfterGroup[i], callback, traverseEverything);\n }\n else if (traverseEverything) {\n callback(childNode);\n }\n }\n }\n callback(rowNode);\n };\n // traverseLeafNodes -> used when NOT doing changed path, ie traversing everything. the callback\n // will be called for child nodes in addition to parent nodes.\n ChangedPath.prototype.forEachChangedNodeDepthFirst = function (callback, traverseLeafNodes) {\n if (traverseLeafNodes === void 0) { traverseLeafNodes = false; }\n if (this.active) {\n // if we are active, then use the change path to callback\n // only for updated groups\n this.depthFirstSearchChangedPath(this.pathRoot, callback);\n }\n else {\n // we are not active, so callback for everything, walk the entire path\n this.depthFirstSearchEverything(this.pathRoot.rowNode, callback, traverseLeafNodes);\n }\n };\n ChangedPath.prototype.executeFromRootNode = function (callback) {\n callback(this.pathRoot.rowNode);\n };\n ChangedPath.prototype.createPathItems = function (rowNode) {\n var pointer = rowNode;\n var newEntryCount = 0;\n while (!this.mapToItems[pointer.id]) {\n var newEntry = {\n rowNode: pointer,\n children: null\n };\n this.mapToItems[pointer.id] = newEntry;\n newEntryCount++;\n pointer = pointer.parent;\n }\n return newEntryCount;\n };\n ChangedPath.prototype.populateColumnsMap = function (rowNode, columns) {\n var _this = this;\n if (!this.keepingColumns || !columns) {\n return;\n }\n var pointer = rowNode;\n while (pointer) {\n // if columns, add the columns in all the way to parent, merging\n // in any other columns that might be there already\n if (!this.nodeIdsToColumns[pointer.id]) {\n this.nodeIdsToColumns[pointer.id] = {};\n }\n columns.forEach(function (col) { return _this.nodeIdsToColumns[pointer.id][col.getId()] = true; });\n pointer = pointer.parent;\n }\n };\n ChangedPath.prototype.linkPathItems = function (rowNode, newEntryCount) {\n var pointer = rowNode;\n for (var i = 0; i < newEntryCount; i++) {\n var thisItem = this.mapToItems[pointer.id];\n var parentItem = this.mapToItems[pointer.parent.id];\n if (!parentItem.children) {\n parentItem.children = [];\n }\n parentItem.children.push(thisItem);\n pointer = pointer.parent;\n }\n };\n // called by\n // 1) change detection (provides cols) and\n // 2) groupStage if doing transaction update (doesn't provide cols)\n ChangedPath.prototype.addParentNode = function (rowNode, columns) {\n if (!rowNode || rowNode.isRowPinned()) {\n return;\n }\n // we cannot do both steps below in the same loop as\n // the second loop has a dependency on the first loop.\n // ie the hierarchy cannot be stitched up yet because\n // we don't have it built yet\n // create the new PathItem objects.\n var newEntryCount = this.createPathItems(rowNode);\n // link in the node items\n this.linkPathItems(rowNode, newEntryCount);\n // update columns\n this.populateColumnsMap(rowNode, columns);\n };\n ChangedPath.prototype.canSkip = function (rowNode) {\n return this.active && !this.mapToItems[rowNode.id];\n };\n ChangedPath.prototype.getValueColumnsForNode = function (rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return valueColumns;\n }\n var colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n var result = valueColumns.filter(function (col) { return colsForThisNode[col.getId()]; });\n return result;\n };\n ChangedPath.prototype.getNotValueColumnsForNode = function (rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return null;\n }\n var colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n var result = valueColumns.filter(function (col) { return !colsForThisNode[col.getId()]; });\n return result;\n };\n return ChangedPath;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$E = (undefined && undefined.__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$A = (undefined && undefined.__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 __param$4 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar SelectionController = /** @class */ (function (_super) {\n __extends$E(SelectionController, _super);\n function SelectionController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionController.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('SelectionController');\n this.reset();\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_CHANGED, this.reset.bind(this));\n }\n };\n SelectionController.prototype.init = function () {\n this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.addManagedListener(this.eventService, Events.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n };\n SelectionController.prototype.setLastSelectedNode = function (rowNode) {\n this.lastSelectedNode = rowNode;\n };\n SelectionController.prototype.getLastSelectedNode = function () {\n return this.lastSelectedNode;\n };\n SelectionController.prototype.getSelectedNodes = function () {\n var selectedNodes = [];\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode) {\n selectedNodes.push(rowNode);\n }\n });\n return selectedNodes;\n };\n SelectionController.prototype.getSelectedRows = function () {\n var selectedRows = [];\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode && rowNode.data) {\n selectedRows.push(rowNode.data);\n }\n });\n return selectedRows;\n };\n SelectionController.prototype.removeGroupsFromSelection = function () {\n var _this = this;\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode && rowNode.group) {\n _this.selectedNodes[rowNode.id] = undefined;\n }\n });\n };\n // should only be called if groupSelectsChildren=true\n SelectionController.prototype.updateGroupsFromChildrenSelections = function (changedPath) {\n // we only do this when group selection state depends on selected children\n if (!this.gridOptionsWrapper.isGroupSelectsChildren()) {\n return;\n }\n // also only do it if CSRM (code should never allow this anyway)\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n return;\n }\n var clientSideRowModel = this.rowModel;\n var rootNode = clientSideRowModel.getRootNode();\n if (!changedPath) {\n changedPath = new ChangedPath(true, rootNode);\n changedPath.setInactive();\n }\n changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n if (rowNode !== rootNode) {\n rowNode.calculateSelectedFromChildren();\n }\n });\n // clientSideRowModel.getTopLevelNodes()!.forEach((rowNode: RowNode) => {\n // rowNode.depthFirstSearch((node) => {\n // if (node.group) {\n // }\n // });\n // });\n };\n SelectionController.prototype.getNodeForIdIfSelected = function (id) {\n return this.selectedNodes[id];\n };\n SelectionController.prototype.clearOtherNodes = function (rowNodeToKeepSelected) {\n var _this = this;\n var groupsToRefresh = {};\n var updatedCount = 0;\n iterateObject(this.selectedNodes, function (key, otherRowNode) {\n if (otherRowNode && otherRowNode.id !== rowNodeToKeepSelected.id) {\n var rowNode = _this.selectedNodes[otherRowNode.id];\n updatedCount += rowNode.setSelectedParams({\n newValue: false,\n clearSelection: false,\n suppressFinishActions: true\n });\n if (_this.groupSelectsChildren && otherRowNode.parent) {\n groupsToRefresh[otherRowNode.parent.id] = otherRowNode.parent;\n }\n }\n });\n iterateObject(groupsToRefresh, function (key, group) {\n group.calculateSelectedFromChildren();\n });\n return updatedCount;\n };\n SelectionController.prototype.onRowSelected = function (event) {\n var rowNode = event.node;\n // we do not store the group rows when the groups select children\n if (this.groupSelectsChildren && rowNode.group) {\n return;\n }\n if (rowNode.isSelected()) {\n this.selectedNodes[rowNode.id] = rowNode;\n }\n else {\n this.selectedNodes[rowNode.id] = undefined;\n }\n };\n SelectionController.prototype.syncInRowNode = function (rowNode, oldNode) {\n this.syncInOldRowNode(rowNode, oldNode);\n this.syncInNewRowNode(rowNode);\n };\n // if the id has changed for the node, then this means the rowNode\n // is getting used for a different data item, which breaks\n // our selectedNodes, as the node now is mapped by the old id\n // which is inconsistent. so to keep the old node as selected,\n // we swap in the clone (with the old id and old data). this means\n // the oldNode is effectively a daemon we keep a reference to,\n // so if client calls api.getSelectedNodes(), it gets the daemon\n // in the result. when the client un-selects, the reference to the\n // daemon is removed. the daemon, because it's an oldNode, is not\n // used by the grid for rendering, it's a copy of what the node used\n // to be like before the id was changed.\n SelectionController.prototype.syncInOldRowNode = function (rowNode, oldNode) {\n var oldNodeHasDifferentId = exists(oldNode) && (rowNode.id !== oldNode.id);\n if (oldNodeHasDifferentId && oldNode) {\n var oldNodeSelected = exists(this.selectedNodes[oldNode.id]);\n if (oldNodeSelected) {\n this.selectedNodes[oldNode.id] = oldNode;\n }\n }\n };\n SelectionController.prototype.syncInNewRowNode = function (rowNode) {\n if (exists(this.selectedNodes[rowNode.id])) {\n rowNode.setSelectedInitialValue(true);\n this.selectedNodes[rowNode.id] = rowNode;\n }\n else {\n rowNode.setSelectedInitialValue(false);\n }\n };\n SelectionController.prototype.reset = function () {\n this.logger.log('reset');\n this.selectedNodes = {};\n this.lastSelectedNode = null;\n };\n // returns a list of all nodes at 'best cost' - a feature to be used\n // with groups / trees. if a group has all it's children selected,\n // then the group appears in the result, but not the children.\n // Designed for use with 'children' as the group selection type,\n // where groups don't actually appear in the selection normally.\n SelectionController.prototype.getBestCostNodeSelection = function () {\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n console.warn('getBestCostNodeSelection is only available when using normal row model');\n return;\n }\n var clientSideRowModel = this.rowModel;\n var topLevelNodes = clientSideRowModel.getTopLevelNodes();\n if (topLevelNodes === null) {\n console.warn('selectAll not available doing rowModel=virtual');\n return;\n }\n var result = [];\n // recursive function, to find the selected nodes\n function traverse(nodes) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n var node = nodes[i];\n if (node.isSelected()) {\n result.push(node);\n }\n else {\n // if not selected, then if it's a group, and the group\n // has children, continue to search for selections\n if (node.group && node.children) {\n traverse(node.children);\n }\n }\n }\n }\n traverse(topLevelNodes);\n return result;\n };\n SelectionController.prototype.setRowModel = function (rowModel) {\n this.rowModel = rowModel;\n };\n SelectionController.prototype.isEmpty = function () {\n var count = 0;\n iterateObject(this.selectedNodes, function (nodeId, rowNode) {\n if (rowNode) {\n count++;\n }\n });\n return count === 0;\n };\n SelectionController.prototype.deselectAllRowNodes = function (justFiltered) {\n if (justFiltered === void 0) { justFiltered = false; }\n var callback = function (rowNode) { return rowNode.selectThisNode(false); };\n var rowModelClientSide = this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n if (justFiltered) {\n if (!rowModelClientSide) {\n console.error('AG Grid: selecting just filtered only works with In Memory Row Model');\n return;\n }\n var clientSideRowModel = this.rowModel;\n clientSideRowModel.forEachNodeAfterFilter(callback);\n }\n else {\n iterateObject(this.selectedNodes, function (id, rowNode) {\n // remember the reference can be to null, as we never 'delete' from the map\n if (rowNode) {\n callback(rowNode);\n }\n });\n // this clears down the map (whereas above only sets the items in map to 'undefined')\n this.reset();\n }\n // the above does not clean up the parent rows if they are selected\n if (rowModelClientSide && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections();\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n SelectionController.prototype.selectAllRowNodes = function (justFiltered) {\n if (justFiltered === void 0) { justFiltered = false; }\n if (this.rowModel.getType() !== Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n throw new Error(\"selectAll only available with normal row model, ie not \" + this.rowModel.getType());\n }\n var clientSideRowModel = this.rowModel;\n var callback = function (rowNode) { return rowNode.selectThisNode(true); };\n if (justFiltered) {\n clientSideRowModel.forEachNodeAfterFilter(callback);\n }\n else {\n clientSideRowModel.forEachNode(callback);\n }\n // the above does not clean up the parent rows if they are selected\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections();\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n /**\n * @method\n * @deprecated\n */\n SelectionController.prototype.selectNode = function (rowNode, tryMulti) {\n if (rowNode) {\n rowNode.setSelectedParams({ newValue: true, clearSelection: !tryMulti });\n }\n };\n /**\n * @method\n * @deprecated\n */\n SelectionController.prototype.deselectIndex = function (rowIndex) {\n var node = this.rowModel.getRow(rowIndex);\n this.deselectNode(node);\n };\n /**\n * @method\n * @deprecated\n */\n SelectionController.prototype.deselectNode = function (rowNode) {\n if (rowNode) {\n rowNode.setSelectedParams({ newValue: false, clearSelection: false });\n }\n };\n /**\n * @method\n * @deprecated\n */\n SelectionController.prototype.selectIndex = function (index, tryMulti) {\n var node = this.rowModel.getRow(index);\n this.selectNode(node, tryMulti);\n };\n __decorate$A([\n Autowired('rowModel')\n ], SelectionController.prototype, \"rowModel\", void 0);\n __decorate$A([\n Autowired('columnApi')\n ], SelectionController.prototype, \"columnApi\", void 0);\n __decorate$A([\n Autowired('gridApi')\n ], SelectionController.prototype, \"gridApi\", void 0);\n __decorate$A([\n __param$4(0, Qualifier('loggerFactory'))\n ], SelectionController.prototype, \"setBeans\", null);\n __decorate$A([\n PostConstruct\n ], SelectionController.prototype, \"init\", null);\n SelectionController = __decorate$A([\n Bean('selectionController')\n ], SelectionController);\n return SelectionController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$B = (undefined && undefined.__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 ColumnApi = /** @class */ (function () {\n function ColumnApi() {\n }\n ColumnApi.prototype.sizeColumnsToFit = function (gridWidth) {\n // AG-3403 validate that gridWidth is provided because this method has the same name as\n // a method on the grid API that takes no arguments, and it's easy to confuse the two\n if (typeof gridWidth === \"undefined\") {\n console.error('AG Grid: missing parameter to columnApi.sizeColumnsToFit(gridWidth)');\n }\n this.columnController.sizeColumnsToFit(gridWidth, 'api');\n };\n ColumnApi.prototype.setColumnGroupOpened = function (group, newValue) { this.columnController.setColumnGroupOpened(group, newValue, 'api'); };\n ColumnApi.prototype.getColumnGroup = function (name, instanceId) { return this.columnController.getColumnGroup(name, instanceId); };\n ColumnApi.prototype.getOriginalColumnGroup = function (name) { return this.columnController.getOriginalColumnGroup(name); };\n ColumnApi.prototype.getDisplayNameForColumn = function (column, location) { return this.columnController.getDisplayNameForColumn(column, location) || ''; };\n ColumnApi.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) { return this.columnController.getDisplayNameForColumnGroup(columnGroup, location) || ''; };\n ColumnApi.prototype.getColumn = function (key) { return this.columnController.getPrimaryColumn(key); };\n ColumnApi.prototype.applyColumnState = function (params) { return this.columnController.applyColumnState(params, 'api'); };\n ColumnApi.prototype.getColumnState = function () { return this.columnController.getColumnState(); };\n ColumnApi.prototype.resetColumnState = function () { this.columnController.resetColumnState('api'); };\n ColumnApi.prototype.getColumnGroupState = function () { return this.columnController.getColumnGroupState(); };\n ColumnApi.prototype.setColumnGroupState = function (stateItems) { this.columnController.setColumnGroupState(stateItems, 'api'); };\n ColumnApi.prototype.resetColumnGroupState = function () { this.columnController.resetColumnGroupState('api'); };\n ColumnApi.prototype.isPinning = function () { return this.columnController.isPinningLeft() || this.columnController.isPinningRight(); };\n ColumnApi.prototype.isPinningLeft = function () { return this.columnController.isPinningLeft(); };\n ColumnApi.prototype.isPinningRight = function () { return this.columnController.isPinningRight(); };\n ColumnApi.prototype.getDisplayedColAfter = function (col) { return this.columnController.getDisplayedColAfter(col); };\n ColumnApi.prototype.getDisplayedColBefore = function (col) { return this.columnController.getDisplayedColBefore(col); };\n ColumnApi.prototype.setColumnVisible = function (key, visible) { this.columnController.setColumnVisible(key, visible, 'api'); };\n ColumnApi.prototype.setColumnsVisible = function (keys, visible) { this.columnController.setColumnsVisible(keys, visible, 'api'); };\n ColumnApi.prototype.setColumnPinned = function (key, pinned) { this.columnController.setColumnPinned(key, pinned, 'api'); };\n ColumnApi.prototype.setColumnsPinned = function (keys, pinned) { this.columnController.setColumnsPinned(keys, pinned, 'api'); };\n ColumnApi.prototype.getAllColumns = function () { return this.columnController.getAllPrimaryColumns(); };\n ColumnApi.prototype.getAllGridColumns = function () { return this.columnController.getAllGridColumns(); };\n ColumnApi.prototype.getDisplayedLeftColumns = function () { return this.columnController.getDisplayedLeftColumns(); };\n ColumnApi.prototype.getDisplayedCenterColumns = function () { return this.columnController.getDisplayedCenterColumns(); };\n ColumnApi.prototype.getDisplayedRightColumns = function () { return this.columnController.getDisplayedRightColumns(); };\n ColumnApi.prototype.getAllDisplayedColumns = function () { return this.columnController.getAllDisplayedColumns(); };\n ColumnApi.prototype.getAllDisplayedVirtualColumns = function () { return this.columnController.getViewportColumns(); };\n ColumnApi.prototype.moveColumn = function (key, toIndex) {\n if (typeof key === 'number') {\n // moveColumn used to take indexes, so this is advising user who hasn't moved to new method name\n console.warn('AG Grid: you are using moveColumn(fromIndex, toIndex) - moveColumn takes a column key and a destination index, not two indexes, to move with indexes use moveColumnByIndex(from,to) instead');\n this.columnController.moveColumnByIndex(key, toIndex, 'api');\n }\n else {\n this.columnController.moveColumn(key, toIndex, 'api');\n }\n };\n ColumnApi.prototype.moveColumnByIndex = function (fromIndex, toIndex) { this.columnController.moveColumnByIndex(fromIndex, toIndex, 'api'); };\n ColumnApi.prototype.moveColumns = function (columnsToMoveKeys, toIndex) { this.columnController.moveColumns(columnsToMoveKeys, toIndex, 'api'); };\n ColumnApi.prototype.moveRowGroupColumn = function (fromIndex, toIndex) { this.columnController.moveRowGroupColumn(fromIndex, toIndex); };\n ColumnApi.prototype.setColumnAggFunc = function (key, aggFunc) { this.columnController.setColumnAggFunc(key, aggFunc); };\n ColumnApi.prototype.setColumnWidth = function (key, newWidth, finished) {\n if (finished === void 0) { finished = true; }\n this.columnController.setColumnWidths([{ key: key, newWidth: newWidth }], false, finished);\n };\n ColumnApi.prototype.setColumnWidths = function (columnWidths, finished) {\n if (finished === void 0) { finished = true; }\n this.columnController.setColumnWidths(columnWidths, false, finished);\n };\n ColumnApi.prototype.setPivotMode = function (pivotMode) { this.columnController.setPivotMode(pivotMode); };\n ColumnApi.prototype.isPivotMode = function () { return this.columnController.isPivotMode(); };\n ColumnApi.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) { return this.columnController.getSecondaryPivotColumn(pivotKeys, valueColKey); };\n ColumnApi.prototype.setValueColumns = function (colKeys) { this.columnController.setValueColumns(colKeys, 'api'); };\n ColumnApi.prototype.getValueColumns = function () { return this.columnController.getValueColumns(); };\n ColumnApi.prototype.removeValueColumn = function (colKey) { this.columnController.removeValueColumn(colKey, 'api'); };\n ColumnApi.prototype.removeValueColumns = function (colKeys) { this.columnController.removeValueColumns(colKeys, 'api'); };\n ColumnApi.prototype.addValueColumn = function (colKey) { this.columnController.addValueColumn(colKey, 'api'); };\n ColumnApi.prototype.addValueColumns = function (colKeys) { this.columnController.addValueColumns(colKeys, 'api'); };\n ColumnApi.prototype.setRowGroupColumns = function (colKeys) { this.columnController.setRowGroupColumns(colKeys, 'api'); };\n ColumnApi.prototype.removeRowGroupColumn = function (colKey) { this.columnController.removeRowGroupColumn(colKey, 'api'); };\n ColumnApi.prototype.removeRowGroupColumns = function (colKeys) { this.columnController.removeRowGroupColumns(colKeys, 'api'); };\n ColumnApi.prototype.addRowGroupColumn = function (colKey) { this.columnController.addRowGroupColumn(colKey, 'api'); };\n ColumnApi.prototype.addRowGroupColumns = function (colKeys) { this.columnController.addRowGroupColumns(colKeys, 'api'); };\n ColumnApi.prototype.getRowGroupColumns = function () { return this.columnController.getRowGroupColumns(); };\n ColumnApi.prototype.setPivotColumns = function (colKeys) { this.columnController.setPivotColumns(colKeys, 'api'); };\n ColumnApi.prototype.removePivotColumn = function (colKey) { this.columnController.removePivotColumn(colKey, 'api'); };\n ColumnApi.prototype.removePivotColumns = function (colKeys) { this.columnController.removePivotColumns(colKeys, 'api'); };\n ColumnApi.prototype.addPivotColumn = function (colKey) { this.columnController.addPivotColumn(colKey, 'api'); };\n ColumnApi.prototype.addPivotColumns = function (colKeys) { this.columnController.addPivotColumns(colKeys, 'api'); };\n ColumnApi.prototype.getPivotColumns = function () { return this.columnController.getPivotColumns(); };\n ColumnApi.prototype.getLeftDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeLeft(); };\n ColumnApi.prototype.getCenterDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeCentre(); };\n ColumnApi.prototype.getRightDisplayedColumnGroups = function () { return this.columnController.getDisplayedTreeRight(); };\n ColumnApi.prototype.getAllDisplayedColumnGroups = function () { return this.columnController.getAllDisplayedTrees(); };\n ColumnApi.prototype.autoSizeColumn = function (key, skipHeader) { return this.columnController.autoSizeColumn(key, skipHeader, 'api'); };\n ColumnApi.prototype.autoSizeColumns = function (keys, skipHeader) { return this.columnController.autoSizeColumns(keys, skipHeader, 'api'); };\n ColumnApi.prototype.autoSizeAllColumns = function (skipHeader) { this.columnController.autoSizeAllColumns(skipHeader, 'api'); };\n ColumnApi.prototype.setSecondaryColumns = function (colDefs) { this.columnController.setSecondaryColumns(colDefs, 'api'); };\n ColumnApi.prototype.getSecondaryColumns = function () { return this.columnController.getSecondaryColumns(); };\n ColumnApi.prototype.getPrimaryColumns = function () { return this.columnController.getAllPrimaryColumns(); };\n ColumnApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in teh API so at least the core grid can be garbage collected.\n //\n // wait about 100ms before clearing down the references, in case user has some cleanup to do,\n // and needs to deference the API first\n setTimeout(_.removeAllReferences.bind(window, this, 'Column API'), 100);\n };\n // below goes through deprecated items, prints message to user, then calls the new version of the same method\n // public getColumnDefs(): (ColDef | ColGroupDef)[] {\n // this.setColumnGroupOpened(group, newValue);\n // return null;\n // }\n ColumnApi.prototype.columnGroupOpened = function (group, newValue) {\n console.error('AG Grid: columnGroupOpened no longer exists, use setColumnGroupOpened');\n this.setColumnGroupOpened(group, newValue);\n };\n ColumnApi.prototype.hideColumns = function (colIds, hide) {\n console.error('AG Grid: hideColumns is deprecated, use setColumnsVisible');\n this.columnController.setColumnsVisible(colIds, !hide, 'api');\n };\n ColumnApi.prototype.hideColumn = function (colId, hide) {\n console.error('AG Grid: hideColumn is deprecated, use setColumnVisible');\n this.columnController.setColumnVisible(colId, !hide, 'api');\n };\n ColumnApi.prototype.setState = function (columnState) {\n console.error('AG Grid: setState is deprecated, use setColumnState');\n return this.setColumnState(columnState);\n };\n ColumnApi.prototype.getState = function () {\n console.error('AG Grid: getState is deprecated, use getColumnState');\n return this.getColumnState();\n };\n ColumnApi.prototype.resetState = function () {\n console.error('AG Grid: resetState is deprecated, use resetColumnState');\n this.resetColumnState();\n };\n ColumnApi.prototype.getAggregationColumns = function () {\n console.error('AG Grid: getAggregationColumns is deprecated, use getValueColumns');\n return this.columnController.getValueColumns();\n };\n ColumnApi.prototype.removeAggregationColumn = function (colKey) {\n console.error('AG Grid: removeAggregationColumn is deprecated, use removeValueColumn');\n this.columnController.removeValueColumn(colKey, 'api');\n };\n ColumnApi.prototype.removeAggregationColumns = function (colKeys) {\n console.error('AG Grid: removeAggregationColumns is deprecated, use removeValueColumns');\n this.columnController.removeValueColumns(colKeys, 'api');\n };\n ColumnApi.prototype.addAggregationColumn = function (colKey) {\n console.error('AG Grid: addAggregationColumn is deprecated, use addValueColumn');\n this.columnController.addValueColumn(colKey, 'api');\n };\n ColumnApi.prototype.addAggregationColumns = function (colKeys) {\n console.error('AG Grid: addAggregationColumns is deprecated, use addValueColumns');\n this.columnController.addValueColumns(colKeys, 'api');\n };\n ColumnApi.prototype.setColumnAggFunction = function (column, aggFunc) {\n console.error('AG Grid: setColumnAggFunction is deprecated, use setColumnAggFunc');\n this.columnController.setColumnAggFunc(column, aggFunc, 'api');\n };\n ColumnApi.prototype.getDisplayNameForCol = function (column) {\n console.error('AG Grid: getDisplayNameForCol is deprecated, use getDisplayNameForColumn');\n return this.getDisplayNameForColumn(column, null);\n };\n ColumnApi.prototype.setColumnState = function (columnState) {\n return this.columnController.applyColumnState({ state: columnState, applyOrder: true }, 'api');\n };\n __decorate$B([\n Autowired('columnController')\n ], ColumnApi.prototype, \"columnController\", void 0);\n __decorate$B([\n PreDestroy\n ], ColumnApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n ColumnApi = __decorate$B([\n Bean('columnApi')\n ], ColumnApi);\n return ColumnApi;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __assign$3 = (undefined && undefined.__assign) || function () {\n __assign$3 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$3.apply(this, arguments);\n};\nvar AngularRowUtils = /** @class */ (function () {\n function AngularRowUtils() {\n }\n AngularRowUtils.createChildScopeOrNull = function (rowNode, parentScope, gridOptionsWrapper) {\n var isAngularCompileRows = gridOptionsWrapper.isAngularCompileRows();\n if (!isAngularCompileRows) {\n return null;\n }\n var newChildScope = parentScope.$new();\n newChildScope.data = __assign$3({}, rowNode.data);\n newChildScope.rowNode = rowNode;\n newChildScope.context = gridOptionsWrapper.getContext();\n var destroyFunc = function () {\n newChildScope.$destroy();\n newChildScope.data = null;\n newChildScope.rowNode = null;\n newChildScope.context = null;\n };\n return {\n scope: newChildScope,\n scopeDestroyFunc: destroyFunc\n };\n };\n return AngularRowUtils;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$F = (undefined && undefined.__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 RowType;\n(function (RowType) {\n RowType[\"Normal\"] = \"Normal\";\n RowType[\"FullWidth\"] = \"FullWidth\";\n RowType[\"FullWidthLoading\"] = \"FullWidthLoading\";\n RowType[\"FullWidthGroup\"] = \"FullWidthGroup\";\n RowType[\"FullWidthDetail\"] = \"FullWidthDetail\";\n})(RowType || (RowType = {}));\nvar FullWidthRenderers = convertToMap([\n [RowType.FullWidthLoading, 'agLoadingCellRenderer'],\n [RowType.FullWidthGroup, 'agGroupRowRenderer'],\n [RowType.FullWidthDetail, 'agDetailCellRenderer']\n]);\nvar FullWidthKeys = convertToMap([\n [RowType.FullWidth, 'fullWidthCellRenderer'],\n [RowType.FullWidthLoading, 'loadingCellRenderer'],\n [RowType.FullWidthGroup, 'groupRowRenderer'],\n [RowType.FullWidthDetail, 'detailCellRenderer']\n]);\nvar instanceIdSequence = 0;\nvar RowController = /** @class */ (function (_super) {\n __extends$F(RowController, _super);\n function RowController(parentScope, rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout) {\n var _this = _super.call(this) || this;\n _this.instanceId = instanceIdSequence++;\n _this.allRowComps = [];\n _this.active = true;\n _this.centerCols = [];\n _this.leftCols = [];\n _this.rightCols = [];\n _this.lastMouseDownOnDragger = false;\n _this.updateColumnListsPending = false;\n _this.parentScope = parentScope;\n _this.beans = beans;\n _this.rowNode = rowNode;\n _this.rowIsEven = _this.rowNode.rowIndex % 2 === 0;\n _this.paginationPage = _this.beans.paginationProxy.getCurrentPage();\n _this.useAnimationFrameForCreate = useAnimationFrameForCreate;\n _this.printLayout = printLayout;\n _this.setAnimateFlags(animateIn);\n _this.rowFocused = _this.beans.focusController.isRowFocused(_this.rowNode.rowIndex, _this.rowNode.rowPinned);\n _this.setupAngular1Scope();\n _this.rowLevel = _this.beans.rowCssClassCalculator.calculateRowLevel(_this.rowNode);\n _this.setRowType();\n _this.updateColumnLists(!_this.useAnimationFrameForCreate);\n _this.addListeners();\n if (_this.slideRowIn) {\n executeNextVMTurn(_this.onTopChanged.bind(_this));\n }\n if (_this.fadeRowIn) {\n executeNextVMTurn(function () {\n _this.allRowComps.forEach(function (rowComp) { return removeCssClass(rowComp.getGui(), 'ag-opacity-zero'); });\n });\n }\n return _this;\n }\n RowController.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n RowController.prototype.setLeftRowComp = function (rowComp) {\n if (this.leftRowComp) {\n console.error('AG Grid - should not set leftRowComp twice');\n }\n this.leftRowComp = rowComp;\n this.allRowComps.push(rowComp);\n };\n RowController.prototype.setRightRowComp = function (rowComp) {\n if (this.rightRowComp) {\n console.error('AG Grid - should not set rightRowComp twice');\n }\n this.rightRowComp = rowComp;\n this.allRowComps.push(rowComp);\n };\n RowController.prototype.setCenterRowComp = function (rowComp) {\n if (this.centerRowComp) {\n console.error('AG Grid - should not set centerRowComp twice');\n }\n this.centerRowComp = rowComp;\n this.allRowComps.push(rowComp);\n };\n RowController.prototype.setFullWidthRowComp = function (rowComp) {\n if (this.fullWidthRowComp) {\n console.error('AG Grid - should not set fullWidthRowComp twice');\n }\n this.fullWidthRowComp = rowComp;\n this.allRowComps.push(rowComp);\n };\n RowController.prototype.getColsForRowComp = function (pinned) {\n switch (pinned) {\n case Constants.PINNED_RIGHT: return this.rightCols;\n case Constants.PINNED_LEFT: return this.leftCols;\n default: return this.centerCols;\n }\n };\n RowController.prototype.getScope = function () {\n return this.scope;\n };\n RowController.prototype.isPrintLayout = function () {\n return this.printLayout;\n };\n RowController.prototype.setupAngular1Scope = function () {\n var scopeResult = AngularRowUtils.createChildScopeOrNull(this.rowNode, this.parentScope, this.beans.gridOptionsWrapper);\n if (scopeResult) {\n this.scope = scopeResult.scope;\n this.addDestroyFunc(scopeResult.scopeDestroyFunc);\n }\n };\n RowController.prototype.getCellForCol = function (column) {\n var cellComp = this.getRenderedCellForColumn(column);\n return cellComp ? cellComp.getGui() : null;\n };\n RowController.prototype.executeProcessRowPostCreateFunc = function () {\n var func = this.beans.gridOptionsWrapper.getProcessRowPostCreateFunc();\n if (!func) {\n return;\n }\n var params = {\n eRow: this.centerRowComp ? this.centerRowComp.getGui() : undefined,\n ePinnedLeftRow: this.leftRowComp ? this.leftRowComp.getGui() : undefined,\n ePinnedRightRow: this.rightRowComp ? this.rightRowComp.getGui() : undefined,\n node: this.rowNode,\n api: this.beans.gridOptionsWrapper.getApi(),\n rowIndex: this.rowNode.rowIndex,\n addRenderedRowListener: this.addEventListener.bind(this),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n func(params);\n };\n RowController.prototype.setRowType = function () {\n var isStub = this.rowNode.stub;\n var isFullWidthCell = this.rowNode.isFullWidthCell();\n var isDetailCell = this.beans.doingMasterDetail && this.rowNode.detail;\n var pivotMode = this.beans.columnController.isPivotMode();\n // we only use full width for groups, not footers. it wouldn't make sense to include footers if not looking\n // for totals. if users complain about this, then we should introduce a new property 'footerUseEntireRow'\n // so each can be set independently (as a customer complained about footers getting full width, hence\n // introducing this logic)\n var isGroupRow = !!this.rowNode.group && !this.rowNode.footer;\n var isFullWidthGroup = isGroupRow && this.beans.gridOptionsWrapper.isGroupUseEntireRow(pivotMode);\n if (isStub) {\n this.rowType = RowType.FullWidthLoading;\n }\n else if (isDetailCell) {\n this.rowType = RowType.FullWidthDetail;\n }\n else if (isFullWidthCell) {\n this.rowType = RowType.FullWidth;\n }\n else if (isFullWidthGroup) {\n this.rowType = RowType.FullWidthGroup;\n }\n else {\n this.rowType = RowType.Normal;\n }\n };\n RowController.prototype.updateColumnLists = function (suppressAnimationFrame) {\n var _this = this;\n if (suppressAnimationFrame === void 0) { suppressAnimationFrame = false; }\n if (this.isFullWidth()) {\n return;\n }\n var noAnimation = suppressAnimationFrame\n || this.beans.gridOptionsWrapper.isSuppressAnimationFrame()\n || this.printLayout;\n if (noAnimation) {\n this.updateColumnListsImpl();\n return;\n }\n if (this.updateColumnListsPending) {\n return;\n }\n this.beans.taskQueue.createTask(function () {\n if (!_this.active) {\n return;\n }\n _this.updateColumnListsImpl();\n }, this.rowNode.rowIndex, 'createTasksP1');\n this.updateColumnListsPending = true;\n };\n RowController.prototype.updateColumnListsImpl = function () {\n this.updateColumnListsPending = false;\n if (this.printLayout) {\n this.centerCols = this.beans.columnController.getAllDisplayedColumns();\n this.leftCols = [];\n this.rightCols = [];\n }\n else {\n this.centerCols = this.beans.columnController.getViewportCenterColumnsForRow(this.rowNode);\n this.leftCols = this.beans.columnController.getDisplayedLeftColumnsForRow(this.rowNode);\n this.rightCols = this.beans.columnController.getDisplayedRightColumnsForRow(this.rowNode);\n }\n this.allRowComps.forEach(function (rc) { return rc.onColumnChanged(); });\n };\n RowController.prototype.setAnimateFlags = function (animateIn) {\n if (animateIn) {\n var oldRowTopExists = exists(this.rowNode.oldRowTop);\n // if the row had a previous position, we slide it in (animate row top)\n this.slideRowIn = oldRowTopExists;\n // if the row had no previous position, we fade it in (animate\n this.fadeRowIn = !oldRowTopExists;\n }\n else {\n this.slideRowIn = false;\n this.fadeRowIn = false;\n }\n };\n RowController.prototype.isEditing = function () {\n return this.editingRow;\n };\n RowController.prototype.stopRowEditing = function (cancel) {\n this.stopEditing(cancel);\n };\n RowController.prototype.isFullWidth = function () {\n return this.rowType !== RowType.Normal;\n };\n RowController.prototype.getRowType = function () {\n return this.rowType;\n };\n RowController.prototype.refreshFullWidth = function () {\n var _this = this;\n // returns 'true' if refresh succeeded\n var tryRefresh = function (rowComp, pinned) {\n if (!rowComp) {\n return true;\n } // no refresh needed\n var cellComp = rowComp.getFullWidthRowComp();\n if (!cellComp) {\n return true;\n } // no refresh needed\n // no refresh method present, so can't refresh, hard refresh needed\n if (!cellComp.refresh) {\n return false;\n }\n var params = _this.createFullWidthParams(rowComp.getGui(), pinned);\n var refreshSucceeded = cellComp.refresh(params);\n return refreshSucceeded;\n };\n var normalSuccess = tryRefresh(this.fullWidthRowComp, null);\n var bodySuccess = tryRefresh(this.centerRowComp, null);\n var leftSuccess = tryRefresh(this.leftRowComp, Constants.PINNED_LEFT);\n var rightSuccess = tryRefresh(this.rightRowComp, Constants.PINNED_RIGHT);\n var allFullWidthRowsRefreshed = normalSuccess && bodySuccess && leftSuccess && rightSuccess;\n return allFullWidthRowsRefreshed;\n };\n RowController.prototype.addListeners = function () {\n this.addManagedListener(this.rowNode, RowNode.EVENT_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, this.onRowIndexChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_TOP_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_EXPANDED_CHANGED, this.updateExpandedCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, this.updateExpandedCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.onRowNodeCellChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HIGHLIGHT_CHANGED, this.onRowNodeHighlightChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DRAGGING_CHANGED, this.onRowNodeDraggingChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_UI_LEVEL_CHANGED, this.onUiLevelChanged.bind(this));\n var eventService = this.beans.eventService;\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED, this.onPaginationPixelOffsetChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_CELL_FOCUSED, this.onCellFocusChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedListener(eventService, Events.EVENT_COLUMN_MOVED, this.onColumnMoved.bind(this));\n this.addListenersForCellComps();\n };\n RowController.prototype.onColumnMoved = function () {\n this.updateColumnLists();\n };\n RowController.prototype.addListenersForCellComps = function () {\n var _this = this;\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.onRowIndexChanged(); });\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, function (event) {\n _this.forEachCellComp(function (cellComp) { return cellComp.onCellChanged(event); });\n });\n };\n RowController.prototype.onRowNodeDataChanged = function (event) {\n // if this is an update, we want to refresh, as this will allow the user to put in a transition\n // into the cellRenderer refresh method. otherwise this might be completely new data, in which case\n // we will want to completely replace the cells\n this.forEachCellComp(function (cellComp) {\n return cellComp.refreshCell({\n suppressFlash: !event.update,\n newData: !event.update\n });\n });\n // check for selected also, as this could be after lazy loading of the row data, in which case\n // the id might of just gotten set inside the row and the row selected state may of changed\n // as a result. this is what happens when selected rows are loaded in virtual pagination.\n // - niall note - since moving to the stub component, this may no longer be true, as replacing\n // the stub component now replaces the entire row\n this.onRowSelected();\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n };\n RowController.prototype.onRowNodeCellChanged = function () {\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n };\n RowController.prototype.postProcessCss = function () {\n this.postProcessStylesFromGridOptions();\n this.postProcessClassesFromGridOptions();\n this.postProcessRowClassRules();\n this.postProcessRowDragging();\n };\n RowController.prototype.onRowNodeHighlightChanged = function () {\n var highlighted = this.rowNode.highlighted;\n this.allRowComps.forEach(function (rowComp) {\n var eGui = rowComp.getGui();\n removeCssClass(eGui, 'ag-row-highlight-above');\n removeCssClass(eGui, 'ag-row-highlight-below');\n if (highlighted) {\n addCssClass(eGui, 'ag-row-highlight-' + highlighted);\n }\n });\n };\n RowController.prototype.onRowNodeDraggingChanged = function () {\n this.postProcessRowDragging();\n };\n RowController.prototype.postProcessRowDragging = function () {\n var dragging = this.rowNode.dragging;\n this.allRowComps.forEach(function (rowComp) { return addOrRemoveCssClass(rowComp.getGui(), 'ag-row-dragging', dragging); });\n };\n RowController.prototype.updateExpandedCss = function () {\n var expandable = this.rowNode.isExpandable();\n var expanded = this.rowNode.expanded == true;\n this.allRowComps.forEach(function (rowComp) {\n var eRow = rowComp.getGui();\n addOrRemoveCssClass(eRow, 'ag-row-group', expandable);\n addOrRemoveCssClass(eRow, 'ag-row-group-expanded', expandable && expanded);\n addOrRemoveCssClass(eRow, 'ag-row-group-contracted', expandable && !expanded);\n setAriaExpanded(eRow, expandable && expanded);\n });\n };\n RowController.prototype.onDisplayedColumnsChanged = function () {\n // we skip animations for onDisplayedColumnChanged, as otherwise the client could remove columns and\n // then set data, and any old valueGetter's (ie from cols that were removed) would still get called.\n this.updateColumnLists(true);\n };\n RowController.prototype.onVirtualColumnsChanged = function () {\n this.updateColumnLists();\n };\n RowController.prototype.getRowPosition = function () {\n return {\n rowPinned: this.rowNode.rowPinned,\n rowIndex: this.rowNode.rowIndex\n };\n };\n RowController.prototype.onKeyboardNavigate = function (keyboardEvent) {\n var currentFullWidthComp = find(this.allRowComps, function (rowComp) { return rowComp.getGui().contains(keyboardEvent.target); });\n var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.getGui() : null;\n var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n if (!isFullWidthContainerFocused) {\n return;\n }\n var node = this.rowNode;\n var lastFocusedCell = this.beans.focusController.getFocusedCell();\n var cellPosition = {\n rowIndex: node.rowIndex,\n rowPinned: node.rowPinned,\n column: (lastFocusedCell && lastFocusedCell.column)\n };\n this.beans.rowRenderer.navigateToNextCell(keyboardEvent, keyboardEvent.keyCode, cellPosition, true);\n keyboardEvent.preventDefault();\n };\n RowController.prototype.onTabKeyDown = function (keyboardEvent) {\n if (keyboardEvent.defaultPrevented || isStopPropagationForAgGrid(keyboardEvent)) {\n return;\n }\n var currentFullWidthComp = find(this.allRowComps, function (rowComp) { return rowComp.getGui().contains(keyboardEvent.target); });\n var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.getGui() : null;\n var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n var nextEl = null;\n if (!isFullWidthContainerFocused) {\n nextEl = this.beans.focusController.findNextFocusableElement(currentFullWidthContainer, false, keyboardEvent.shiftKey);\n }\n if ((this.isFullWidth() && isFullWidthContainerFocused) || !nextEl) {\n this.beans.rowRenderer.onTabKeyDown(this, keyboardEvent);\n }\n };\n RowController.prototype.onFullWidthRowFocused = function (event) {\n var node = this.rowNode;\n var isFocused = this.isFullWidth() && event.rowIndex === node.rowIndex && event.rowPinned == node.rowPinned;\n var element = this.fullWidthRowComp ? this.fullWidthRowComp.getGui() : this.centerRowComp.getGui();\n addOrRemoveCssClass(element, 'ag-full-width-focus', isFocused);\n if (isFocused) {\n // we don't scroll normal rows into view when we focus them, so we don't want\n // to scroll Full Width rows either.\n element.focus({ preventScroll: true });\n }\n };\n RowController.prototype.refreshCell = function (cellComp) {\n this.allRowComps.forEach(function (rc) { return rc.destroyCells([cellComp]); });\n this.updateColumnLists();\n };\n RowController.prototype.onMouseEvent = function (eventName, mouseEvent) {\n switch (eventName) {\n case 'dblclick':\n this.onRowDblClick(mouseEvent);\n break;\n case 'click':\n this.onRowClick(mouseEvent);\n break;\n case 'mousedown':\n this.onRowMouseDown(mouseEvent);\n break;\n }\n };\n RowController.prototype.createRowEvent = function (type, domEvent) {\n return {\n type: type,\n node: this.rowNode,\n data: this.rowNode.data,\n rowIndex: this.rowNode.rowIndex,\n rowPinned: this.rowNode.rowPinned,\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n event: domEvent\n };\n };\n RowController.prototype.createRowEventWithSource = function (type, domEvent) {\n var event = this.createRowEvent(type, domEvent);\n // when first developing this, we included the rowComp in the event.\n // this seems very weird. so when introducing the event types, i left the 'source'\n // out of the type, and just include the source in the two places where this event\n // was fired (rowClicked and rowDoubleClicked). it doesn't make sense for any\n // users to be using this, as the rowComp isn't an object we expose, so would be\n // very surprising if a user was using it.\n event.source = this;\n return event;\n };\n RowController.prototype.onRowDblClick = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var agEvent = this.createRowEventWithSource(Events.EVENT_ROW_DOUBLE_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n };\n RowController.prototype.onRowMouseDown = function (mouseEvent) {\n this.lastMouseDownOnDragger = isElementChildOfClass(mouseEvent.target, 'ag-row-drag', 3);\n if (!this.isFullWidth()) {\n return;\n }\n var node = this.rowNode;\n var columnController = this.beans.columnController;\n this.beans.focusController.setFocusedCell(node.rowIndex, columnController.getAllDisplayedColumns()[0], node.rowPinned, true);\n };\n RowController.prototype.onRowClick = function (mouseEvent) {\n var stop = isStopPropagationForAgGrid(mouseEvent) || this.lastMouseDownOnDragger;\n if (stop) {\n return;\n }\n var agEvent = this.createRowEventWithSource(Events.EVENT_ROW_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n // ctrlKey for windows, metaKey for Apple\n var multiSelectKeyPressed = mouseEvent.ctrlKey || mouseEvent.metaKey;\n var shiftKeyPressed = mouseEvent.shiftKey;\n // we do not allow selecting the group by clicking, when groupSelectChildren, as the logic to\n // handle this is broken. to observe, change the logic below and allow groups to be selected.\n // you will see the group gets selected, then all children get selected, then the grid unselects\n // the children (as the default behaviour when clicking is to unselect other rows) which results\n // in the group getting unselected (as all children are unselected). the correct thing would be\n // to change this, so that children of the selected group are not then subsequenly un-selected.\n var groupSelectsChildren = this.beans.gridOptionsWrapper.isGroupSelectsChildren();\n if (\n // we do not allow selecting groups by clicking (as the click here expands the group), or if it's a detail row,\n // so return if it's a group row\n (groupSelectsChildren && this.rowNode.group) ||\n // this is needed so we don't unselect other rows when we click this row, eg if this row is not selectable,\n // and we click it, the selection should not change (ie any currently selected row should stay selected)\n !this.rowNode.selectable ||\n // we also don't allow selection of pinned rows\n this.rowNode.rowPinned ||\n // if no selection method enabled, do nothing\n !this.beans.gridOptionsWrapper.isRowSelection() ||\n // if click selection suppressed, do nothing\n this.beans.gridOptionsWrapper.isSuppressRowClickSelection()) {\n return;\n }\n var multiSelectOnClick = this.beans.gridOptionsWrapper.isRowMultiSelectWithClick();\n var rowDeselectionWithCtrl = !this.beans.gridOptionsWrapper.isSuppressRowDeselection();\n if (this.rowNode.isSelected()) {\n if (multiSelectOnClick) {\n this.rowNode.setSelectedParams({ newValue: false });\n }\n else if (multiSelectKeyPressed) {\n if (rowDeselectionWithCtrl) {\n this.rowNode.setSelectedParams({ newValue: false });\n }\n }\n else {\n // selected with no multi key, must make sure anything else is unselected\n this.rowNode.setSelectedParams({ newValue: !shiftKeyPressed, clearSelection: !shiftKeyPressed, rangeSelect: shiftKeyPressed });\n }\n }\n else {\n var clearSelection = multiSelectOnClick ? false : !multiSelectKeyPressed;\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: shiftKeyPressed });\n }\n };\n RowController.prototype.setupDetailRowAutoHeight = function (eDetailGui) {\n var _this = this;\n if (!this.beans.gridOptionsWrapper.isDetailRowAutoHeight()) {\n return;\n }\n var checkRowSizeFunc = function () {\n var clientHeight = eDetailGui.clientHeight;\n // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur\n // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means\n // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an\n // empty detail grid would still have some styling around it giving at least a few pixels.\n if (clientHeight != null && clientHeight > 0) {\n // we do the update in a timeout, to make sure we are not calling from inside the grid\n // doing another update\n var updateRowHeightFunc = function () {\n _this.rowNode.setRowHeight(clientHeight);\n if (_this.beans.clientSideRowModel) {\n _this.beans.clientSideRowModel.onRowHeightChanged();\n }\n else if (_this.beans.serverSideRowModel) {\n _this.beans.serverSideRowModel.onRowHeightChanged();\n }\n };\n _this.beans.frameworkOverrides.setTimeout(updateRowHeightFunc, 0);\n }\n };\n var resizeObserverDestroyFunc = this.beans.resizeObserverService.observeResize(eDetailGui, checkRowSizeFunc);\n this.addDestroyFunc(resizeObserverDestroyFunc);\n checkRowSizeFunc();\n };\n RowController.prototype.createFullWidthParams = function (eRow, pinned) {\n var _this = this;\n var params = {\n fullWidth: true,\n data: this.rowNode.data,\n node: this.rowNode,\n value: this.rowNode.key,\n valueFormatted: this.rowNode.key,\n $scope: this.scope ? this.scope : this.parentScope,\n $compile: this.beans.$compile,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n // these need to be taken out, as part of 'afterAttached' now\n eGridCell: eRow,\n eParentOfValue: eRow,\n pinned: pinned,\n addRenderedRowListener: this.addEventListener.bind(this),\n registerRowDragger: function (rowDraggerElement, dragStartPixels, value) { return _this.addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value); }\n };\n return params;\n };\n RowController.prototype.addFullWidthRowDragging = function (rowDraggerElement, dragStartPixels, value) {\n if (value === void 0) { value = ''; }\n if (!this.isFullWidth()) {\n return;\n }\n var rowDragComp = new RowDragComp(function () { return value; }, this.rowNode, undefined, rowDraggerElement, dragStartPixels);\n this.createManagedBean(rowDragComp, this.beans.context);\n };\n RowController.prototype.onUiLevelChanged = function () {\n var newLevel = this.beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);\n if (this.rowLevel != newLevel) {\n var classToAdd_1 = 'ag-row-level-' + newLevel;\n var classToRemove_1 = 'ag-row-level-' + this.rowLevel;\n this.allRowComps.forEach(function (rowComp) {\n var eGui = rowComp.getGui();\n addCssClass(eGui, classToAdd_1);\n removeCssClass(eGui, classToRemove_1);\n });\n }\n this.rowLevel = newLevel;\n };\n RowController.prototype.isFirstRowOnPage = function () {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageFirstRow();\n };\n RowController.prototype.isLastRowOnPage = function () {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageLastRow();\n };\n RowController.prototype.onModelUpdated = function () {\n var newFirst = this.isFirstRowOnPage();\n var newLast = this.isLastRowOnPage();\n if (this.firstRowOnPage !== newFirst) {\n this.firstRowOnPage = newFirst;\n this.allRowComps.forEach(function (rowComp) { return addOrRemoveCssClass(rowComp.getGui(), 'ag-row-first', newFirst); });\n }\n if (this.lastRowOnPage !== newLast) {\n this.lastRowOnPage = newLast;\n this.allRowComps.forEach(function (rowComp) { return addOrRemoveCssClass(rowComp.getGui(), 'ag-row-last', newLast); });\n }\n };\n RowController.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.forEachCellComp(function (renderedCell) {\n renderedCell.stopEditing(cancel);\n });\n if (!this.editingRow) {\n return;\n }\n if (!cancel) {\n var event_1 = this.createRowEvent(Events.EVENT_ROW_VALUE_CHANGED);\n this.beans.eventService.dispatchEvent(event_1);\n }\n this.setEditingRow(false);\n };\n RowController.prototype.setEditingRow = function (value) {\n this.editingRow = value;\n this.allRowComps.forEach(function (rowComp) { return addOrRemoveCssClass(rowComp.getGui(), 'ag-row-editing', value); });\n var event = value ?\n this.createRowEvent(Events.EVENT_ROW_EDITING_STARTED)\n : this.createRowEvent(Events.EVENT_ROW_EDITING_STOPPED);\n this.beans.eventService.dispatchEvent(event);\n };\n RowController.prototype.startRowEditing = function (keyPress, charPress, sourceRenderedCell) {\n if (keyPress === void 0) { keyPress = null; }\n if (charPress === void 0) { charPress = null; }\n if (sourceRenderedCell === void 0) { sourceRenderedCell = null; }\n // don't do it if already editing\n if (this.editingRow) {\n return;\n }\n this.forEachCellComp(function (renderedCell) {\n var cellStartedEdit = renderedCell === sourceRenderedCell;\n if (cellStartedEdit) {\n renderedCell.startEditingIfEnabled(keyPress, charPress, cellStartedEdit);\n }\n else {\n renderedCell.startEditingIfEnabled(null, null, cellStartedEdit);\n }\n });\n this.setEditingRow(true);\n };\n RowController.prototype.forEachCellComp = function (callback) {\n this.allRowComps.forEach(function (rc) { return rc.forEachCellComp(callback); });\n };\n RowController.prototype.postProcessClassesFromGridOptions = function () {\n var _this = this;\n var cssClasses = this.beans.rowCssClassCalculator.processClassesFromGridOptions(this.rowNode, this.scope);\n if (!cssClasses || !cssClasses.length) {\n return;\n }\n cssClasses.forEach(function (classStr) {\n _this.allRowComps.forEach(function (rowComp) { return addCssClass(rowComp.getGui(), classStr); });\n });\n };\n RowController.prototype.postProcessRowClassRules = function () {\n var _this = this;\n this.beans.rowCssClassCalculator.processRowClassRules(this.rowNode, this.scope, function (className) {\n _this.allRowComps.forEach(function (rowComp) { return addCssClass(rowComp.getGui(), className); });\n }, function (className) {\n _this.allRowComps.forEach(function (rowComp) { return removeCssClass(rowComp.getGui(), className); });\n });\n };\n RowController.prototype.postProcessStylesFromGridOptions = function () {\n var rowStyles = this.processStylesFromGridOptions();\n this.allRowComps.forEach(function (rowComp) { return addStylesToElement(rowComp.getGui(), rowStyles); });\n };\n RowController.prototype.getInitialRowTopStyle = function () {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return '';\n }\n // if sliding in, we take the old row top. otherwise we just set the current row top.\n var pixels = this.slideRowIn ? this.roundRowTopToBounds(this.rowNode.oldRowTop) : this.rowNode.rowTop;\n var afterPaginationPixels = this.applyPaginationOffset(pixels);\n // we don't apply scaling if row is pinned\n var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n var isSuppressRowTransform = this.beans.gridOptionsWrapper.isSuppressRowTransform();\n return isSuppressRowTransform ? \"top: \" + afterScalingPixels + \"px; \" : \"transform: translateY(\" + afterScalingPixels + \"px);\";\n };\n RowController.prototype.getRowBusinessKey = function () {\n var businessKeyForNodeFunc = this.beans.gridOptionsWrapper.getBusinessKeyForNodeFunc();\n if (typeof businessKeyForNodeFunc !== 'function') {\n return;\n }\n return businessKeyForNodeFunc(this.rowNode);\n };\n RowController.prototype.getInitialRowClasses = function (pinned) {\n var params = {\n rowNode: this.rowNode,\n rowFocused: this.rowFocused,\n fadeRowIn: this.fadeRowIn,\n rowIsEven: this.rowIsEven,\n rowLevel: this.rowLevel,\n fullWidthRow: this.isFullWidth(),\n firstRowOnPage: this.isFirstRowOnPage(),\n lastRowOnPage: this.isLastRowOnPage(),\n printLayout: this.printLayout,\n expandable: this.rowNode.isExpandable(),\n scope: this.scope,\n pinned: pinned\n };\n return this.beans.rowCssClassCalculator.getInitialRowClasses(params);\n };\n RowController.prototype.preProcessStylesFromGridOptions = function () {\n var rowStyles = this.processStylesFromGridOptions();\n return cssStyleObjectToMarkup(rowStyles);\n };\n RowController.prototype.processStylesFromGridOptions = function () {\n // part 1 - rowStyle\n var rowStyle = this.beans.gridOptionsWrapper.getRowStyle();\n if (rowStyle && typeof rowStyle === 'function') {\n console.warn('AG Grid: rowStyle should be an object of key/value styles, not be a function, use getRowStyle() instead');\n return;\n }\n // part 1 - rowStyleFunc\n var rowStyleFunc = this.beans.gridOptionsWrapper.getRowStyleFunc();\n var rowStyleFuncResult;\n if (rowStyleFunc) {\n var params = {\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n $scope: this.scope,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n rowStyleFuncResult = rowStyleFunc(params);\n }\n return assign({}, rowStyle, rowStyleFuncResult);\n };\n RowController.prototype.onRowSelected = function () {\n var _this = this;\n var selected = this.rowNode.isSelected();\n this.allRowComps.forEach(function (rowComp) {\n var eGui = rowComp.getGui();\n setAriaSelected(eGui, selected);\n addOrRemoveCssClass(eGui, 'ag-row-selected', selected);\n _this.refreshAriaLabel(eGui, selected);\n });\n };\n RowController.prototype.refreshAriaLabel = function (node, selected) {\n if (selected && this.beans.gridOptionsWrapper.isSuppressRowDeselection()) {\n node.removeAttribute('aria-label');\n return;\n }\n var translate = this.beans.gridOptionsWrapper.getLocaleTextFunc();\n var label = translate(selected ? 'ariaRowDeselect' : 'ariaRowSelect', \"Press SPACE to \" + (selected ? 'deselect' : 'select') + \" this row.\");\n setAriaLabel(node, label);\n };\n RowController.prototype.isUseAnimationFrameForCreate = function () {\n return this.useAnimationFrameForCreate;\n };\n RowController.prototype.addHoverFunctionality = function (eRow) {\n var _this = this;\n // because we use animation frames to do this, it's possible the row no longer exists\n // by the time we get to add it\n if (!this.active) {\n return;\n }\n // because mouseenter and mouseleave do not propagate, we cannot listen on the gridPanel\n // like we do for all the other mouse events.\n // because of the pinning, we cannot simply add / remove the class based on the eRow. we\n // have to check all eRow's (body & pinned). so the trick is if any of the rows gets a\n // mouse hover, it sets such in the rowNode, and then all three reflect the change as\n // all are listening for event on the row node.\n // step 1 - add listener, to set flag on row node\n this.addManagedListener(eRow, 'mouseenter', function () { return _this.rowNode.onMouseEnter(); });\n this.addManagedListener(eRow, 'mouseleave', function () { return _this.rowNode.onMouseLeave(); });\n // step 2 - listen for changes on row node (which any eRow can trigger)\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_ENTER, function () {\n // if hover turned off, we don't add the class. we do this here so that if the application\n // toggles this property mid way, we remove the hover form the last row, but we stop\n // adding hovers from that point onwards.\n if (!_this.beans.gridOptionsWrapper.isSuppressRowHoverHighlight()) {\n addCssClass(eRow, 'ag-row-hover');\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_LEAVE, function () {\n removeCssClass(eRow, 'ag-row-hover');\n });\n };\n // for animation, we don't want to animate entry or exit to a very far away pixel,\n // otherwise the row would move so fast, it would appear to disappear. so this method\n // moves the row closer to the viewport if it is far away, so the row slide in / out\n // at a speed the user can see.\n RowController.prototype.roundRowTopToBounds = function (rowTop) {\n var gridBodyCon = this.beans.controllersService.getGridBodyController();\n var range = gridBodyCon.getScrollFeature().getVScrollPosition();\n var minPixel = this.applyPaginationOffset(range.top, true) - 100;\n var maxPixel = this.applyPaginationOffset(range.bottom, true) + 100;\n return Math.min(Math.max(minPixel, rowTop), maxPixel);\n };\n RowController.prototype.getFrameworkOverrides = function () {\n return this.beans.frameworkOverrides;\n };\n RowController.prototype.onRowHeightChanged = function () {\n // check for exists first - if the user is resetting the row height, then\n // it will be null (or undefined) momentarily until the next time the flatten\n // stage is called where the row will then update again with a new height\n if (exists(this.rowNode.rowHeight)) {\n var heightPx_1 = this.rowNode.rowHeight + \"px\";\n this.allRowComps.forEach(function (rowComp) { return rowComp.getGui().style.height = heightPx_1; });\n }\n };\n RowController.prototype.addEventListener = function (eventType, listener) {\n if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {\n eventType = Events.EVENT_VIRTUAL_ROW_REMOVED;\n console.warn('AG Grid: Since version 11, event renderedRowRemoved is now called ' + Events.EVENT_VIRTUAL_ROW_REMOVED);\n }\n _super.prototype.addEventListener.call(this, eventType, listener);\n };\n RowController.prototype.removeEventListener = function (eventType, listener) {\n if (eventType === 'renderedRowRemoved' || eventType === 'rowRemoved') {\n eventType = Events.EVENT_VIRTUAL_ROW_REMOVED;\n console.warn('AG Grid: Since version 11, event renderedRowRemoved and rowRemoved is now called ' + Events.EVENT_VIRTUAL_ROW_REMOVED);\n }\n _super.prototype.removeEventListener.call(this, eventType, listener);\n };\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n RowController.prototype.destroyFirstPass = function () {\n this.active = false;\n // why do we have this method? shouldn't everything below be added as a destroy func beside\n // the corresponding create logic?\n this.setupRemoveAnimation();\n var event = this.createRowEvent(Events.EVENT_VIRTUAL_ROW_REMOVED);\n this.dispatchEvent(event);\n this.beans.eventService.dispatchEvent(event);\n _super.prototype.destroy.call(this);\n };\n RowController.prototype.setupRemoveAnimation = function () {\n var rowStillVisibleJustNotInViewport = this.rowNode.rowTop != null;\n if (rowStillVisibleJustNotInViewport) {\n // if the row is not rendered, but in viewport, it means it has moved,\n // so we animate the row out. if the new location is very far away,\n // the animation will be so fast the row will look like it's just disappeared,\n // so instead we animate to a position just outside the viewport.\n var rowTop = this.roundRowTopToBounds(this.rowNode.rowTop);\n this.setRowTop(rowTop);\n }\n else {\n this.allRowComps.forEach(function (rowComp) {\n addCssClass(rowComp.getGui(), 'ag-opacity-zero');\n });\n }\n };\n RowController.prototype.destroySecondPass = function () {\n this.allRowComps.forEach(function (c) { return c.destroy(); });\n this.allRowComps.length = 0;\n };\n RowController.prototype.onCellFocusChanged = function () {\n var rowFocused = this.beans.focusController.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);\n if (rowFocused !== this.rowFocused) {\n this.allRowComps.forEach(function (rowComp) {\n var eRow = rowComp.getGui();\n addOrRemoveCssClass(eRow, 'ag-row-focus', rowFocused);\n addOrRemoveCssClass(eRow, 'ag-row-no-focus', !rowFocused);\n });\n this.rowFocused = rowFocused;\n }\n // if we are editing, then moving the focus out of a row will stop editing\n if (!rowFocused && this.editingRow) {\n this.stopEditing(false);\n }\n };\n RowController.prototype.onPaginationChanged = function () {\n var currentPage = this.beans.paginationProxy.getCurrentPage();\n // it is possible this row is in the new page, but the page number has changed, which means\n // it needs to reposition itself relative to the new page\n if (this.paginationPage !== currentPage) {\n this.paginationPage = currentPage;\n this.onTopChanged();\n }\n };\n RowController.prototype.onTopChanged = function () {\n this.setRowTop(this.rowNode.rowTop);\n };\n RowController.prototype.onPaginationPixelOffsetChanged = function () {\n // the pixel offset is used when calculating rowTop to set on the row DIV\n this.onTopChanged();\n };\n // applies pagination offset, eg if on second page, and page height is 500px, then removes\n // 500px from the top position, so a row with rowTop 600px is displayed at location 100px.\n // reverse will take the offset away rather than add.\n RowController.prototype.applyPaginationOffset = function (topPx, reverse) {\n if (reverse === void 0) { reverse = false; }\n if (this.rowNode.isRowPinned()) {\n return topPx;\n }\n var pixelOffset = this.beans.paginationProxy.getPixelOffset();\n var multiplier = reverse ? 1 : -1;\n return topPx + (pixelOffset * multiplier);\n };\n RowController.prototype.setRowTop = function (pixels) {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return;\n }\n // need to make sure rowTop is not null, as this can happen if the node was once\n // visible (ie parent group was expanded) but is now not visible\n if (exists(pixels)) {\n var afterPaginationPixels = this.applyPaginationOffset(pixels);\n var afterScalingPixels = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n var topPx_1 = afterScalingPixels + \"px\";\n var suppressRowTransform_1 = this.beans.gridOptionsWrapper.isSuppressRowTransform();\n this.allRowComps.forEach(function (rowComp) {\n var eGui = rowComp.getGui();\n if (suppressRowTransform_1) {\n eGui.style.top = topPx_1;\n }\n else {\n eGui.style.transform = \"translateY(\" + topPx_1 + \")\";\n }\n });\n }\n };\n RowController.prototype.getRowNode = function () {\n return this.rowNode;\n };\n RowController.prototype.getRenderedCellForColumn = function (column) {\n var cellComps = this.allRowComps.map(function (rc) { return rc.getCellComp(column.getColId()); });\n var cellComp = find(cellComps, function (c) { return !!c; });\n if (cellComp) {\n return cellComp;\n }\n var spannedCellComps = this.allRowComps.map(function (rc) { return rc.getCellCompSpanned(column); });\n cellComp = find(spannedCellComps, function (c) { return !!c; });\n return cellComp || null;\n };\n RowController.prototype.onRowIndexChanged = function () {\n // we only bother updating if the rowIndex is present. if it is not present, it means this row\n // is child of a group node, and the group node was closed, it's the only way to have no row index.\n // when this happens, row is about to be de-rendered, so we don't care, rowComp is about to die!\n if (this.rowNode.rowIndex != null) {\n this.onCellFocusChanged();\n this.updateRowIndexes();\n }\n };\n RowController.prototype.updateRowIndexes = function () {\n var _this = this;\n var rowIndexStr = this.rowNode.getRowIndexString();\n var rowIsEven = this.rowNode.rowIndex % 2 === 0;\n var rowIsEvenChanged = this.rowIsEven !== rowIsEven;\n var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();\n if (rowIsEvenChanged) {\n this.rowIsEven = rowIsEven;\n }\n this.allRowComps.forEach(function (rowComp) {\n var eRow = rowComp.getGui();\n eRow.setAttribute('row-index', rowIndexStr);\n setAriaRowIndex(eRow, headerRowCount + _this.rowNode.rowIndex + 1);\n if (!rowIsEvenChanged) {\n return;\n }\n addOrRemoveCssClass(eRow, 'ag-row-even', rowIsEven);\n addOrRemoveCssClass(eRow, 'ag-row-odd', !rowIsEven);\n });\n };\n // returns the pinned left container, either the normal one, or the embedded full with one if exists\n RowController.prototype.getPinnedLeftRowElement = function () {\n return this.leftRowComp ? this.leftRowComp.getGui() : undefined;\n };\n // returns the pinned right container, either the normal one, or the embedded full with one if exists\n RowController.prototype.getPinnedRightRowElement = function () {\n return this.rightRowComp ? this.rightRowComp.getGui() : undefined;\n };\n // returns the body container, either the normal one, or the embedded full with one if exists\n RowController.prototype.getBodyRowElement = function () {\n return this.centerRowComp ? this.centerRowComp.getGui() : undefined;\n };\n // returns the full width container\n RowController.prototype.getFullWidthRowElement = function () {\n return this.fullWidthRowComp ? this.fullWidthRowComp.getGui() : undefined;\n };\n RowController.DOM_DATA_KEY_RENDERED_ROW = 'renderedRow';\n return RowController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n(function (SelectionHandleType) {\n SelectionHandleType[SelectionHandleType[\"FILL\"] = 0] = \"FILL\";\n SelectionHandleType[SelectionHandleType[\"RANGE\"] = 1] = \"RANGE\";\n})(exports.SelectionHandleType || (exports.SelectionHandleType = {}));\n(function (CellRangeType) {\n CellRangeType[CellRangeType[\"VALUE\"] = 0] = \"VALUE\";\n CellRangeType[CellRangeType[\"DIMENSION\"] = 1] = \"DIMENSION\";\n})(exports.CellRangeType || (exports.CellRangeType = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$G = (undefined && undefined.__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 PopupEditorWrapper = /** @class */ (function (_super) {\n __extends$G(PopupEditorWrapper, _super);\n function PopupEditorWrapper(cellEditor) {\n var _this = _super.call(this, \"
\") || this;\n _this.getGuiCalledOnChild = false;\n _this.cellEditor = cellEditor;\n return _this;\n }\n PopupEditorWrapper.prototype.onKeyDown = function (event) {\n if (!isUserSuppressingKeyboardEvent(this.gridOptionsWrapper, event, this.params.node, this.params.column, true)) {\n this.params.onKeyDown(event);\n }\n };\n PopupEditorWrapper.prototype.getGui = function () {\n // we call getGui() on child here (rather than in the constructor)\n // as we should wait for 'init' to be called on child first.\n if (!this.getGuiCalledOnChild) {\n this.appendChild(this.cellEditor.getGui());\n this.getGuiCalledOnChild = true;\n }\n return _super.prototype.getGui.call(this);\n };\n PopupEditorWrapper.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.gridOptionsWrapper.setDomData(this.getGui(), PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER, true);\n this.addDestroyFunc(function () { return _this.destroyBean(_this.cellEditor); });\n this.addManagedListener(\n // this needs to be 'super' and not 'this' as if we call 'this',\n // it ends up called 'getGui()' on the child before 'init' was called,\n // which is not good\n _super.prototype.getGui.call(this), 'keydown', this.onKeyDown.bind(this));\n };\n PopupEditorWrapper.prototype.afterGuiAttached = function () {\n if (this.cellEditor.afterGuiAttached) {\n this.cellEditor.afterGuiAttached();\n }\n };\n PopupEditorWrapper.prototype.getValue = function () {\n return this.cellEditor.getValue();\n };\n PopupEditorWrapper.prototype.isCancelBeforeStart = function () {\n if (this.cellEditor.isCancelBeforeStart) {\n return this.cellEditor.isCancelBeforeStart();\n }\n return false;\n };\n PopupEditorWrapper.prototype.isCancelAfterEnd = function () {\n if (this.cellEditor.isCancelAfterEnd) {\n return this.cellEditor.isCancelAfterEnd();\n }\n return false;\n };\n PopupEditorWrapper.prototype.getPopupPosition = function () {\n if (this.cellEditor.getPopupPosition) {\n return this.cellEditor.getPopupPosition();\n }\n };\n PopupEditorWrapper.prototype.focusIn = function () {\n if (this.cellEditor.focusIn) {\n this.cellEditor.focusIn();\n }\n };\n PopupEditorWrapper.prototype.focusOut = function () {\n if (this.cellEditor.focusOut) {\n this.cellEditor.focusOut();\n }\n };\n PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER = 'popupEditorWrapper';\n return PopupEditorWrapper;\n}(PopupComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$H = (undefined && undefined.__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$C = (undefined && undefined.__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 DndSourceComp = /** @class */ (function (_super) {\n __extends$H(DndSourceComp, _super);\n function DndSourceComp(rowNode, column, beans, eCell) {\n var _this = _super.call(this, \"
\") || this;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.beans = beans;\n _this.eCell = eCell;\n return _this;\n }\n DndSourceComp.prototype.postConstruct = function () {\n var eGui = this.getGui();\n eGui.appendChild(createIconNoSpan('rowDrag', this.beans.gridOptionsWrapper, null));\n // we need to stop the event propagation here to avoid starting a range selection while dragging\n this.addGuiEventListener('mousedown', function (e) {\n e.stopPropagation();\n });\n this.addDragSource();\n this.checkVisibility();\n };\n DndSourceComp.prototype.addDragSource = function () {\n this.addGuiEventListener('dragstart', this.onDragStart.bind(this));\n };\n DndSourceComp.prototype.onDragStart = function (dragEvent) {\n var _this = this;\n var providedOnRowDrag = this.column.getColDef().dndSourceOnRowDrag;\n var isIE = isBrowserIE();\n if (!isIE) {\n dragEvent.dataTransfer.setDragImage(this.eCell, 0, 0);\n }\n // default behaviour is to convert data to json and set into drag component\n var defaultOnRowDrag = function () {\n try {\n var jsonData = JSON.stringify(_this.rowNode.data);\n if (isIE) {\n dragEvent.dataTransfer.setData('text', jsonData);\n }\n else {\n dragEvent.dataTransfer.setData('application/json', jsonData);\n dragEvent.dataTransfer.setData('text/plain', jsonData);\n }\n }\n catch (e) {\n // if we cannot convert the data to json, then we do not set the type\n }\n };\n if (providedOnRowDrag) {\n providedOnRowDrag({ rowNode: this.rowNode, dragEvent: dragEvent });\n }\n else {\n defaultOnRowDrag();\n }\n };\n DndSourceComp.prototype.checkVisibility = function () {\n var visible = this.column.isDndSource(this.rowNode);\n this.setDisplayed(visible);\n };\n __decorate$C([\n PostConstruct\n ], DndSourceComp.prototype, \"postConstruct\", null);\n return DndSourceComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$I = (undefined && undefined.__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 __assign$4 = (undefined && undefined.__assign) || function () {\n __assign$4 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$4.apply(this, arguments);\n};\nvar CSS_CELL = 'ag-cell';\nvar CSS_CELL_VALUE = 'ag-cell-value';\nvar CSS_AUTO_HEIGHT = 'ag-cell-auto-height';\nvar CSS_RANGE_TOP = 'ag-cell-range-top';\nvar CSS_RANGE_RIGHT = 'ag-cell-range-right';\nvar CSS_RANGE_BOTTOM = 'ag-cell-range-bottom';\nvar CSS_RANGE_LEFT = 'ag-cell-range-left';\nvar CSS_CELL_FOCUS = 'ag-cell-focus';\nvar CSS_FIRST_RIGHT_PINNED = 'ag-cell-first-right-pinned';\nvar CSS_LAST_LEFT_PINNED = 'ag-cell-last-left-pinned';\nvar CSS_NOT_INLINE_EDITING = 'ag-cell-not-inline-editing';\nvar CSS_INLINE_EDITING = 'ag-cell-inline-editing';\nvar CSS_POPUP_EDITING = 'ag-cell-popup-editing';\nvar CSS_RANGE_SELECTED = 'ag-cell-range-selected';\nvar CSS_COLUMN_HOVER = 'ag-column-hover';\nvar CSS_CELL_WRAP_TEXT = 'ag-cell-wrap-text';\nvar CSS_RANGE_CHART = 'ag-cell-range-chart';\nvar CSS_RANGE_SINGLE_CELL = 'ag-cell-range-single-cell';\nvar CSS_RANGE_CHART_CATEGORY = 'ag-cell-range-chart-category';\nvar CSS_RANGE_HANDLE = 'ag-cell-range-handle';\nvar CellComp = /** @class */ (function (_super) {\n __extends$I(CellComp, _super);\n function CellComp(scope, beans, column, rowNode, rowComp, autoHeightCell, printLayout, eRow, editingRow) {\n var _this = _super.call(this) || this;\n _this.hasChartRange = false;\n _this.editingCell = false;\n _this.suppressRefreshCell = false;\n _this.tooltipFeatureEnabled = false;\n _this.scope = null;\n // every time we go into edit mode, or back again, this gets incremented.\n // it's the components way of dealing with the async nature of framework components,\n // so if a framework component takes a while to be created, we know if the object\n // is still relevant when creating is finished. eg we could click edit / un-edit 20\n // times before the first React edit component comes back - we should discard\n // the first 19.\n _this.cellEditorVersion = 0;\n _this.cellRendererVersion = 0;\n _this.scope = scope;\n _this.beans = beans;\n _this.column = column;\n _this.rowNode = rowNode;\n _this.rowComp = rowComp;\n _this.autoHeightCell = autoHeightCell;\n _this.printLayout = printLayout;\n _this.eRow = eRow;\n _this.createGridCellVo();\n _this.rangeSelectionEnabled = _this.beans.rangeController && beans.gridOptionsWrapper.isEnableRangeSelection();\n _this.cellFocused = _this.beans.focusController.isCellFocused(_this.cellPosition);\n _this.firstRightPinned = _this.column.isFirstRightPinned();\n _this.lastLeftPinned = _this.column.isLastLeftPinned();\n if (_this.rangeSelectionEnabled && _this.beans.rangeController) {\n var rangeController = _this.beans.rangeController;\n _this.rangeCount = rangeController.getCellRangeCount(_this.cellPosition);\n _this.hasChartRange = _this.getHasChartRange();\n }\n _this.getValueAndFormat();\n _this.setUsingWrapper();\n _this.chooseCellRenderer();\n _this.setupColSpan();\n _this.rowSpan = _this.column.getRowSpan(_this.rowNode);\n _this.setTemplate(_this.getCreateTemplate());\n _this.afterAttached();\n // if we are editing the row, then the cell needs to turn\n // into edit mode\n if (editingRow) {\n _this.startEditingIfEnabled();\n }\n return _this;\n }\n CellComp.prototype.getCreateTemplate = function () {\n var unselectable = !this.beans.gridOptionsWrapper.isEnableCellTextSelection() ? ' unselectable=\"on\"' : '';\n var templateParts = [];\n var col = this.column;\n var width = this.getCellWidth();\n var left = this.modifyLeftForPrintLayout(this.getCellLeft());\n var valueToRender = this.getInitialValueToRender();\n var valueSanitised = get(this.column, 'colDef.template', null) ? valueToRender : escapeString(valueToRender);\n this.tooltip = this.getToolTip();\n var tooltipSanitised = escapeString(this.tooltip);\n var colIdSanitised = escapeString(col.getId());\n var stylesFromColDef = this.preProcessStylesFromColDef();\n var cssClasses = this.getInitialCssClasses();\n var stylesForRowSpanning = this.getStylesForRowSpanning();\n var colIdxSanitised = escapeString(this.beans.columnController.getAriaColumnIndex(this.column).toString());\n templateParts.push(\"\");\n if (this.usingWrapper) {\n templateParts.push(this.getCellWrapperString(valueSanitised));\n }\n else if (valueSanitised != null) {\n templateParts.push(valueSanitised);\n }\n templateParts.push(\"
\");\n return templateParts.join('');\n };\n CellComp.prototype.getCellWrapperString = function (value) {\n if (value === void 0) { value = ''; }\n var unselectable = !this.beans.gridOptionsWrapper.isEnableCellTextSelection() ? ' unselectable=\"on\"' : '';\n var wrapper = /* html */ \"
\\n \\n \" + (value != null ? value : '') + \"\\n \\n
\";\n return wrapper;\n };\n CellComp.prototype.getStylesForRowSpanning = function () {\n if (this.rowSpan === 1) {\n return '';\n }\n var singleRowHeight = this.beans.gridOptionsWrapper.getRowHeightAsNumber();\n var totalRowHeight = singleRowHeight * this.rowSpan;\n return \"height: \" + totalRowHeight + \"px; z-index: 1;\";\n };\n CellComp.prototype.afterAttached = function () {\n // all of these have dependencies on the eGui, so only do them after eGui is set\n this.addDomData();\n this.populateTemplate();\n this.createCellRendererInstance(true);\n this.angular1Compile();\n this.refreshHandle();\n if (exists(this.tooltip)) {\n this.createTooltipFeatureIfNeeded();\n }\n };\n CellComp.prototype.createTooltipFeatureIfNeeded = function () {\n if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips() ||\n this.tooltipFeatureEnabled) {\n return;\n }\n this.createManagedBean(new TooltipFeature(this), this.beans.context);\n this.tooltipFeatureEnabled = true;\n };\n CellComp.prototype.onColumnHover = function () {\n var isHovered = this.beans.columnHoverService.isHovered(this.column);\n this.addOrRemoveCssClass(CSS_COLUMN_HOVER, isHovered);\n };\n CellComp.prototype.onCellChanged = function (event) {\n var eventImpactsThisCell = event.column === this.column;\n if (eventImpactsThisCell) {\n this.refreshCell({});\n }\n };\n CellComp.prototype.getCellLeft = function () {\n var mostLeftCol;\n if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {\n mostLeftCol = last(this.colsSpanning);\n }\n else {\n mostLeftCol = this.column;\n }\n return mostLeftCol.getLeft();\n };\n CellComp.prototype.getCellWidth = function () {\n if (!this.colsSpanning) {\n return this.column.getActualWidth();\n }\n return this.colsSpanning.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);\n };\n CellComp.prototype.onFlashCells = function (event) {\n var cellId = this.beans.cellPositionUtils.createId(this.cellPosition);\n var shouldFlash = event.cells[cellId];\n if (shouldFlash) {\n this.animateCell('highlight');\n }\n };\n CellComp.prototype.setupColSpan = function () {\n // if no col span is active, then we don't set it up, as it would be wasteful of CPU\n if (missing(this.getComponentHolder().colSpan)) {\n return;\n }\n // because we are col spanning, a reorder of the cols can change what cols we are spanning over\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));\n // because we are spanning over multiple cols, we check for width any time any cols width changes.\n // this is expensive - really we should be explicitly checking only the cols we are spanning over\n // instead of every col, however it would be tricky code to track the cols we are spanning over, so\n // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));\n this.colsSpanning = this.getColSpanningList();\n };\n CellComp.prototype.getColSpanningList = function () {\n var colSpan = this.column.getColSpan(this.rowNode);\n var colsSpanning = [];\n // if just one col, the col span is just the column we are in\n if (colSpan === 1) {\n colsSpanning.push(this.column);\n }\n else {\n var pointer = this.column;\n var pinned = this.column.getPinned();\n for (var i = 0; pointer && i < colSpan; i++) {\n colsSpanning.push(pointer);\n pointer = this.beans.columnController.getDisplayedColAfter(pointer);\n if (!pointer || missing(pointer)) {\n break;\n }\n // we do not allow col spanning to span outside of pinned areas\n if (pinned !== pointer.getPinned()) {\n break;\n }\n }\n }\n return colsSpanning;\n };\n CellComp.prototype.onDisplayColumnsChanged = function () {\n var colsSpanning = this.getColSpanningList();\n if (!areEqual(this.colsSpanning, colsSpanning)) {\n this.colsSpanning = colsSpanning;\n this.onWidthChanged();\n this.onLeftChanged(); // left changes when doing RTL\n }\n };\n CellComp.prototype.refreshAriaIndex = function () {\n var colIdx = this.beans.columnController.getAriaColumnIndex(this.column);\n setAriaColIndex(this.getGui(), colIdx);\n };\n CellComp.prototype.getInitialCssClasses = function () {\n var cssClasses = [CSS_CELL, CSS_NOT_INLINE_EDITING];\n // if we are putting the cell into a dummy container, to work out it's height,\n // then we don't put the height css in, as we want cell to fit height in that case.\n if (!this.autoHeightCell) {\n cssClasses.push(CSS_AUTO_HEIGHT);\n }\n var doingFocusCss = !this.beans.gridOptionsWrapper.isSuppressCellSelection();\n if (doingFocusCss && this.cellFocused) {\n // otherwise the class depends on the focus state\n cssClasses.push(CSS_CELL_FOCUS);\n }\n if (this.firstRightPinned) {\n cssClasses.push(CSS_FIRST_RIGHT_PINNED);\n }\n if (this.lastLeftPinned) {\n cssClasses.push(CSS_LAST_LEFT_PINNED);\n }\n if (this.beans.columnHoverService.isHovered(this.column)) {\n cssClasses.push(CSS_COLUMN_HOVER);\n }\n pushAll(cssClasses, this.preProcessClassesFromColDef());\n pushAll(cssClasses, this.preProcessCellClassRules());\n pushAll(cssClasses, this.getInitialRangeClasses());\n // if using the wrapper, this class goes on the wrapper instead\n if (!this.usingWrapper) {\n cssClasses.push(CSS_CELL_VALUE);\n }\n this.wrapText = this.column.getColDef().wrapText == true;\n if (this.wrapText) {\n cssClasses.push(CSS_CELL_WRAP_TEXT);\n }\n return cssClasses;\n };\n CellComp.prototype.getInitialValueToRender = function () {\n // if using a cellRenderer, then render the html from the cell renderer if it exists\n if (this.usingCellRenderer) {\n if (typeof this.cellRendererGui === 'string') {\n return this.cellRendererGui;\n }\n return '';\n }\n var colDef = this.getComponentHolder();\n if (colDef.template) {\n // template is really only used for angular 1 - as people using ng1 are used to providing templates with\n // bindings in it. in ng2, people will hopefully want to provide components, not templates.\n return colDef.template;\n }\n if (colDef.templateUrl) {\n // likewise for templateUrl - it's for ng1 really - when we move away from ng1, we can take these out.\n // niall was pro angular 1 when writing template and templateUrl, if writing from scratch now, would\n // not do these, but would follow a pattern that was friendly towards components, not templates.\n var template = this.beans.templateService.getTemplate(colDef.templateUrl, this.refreshCell.bind(this, true));\n return template || '';\n }\n return this.getValueToUse();\n };\n CellComp.prototype.getRenderedRow = function () {\n return this.rowComp;\n };\n CellComp.prototype.isSuppressNavigable = function () {\n return this.column.isSuppressNavigable(this.rowNode);\n };\n CellComp.prototype.getCellRenderer = function () {\n return this.cellRenderer;\n };\n CellComp.prototype.getCellEditor = function () {\n return this.cellEditor;\n };\n CellComp.prototype.onNewColumnsLoaded = function () {\n this.postProcessWrapText();\n this.postProcessCellClassRules();\n };\n CellComp.prototype.postProcessWrapText = function () {\n var newValue = this.column.getColDef().wrapText == true;\n if (newValue !== this.wrapText) {\n this.wrapText = newValue;\n this.addOrRemoveCssClass(CSS_CELL_WRAP_TEXT, this.wrapText);\n }\n };\n // + stop editing {forceRefresh: true, suppressFlash: true}\n // + event cellChanged {}\n // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything\n // + rowComp: event dataChanged {animate: update, newData: !update}\n // + rowComp: api refreshCells() {animate: true/false}\n // + rowRenderer: api softRefreshView() {}\n CellComp.prototype.refreshCell = function (params) {\n // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly\n if (this.suppressRefreshCell || this.editingCell) {\n return;\n }\n var colDef = this.getComponentHolder();\n var newData = params && params.newData;\n var suppressFlash = (params && params.suppressFlash) || colDef.suppressCellFlash;\n // we always refresh if cell has no value - this can happen when user provides Cell Renderer and the\n // cell renderer doesn't rely on a value, instead it could be looking directly at the data, or maybe\n // printing the current time (which would be silly)???. Generally speaking\n // non of {field, valueGetter, showRowGroup} is bad in the users application, however for this edge case, it's\n // best always refresh and take the performance hit rather than never refresh and users complaining in support\n // that cells are not updating.\n var noValueProvided = colDef.field == null && colDef.valueGetter == null && colDef.showRowGroup == null;\n var forceRefresh = (params && params.forceRefresh) || noValueProvided || newData;\n var oldValue = this.value;\n // get latest value without invoking the value formatter as we may not be updating the cell\n this.value = this.getValue();\n // for simple values only (not objects), see if the value is the same, and if it is, skip the refresh.\n // when never allow skipping after an edit, as after editing, we need to put the GUI back to the way\n // if was before the edit.\n var valuesDifferent = !this.valuesAreEqual(oldValue, this.value);\n var dataNeedsUpdating = forceRefresh || valuesDifferent;\n if (dataNeedsUpdating) {\n // now invoke the value formatter as we are going to update cell\n this.valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, this.value);\n // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.\n // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')\n // then we are not showing a movement in the stock price, rather we are showing different stock.\n var cellRendererRefreshed = newData ? false : this.attemptCellRendererRefresh();\n // we do the replace if not doing refresh, or if refresh was unsuccessful.\n // the refresh can be unsuccessful if we are using a framework (eg ng2 or react) and the framework\n // wrapper has the refresh method, but the underlying component doesn't\n if (!cellRendererRefreshed) {\n this.replaceContentsAfterRefresh();\n }\n // we don't want to flash the cells when processing a filter change, as otherwise the UI would\n // be to busy. see comment in FilterManager with regards processingFilterChange\n var processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();\n var flashCell = !suppressFlash && !processingFilterChange &&\n (this.beans.gridOptionsWrapper.isEnableCellChangeFlash() || colDef.enableCellChangeFlash);\n if (flashCell) {\n this.flashCell();\n }\n // need to check rules. note, we ignore colDef classes and styles, these are assumed to be static\n this.postProcessStylesFromColDef();\n this.postProcessClassesFromColDef();\n }\n // we can't readily determine if the data in an angularjs template has changed, so here we just update\n // and recompile (if applicable)\n this.updateAngular1ScopeAndCompile();\n this.refreshToolTip();\n // we do cellClassRules even if the value has not changed, so that users who have rules that\n // look at other parts of the row (where the other part of the row might of changed) will work.\n this.postProcessCellClassRules();\n };\n // user can also call this via API\n CellComp.prototype.flashCell = function (delays) {\n var flashDelay = delays && delays.flashDelay;\n var fadeDelay = delays && delays.fadeDelay;\n this.animateCell('data-changed', flashDelay, fadeDelay);\n };\n CellComp.prototype.animateCell = function (cssName, flashDelay, fadeDelay) {\n var _this = this;\n var fullName = \"ag-cell-\" + cssName;\n var animationFullName = \"ag-cell-\" + cssName + \"-animation\";\n var element = this.getGui();\n var gridOptionsWrapper = this.beans.gridOptionsWrapper;\n if (!flashDelay) {\n flashDelay = gridOptionsWrapper.getCellFlashDelay();\n }\n if (!exists(fadeDelay)) {\n fadeDelay = gridOptionsWrapper.getCellFadeDelay();\n }\n // we want to highlight the cells, without any animation\n this.addCssClass(fullName);\n this.removeCssClass(animationFullName);\n // then once that is applied, we remove the highlight with animation\n window.setTimeout(function () {\n _this.removeCssClass(fullName);\n _this.addCssClass(animationFullName);\n element.style.transition = \"background-color \" + fadeDelay + \"ms\";\n window.setTimeout(function () {\n // and then to leave things as we got them, we remove the animation\n _this.removeCssClass(animationFullName);\n element.style.removeProperty('transition');\n }, fadeDelay);\n }, flashDelay);\n };\n CellComp.prototype.replaceContentsAfterRefresh = function () {\n this.setUsingWrapper();\n clearElement(this.eCellValue);\n // remove old renderer component if it exists\n this.cellRenderer = this.beans.context.destroyBean(this.cellRenderer);\n this.cellRendererGui = null;\n // populate\n this.putDataIntoCellAfterRefresh();\n this.updateAngular1ScopeAndCompile();\n };\n CellComp.prototype.updateAngular1ScopeAndCompile = function () {\n if (this.beans.gridOptionsWrapper.isAngularCompileRows() && this.scope) {\n this.scope.data = __assign$4({}, this.rowNode.data);\n this.angular1Compile();\n }\n };\n CellComp.prototype.angular1Compile = function () {\n // if angular compiling, then need to also compile the cell again (angular compiling sucks, please wait...)\n if (this.beans.gridOptionsWrapper.isAngularCompileRows()) {\n var eGui = this.getGui();\n // only compile the node if it hasn't already been done\n // this prevents \"orphaned\" node leaks\n if (!eGui.classList.contains('ng-scope') || eGui.childElementCount === 0) {\n var compiledElement_1 = this.beans.$compile(eGui)(this.scope);\n this.addDestroyFunc(function () { return compiledElement_1.remove(); });\n }\n }\n };\n CellComp.prototype.postProcessStylesFromColDef = function () {\n var stylesToUse = this.processStylesFromColDef();\n if (stylesToUse) {\n addStylesToElement(this.getGui(), stylesToUse);\n }\n };\n CellComp.prototype.preProcessStylesFromColDef = function () {\n return cssStyleObjectToMarkup(this.processStylesFromColDef());\n };\n CellComp.prototype.processStylesFromColDef = function () {\n var colDef = this.getComponentHolder();\n if (colDef.cellStyle) {\n var cssToUse = void 0;\n if (typeof colDef.cellStyle === 'function') {\n var cellStyleParams = {\n column: this.column,\n value: this.value,\n colDef: colDef,\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n $scope: this.scope,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n };\n var cellStyleFunc = colDef.cellStyle;\n cssToUse = cellStyleFunc(cellStyleParams);\n }\n else {\n cssToUse = colDef.cellStyle;\n }\n return cssToUse;\n }\n };\n CellComp.prototype.postProcessClassesFromColDef = function () {\n var _this = this;\n this.processClassesFromColDef(function (className) { return _this.addCssClass(className); });\n };\n CellComp.prototype.preProcessClassesFromColDef = function () {\n var res = [];\n this.processClassesFromColDef(function (className) { return res.push(className); });\n return res;\n };\n CellComp.prototype.processClassesFromColDef = function (onApplicableClass) {\n var colDef = this.getComponentHolder();\n var cellClassParams = {\n value: this.value,\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n rowIndex: this.rowNode.rowIndex,\n $scope: this.scope,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n this.beans.stylingService.processStaticCellClasses(colDef, cellClassParams, onApplicableClass);\n };\n CellComp.prototype.putDataIntoCellAfterRefresh = function () {\n // template gets preference, then cellRenderer, then do it ourselves\n var colDef = this.getComponentHolder();\n if (colDef.template) {\n // template is really only used for angular 1 - as people using ng1 are used to providing templates with\n // bindings in it. in ng2, people will hopefully want to provide components, not templates.\n this.eCellValue.innerHTML = colDef.template;\n }\n else if (colDef.templateUrl) {\n // likewise for templateUrl - it's for ng1 really - when we move away from ng1, we can take these out.\n // niall was pro angular 1 when writing template and templateUrl, if writing from scratch now, would\n // not do these, but would follow a pattern that was friendly towards components, not templates.\n var template = this.beans.templateService.getTemplate(colDef.templateUrl, this.refreshCell.bind(this, true));\n if (template) {\n this.eCellValue.innerHTML = template;\n }\n }\n else {\n // we can switch from using a cell renderer back to the default if a user\n // is using cellRendererSelect\n this.chooseCellRenderer();\n if (this.usingCellRenderer) {\n this.createCellRendererInstance();\n }\n else {\n var valueToUse = this.getValueToUse();\n if (valueToUse != null) {\n this.eCellValue.innerHTML = escapeString(valueToUse) || '';\n }\n }\n }\n };\n CellComp.prototype.attemptCellRendererRefresh = function () {\n if (missing(this.cellRenderer) || !this.cellRenderer || missing(this.cellRenderer.refresh)) {\n return false;\n }\n // if the cell renderer has a refresh method, we call this instead of doing a refresh\n var params = this.createCellRendererParams();\n // take any custom params off of the user\n var finalParams = this.beans.userComponentFactory.createFinalParams(this.getComponentHolder(), this.cellRendererType, params);\n var result = this.cellRenderer.refresh(finalParams);\n // NOTE on undefined: previous version of the cellRenderer.refresh() interface\n // returned nothing, if the method existed, we assumed it refreshed. so for\n // backwards compatibility, we assume if method exists and returns nothing,\n // that it was successful.\n return result === true || result === undefined;\n };\n CellComp.prototype.refreshToolTip = function () {\n var newTooltip = this.getToolTip();\n if (this.tooltip === newTooltip) {\n return;\n }\n this.createTooltipFeatureIfNeeded();\n var hasNewTooltip = exists(newTooltip);\n if (hasNewTooltip && this.tooltip === newTooltip.toString()) {\n return;\n }\n this.tooltip = newTooltip;\n if (this.beans.gridOptionsWrapper.isEnableBrowserTooltips()) {\n if (hasNewTooltip) {\n this.eCellValue.setAttribute('title', this.tooltip);\n }\n else {\n this.eCellValue.removeAttribute('title');\n }\n }\n };\n CellComp.prototype.valuesAreEqual = function (val1, val2) {\n // if the user provided an equals method, use that, otherwise do simple comparison\n var colDef = this.getComponentHolder();\n var equalsMethod = colDef ? colDef.equals : null;\n return equalsMethod ? equalsMethod(val1, val2) : val1 === val2;\n };\n CellComp.prototype.getToolTip = function () {\n var colDef = this.getComponentHolder();\n var data = this.rowNode.data;\n if (colDef.tooltipField && exists(data)) {\n return getValueUsingField(data, colDef.tooltipField, this.column.isTooltipFieldContainsDots());\n }\n var valueGetter = colDef.tooltipValueGetter;\n if (valueGetter) {\n return valueGetter(__assign$4(__assign$4({ api: this.beans.gridOptionsWrapper.getApi(), columnApi: this.beans.gridOptionsWrapper.getColumnApi(), context: this.beans.gridOptionsWrapper.getContext() }, this.getTooltipParams()), { value: this.value }));\n }\n return null;\n };\n CellComp.prototype.getTooltipParams = function () {\n return {\n location: 'cell',\n colDef: this.getComponentHolder(),\n column: this.getColumn(),\n rowIndex: this.cellPosition.rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n value: this.getTooltipText(),\n valueFormatted: this.valueFormatted,\n };\n };\n CellComp.prototype.getTooltipText = function (escape) {\n if (escape === void 0) { escape = true; }\n return escape ? escapeString(this.tooltip) : this.tooltip;\n };\n CellComp.prototype.processCellClassRules = function (onApplicableClass, onNotApplicableClass) {\n var colDef = this.getComponentHolder();\n var cellClassParams = {\n value: this.value,\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n rowIndex: this.cellPosition.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n $scope: this.scope,\n context: this.beans.gridOptionsWrapper.getContext()\n };\n this.beans.stylingService.processClassRules(colDef.cellClassRules, cellClassParams, onApplicableClass, onNotApplicableClass);\n };\n CellComp.prototype.postProcessCellClassRules = function () {\n var _this = this;\n this.processCellClassRules(function (className) { return _this.addCssClass(className); }, function (className) { return _this.removeCssClass(className); });\n };\n CellComp.prototype.preProcessCellClassRules = function () {\n var res = [];\n this.processCellClassRules(function (className) { return res.push(className); }, function (_) {\n // not catered for, if creating, no need\n // to remove class as it was never there\n });\n return res;\n };\n // a wrapper is used when we are putting a selection checkbox in the cell with the value\n CellComp.prototype.setUsingWrapper = function () {\n var colDef = this.getComponentHolder();\n // never allow selection or dragging on pinned rows\n if (this.rowNode.rowPinned) {\n this.usingWrapper = false;\n this.includeSelectionComponent = false;\n this.includeRowDraggingComponent = false;\n this.includeDndSourceComponent = false;\n return;\n }\n var cbSelectionIsFunc = typeof colDef.checkboxSelection === 'function';\n var rowDraggableIsFunc = typeof colDef.rowDrag === 'function';\n var dndSourceIsFunc = typeof colDef.dndSource === 'function';\n this.includeSelectionComponent = cbSelectionIsFunc || colDef.checkboxSelection === true;\n this.includeRowDraggingComponent = rowDraggableIsFunc || colDef.rowDrag === true;\n this.includeDndSourceComponent = dndSourceIsFunc || colDef.dndSource === true;\n var enableTextSelection = this.beans.gridOptionsWrapper.isEnableCellTextSelection();\n this.usingWrapper = enableTextSelection || this.includeRowDraggingComponent || this.includeSelectionComponent || this.includeDndSourceComponent;\n };\n CellComp.prototype.chooseCellRenderer = function () {\n // template gets preference, then cellRenderer, then do it ourselves\n var colDef = this.getComponentHolder();\n // templates are for ng1, ideally we wouldn't have these, they are ng1 support\n // inside the core which is bad\n if (colDef.template || colDef.templateUrl) {\n this.usingCellRenderer = false;\n return;\n }\n var params = this.createCellRendererParams();\n if (this.rowNode.rowPinned &&\n this.beans.userComponentFactory.lookupComponentClassDef(colDef, 'pinnedRowCellRenderer', params)) {\n this.cellRendererType = CellComp.CELL_RENDERER_TYPE_PINNED;\n this.usingCellRenderer = true;\n }\n else if (this.beans.userComponentFactory.lookupComponentClassDef(colDef, 'cellRenderer', params)) {\n this.cellRendererType = CellComp.CELL_RENDERER_TYPE_NORMAL;\n this.usingCellRenderer = true;\n }\n else {\n this.usingCellRenderer = false;\n }\n };\n CellComp.prototype.createCellRendererInstance = function (useTaskService) {\n var _this = this;\n if (useTaskService === void 0) { useTaskService = false; }\n if (!this.usingCellRenderer) {\n return;\n }\n // never use task service if angularCompileRows=true, as that assume the cell renderers\n // are finished when the row is created. also we never use it if animation frame service\n // is turned off.\n // and lastly we never use it if doing auto-height, as the auto-height service checks the\n // row height directly after the cell is created, it doesn't wait around for the tasks to complete\n var angularCompileRows = this.beans.gridOptionsWrapper.isAngularCompileRows();\n var suppressAnimationFrame = this.beans.gridOptionsWrapper.isSuppressAnimationFrame();\n if (angularCompileRows || suppressAnimationFrame || this.autoHeightCell) {\n useTaskService = false;\n }\n var params = this.createCellRendererParams();\n this.cellRendererVersion++;\n var callback = this.afterCellRendererCreated.bind(this, this.cellRendererVersion);\n var cellRendererTypeNormal = this.cellRendererType === CellComp.CELL_RENDERER_TYPE_NORMAL;\n this.createCellRendererFunc = function () {\n _this.createCellRendererFunc = null;\n // this can return null in the event that the user has switched from a renderer component to nothing, for example\n // when using a cellRendererSelect to return a component or null depending on row data etc\n var componentPromise = _this.beans.userComponentFactory.newCellRenderer(_this.getComponentHolder(), params, !cellRendererTypeNormal);\n if (componentPromise) {\n componentPromise.then(callback);\n }\n };\n if (useTaskService) {\n this.beans.taskQueue.createTask(this.createCellRendererFunc, this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n this.createCellRendererFunc();\n }\n };\n CellComp.prototype.afterCellRendererCreated = function (cellRendererVersion, cellRenderer) {\n var cellRendererNotRequired = !this.isAlive() || cellRendererVersion !== this.cellRendererVersion;\n if (cellRendererNotRequired) {\n this.beans.context.destroyBean(cellRenderer);\n return;\n }\n this.cellRenderer = cellRenderer;\n this.cellRendererGui = this.cellRenderer.getGui();\n if (missing(this.cellRendererGui)) {\n return;\n }\n // if async components, then it's possible the user started editing since this call was made\n if (!this.editingCell) {\n this.eCellValue.appendChild(this.cellRendererGui);\n }\n };\n CellComp.prototype.createCellRendererParams = function () {\n var _this = this;\n return {\n value: this.value,\n valueFormatted: this.valueFormatted,\n getValue: this.getValue.bind(this),\n setValue: function (value) { return _this.beans.valueService.setValue(_this.rowNode, _this.column, value); },\n formatValue: this.formatValue.bind(this),\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: this.getComponentHolder(),\n column: this.column,\n $scope: this.scope,\n rowIndex: this.cellPosition.rowIndex,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n refreshCell: this.refreshCell.bind(this),\n eGridCell: this.getGui(),\n eParentOfValue: this.eCellValue,\n registerRowDragger: function (rowDraggerElement, dragStartPixels) { return _this.addRowDragging(rowDraggerElement, dragStartPixels); },\n // these bits are not documented anywhere, so we could drop them?\n // it was in the olden days to allow user to register for when rendered\n // row was removed (the row comp was removed), however now that the user\n // can provide components for cells, the destroy method gets call when this\n // happens so no longer need to fire event.\n addRowCompListener: this.rowComp ? this.rowComp.addEventListener.bind(this.rowComp) : null,\n addRenderedRowListener: function (eventType, listener) {\n console.warn('AG Grid: since AG Grid .v11, params.addRenderedRowListener() is now params.addRowCompListener()');\n if (_this.rowComp) {\n _this.rowComp.addEventListener(eventType, listener);\n }\n }\n };\n };\n CellComp.prototype.formatValue = function (value) {\n var valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, value);\n return valueFormatted != null ? valueFormatted : value;\n };\n CellComp.prototype.getValueToUse = function () {\n return this.valueFormatted != null ? this.valueFormatted : this.value;\n };\n CellComp.prototype.getValueAndFormat = function () {\n this.value = this.getValue();\n this.valueFormatted = this.beans.valueFormatterService.formatValue(this.column, this.rowNode, this.scope, this.value);\n };\n CellComp.prototype.getValue = function () {\n // if we don't check this, then the grid will render leaf groups as open even if we are not\n // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow\n // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded\n // them via the API, or user user expanded them in the UI before turning on pivot mode\n var lockedClosedGroup = this.rowNode.leafGroup && this.beans.columnController.isPivotMode();\n var isOpenGroup = this.rowNode.group && this.rowNode.expanded && !this.rowNode.footer && !lockedClosedGroup;\n // are we showing group footers\n var groupFootersEnabled = this.beans.gridOptionsWrapper.isGroupIncludeFooter();\n // if doing footers, we normally don't show agg data at group level when group is open\n var groupAlwaysShowAggData = this.beans.gridOptionsWrapper.isGroupSuppressBlankHeader();\n // if doing grouping and footers, we don't want to include the agg value\n // in the header when the group is open\n var ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;\n var value = this.beans.valueService.getValue(this.column, this.rowNode, false, ignoreAggData);\n return value;\n };\n CellComp.prototype.onMouseEvent = function (eventName, mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n switch (eventName) {\n case 'click':\n this.onCellClicked(mouseEvent);\n break;\n case 'mousedown':\n this.onMouseDown(mouseEvent);\n break;\n case 'dblclick':\n this.onCellDoubleClicked(mouseEvent);\n break;\n case 'mouseout':\n this.onMouseOut(mouseEvent);\n break;\n case 'mouseover':\n this.onMouseOver(mouseEvent);\n break;\n }\n };\n CellComp.prototype.dispatchCellContextMenuEvent = function (event) {\n var colDef = this.getComponentHolder();\n var cellContextMenuEvent = this.createEvent(event, Events.EVENT_CELL_CONTEXT_MENU);\n this.beans.eventService.dispatchEvent(cellContextMenuEvent);\n if (colDef.onCellContextMenu) {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellContextMenu(cellContextMenuEvent); }, 0);\n }\n };\n CellComp.prototype.createEvent = function (domEvent, eventType) {\n var event = {\n type: eventType,\n node: this.rowNode,\n data: this.rowNode.data,\n value: this.value,\n column: this.column,\n colDef: this.getComponentHolder(),\n context: this.beans.gridOptionsWrapper.getContext(),\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n rowPinned: this.rowNode.rowPinned,\n event: domEvent,\n rowIndex: this.rowNode.rowIndex\n };\n // because we are hacking in $scope for angular 1, we have to de-reference\n if (this.scope) {\n event.$scope = this.scope;\n }\n return event;\n };\n CellComp.prototype.onMouseOut = function (mouseEvent) {\n var cellMouseOutEvent = this.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OUT);\n this.beans.eventService.dispatchEvent(cellMouseOutEvent);\n this.beans.columnHoverService.clearMouseOver();\n };\n CellComp.prototype.onMouseOver = function (mouseEvent) {\n var cellMouseOverEvent = this.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OVER);\n this.beans.eventService.dispatchEvent(cellMouseOverEvent);\n this.beans.columnHoverService.setMouseOver([this.column]);\n };\n CellComp.prototype.onCellDoubleClicked = function (mouseEvent) {\n var colDef = this.getComponentHolder();\n // always dispatch event to eventService\n var cellDoubleClickedEvent = this.createEvent(mouseEvent, Events.EVENT_CELL_DOUBLE_CLICKED);\n this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);\n // check if colDef also wants to handle event\n if (typeof colDef.onCellDoubleClicked === 'function') {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellDoubleClicked(cellDoubleClickedEvent); }, 0);\n }\n var editOnDoubleClick = !this.beans.gridOptionsWrapper.isSingleClickEdit()\n && !this.beans.gridOptionsWrapper.isSuppressClickEdit();\n if (editOnDoubleClick) {\n this.startRowOrCellEdit();\n }\n };\n // called by rowRenderer when user navigates via tab key\n CellComp.prototype.startRowOrCellEdit = function (keyPress, charPress) {\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n this.rowComp.startRowEditing(keyPress, charPress, this);\n }\n else {\n this.startEditingIfEnabled(keyPress, charPress, true);\n }\n };\n CellComp.prototype.isCellEditable = function () {\n return this.column.isCellEditable(this.rowNode);\n };\n // either called internally if single cell editing, or called by rowRenderer if row editing\n CellComp.prototype.startEditingIfEnabled = function (keyPress, charPress, cellStartedEdit) {\n if (keyPress === void 0) { keyPress = null; }\n if (charPress === void 0) { charPress = null; }\n if (cellStartedEdit === void 0) { cellStartedEdit = false; }\n // don't do it if not editable\n if (!this.isCellEditable()) {\n return;\n }\n // don't do it if already editing\n if (this.editingCell) {\n return;\n }\n this.editingCell = true;\n this.cellEditorVersion++;\n var callback = this.afterCellEditorCreated.bind(this, this.cellEditorVersion);\n var params = this.createCellEditorParams(keyPress, charPress, cellStartedEdit);\n this.createCellEditor(params).then(callback);\n // if we don't do this, and editor component is async, then there will be a period\n // when the component isn't present and keyboard navigation won't work - so example\n // of user hitting tab quickly (more quickly than renderers getting created) won't work\n var cellEditorAsync = missing(this.cellEditor);\n if (cellEditorAsync && cellStartedEdit) {\n this.focusCell(true);\n }\n };\n CellComp.prototype.createCellEditor = function (params) {\n var _this = this;\n var cellEditorPromise = this.beans.userComponentFactory.newCellEditor(this.column.getColDef(), params);\n return cellEditorPromise.then(function (cellEditor) {\n var cellEditorComp = cellEditor;\n var isPopup = cellEditorComp.isPopup && cellEditorComp.isPopup();\n if (!isPopup) {\n return cellEditorComp;\n }\n if (_this.beans.gridOptionsWrapper.isFullRowEdit()) {\n console.warn('AG Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +\n '- either turn off fullRowEdit, or stop using popup editors.');\n }\n // if a popup, then we wrap in a popup editor and return the popup\n var popupEditorWrapper = new PopupEditorWrapper(cellEditorComp);\n _this.beans.context.createBean(popupEditorWrapper);\n popupEditorWrapper.init(params);\n return popupEditorWrapper;\n });\n };\n CellComp.prototype.afterCellEditorCreated = function (cellEditorVersion, cellEditor) {\n // if editingCell=false, means user cancelled the editor before component was ready.\n // if versionMismatch, then user cancelled the edit, then started the edit again, and this\n // is the first editor which is now stale.\n var versionMismatch = cellEditorVersion !== this.cellEditorVersion;\n var cellEditorNotNeeded = versionMismatch || !this.editingCell;\n if (cellEditorNotNeeded) {\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n var editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();\n if (editingCancelledByUserComp) {\n this.beans.context.destroyBean(cellEditor);\n this.editingCell = false;\n return;\n }\n if (!cellEditor.getGui) {\n console.warn(\"AG Grid: cellEditor for column \" + this.column.getId() + \" is missing getGui() method\");\n // no getGui, for React guys, see if they attached a react component directly\n if (cellEditor.render) {\n console.warn(\"AG Grid: we found 'render' on the component, are you trying to set a React renderer but added it as colDef.cellEditor instead of colDef.cellEditorFmk?\");\n }\n this.beans.context.destroyBean(cellEditor);\n this.editingCell = false;\n return;\n }\n this.cellEditor = cellEditor;\n this.cellEditorInPopup = cellEditor.isPopup !== undefined && cellEditor.isPopup();\n this.setInlineEditingClass();\n if (this.cellEditorInPopup) {\n this.addPopupCellEditor();\n }\n else {\n this.addInCellEditor();\n }\n if (cellEditor.afterGuiAttached) {\n cellEditor.afterGuiAttached();\n }\n var event = this.createEvent(null, Events.EVENT_CELL_EDITING_STARTED);\n this.beans.eventService.dispatchEvent(event);\n };\n CellComp.prototype.addInCellEditor = function () {\n var eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n if (eGui.contains(document.activeElement)) {\n eGui.focus();\n }\n this.clearCellElement();\n if (this.cellEditor) {\n eGui.appendChild(this.cellEditor.getGui());\n }\n this.angular1Compile();\n };\n CellComp.prototype.addPopupCellEditor = function () {\n var _this = this;\n var ePopupGui = this.cellEditor && this.cellEditor.getGui();\n if (!ePopupGui) {\n return;\n }\n var popupService = this.beans.popupService;\n var useModelPopup = this.beans.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus();\n var position = this.cellEditor && this.cellEditor.getPopupPosition ? this.cellEditor.getPopupPosition() : 'over';\n var params = {\n column: this.column,\n rowNode: this.rowNode,\n type: 'popupCellEditor',\n eventSource: this.getGui(),\n ePopup: ePopupGui,\n keepWithinBounds: true\n };\n var positionCallback = position === 'under' ?\n popupService.positionPopupUnderComponent.bind(popupService, params)\n : popupService.positionPopupOverComponent.bind(popupService, params);\n var addPopupRes = popupService.addPopup({\n modal: useModelPopup,\n eChild: ePopupGui,\n closeOnEsc: true,\n closedCallback: function () { _this.onPopupEditorClosed(); },\n anchorToElement: this.getGui(),\n positionCallback: positionCallback\n });\n if (addPopupRes) {\n this.hideEditorPopup = addPopupRes.hideFunc;\n }\n this.angular1Compile();\n };\n CellComp.prototype.onPopupEditorClosed = function () {\n // we only call stopEditing if we are editing, as\n // it's possible the popup called 'stop editing'\n // before this, eg if 'enter key' was pressed on\n // the editor.\n if (!this.editingCell) {\n return;\n }\n // note: this only happens when use clicks outside of the grid. if use clicks on another\n // cell, then the editing will have already stopped on this cell\n this.stopRowOrCellEdit();\n };\n // if we are editing inline, then we don't have the padding in the cell (set in the themes)\n // to allow the text editor full access to the entire cell\n CellComp.prototype.setInlineEditingClass = function () {\n if (!this.isAlive()) {\n return;\n }\n // ag-cell-inline-editing - appears when user is inline editing\n // ag-cell-not-inline-editing - appears when user is no inline editing\n // ag-cell-popup-editing - appears when user is editing cell in popup (appears on the cell, not on the popup)\n // note: one of {ag-cell-inline-editing, ag-cell-not-inline-editing} is always present, they toggle.\n // however {ag-cell-popup-editing} shows when popup, so you have both {ag-cell-popup-editing}\n // and {ag-cell-not-inline-editing} showing at the same time.\n var editingInline = this.editingCell && !this.cellEditorInPopup;\n var popupEditorShowing = this.editingCell && this.cellEditorInPopup;\n this.addOrRemoveCssClass(CSS_INLINE_EDITING, editingInline);\n this.addOrRemoveCssClass(CSS_NOT_INLINE_EDITING, !editingInline);\n this.addOrRemoveCssClass(CSS_POPUP_EDITING, popupEditorShowing);\n addOrRemoveCssClass(this.getGui().parentNode, \"ag-row-inline-editing\", editingInline);\n addOrRemoveCssClass(this.getGui().parentNode, \"ag-row-not-inline-editing\", !editingInline);\n };\n CellComp.prototype.createCellEditorParams = function (keyPress, charPress, cellStartedEdit) {\n return {\n value: this.getValue(),\n keyPress: keyPress,\n charPress: charPress,\n column: this.column,\n colDef: this.column.getColDef(),\n rowIndex: this.cellPosition.rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n api: this.beans.gridOptionsWrapper.getApi(),\n cellStartedEdit: cellStartedEdit,\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext(),\n $scope: this.scope,\n onKeyDown: this.onKeyDown.bind(this),\n stopEditing: this.stopEditingAndFocus.bind(this),\n eGridCell: this.getGui(),\n parseValue: this.parseValue.bind(this),\n formatValue: this.formatValue.bind(this)\n };\n };\n // cell editors call this, when they want to stop for reasons other\n // than what we pick up on. eg selecting from a dropdown ends editing.\n CellComp.prototype.stopEditingAndFocus = function (suppressNavigateAfterEdit) {\n if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }\n this.stopRowOrCellEdit();\n this.focusCell(true);\n if (!suppressNavigateAfterEdit) {\n this.navigateAfterEdit();\n }\n };\n CellComp.prototype.parseValue = function (newValue) {\n var colDef = this.getComponentHolder();\n var params = {\n node: this.rowNode,\n data: this.rowNode.data,\n oldValue: this.value,\n newValue: newValue,\n colDef: colDef,\n column: this.column,\n api: this.beans.gridOptionsWrapper.getApi(),\n columnApi: this.beans.gridOptionsWrapper.getColumnApi(),\n context: this.beans.gridOptionsWrapper.getContext()\n };\n var valueParser = colDef.valueParser;\n return exists(valueParser) ? this.beans.expressionService.evaluate(valueParser, params) : newValue;\n };\n CellComp.prototype.focusCell = function (forceBrowserFocus) {\n if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }\n this.beans.focusController.setFocusedCell(this.cellPosition.rowIndex, this.column, this.rowNode.rowPinned, forceBrowserFocus);\n };\n CellComp.prototype.setFocusInOnEditor = function () {\n if (this.editingCell) {\n if (this.cellEditor && this.cellEditor.focusIn) {\n // if the editor is present, then we just focus it\n this.cellEditor.focusIn();\n }\n else {\n // if the editor is not present, it means async cell editor (eg React fibre)\n // and we are trying to set focus before the cell editor is present, so we\n // focus the cell instead\n this.focusCell(true);\n }\n }\n };\n CellComp.prototype.isEditing = function () {\n return this.editingCell;\n };\n CellComp.prototype.onKeyDown = function (event) {\n var key = event.which || event.keyCode;\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.F2:\n this.onF2KeyDown();\n break;\n case KeyCode.ESCAPE:\n this.onEscapeKeyDown();\n break;\n case KeyCode.TAB:\n this.onTabKeyDown(event);\n break;\n case KeyCode.BACKSPACE:\n case KeyCode.DELETE:\n this.onBackspaceOrDeleteKeyPressed(key);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n this.onNavigationKeyPressed(event, key);\n break;\n }\n };\n CellComp.prototype.setFocusOutOnEditor = function () {\n if (this.editingCell && this.cellEditor && this.cellEditor.focusOut) {\n this.cellEditor.focusOut();\n }\n };\n CellComp.prototype.onNavigationKeyPressed = function (event, key) {\n if (this.editingCell) {\n return;\n }\n if (event.shiftKey && this.rangeSelectionEnabled) {\n this.onShiftRangeSelect(key);\n }\n else {\n this.beans.rowRenderer.navigateToNextCell(event, key, this.cellPosition, true);\n }\n // if we don't prevent default, the grid will scroll with the navigation keys\n event.preventDefault();\n };\n CellComp.prototype.onShiftRangeSelect = function (key) {\n if (!this.beans.rangeController) {\n return;\n }\n var endCell = this.beans.rangeController.extendLatestRangeInDirection(key);\n if (endCell) {\n this.beans.rowRenderer.ensureCellVisible(endCell);\n }\n };\n CellComp.prototype.onTabKeyDown = function (event) {\n this.beans.rowRenderer.onTabKeyDown(this, event);\n };\n CellComp.prototype.onBackspaceOrDeleteKeyPressed = function (key) {\n if (!this.editingCell) {\n this.startRowOrCellEdit(key);\n }\n };\n CellComp.prototype.onEnterKeyDown = function (e) {\n if (this.editingCell || this.rowComp.isEditing()) {\n this.stopEditingAndFocus();\n }\n else {\n if (this.beans.gridOptionsWrapper.isEnterMovesDown()) {\n this.beans.rowRenderer.navigateToNextCell(null, KeyCode.DOWN, this.cellPosition, false);\n }\n else {\n this.startRowOrCellEdit(KeyCode.ENTER);\n if (this.editingCell) {\n // if we started editing, then we need to prevent default, otherwise the Enter action can get\n // applied to the cell editor. this happened, for example, with largeTextCellEditor where not\n // preventing default results in a 'new line' character getting inserted in the text area\n // when the editing was started\n e.preventDefault();\n }\n }\n }\n };\n CellComp.prototype.navigateAfterEdit = function () {\n var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();\n if (fullRowEdit) {\n return;\n }\n var enterMovesDownAfterEdit = this.beans.gridOptionsWrapper.isEnterMovesDownAfterEdit();\n if (enterMovesDownAfterEdit) {\n this.beans.rowRenderer.navigateToNextCell(null, KeyCode.DOWN, this.cellPosition, false);\n }\n };\n CellComp.prototype.onF2KeyDown = function () {\n if (!this.editingCell) {\n this.startRowOrCellEdit(KeyCode.F2);\n }\n };\n CellComp.prototype.onEscapeKeyDown = function () {\n if (this.editingCell) {\n this.stopRowOrCellEdit(true);\n this.focusCell(true);\n }\n };\n CellComp.prototype.onKeyPress = function (event) {\n // check this, in case focus is on a (for example) a text field inside the cell,\n // in which cse we should not be listening for these key pressed\n var eventTarget = getTarget(event);\n var eventOnChildComponent = eventTarget !== this.getGui();\n if (eventOnChildComponent || this.editingCell) {\n return;\n }\n var pressedChar = String.fromCharCode(event.charCode);\n if (pressedChar === ' ') {\n this.onSpaceKeyPressed(event);\n }\n else if (isEventFromPrintableCharacter(event)) {\n this.startRowOrCellEdit(null, pressedChar);\n // if we don't prevent default, then the keypress also gets applied to the text field\n // (at least when doing the default editor), but we need to allow the editor to decide\n // what it wants to do. we only do this IF editing was started - otherwise it messes\n // up when the use is not doing editing, but using rendering with text fields in cellRenderer\n // (as it would block the the user from typing into text fields).\n event.preventDefault();\n }\n };\n CellComp.prototype.onSpaceKeyPressed = function (event) {\n var gridOptionsWrapper = this.beans.gridOptionsWrapper;\n if (!this.editingCell && gridOptionsWrapper.isRowSelection()) {\n var currentSelection = this.rowNode.isSelected();\n var newSelection = !currentSelection;\n if (newSelection || !gridOptionsWrapper.isSuppressRowDeselection()) {\n var groupSelectsFiltered = this.beans.gridOptionsWrapper.isGroupSelectsFiltered();\n var updatedCount = this.rowNode.setSelectedParams({\n newValue: newSelection,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered\n });\n if (currentSelection === undefined && updatedCount === 0) {\n this.rowNode.setSelectedParams({\n newValue: false,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered\n });\n }\n }\n }\n // prevent default as space key, by default, moves browser scroll down\n event.preventDefault();\n };\n CellComp.prototype.onMouseDown = function (mouseEvent) {\n var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;\n var target = mouseEvent.target;\n var _a = this.beans, eventService = _a.eventService, rangeController = _a.rangeController;\n // do not change the range for right-clicks inside an existing range\n if (this.isRightClickInExistingRange(mouseEvent)) {\n return;\n }\n if (!shiftKey || (rangeController && !rangeController.getCellRanges().length)) {\n // We only need to pass true to focusCell when the browser is IE/Edge and we are trying\n // to focus the cell itself. This should never be true if the mousedown was triggered\n // due to a click on a cell editor for example.\n var forceBrowserFocus = (isBrowserIE() || isBrowserEdge()) && !this.editingCell && !isFocusableFormField(target);\n this.focusCell(forceBrowserFocus);\n }\n else if (rangeController) {\n // if a range is being changed, we need to make sure the focused cell does not change.\n mouseEvent.preventDefault();\n }\n // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox\n // is focused but we don't want to change the range selection, so return here.\n if (this.containsWidget(target)) {\n return;\n }\n if (rangeController) {\n var thisCell = this.cellPosition;\n if (shiftKey) {\n rangeController.extendLatestRangeToCell(thisCell);\n }\n else {\n var ctrlKeyPressed = ctrlKey || metaKey;\n rangeController.setRangeToCell(thisCell, ctrlKeyPressed);\n }\n }\n eventService.dispatchEvent(this.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_DOWN));\n };\n CellComp.prototype.isRightClickInExistingRange = function (mouseEvent) {\n var rangeController = this.beans.rangeController;\n if (rangeController) {\n var cellInRange = rangeController.isCellInAnyRange(this.getCellPosition());\n if (cellInRange && mouseEvent.button === 2) {\n return true;\n }\n }\n return false;\n };\n CellComp.prototype.containsWidget = function (target) {\n return isElementChildOfClass(target, 'ag-selection-checkbox', 3);\n };\n // returns true if on iPad and this is second 'click' event in 200ms\n CellComp.prototype.isDoubleClickOnIPad = function () {\n if (!isIOSUserAgent() || isEventSupported('dblclick')) {\n return false;\n }\n var nowMillis = new Date().getTime();\n var res = nowMillis - this.lastIPadMouseClickEvent < 200;\n this.lastIPadMouseClickEvent = nowMillis;\n return res;\n };\n CellComp.prototype.onCellClicked = function (mouseEvent) {\n // iPad doesn't have double click - so we need to mimic it to enable editing for iPad.\n if (this.isDoubleClickOnIPad()) {\n this.onCellDoubleClicked(mouseEvent);\n mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in\n return;\n }\n var _a = this.beans, eventService = _a.eventService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var cellClickedEvent = this.createEvent(mouseEvent, Events.EVENT_CELL_CLICKED);\n eventService.dispatchEvent(cellClickedEvent);\n var colDef = this.getComponentHolder();\n if (colDef.onCellClicked) {\n // to make callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellClicked(cellClickedEvent); }, 0);\n }\n var editOnSingleClick = (gridOptionsWrapper.isSingleClickEdit() || colDef.singleClickEdit)\n && !gridOptionsWrapper.isSuppressClickEdit();\n if (editOnSingleClick) {\n this.startRowOrCellEdit();\n }\n };\n CellComp.prototype.createGridCellVo = function () {\n this.cellPosition = {\n rowIndex: this.rowNode.rowIndex,\n rowPinned: this.rowNode.rowPinned,\n column: this.column\n };\n };\n CellComp.prototype.getRowPosition = function () {\n return {\n rowIndex: this.cellPosition.rowIndex,\n rowPinned: this.cellPosition.rowPinned\n };\n };\n CellComp.prototype.getCellPosition = function () {\n return this.cellPosition;\n };\n CellComp.prototype.getParentRow = function () {\n return this.eRow;\n };\n CellComp.prototype.setParentRow = function (eParentRow) {\n this.eRow = eParentRow;\n };\n CellComp.prototype.getColumn = function () {\n return this.column;\n };\n CellComp.prototype.getComponentHolder = function () {\n return this.column.getColDef();\n };\n CellComp.prototype.detach = function () {\n this.eRow.removeChild(this.getGui());\n };\n // if the row is also getting destroyed, then we don't need to remove from dom,\n // as the row will also get removed, so no need to take out the cells from the row\n // if the row is going (removing is an expensive operation, so only need to remove\n // the top part)\n //\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n CellComp.prototype.destroy = function () {\n if (this.createCellRendererFunc) {\n this.beans.taskQueue.cancelTask(this.createCellRendererFunc);\n }\n this.stopEditing();\n this.cellRenderer = this.beans.context.destroyBean(this.cellRenderer);\n this.beans.context.destroyBean(this.selectionHandle);\n _super.prototype.destroy.call(this);\n };\n CellComp.prototype.onLeftChanged = function () {\n var left = this.modifyLeftForPrintLayout(this.getCellLeft());\n this.getGui().style.left = left + 'px';\n this.refreshAriaIndex();\n };\n CellComp.prototype.modifyLeftForPrintLayout = function (leftPosition) {\n if (!this.printLayout || this.column.getPinned() === Constants.PINNED_LEFT) {\n return leftPosition;\n }\n var leftWidth = this.beans.columnController.getDisplayedColumnsLeftWidth();\n if (this.column.getPinned() === Constants.PINNED_RIGHT) {\n var bodyWidth = this.beans.columnController.getBodyContainerWidth();\n return leftWidth + bodyWidth + (leftPosition || 0);\n }\n // is in body\n return leftWidth + (leftPosition || 0);\n };\n CellComp.prototype.onWidthChanged = function () {\n var width = this.getCellWidth();\n this.getGui().style.width = width + \"px\";\n };\n CellComp.prototype.getRangeBorders = function () {\n var _this = this;\n var isRtl = this.beans.gridOptionsWrapper.isEnableRtl();\n var top = false;\n var right = false;\n var bottom = false;\n var left = false;\n var thisCol = this.cellPosition.column;\n var _a = this.beans, rangeController = _a.rangeController, columnController = _a.columnController;\n var leftCol;\n var rightCol;\n if (isRtl) {\n leftCol = columnController.getDisplayedColAfter(thisCol);\n rightCol = columnController.getDisplayedColBefore(thisCol);\n }\n else {\n leftCol = columnController.getDisplayedColBefore(thisCol);\n rightCol = columnController.getDisplayedColAfter(thisCol);\n }\n var ranges = rangeController.getCellRanges().filter(function (range) { return rangeController.isCellInSpecificRange(_this.cellPosition, range); });\n // this means we are the first column in the grid\n if (!leftCol) {\n left = true;\n }\n // this means we are the last column in the grid\n if (!rightCol) {\n right = true;\n }\n for (var i = 0; i < ranges.length; i++) {\n if (top && right && bottom && left) {\n break;\n }\n var range = ranges[i];\n var startRow = rangeController.getRangeStartRow(range);\n var endRow = rangeController.getRangeEndRow(range);\n if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellPosition)) {\n top = true;\n }\n if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellPosition)) {\n bottom = true;\n }\n if (!left && leftCol && range.columns.indexOf(leftCol) < 0) {\n left = true;\n }\n if (!right && rightCol && range.columns.indexOf(rightCol) < 0) {\n right = true;\n }\n }\n return { top: top, right: right, bottom: bottom, left: left };\n };\n CellComp.prototype.getInitialRangeClasses = function () {\n var classes = [];\n if (!this.rangeSelectionEnabled || !this.rangeCount) {\n return classes;\n }\n classes.push(CSS_RANGE_SELECTED);\n if (this.hasChartRange) {\n classes.push(CSS_RANGE_CHART);\n }\n var count = Math.min(this.rangeCount, 4);\n classes.push(CSS_RANGE_SELECTED + \"-\" + count);\n if (this.isSingleCell()) {\n classes.push(CSS_RANGE_SINGLE_CELL);\n }\n if (this.rangeCount > 0) {\n var borders = this.getRangeBorders();\n if (borders.top) {\n classes.push(CSS_RANGE_TOP);\n }\n if (borders.right) {\n classes.push(CSS_RANGE_RIGHT);\n }\n if (borders.bottom) {\n classes.push(CSS_RANGE_BOTTOM);\n }\n if (borders.left) {\n classes.push(CSS_RANGE_LEFT);\n }\n }\n if (!!this.selectionHandle) {\n classes.push(CSS_RANGE_HANDLE);\n }\n return classes;\n };\n CellComp.prototype.onRowIndexChanged = function () {\n // when index changes, this influences items that need the index, so we update the\n // grid cell so they are working off the new index.\n this.createGridCellVo();\n // when the index of the row changes, ie means the cell may have lost or gained focus\n this.onCellFocused();\n // check range selection\n this.onRangeSelectionChanged();\n };\n CellComp.prototype.onRangeSelectionChanged = function () {\n var rangeController = this.beans.rangeController;\n if (!rangeController) {\n return;\n }\n var _a = this, cellPosition = _a.cellPosition, rangeCount = _a.rangeCount;\n var newRangeCount = rangeController.getCellRangeCount(cellPosition);\n var element = this.getGui();\n if (rangeCount !== newRangeCount) {\n this.addOrRemoveCssClass(CSS_RANGE_SELECTED, newRangeCount !== 0);\n this.addOrRemoveCssClass(CSS_RANGE_SELECTED + \"-1\", newRangeCount === 1);\n this.addOrRemoveCssClass(CSS_RANGE_SELECTED + \"-2\", newRangeCount === 2);\n this.addOrRemoveCssClass(CSS_RANGE_SELECTED + \"-3\", newRangeCount === 3);\n this.addOrRemoveCssClass(CSS_RANGE_SELECTED + \"-4\", newRangeCount >= 4);\n this.rangeCount = newRangeCount;\n }\n setAriaSelected(element, this.rangeCount > 0);\n var hasChartRange = this.getHasChartRange();\n if (hasChartRange !== this.hasChartRange) {\n this.hasChartRange = hasChartRange;\n this.addOrRemoveCssClass(CSS_RANGE_CHART, this.hasChartRange);\n }\n this.updateRangeBorders();\n this.addOrRemoveCssClass(CSS_RANGE_SINGLE_CELL, this.isSingleCell());\n this.refreshHandle();\n };\n CellComp.prototype.getHasChartRange = function () {\n var rangeController = this.beans.rangeController;\n if (!this.rangeCount || !rangeController) {\n return false;\n }\n var cellRanges = rangeController.getCellRanges();\n return cellRanges.length > 0 && cellRanges.every(function (range) { return includes([exports.CellRangeType.DIMENSION, exports.CellRangeType.VALUE], range.type); });\n };\n CellComp.prototype.shouldHaveSelectionHandle = function () {\n var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeController = _a.rangeController;\n var cellRanges = rangeController.getCellRanges();\n var rangesLen = cellRanges.length;\n if (this.rangeCount < 1 || rangesLen < 1) {\n return false;\n }\n var cellRange = last(cellRanges);\n var cellPosition = this.getCellPosition();\n var fillHandleIsAvailable = rangesLen === 1 &&\n (gridOptionsWrapper.isEnableFillHandle() || gridOptionsWrapper.isEnableRangeHandle()) &&\n !this.editingCell;\n if (this.hasChartRange) {\n var hasCategoryRange = cellRanges[0].type === exports.CellRangeType.DIMENSION;\n var isCategoryCell = hasCategoryRange && rangeController.isCellInSpecificRange(cellPosition, cellRanges[0]);\n this.addOrRemoveCssClass(CSS_RANGE_CHART_CATEGORY, isCategoryCell);\n fillHandleIsAvailable = cellRange.type === exports.CellRangeType.VALUE;\n }\n return fillHandleIsAvailable &&\n cellRange.endRow != null &&\n rangeController.isContiguousRange(cellRange) &&\n rangeController.isBottomRightCell(cellRange, cellPosition);\n };\n CellComp.prototype.addSelectionHandle = function () {\n var _a = this.beans, gridOptionsWrapper = _a.gridOptionsWrapper, rangeController = _a.rangeController;\n var cellRangeType = last(rangeController.getCellRanges()).type;\n var selectionHandleFill = gridOptionsWrapper.isEnableFillHandle() && missing(cellRangeType);\n var type = selectionHandleFill ? exports.SelectionHandleType.FILL : exports.SelectionHandleType.RANGE;\n if (this.selectionHandle && this.selectionHandle.getType() !== type) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (!this.selectionHandle) {\n this.selectionHandle = this.beans.selectionHandleFactory.createSelectionHandle(type);\n }\n this.selectionHandle.refresh(this);\n };\n CellComp.prototype.updateRangeBordersIfRangeCount = function () {\n // we only need to update range borders if we are in a range\n if (this.rangeCount > 0) {\n this.updateRangeBorders();\n this.refreshHandle();\n }\n };\n CellComp.prototype.refreshHandle = function () {\n if (!this.beans.rangeController) {\n return;\n }\n var shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();\n if (this.selectionHandle && !shouldHaveSelectionHandle) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (shouldHaveSelectionHandle) {\n this.addSelectionHandle();\n }\n this.addOrRemoveCssClass(CSS_RANGE_HANDLE, !!this.selectionHandle);\n };\n CellComp.prototype.updateRangeBorders = function () {\n var rangeBorders = this.getRangeBorders();\n var isSingleCell = this.isSingleCell();\n var isTop = !isSingleCell && rangeBorders.top;\n var isRight = !isSingleCell && rangeBorders.right;\n var isBottom = !isSingleCell && rangeBorders.bottom;\n var isLeft = !isSingleCell && rangeBorders.left;\n this.addOrRemoveCssClass(CSS_RANGE_TOP, isTop);\n this.addOrRemoveCssClass(CSS_RANGE_RIGHT, isRight);\n this.addOrRemoveCssClass(CSS_RANGE_BOTTOM, isBottom);\n this.addOrRemoveCssClass(CSS_RANGE_LEFT, isLeft);\n };\n CellComp.prototype.onFirstRightPinnedChanged = function () {\n var firstRightPinned = this.column.isFirstRightPinned();\n if (this.firstRightPinned !== firstRightPinned) {\n this.firstRightPinned = firstRightPinned;\n this.addOrRemoveCssClass(CSS_FIRST_RIGHT_PINNED, firstRightPinned);\n }\n };\n CellComp.prototype.onLastLeftPinnedChanged = function () {\n var lastLeftPinned = this.column.isLastLeftPinned();\n if (this.lastLeftPinned !== lastLeftPinned) {\n this.lastLeftPinned = lastLeftPinned;\n this.addOrRemoveCssClass(CSS_LAST_LEFT_PINNED, lastLeftPinned);\n }\n };\n CellComp.prototype.refreshShouldDestroy = function () {\n var isUsingWrapper = this.usingWrapper;\n var isIncludingRowDragging = this.includeRowDraggingComponent;\n var isIncludingDndSource = this.includeDndSourceComponent;\n var isIncludingSelection = this.includeSelectionComponent;\n this.setUsingWrapper();\n return isUsingWrapper !== this.usingWrapper ||\n isIncludingRowDragging !== this.includeRowDraggingComponent ||\n isIncludingDndSource !== this.includeDndSourceComponent ||\n isIncludingSelection !== this.includeSelectionComponent;\n };\n CellComp.prototype.populateTemplate = function () {\n if (this.usingWrapper) {\n this.eCellValue = this.getRefElement('eCellValue');\n this.eCellWrapper = this.getRefElement('eCellWrapper');\n this.eCellValue.id = \"cell-\" + this.getCompId();\n var describedByIds = '';\n if (this.includeRowDraggingComponent) {\n this.addRowDragging();\n }\n if (this.includeDndSourceComponent) {\n this.addDndSource();\n }\n if (this.includeSelectionComponent) {\n describedByIds += this.addSelectionCheckbox().getCheckboxId();\n }\n setAriaDescribedBy(this.getGui(), (describedByIds + \" \" + this.eCellValue.id).trim());\n }\n else {\n this.eCellValue = this.getGui();\n this.eCellWrapper = this.eCellValue;\n }\n };\n CellComp.prototype.getFrameworkOverrides = function () {\n return this.beans.frameworkOverrides;\n };\n CellComp.prototype.addRowDragging = function (customElement, dragStartPixels) {\n var _this = this;\n var pagination = this.beans.gridOptionsWrapper.isPagination();\n var rowDragManaged = this.beans.gridOptionsWrapper.isRowDragManaged();\n var clientSideRowModelActive = this.beans.gridOptionsWrapper.isRowModelDefault();\n if (rowDragManaged) {\n // row dragging only available in default row model\n if (!clientSideRowModelActive) {\n doOnce(function () { return console.warn('AG Grid: managed row dragging is only allowed in the Client Side Row Model'); }, 'CellComp.addRowDragging');\n return;\n }\n if (pagination) {\n doOnce(function () { return console.warn('AG Grid: managed row dragging is not possible when doing pagination'); }, 'CellComp.addRowDragging');\n return;\n }\n }\n if (!this.rowDraggingComp) {\n this.rowDraggingComp = new RowDragComp(function () { return _this.value; }, this.rowNode, this.column, customElement, dragStartPixels);\n this.createManagedBean(this.rowDraggingComp, this.beans.context);\n }\n else if (customElement) {\n // if the rowDraggingComp is already present, means we should only set the drag element\n this.rowDraggingComp.setDragElement(customElement, dragStartPixels);\n }\n // If there is a custom element, the Cell Renderer is responsible for displaying it.\n if (!customElement) {\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.rowDraggingComp.getGui(), this.eCellValue);\n }\n };\n CellComp.prototype.addDndSource = function () {\n var dndSourceComp = new DndSourceComp(this.rowNode, this.column, this.beans, this.getGui());\n this.createManagedBean(dndSourceComp, this.beans.context);\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(dndSourceComp.getGui(), this.eCellValue);\n };\n CellComp.prototype.addSelectionCheckbox = function () {\n var _this = this;\n var cbSelectionComponent = new CheckboxSelectionComponent();\n this.beans.context.createBean(cbSelectionComponent);\n var visibleFunc = this.getComponentHolder().checkboxSelection;\n if (typeof visibleFunc !== 'function') {\n visibleFunc = undefined;\n }\n cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column });\n this.addDestroyFunc(function () { return _this.beans.context.destroyBean(cbSelectionComponent); });\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(cbSelectionComponent.getGui(), this.eCellValue);\n return cbSelectionComponent;\n };\n CellComp.prototype.addDomData = function () {\n var _this = this;\n var element = this.getGui();\n this.beans.gridOptionsWrapper.setDomData(element, CellComp.DOM_DATA_KEY_CELL_COMP, this);\n this.addDestroyFunc(function () { return _this.beans.gridOptionsWrapper.setDomData(element, CellComp.DOM_DATA_KEY_CELL_COMP, null); });\n };\n CellComp.prototype.isSingleCell = function () {\n var rangeController = this.beans.rangeController;\n return this.rangeCount === 1 && rangeController && !rangeController.isMoreThanOneCell();\n };\n CellComp.prototype.onCellFocused = function (event) {\n var cellFocused = this.beans.focusController.isCellFocused(this.cellPosition);\n // see if we need to change the classes on this cell\n if (cellFocused !== this.cellFocused) {\n // if we are not doing cell selection, then the focus class does not change\n var doingFocusCss = !this.beans.gridOptionsWrapper.isSuppressCellSelection();\n if (doingFocusCss) {\n this.addOrRemoveCssClass(CSS_CELL_FOCUS, cellFocused);\n }\n this.cellFocused = cellFocused;\n }\n // see if we need to force browser focus - this can happen if focus is programmatically set\n if (cellFocused && event && event.forceBrowserFocus) {\n var focusEl = this.getFocusableElement();\n focusEl.focus();\n // Fix for AG-3465 \"IE11 - After editing cell's content, selection doesn't go one cell below on enter\"\n // IE can fail to focus the cell after the first call to focus(), and needs a second call\n if (!document.activeElement || document.activeElement === document.body) {\n focusEl.focus();\n }\n }\n // if another cell was focused, and we are editing, then stop editing\n var fullRowEdit = this.beans.gridOptionsWrapper.isFullRowEdit();\n if (!cellFocused && !fullRowEdit && this.editingCell) {\n this.stopRowOrCellEdit();\n }\n };\n // pass in 'true' to cancel the editing.\n CellComp.prototype.stopRowOrCellEdit = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (this.beans.gridOptionsWrapper.isFullRowEdit()) {\n this.rowComp.stopRowEditing(cancel);\n }\n else {\n this.stopEditing(cancel);\n }\n };\n CellComp.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (!this.editingCell) {\n return;\n }\n // if no cell editor, this means due to async, that the cell editor never got initialised,\n // so we just carry on regardless as if the editing was never started.\n if (!this.cellEditor) {\n this.editingCell = false;\n return;\n }\n var oldValue = this.getValue();\n var newValueExists = false;\n var newValue;\n if (!cancel) {\n // also have another option here to cancel after editing, so for example user could have a popup editor and\n // it is closed by user clicking outside the editor. then the editor will close automatically (with false\n // passed above) and we need to see if the editor wants to accept the new value.\n var userWantsToCancel = this.cellEditor.isCancelAfterEnd && this.cellEditor.isCancelAfterEnd();\n if (!userWantsToCancel) {\n newValue = this.cellEditor.getValue();\n newValueExists = true;\n }\n }\n // it is important we set this after setValue() above, as otherwise the cell will flash\n // when editing stops. the 'refresh' method checks editing, and doesn't refresh editing cells.\n // thus it will skip the refresh on this cell until the end of this method where we call\n // refresh directly and we suppress the flash.\n this.editingCell = false;\n // important to clear this out - as parts of the code will check for\n // this to see if an async cellEditor has yet to be created\n this.beans.context.destroyBean(this.cellEditor);\n this.cellEditor = null;\n if (this.cellEditorInPopup && this.hideEditorPopup) {\n this.hideEditorPopup();\n this.hideEditorPopup = null;\n }\n else {\n this.clearCellElement();\n var eGui = this.getGui();\n // put the cell back the way it was before editing\n if (this.usingWrapper) {\n // if wrapper, then put the wrapper back\n eGui.appendChild(this.eCellWrapper);\n }\n else if (this.cellRenderer) {\n // if cellRenderer, then put the gui back in. if the renderer has\n // a refresh, it will be called. however if it doesn't, then later\n // the renderer will be destroyed and a new one will be created.\n // we know it's a dom element (not a string) because we converted\n // it after the gui was attached if it was a string.\n var eCell = this.cellRendererGui;\n // can be null if cell was previously null / contained empty string,\n // this will result in new value not being rendered.\n if (eCell) {\n eGui.appendChild(eCell);\n }\n }\n }\n this.setInlineEditingClass();\n this.refreshHandle();\n if (newValueExists && newValue !== oldValue) {\n // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection\n // getting triggered, which results in all cells getting refreshed. we do not want this refresh\n // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.\n // if we only did this refresh (and not the one below) then the cell would flash and not be forced.\n this.suppressRefreshCell = true;\n this.rowNode.setDataValue(this.column, newValue);\n this.suppressRefreshCell = false;\n }\n // we suppress the flash, as it is not correct to flash the cell the user has finished editing,\n // the user doesn't need to flash as they were the one who did the edit, the flash is pointless\n // (as the flash is meant to draw the user to a change that they didn't manually do themselves).\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n var editingStoppedEvent = __assign$4(__assign$4({}, this.createEvent(null, Events.EVENT_CELL_EDITING_STOPPED)), { oldValue: oldValue,\n newValue: newValue });\n this.beans.eventService.dispatchEvent(editingStoppedEvent);\n };\n CellComp.prototype.clearCellElement = function () {\n var eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n if (eGui.contains(document.activeElement) && !isBrowserIE()) {\n eGui.focus({\n preventScroll: true\n });\n }\n clearElement(eGui);\n };\n CellComp.DOM_DATA_KEY_CELL_COMP = 'cellComp';\n CellComp.CELL_RENDERER_TYPE_NORMAL = 'cellRenderer';\n CellComp.CELL_RENDERER_TYPE_PINNED = 'pinnedRowCellRenderer';\n return CellComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$J = (undefined && undefined.__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 __assign$5 = (undefined && undefined.__assign) || function () {\n __assign$5 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$5.apply(this, arguments);\n};\nvar __decorate$D = (undefined && undefined.__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 __param$5 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __spreadArrays$4 = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar RowRenderer = /** @class */ (function (_super) {\n __extends$J(RowRenderer, _super);\n function RowRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.destroyFuncsForColumnListeners = [];\n // map of row ids to row objects. keeps track of which elements\n // are rendered for which rows in the dom.\n _this.rowConsByRowIndex = {};\n _this.zombieRowCons = {};\n _this.allRowCons = [];\n _this.topRowCons = [];\n _this.bottomRowCons = [];\n // we only allow one refresh at a time, otherwise the internal memory structure here\n // will get messed up. this can happen if the user has a cellRenderer, and inside the\n // renderer they call an API method that results in another pass of the refresh,\n // then it will be trying to draw rows in the middle of a refresh.\n _this.refreshInProgress = false;\n return _this;\n }\n RowRenderer.prototype.agWire = function (loggerFactory) {\n this.logger = loggerFactory.create(\"RowRenderer\");\n };\n RowRenderer.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function () {\n _this.gridBodyCon = _this.controllersService.getGridBodyController();\n _this.initialise();\n });\n };\n RowRenderer.prototype.initialise = function () {\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.redrawAfterScroll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.redrawAfterScroll.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n this.registerCellEventListeners();\n this.printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n this.embedFullWidthRows = this.printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();\n this.redrawAfterModelUpdate();\n };\n RowRenderer.prototype.getRowCons = function () {\n return this.allRowCons;\n };\n RowRenderer.prototype.updateAllRowCons = function () {\n this.allRowCons = __spreadArrays$4(getAllValuesInObject(this.rowConsByRowIndex), getAllValuesInObject(this.zombieRowCons));\n };\n // in a clean design, each cell would register for each of these events. however when scrolling, all the cells\n // registering and de-registering for events is a performance bottleneck. so we register here once and inform\n // all active cells.\n RowRenderer.prototype.registerCellEventListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUSED, function (event) {\n _this.forEachCellComp(function (cellComp) { return cellComp.onCellFocused(event); });\n _this.forEachRowComp(function (key, rowComp) {\n if (rowComp.isFullWidth()) {\n rowComp.onFullWidthRowFocused(event);\n }\n });\n });\n this.addManagedListener(this.eventService, Events.EVENT_FLASH_CELLS, function (event) {\n _this.forEachCellComp(function (cellComp) { return cellComp.onFlashCells(event); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.onColumnHover(); });\n });\n // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,\n // then changing the width of the containers will impact left position. eg the center cols all have their\n // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,\n // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are\n // in different containers so doesn't impact.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () {\n if (_this.printLayout) {\n _this.forEachCellComp(function (cellComp) { return cellComp.onLeftChanged(); });\n }\n });\n var rangeSelectionEnabled = this.gridOptionsWrapper.isEnableRangeSelection();\n if (rangeSelectionEnabled) {\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.onRangeSelectionChanged(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, function () {\n _this.forEachCellComp(function (cellComp) { return cellComp.updateRangeBordersIfRangeCount(); });\n });\n }\n // add listeners to the grid columns\n this.refreshListenersToColumnsForCellComps();\n // if the grid columns change, then refresh the listeners again\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));\n this.addDestroyFunc(this.removeGridColumnListeners.bind(this));\n };\n // executes all functions in destroyFuncsForColumnListeners and then clears the list\n RowRenderer.prototype.removeGridColumnListeners = function () {\n this.destroyFuncsForColumnListeners.forEach(function (func) { return func(); });\n this.destroyFuncsForColumnListeners.length = 0;\n };\n // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.\n // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to\n // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here\n // once instead.\n RowRenderer.prototype.refreshListenersToColumnsForCellComps = function () {\n var _this = this;\n this.removeGridColumnListeners();\n var cols = this.columnController.getAllGridColumns();\n if (!cols) {\n return;\n }\n cols.forEach(function (col) {\n var forEachCellWithThisCol = function (callback) {\n _this.forEachCellComp(function (cellComp) {\n if (cellComp.getColumn() === col) {\n callback(cellComp);\n }\n });\n };\n var leftChangedListener = function () {\n forEachCellWithThisCol(function (cellComp) { return cellComp.onLeftChanged(); });\n };\n var widthChangedListener = function () {\n forEachCellWithThisCol(function (cellComp) { return cellComp.onWidthChanged(); });\n };\n var firstRightPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellComp) { return cellComp.onFirstRightPinnedChanged(); });\n };\n var lastLeftPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellComp) { return cellComp.onLastLeftPinnedChanged(); });\n };\n col.addEventListener(Column.EVENT_LEFT_CHANGED, leftChangedListener);\n col.addEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n col.addEventListener(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);\n col.addEventListener(Column.EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);\n _this.destroyFuncsForColumnListeners.push(function () {\n col.removeEventListener(Column.EVENT_LEFT_CHANGED, leftChangedListener);\n col.removeEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n col.removeEventListener(Column.EVENT_FIRST_RIGHT_PINNED_CHANGED, firstRightPinnedChangedListener);\n col.removeEventListener(Column.EVENT_LAST_LEFT_PINNED_CHANGED, lastLeftPinnedChangedListener);\n });\n });\n };\n RowRenderer.prototype.onDomLayoutChanged = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var embedFullWidthRows = printLayout || this.gridOptionsWrapper.isEmbedFullWidthRows();\n // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid\n // out using absolute positioning when doing print layout\n var destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;\n this.printLayout = printLayout;\n this.embedFullWidthRows = embedFullWidthRows;\n if (destroyRows) {\n this.redrawAfterModelUpdate();\n }\n };\n // for row models that have datasources, when we update the datasource, we need to force the rowRenderer\n // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.\n RowRenderer.prototype.datasourceChanged = function () {\n this.firstRenderedRow = 0;\n this.lastRenderedRow = -1;\n var rowIndexesToRemove = Object.keys(this.rowConsByRowIndex);\n this.removeRowComps(rowIndexesToRemove);\n };\n RowRenderer.prototype.onPageLoaded = function (event) {\n var params = {\n recycleRows: event.keepRenderedRows,\n animate: event.animate,\n newData: event.newData,\n newPage: event.newPage,\n // because this is a model updated event (not pinned rows), we\n // can skip updating the pinned rows. this is needed so that if user\n // is doing transaction updates, the pinned rows are not getting constantly\n // trashed - or editing cells in pinned rows are not refreshed and put into read mode\n onlyBody: true\n };\n this.redrawAfterModelUpdate(params);\n };\n RowRenderer.prototype.getAllCellsForColumn = function (column) {\n var eCells = [];\n function callback(key, rowComp) {\n var eCell = rowComp.getCellForCol(column);\n if (eCell) {\n eCells.push(eCell);\n }\n }\n iterateObject(this.rowConsByRowIndex, callback);\n iterateObject(this.bottomRowCons, callback);\n iterateObject(this.topRowCons, callback);\n return eCells;\n };\n RowRenderer.prototype.refreshFloatingRowComps = function () {\n this.refreshFloatingRows(this.topRowCons, this.pinnedRowModel.getPinnedTopRowData());\n this.refreshFloatingRows(this.bottomRowCons, this.pinnedRowModel.getPinnedBottomRowData());\n };\n RowRenderer.prototype.getTopRowCons = function () {\n return this.topRowCons;\n };\n RowRenderer.prototype.getBottomRowCons = function () {\n return this.bottomRowCons;\n };\n RowRenderer.prototype.refreshFloatingRows = function (rowComps, rowNodes) {\n var _this = this;\n rowComps.forEach(function (row) {\n row.destroyFirstPass();\n row.destroySecondPass();\n });\n rowComps.length = 0;\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var rowCon = new RowController(_this.$scope, rowNode, _this.beans, false, false, _this.printLayout);\n rowComps.push(rowCon);\n });\n };\n RowRenderer.prototype.onPinnedRowDataChanged = function () {\n // recycling rows in order to ensure cell editing is not cancelled\n var params = {\n recycleRows: true\n };\n this.redrawAfterModelUpdate(params);\n };\n // if the row nodes are not rendered, no index is returned\n RowRenderer.prototype.getRenderedIndexesForRowNodes = function (rowNodes) {\n var result = [];\n if (missing(rowNodes)) {\n return result;\n }\n iterateObject(this.rowConsByRowIndex, function (index, renderedRow) {\n var rowNode = renderedRow.getRowNode();\n if (rowNodes.indexOf(rowNode) >= 0) {\n result.push(index);\n }\n });\n return result;\n };\n RowRenderer.prototype.redrawRows = function (rowNodes) {\n // if no row nodes provided, then refresh everything\n var partialRefresh = rowNodes != null && rowNodes.length > 0;\n if (partialRefresh) {\n var indexesToRemove = this.getRenderedIndexesForRowNodes(rowNodes);\n // remove the rows\n this.removeRowComps(indexesToRemove);\n }\n // add draw them again\n this.redrawAfterModelUpdate({\n recycleRows: partialRefresh\n });\n };\n RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {\n var focusedCell = params.suppressKeepFocus ? null : this.focusController.getFocusCellToUseAfterRefresh();\n if (missing(focusedCell)) {\n return null;\n }\n // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this\n // solves is with editing - if the user is editing, eg focus is on a text field, and not on the\n // cell itself, then the cell can be registered as having focus, however it's the text field that\n // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus\n // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,\n // the focus is lost from the text field. we do not want this.\n var activeElement = document.activeElement;\n var domData = this.gridOptionsWrapper.getDomData(activeElement, CellComp.DOM_DATA_KEY_CELL_COMP);\n var elementIsNotACellDev = missing(domData);\n return elementIsNotACellDev ? null : focusedCell;\n };\n // gets called from:\n // +) initialisation (in registerGridComp) params = null\n // +) onDomLayoutChanged, params = null\n // +) onPageLoaded, recycleRows, animate, newData, newPage from event, onlyBody=true\n // +) onPinnedRowDataChanged, recycleRows = true\n // +) redrawRows (from Grid API), recycleRows = true/false\n RowRenderer.prototype.redrawAfterModelUpdate = function (params) {\n if (params === void 0) { params = {}; }\n this.getLockOnRefresh();\n var focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);\n this.updateContainerHeights();\n this.scrollToTopIfNewData(params);\n // never recycle rows when print layout, we draw each row again from scratch. this is because print layout\n // uses normal dom layout to put cells into dom - it doesn't allow reordering rows.\n var recycleRows = !this.printLayout && !!params.recycleRows;\n var animate = params.animate && this.gridOptionsWrapper.isAnimateRows();\n // after modelUpdate, row indexes can change, so we clear out the rowsByIndex map,\n // however we can reuse the rows, so we keep them but index by rowNode.id\n var rowsToRecycle = recycleRows ? this.recycleRows() : null;\n if (!recycleRows) {\n this.removeAllRowComps();\n }\n var isFocusedCellGettingRecycled = function () {\n if (focusedCell == null || rowsToRecycle == null) {\n return false;\n }\n var res = false;\n iterateObject(rowsToRecycle, function (key, rowComp) {\n var rowNode = rowComp.getRowNode();\n var rowIndexEqual = rowNode.rowIndex == focusedCell.rowIndex;\n var pinnedEqual = rowNode.rowPinned == focusedCell.rowPinned;\n if (rowIndexEqual && pinnedEqual) {\n res = true;\n }\n });\n return res;\n };\n var focusedCellRecycled = isFocusedCellGettingRecycled();\n this.redraw(rowsToRecycle, animate);\n if (!params.onlyBody) {\n this.refreshFloatingRowComps();\n }\n this.dispatchDisplayedRowsChanged();\n // if we focus a cell that's already focused, then we get an unnecessary 'cellFocused' event fired.\n // this was happening when user clicked 'expand' on a rowGroup, then cellFocused was getting fired twice.\n if (!focusedCellRecycled) {\n this.restoreFocusedCell(focusedCell);\n }\n this.releaseLockOnRefresh();\n };\n RowRenderer.prototype.scrollToTopIfNewData = function (params) {\n var scrollToTop = params.newData || params.newPage;\n var suppressScrollToTop = this.gridOptionsWrapper.isSuppressScrollOnNewData();\n if (scrollToTop && !suppressScrollToTop) {\n this.gridBodyCon.getScrollFeature().scrollToTop();\n }\n };\n RowRenderer.prototype.updateContainerHeights = function () {\n // when doing print layout, we don't explicitly set height on the containers\n if (this.printLayout) {\n this.rowContainerHeightService.setModelHeight(null);\n return;\n }\n var containerHeight = this.paginationProxy.getCurrentPageHeight();\n // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,\n // we still want the scroll to be present, otherwise there would be no way to scroll the header\n // which might be needed us user wants to access columns\n // on the RHS - and if that was where the filter was that cause no rows to be presented, there\n // is no way to remove the filter.\n if (containerHeight === 0) {\n containerHeight = 1;\n }\n this.rowContainerHeightService.setModelHeight(containerHeight);\n };\n RowRenderer.prototype.getLockOnRefresh = function () {\n if (this.refreshInProgress) {\n throw new Error(\"AG Grid: cannot get grid to draw rows when it is in the middle of drawing rows. \" +\n \"Your code probably called a grid API method while the grid was in the render stage. To overcome \" +\n \"this, put the API call into a timeout, e.g. instead of api.refreshView(), \" +\n \"call setTimeout(function() { api.refreshView(); }, 0). To see what part of your code \" +\n \"that caused the refresh check this stacktrace.\");\n }\n this.refreshInProgress = true;\n };\n RowRenderer.prototype.releaseLockOnRefresh = function () {\n this.refreshInProgress = false;\n };\n // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without\n // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits\n // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the\n // edited cell).\n RowRenderer.prototype.restoreFocusedCell = function (cellPosition) {\n if (cellPosition) {\n this.focusController.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);\n }\n };\n RowRenderer.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.forEachRowComp(function (key, rowComp) {\n rowComp.stopEditing(cancel);\n });\n };\n RowRenderer.prototype.onNewColumnsLoaded = function () {\n // we don't want each cellComp to register for events, as would increase rendering time.\n // so for newColumnsLoaded, we register once here (in rowRenderer) and then inform\n // each cell if / when event was fired.\n this.forEachCellComp(function (cellComp) { return cellComp.onNewColumnsLoaded(); });\n };\n RowRenderer.prototype.forEachCellComp = function (callback) {\n this.forEachRowComp(function (key, rowComp) { return rowComp.forEachCellComp(callback); });\n };\n RowRenderer.prototype.forEachRowComp = function (callback) {\n iterateObject(this.rowConsByRowIndex, callback);\n iterateObject(this.topRowCons, callback);\n iterateObject(this.bottomRowCons, callback);\n };\n RowRenderer.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n var rowComp = this.rowConsByRowIndex[rowIndex];\n if (rowComp) {\n rowComp.addEventListener(eventName, callback);\n }\n };\n RowRenderer.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n var flashDelay = params.flashDelay, fadeDelay = params.fadeDelay;\n this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) { return cellComp.flashCell({ flashDelay: flashDelay, fadeDelay: fadeDelay }); });\n };\n RowRenderer.prototype.refreshCells = function (params) {\n if (params === void 0) { params = {}; }\n var refreshCellParams = {\n forceRefresh: params.force,\n newData: false,\n suppressFlash: params.suppressFlash\n };\n this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {\n if (cellComp.refreshShouldDestroy()) {\n var rowComp = cellComp.getRenderedRow();\n if (rowComp) {\n rowComp.refreshCell(cellComp);\n }\n }\n else {\n cellComp.refreshCell(refreshCellParams);\n }\n });\n };\n RowRenderer.prototype.getCellRendererInstances = function (params) {\n var res = [];\n this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {\n var cellRenderer = cellComp.getCellRenderer();\n if (cellRenderer) {\n res.push(cellRenderer);\n }\n });\n return res;\n };\n RowRenderer.prototype.getCellEditorInstances = function (params) {\n var res = [];\n this.forEachCellCompFiltered(params.rowNodes, params.columns, function (cellComp) {\n var cellEditor = cellComp.getCellEditor();\n if (cellEditor) {\n res.push(cellEditor);\n }\n });\n return res;\n };\n RowRenderer.prototype.getEditingCells = function () {\n var res = [];\n this.forEachCellComp(function (cellComp) {\n if (cellComp.isEditing()) {\n var cellPosition = cellComp.getCellPosition();\n res.push(cellPosition);\n }\n });\n return res;\n };\n // calls the callback for each cellComp that match the provided rowNodes and columns. eg if one row node\n // and two columns provided, that identifies 4 cells, so callback gets called 4 times, once for each cell.\n RowRenderer.prototype.forEachCellCompFiltered = function (rowNodes, columns, callback) {\n var _this = this;\n var rowIdsMap;\n if (exists(rowNodes)) {\n rowIdsMap = {\n top: {},\n bottom: {},\n normal: {}\n };\n rowNodes.forEach(function (rowNode) {\n var id = rowNode.id;\n if (rowNode.rowPinned === Constants.PINNED_TOP) {\n rowIdsMap.top[id] = true;\n }\n else if (rowNode.rowPinned === Constants.PINNED_BOTTOM) {\n rowIdsMap.bottom[id] = true;\n }\n else {\n rowIdsMap.normal[id] = true;\n }\n });\n }\n var colIdsMap;\n if (exists(columns)) {\n colIdsMap = {};\n columns.forEach(function (colKey) {\n var column = _this.columnController.getGridColumn(colKey);\n if (exists(column)) {\n colIdsMap[column.getId()] = true;\n }\n });\n }\n var processRow = function (rowComp) {\n var rowNode = rowComp.getRowNode();\n var id = rowNode.id;\n var floating = rowNode.rowPinned;\n // skip this row if it is missing from the provided list\n if (exists(rowIdsMap)) {\n if (floating === Constants.PINNED_BOTTOM) {\n if (!rowIdsMap.bottom[id]) {\n return;\n }\n }\n else if (floating === Constants.PINNED_TOP) {\n if (!rowIdsMap.top[id]) {\n return;\n }\n }\n else {\n if (!rowIdsMap.normal[id]) {\n return;\n }\n }\n }\n rowComp.forEachCellComp(function (cellComp) {\n var colId = cellComp.getColumn().getId();\n var excludeColFromRefresh = colIdsMap && !colIdsMap[colId];\n if (excludeColFromRefresh) {\n return;\n }\n if (callback) {\n callback(cellComp);\n }\n });\n };\n iterateObject(this.rowConsByRowIndex, function (index, rowComp) {\n processRow(rowComp);\n });\n if (this.topRowCons) {\n this.topRowCons.forEach(processRow);\n }\n if (this.bottomRowCons) {\n this.bottomRowCons.forEach(processRow);\n }\n };\n RowRenderer.prototype.destroy = function () {\n this.removeAllRowComps();\n _super.prototype.destroy.call(this);\n };\n RowRenderer.prototype.removeAllRowComps = function () {\n var rowIndexesToRemove = Object.keys(this.rowConsByRowIndex);\n this.removeRowComps(rowIndexesToRemove);\n };\n RowRenderer.prototype.recycleRows = function () {\n // remove all stub nodes, they can't be reused, as no rowNode id\n var stubNodeIndexes = [];\n iterateObject(this.rowConsByRowIndex, function (index, rowComp) {\n var stubNode = rowComp.getRowNode().id == null;\n if (stubNode) {\n stubNodeIndexes.push(index);\n }\n });\n this.removeRowComps(stubNodeIndexes);\n // then clear out rowCompsByIndex, but before that take a copy, but index by id, not rowIndex\n var nodesByIdMap = {};\n iterateObject(this.rowConsByRowIndex, function (index, rowComp) {\n var rowNode = rowComp.getRowNode();\n nodesByIdMap[rowNode.id] = rowComp;\n });\n this.rowConsByRowIndex = {};\n return nodesByIdMap;\n };\n // takes array of row indexes\n RowRenderer.prototype.removeRowComps = function (rowsToRemove) {\n var _this = this;\n // if no fromIndex then set to -1, which will refresh everything\n // let realFromIndex = -1;\n rowsToRemove.forEach(function (indexToRemove) {\n var rowComp = _this.rowConsByRowIndex[indexToRemove];\n if (rowComp) {\n rowComp.destroyFirstPass();\n rowComp.destroySecondPass();\n }\n delete _this.rowConsByRowIndex[indexToRemove];\n });\n };\n // gets called when rows don't change, but viewport does, so after:\n // 1) height of grid body changes, ie number of displayed rows has changed\n // 2) grid scrolled to new position\n // 3) ensure index visible (which is a scroll)\n RowRenderer.prototype.redrawAfterScroll = function () {\n this.getLockOnRefresh();\n this.redraw(null, false, true);\n this.releaseLockOnRefresh();\n this.dispatchDisplayedRowsChanged();\n };\n RowRenderer.prototype.removeRowCompsNotToDraw = function (indexesToDraw) {\n // for speedy lookup, dump into map\n var indexesToDrawMap = {};\n indexesToDraw.forEach(function (index) { return (indexesToDrawMap[index] = true); });\n var existingIndexes = Object.keys(this.rowConsByRowIndex);\n var indexesNotToDraw = existingIndexes.filter(function (index) { return !indexesToDrawMap[index]; });\n this.removeRowComps(indexesNotToDraw);\n };\n RowRenderer.prototype.calculateIndexesToDraw = function (rowsToRecycle) {\n var _this = this;\n // all in all indexes in the viewport\n var indexesToDraw = createArrayOfNumbers(this.firstRenderedRow, this.lastRenderedRow);\n var checkRowToDraw = function (indexStr, rowComp) {\n var index = rowComp.getRowNode().rowIndex;\n if (index == null) {\n return;\n }\n if (index < _this.firstRenderedRow || index > _this.lastRenderedRow) {\n if (_this.doNotUnVirtualiseRow(rowComp)) {\n indexesToDraw.push(index);\n }\n }\n };\n // if we are redrawing due to scrolling change, then old rows are in this.rowCompsByIndex\n iterateObject(this.rowConsByRowIndex, checkRowToDraw);\n // if we are redrawing due to model update, then old rows are in rowsToRecycle\n iterateObject(rowsToRecycle, checkRowToDraw);\n indexesToDraw.sort(function (a, b) { return a - b; });\n return indexesToDraw;\n };\n RowRenderer.prototype.redraw = function (rowsToRecycle, animate, afterScroll) {\n var _this = this;\n if (animate === void 0) { animate = false; }\n if (afterScroll === void 0) { afterScroll = false; }\n this.rowContainerHeightService.updateOffset();\n this.workOutFirstAndLastRowsToRender();\n // the row can already exist and be in the following:\n // rowsToRecycle -> if model change, then the index may be different, however row may\n // exist here from previous time (mapped by id).\n // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport\n // this is all the indexes we want, including those that already exist, so this method\n // will end up going through each index and drawing only if the row doesn't already exist\n var indexesToDraw = this.calculateIndexesToDraw(rowsToRecycle);\n this.removeRowCompsNotToDraw(indexesToDraw);\n // never animate when doing print layout - as we want to get things ready to print as quickly as possible,\n // otherwise we risk the printer printing a row that's half faded (half way through fading in)\n if (this.printLayout) {\n animate = false;\n }\n indexesToDraw.forEach(function (rowIndex) {\n var rowComp = _this.createOrUpdateRowCon(rowIndex, rowsToRecycle, animate, afterScroll);\n if (exists(rowComp)) ;\n });\n if (rowsToRecycle) {\n var useAnimationFrame = afterScroll && !this.gridOptionsWrapper.isSuppressAnimationFrame() && !this.printLayout;\n if (useAnimationFrame) {\n this.beans.taskQueue.addDestroyTask(function () {\n _this.destroyRowCons(rowsToRecycle, animate);\n _this.updateAllRowCons();\n _this.dispatchDisplayedRowsChanged();\n });\n }\n else {\n this.destroyRowCons(rowsToRecycle, animate);\n }\n }\n this.updateAllRowCons();\n this.checkAngularCompile();\n this.gridBodyCon.updateRowCount();\n };\n RowRenderer.prototype.dispatchDisplayedRowsChanged = function () {\n var event = { type: Events.EVENT_DISPLAYED_ROWS_CHANGED };\n this.eventService.dispatchEvent(event);\n };\n RowRenderer.prototype.onDisplayedColumnsChanged = function () {\n var pinningLeft = this.columnController.isPinningLeft();\n var pinningRight = this.columnController.isPinningRight();\n var atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;\n if (atLeastOneChanged) {\n this.pinningLeft = pinningLeft;\n this.pinningRight = pinningRight;\n if (this.embedFullWidthRows) {\n this.redrawFullWidthEmbeddedRows();\n }\n }\n };\n // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,\n // then it should go into the pinned left area if pinning left, or the center area if not pinning.\n RowRenderer.prototype.redrawFullWidthEmbeddedRows = function () {\n // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when\n // embedded, as what appears in each section depends on whether we are pinned or not\n var rowsToRemove = [];\n iterateObject(this.rowConsByRowIndex, function (id, rowComp) {\n if (rowComp.isFullWidth()) {\n var rowIndex = rowComp.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n }\n });\n this.refreshFloatingRowComps();\n this.removeRowComps(rowsToRemove);\n this.redrawAfterScroll();\n };\n RowRenderer.prototype.refreshFullWidthRows = function (rowNodesToRefresh) {\n var rowsToRemove = [];\n var selectivelyRefreshing = !!rowNodesToRefresh;\n var idsToRefresh = selectivelyRefreshing ? {} : undefined;\n if (selectivelyRefreshing && idsToRefresh) {\n rowNodesToRefresh.forEach(function (r) { return idsToRefresh[r.id] = true; });\n }\n iterateObject(this.rowConsByRowIndex, function (id, rowComp) {\n if (!rowComp.isFullWidth()) {\n return;\n }\n var rowNode = rowComp.getRowNode();\n if (selectivelyRefreshing && idsToRefresh) {\n // we refresh if a) this node is present or b) this parents nodes is present. checking parent\n // node is important for master/detail, as we want detail to refresh on changes to parent node.\n // it's also possible, if user is provider their own fullWidth, that details panels contain\n // some info on the parent, eg if in tree data and child row shows some data from parent row also.\n var parentId = (rowNode.level > 0 && rowNode.parent) ? rowNode.parent.id : undefined;\n var skipThisNode = !idsToRefresh[rowNode.id] && !idsToRefresh[parentId];\n if (skipThisNode) {\n return;\n }\n }\n var fullWidthRowsRefreshed = rowComp.refreshFullWidth();\n if (!fullWidthRowsRefreshed) {\n var rowIndex = rowComp.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n }\n });\n this.removeRowComps(rowsToRemove);\n this.redrawAfterScroll();\n };\n RowRenderer.prototype.createOrUpdateRowCon = function (rowIndex, rowsToRecycle, animate, afterScroll) {\n var rowNode = null;\n var rowCon = this.rowConsByRowIndex[rowIndex];\n // if no row comp, see if we can get it from the previous rowComps\n if (!rowCon) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n if (exists(rowNode) && exists(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {\n rowCon = rowsToRecycle[rowNode.id];\n rowsToRecycle[rowNode.id] = null;\n }\n }\n var creatingNewRowCon = !rowCon;\n if (creatingNewRowCon) {\n // create a new one\n if (!rowNode) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n }\n if (exists(rowNode)) {\n rowCon = this.createRowCon(rowNode, animate, afterScroll);\n }\n else {\n // this should never happen - if somehow we are trying to create\n // a row for a rowNode that does not exist.\n return;\n }\n }\n if (rowNode) {\n // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures\n // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.\n rowNode.alreadyRendered = true;\n }\n this.rowConsByRowIndex[rowIndex] = rowCon;\n return rowCon;\n };\n RowRenderer.prototype.destroyRowCons = function (rowConsMap, animate) {\n var _this = this;\n var executeInAWhileFuncs = [];\n iterateObject(rowConsMap, function (nodeId, rowCon) {\n // if row was used, then it's null\n if (!rowCon) {\n return;\n }\n rowCon.destroyFirstPass();\n if (animate) {\n _this.zombieRowCons[rowCon.getInstanceId()] = rowCon;\n executeInAWhileFuncs.push(function () {\n rowCon.destroySecondPass();\n delete _this.zombieRowCons[rowCon.getInstanceId()];\n });\n }\n else {\n rowCon.destroySecondPass();\n }\n });\n if (animate) {\n // this ensures we fire displayedRowsChanged AFTER all the 'executeInAWhileFuncs' get\n // executed, as we added it to the end of the list.\n executeInAWhileFuncs.push(function () {\n _this.updateAllRowCons();\n _this.dispatchDisplayedRowsChanged();\n });\n executeInAWhile(executeInAWhileFuncs);\n }\n };\n RowRenderer.prototype.checkAngularCompile = function () {\n var _this = this;\n // if we are doing angular compiling, then do digest the scope here\n if (this.gridOptionsWrapper.isAngularCompileRows()) {\n // we do it in a timeout, in case we are already in an apply\n window.setTimeout(function () {\n _this.$scope.$apply();\n }, 0);\n }\n };\n RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {\n var _this = this;\n var newFirst;\n var newLast;\n if (!this.paginationProxy.isRowsToRender()) {\n newFirst = 0;\n newLast = -1; // setting to -1 means nothing in range\n }\n else if (this.printLayout) {\n newFirst = this.paginationProxy.getPageFirstRow();\n newLast = this.paginationProxy.getPageLastRow();\n }\n else {\n var bufferPixels = this.gridOptionsWrapper.getRowBufferInPixels();\n var gridBodyCon = this.controllersService.getGridBodyController();\n var rowHeightsChanged = false;\n var firstPixel = void 0;\n var lastPixel = void 0;\n do {\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var _a = this.paginationProxy.getCurrentPagePixelRange(), pageFirstPixel = _a.pageFirstPixel, pageLastPixel = _a.pageLastPixel;\n var divStretchOffset = this.rowContainerHeightService.getDivStretchOffset();\n var bodyVRange = gridBodyCon.getScrollFeature().getVScrollPosition();\n var bodyTopPixel = bodyVRange.top;\n var bodyBottomPixel = bodyVRange.bottom;\n firstPixel = Math.max(bodyTopPixel + paginationOffset - bufferPixels, pageFirstPixel) + divStretchOffset;\n lastPixel = Math.min(bodyBottomPixel + paginationOffset + bufferPixels, pageLastPixel) + divStretchOffset;\n // if the rows we are about to display get their heights changed, then that upsets the calcs from above.\n rowHeightsChanged = this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);\n } while (rowHeightsChanged);\n var firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);\n var lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);\n var pageFirstRow = this.paginationProxy.getPageFirstRow();\n var pageLastRow = this.paginationProxy.getPageLastRow();\n // adjust, in case buffer extended actual size\n if (firstRowIndex < pageFirstRow) {\n firstRowIndex = pageFirstRow;\n }\n if (lastRowIndex > pageLastRow) {\n lastRowIndex = pageLastRow;\n }\n newFirst = firstRowIndex;\n newLast = lastRowIndex;\n }\n // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up\n // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of\n // killing the browser, we limit the number of rows. just in case some use case we didn't think\n // of, we also have a property to not do this operation.\n var rowLayoutNormal = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n var suppressRowCountRestriction = this.gridOptionsWrapper.isSuppressMaxRenderedRowRestriction();\n var rowBufferMaxSize = Math.max(this.gridOptionsWrapper.getRowBuffer(), 500);\n if (rowLayoutNormal && !suppressRowCountRestriction) {\n if (newLast - newFirst > rowBufferMaxSize) {\n newLast = newFirst + rowBufferMaxSize;\n }\n }\n var firstDiffers = newFirst !== this.firstRenderedRow;\n var lastDiffers = newLast !== this.lastRenderedRow;\n if (firstDiffers || lastDiffers) {\n this.firstRenderedRow = newFirst;\n this.lastRenderedRow = newLast;\n var event_1 = {\n type: Events.EVENT_VIEWPORT_CHANGED,\n firstRow: newFirst,\n lastRow: newLast,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n // only dispatch firstDataRendered if we have actually rendered some data\n if (this.paginationProxy.isRowsToRender()) {\n var event_2 = {\n type: Events.EVENT_FIRST_DATA_RENDERED,\n firstRow: newFirst,\n lastRow: newLast,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n // added a small delay here because in some scenarios this can be fired\n // before the grid is actually rendered, causing component creation\n // on EVENT_FIRST_DATA_RENDERED to fail.\n window.setTimeout(function () { return _this.eventService.dispatchEventOnce(event_2); }, 50);\n }\n };\n RowRenderer.prototype.ensureAllRowsInRangeHaveHeightsCalculated = function (topPixel, bottomPixel) {\n // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.\n // all the other row models just hard code so the method just returns back false\n var res = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);\n if (res) {\n this.updateContainerHeights();\n }\n return res;\n };\n RowRenderer.prototype.getFirstVirtualRenderedRow = function () {\n return this.firstRenderedRow;\n };\n RowRenderer.prototype.getLastVirtualRenderedRow = function () {\n return this.lastRenderedRow;\n };\n // check that none of the rows to remove are editing or focused as:\n // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,\n // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered\n // the edit is reset - so we want to keep it rendered.\n // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,\n // otherwise the user can range select and drag (with focus cell going out of the viewport)\n // and then ctrl+c, nothing will happen if cell is removed from dom.\n // c) if detail record of master detail, as users complained that the context of detail rows\n // was getting lost when detail row out of view. eg user expands to show detail row,\n // then manipulates the detail panel (eg sorts the detail grid), then context is lost\n // after detail panel is scrolled out of / into view.\n RowRenderer.prototype.doNotUnVirtualiseRow = function (rowComp) {\n var REMOVE_ROW = false;\n var KEEP_ROW = true;\n var rowNode = rowComp.getRowNode();\n var rowHasFocus = this.focusController.isRowNodeFocused(rowNode);\n var rowIsEditing = rowComp.isEditing();\n var rowIsDetail = rowNode.detail;\n var mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;\n // if we deffo don't want to keep it,\n if (!mightWantToKeepRow) {\n return REMOVE_ROW;\n }\n // editing row, only remove if it is no longer rendered, eg filtered out or new data set.\n // the reason we want to keep is if user is scrolling up and down, we don't want to loose\n // the context of the editing in process.\n var rowNodePresent = this.paginationProxy.isRowPresent(rowNode);\n return rowNodePresent ? KEEP_ROW : REMOVE_ROW;\n };\n RowRenderer.prototype.createRowCon = function (rowNode, animate, afterScroll) {\n var suppressAnimationFrame = this.gridOptionsWrapper.isSuppressAnimationFrame();\n // we don't use animations frames for printing, so the user can put the grid into print mode\n // and immediately print - otherwise the user would have to wait for the rows to draw in the background\n // (via the animation frames) which is awkward to do from code.\n // we only do the animation frames after scrolling, as this is where we want the smooth user experience.\n // having animation frames for other times makes the grid look 'jumpy'.\n var useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;\n var res = new RowController(this.$scope, rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout);\n return res;\n };\n RowRenderer.prototype.getRenderedNodes = function () {\n var renderedRows = this.rowConsByRowIndex;\n return Object.keys(renderedRows).map(function (key) { return renderedRows[key].getRowNode(); });\n };\n // we use index for rows, but column object for columns, as the next column (by index) might not\n // be visible (header grouping) so it's not reliable, so using the column object instead.\n RowRenderer.prototype.navigateToNextCell = function (event, key, currentCell, allowUserOverride) {\n // we keep searching for a next cell until we find one. this is how the group rows get skipped\n var nextCell = currentCell;\n var hitEdgeOfGrid = false;\n while (nextCell && (nextCell === currentCell || !this.isValidNavigateCell(nextCell))) {\n // if the current cell is spanning across multiple columns, we need to move\n // our current position to be the last cell on the right before finding the\n // the next target.\n if (this.gridOptionsWrapper.isEnableRtl()) {\n if (key === KeyCode.LEFT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n }\n else if (key === KeyCode.RIGHT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);\n // eg if going down, and nextCell=undefined, means we are gone past the last row\n hitEdgeOfGrid = missing(nextCell);\n }\n if (hitEdgeOfGrid && event && event.keyCode === KeyCode.UP) {\n nextCell = {\n rowIndex: -1,\n rowPinned: null,\n column: currentCell.column\n };\n }\n // allow user to override what cell to go to next. when doing normal cell navigation (with keys)\n // we allow this, however if processing 'enter after edit' we don't allow override\n if (allowUserOverride) {\n var userFunc = this.gridOptionsWrapper.getNavigateToNextCellFunc();\n if (exists(userFunc)) {\n var params = {\n key: key,\n previousCellPosition: currentCell,\n nextCellPosition: nextCell ? nextCell : null,\n event: event\n };\n var userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n doOnce(function () { console.warn(\"AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextCell = {\n rowPinned: userCell.rowPinned,\n rowIndex: userCell.rowIndex,\n column: userCell.column\n };\n }\n else {\n nextCell = null;\n }\n }\n }\n // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid\n if (!nextCell) {\n return;\n }\n if (nextCell.rowIndex < 0) {\n var headerLen = this.beans.headerNavigationService.getHeaderRowCount();\n this.focusController.focusHeaderPosition({ headerRowIndex: headerLen + (nextCell.rowIndex), column: currentCell.column });\n return;\n }\n // in case we have col spanning we get the cellComp and use it to get the\n // position. This was we always focus the first cell inside the spanning.\n var normalisedPosition = this.getNormalisedPosition(nextCell);\n if (normalisedPosition) {\n this.focusPosition(normalisedPosition);\n }\n else {\n this.tryToFocusFullWidthRow(nextCell);\n }\n };\n RowRenderer.prototype.getNormalisedPosition = function (cellPosition) {\n // ensureCellVisible first, to make sure cell at position is rendered.\n this.ensureCellVisible(cellPosition);\n var cellComp = this.getComponentForCell(cellPosition);\n // not guaranteed to have a cellComp when using the SSRM as blocks are loading.\n if (!cellComp) {\n return null;\n }\n cellPosition = cellComp.getCellPosition();\n // we call this again, as nextCell can be different to it's previous value due to Column Spanning\n // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the\n // last column in the group, however now it's the first column in the group). if we didn't do\n // ensureCellVisible again, then we could only be showing the last portion (last column) of the\n // merged cells.\n this.ensureCellVisible(cellPosition);\n return cellPosition;\n };\n RowRenderer.prototype.tryToFocusFullWidthRow = function (position, backwards) {\n if (backwards === void 0) { backwards = false; }\n var displayedColumns = this.columnController.getAllDisplayedColumns();\n var rowComp = this.getRowConByPosition(position);\n if (!rowComp || !rowComp.isFullWidth()) {\n return false;\n }\n var cellPosition = {\n rowIndex: position.rowIndex,\n rowPinned: position.rowPinned,\n column: position.column || (backwards ? last(displayedColumns) : displayedColumns[0])\n };\n this.focusPosition(cellPosition);\n return true;\n };\n RowRenderer.prototype.focusPosition = function (cellPosition) {\n this.focusController.setFocusedCell(cellPosition.rowIndex, cellPosition.column, cellPosition.rowPinned, true);\n if (this.rangeController) {\n this.rangeController.setRangeToCell(cellPosition);\n }\n };\n RowRenderer.prototype.isValidNavigateCell = function (cell) {\n var rowNode = this.rowPositionUtils.getRowNode(cell);\n // we do not allow focusing on detail rows and full width rows\n return !!rowNode;\n };\n RowRenderer.prototype.getLastCellOfColSpan = function (cell) {\n var cellComp = this.getComponentForCell(cell);\n if (!cellComp) {\n return cell;\n }\n var colSpanningList = cellComp.getColSpanningList();\n if (colSpanningList.length === 1) {\n return cell;\n }\n return {\n rowIndex: cell.rowIndex,\n column: last(colSpanningList),\n rowPinned: cell.rowPinned\n };\n };\n RowRenderer.prototype.ensureCellVisible = function (gridCell) {\n // this scrolls the row into view\n if (missing(gridCell.rowPinned)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(gridCell.rowIndex);\n }\n if (!gridCell.column.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(gridCell.column);\n }\n // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible\n // floating cell, the scrolls get out of sync\n this.gridBodyCon.getScrollFeature().horizontallyScrollHeaderCenterAndFloatingCenter();\n // need to flush frames, to make sure the correct cells are rendered\n this.animationFrameService.flushAllFrames();\n };\n RowRenderer.prototype.startEditingCell = function (gridCell, keyPress, charPress) {\n var cell = this.getComponentForCell(gridCell);\n if (cell) {\n cell.startRowOrCellEdit(keyPress, charPress);\n }\n };\n RowRenderer.prototype.getRowConByPosition = function (rowPosition) {\n var rowComponent;\n switch (rowPosition.rowPinned) {\n case Constants.PINNED_TOP:\n rowComponent = this.topRowCons[rowPosition.rowIndex];\n break;\n case Constants.PINNED_BOTTOM:\n rowComponent = this.bottomRowCons[rowPosition.rowIndex];\n break;\n default:\n rowComponent = this.rowConsByRowIndex[rowPosition.rowIndex];\n break;\n }\n return rowComponent;\n };\n RowRenderer.prototype.getComponentForCell = function (cellPosition) {\n var rowComp = this.getRowConByPosition(cellPosition);\n if (!rowComp) {\n return null;\n }\n var cellComponent = rowComp.getRenderedCellForColumn(cellPosition.column);\n return cellComponent;\n };\n RowRenderer.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n // result of keyboard event\n RowRenderer.prototype.onTabKeyDown = function (previousRenderedCell, keyboardEvent) {\n var backwards = keyboardEvent.shiftKey;\n var movedToNextCell = this.tabToNextCellCommon(previousRenderedCell, backwards);\n if (movedToNextCell) {\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n keyboardEvent.preventDefault();\n return;\n }\n // if we didn't move to next cell, then need to tab out of the cells, ie to the header (if going\n // backwards)\n if (backwards) {\n var _a = previousRenderedCell.getRowPosition(), rowIndex = _a.rowIndex, rowPinned = _a.rowPinned;\n var firstRow = rowPinned ? rowIndex === 0 : rowIndex === this.paginationProxy.getPageFirstRow();\n if (firstRow) {\n keyboardEvent.preventDefault();\n var headerRowIndex = this.beans.headerNavigationService.getHeaderRowCount() - 1;\n var column = last(this.columnController.getAllDisplayedColumns());\n this.focusController.focusHeaderPosition({ headerRowIndex: headerRowIndex, column: column });\n }\n }\n else {\n // if the case it's a popup editor, the focus is on the editor and not the previous cell.\n // in order for the tab navigation to work, we need to focus the browser back onto the\n // previous cell.\n if (previousRenderedCell instanceof CellComp) {\n previousRenderedCell.focusCell(true);\n }\n if (this.focusController.focusNextGridCoreContainer(false)) {\n keyboardEvent.preventDefault();\n }\n }\n };\n // comes from API\n RowRenderer.prototype.tabToNextCell = function (backwards) {\n var focusedCell = this.focusController.getFocusedCell();\n // if no focus, then cannot navigate\n if (!focusedCell) {\n return false;\n }\n var cellOrRowComp = this.getComponentForCell(focusedCell);\n // if cell is not rendered, means user has scrolled away from the cell\n // or that the focusedCell is a Full Width Row\n if (!cellOrRowComp) {\n cellOrRowComp = this.getRowConByPosition(focusedCell);\n if (!cellOrRowComp || !cellOrRowComp.isFullWidth()) {\n return false;\n }\n }\n return this.tabToNextCellCommon(cellOrRowComp, backwards);\n };\n RowRenderer.prototype.tabToNextCellCommon = function (previousCellOrRow, backwards) {\n var editing = previousCellOrRow.isEditing();\n // if cell is not editing, there is still chance row is editing if it's Full Row Editing\n if (!editing && previousCellOrRow instanceof CellComp) {\n var cellComp = previousCellOrRow;\n var rowCon = cellComp.getRenderedRow();\n if (rowCon) {\n editing = rowCon.isEditing();\n }\n }\n var res;\n if (editing) {\n // if we are editing, we know it's not a Full Width Row (RowComp)\n if (this.gridOptionsWrapper.isFullRowEdit()) {\n res = this.moveToNextEditingRow(previousCellOrRow, backwards);\n }\n else {\n res = this.moveToNextEditingCell(previousCellOrRow, backwards);\n }\n }\n else {\n res = this.moveToNextCellNotEditing(previousCellOrRow, backwards);\n }\n // if a cell wasn't found, it's possible that focus was moved to the header\n return res || !!this.focusController.getFocusedHeader();\n };\n RowRenderer.prototype.moveToNextEditingCell = function (previousRenderedCell, backwards) {\n var gridCell = previousRenderedCell.getCellPosition();\n // need to do this before getting next cell to edit, in case the next cell\n // has editable function (eg colDef.editable=func() ) and it depends on the\n // result of this cell, so need to save updates from the first edit, in case\n // the value is referenced in the function.\n previousRenderedCell.stopEditing();\n // find the next cell to start editing\n var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, true);\n var foundCell = nextRenderedCell != null;\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (foundCell) {\n nextRenderedCell.startEditingIfEnabled(null, null, true);\n nextRenderedCell.focusCell(false);\n }\n return foundCell;\n };\n RowRenderer.prototype.moveToNextEditingRow = function (previousCellComp, backwards) {\n var cellPos = previousCellComp.getCellPosition();\n // find the next cell to start editing\n var nextCellComp = this.findNextCellToFocusOn(cellPos, backwards, true);\n if (nextCellComp == null) {\n return false;\n }\n var previousPos = previousCellComp.getCellPosition();\n var nextPos = nextCellComp.getCellPosition();\n var previousEditable = this.isCellEditable(previousPos);\n var nextEditable = this.isCellEditable(nextPos);\n var rowsMatch = nextPos && previousPos.rowIndex === nextPos.rowIndex && previousPos.rowPinned === nextPos.rowPinned;\n if (previousEditable) {\n previousCellComp.setFocusOutOnEditor();\n }\n if (!rowsMatch) {\n var pRow = previousCellComp.getRenderedRow();\n pRow.stopEditing();\n var nRow = nextCellComp.getRenderedRow();\n nRow.startRowEditing();\n }\n if (nextEditable) {\n nextCellComp.setFocusInOnEditor();\n nextCellComp.focusCell();\n }\n else {\n nextCellComp.focusCell(true);\n }\n return true;\n };\n RowRenderer.prototype.moveToNextCellNotEditing = function (previousRenderedCell, backwards) {\n var displayedColumns = this.columnController.getAllDisplayedColumns();\n var gridCell;\n if (previousRenderedCell instanceof RowController) {\n gridCell = __assign$5(__assign$5({}, previousRenderedCell.getRowPosition()), { column: backwards ? displayedColumns[0] : last(displayedColumns) });\n }\n else {\n gridCell = previousRenderedCell.getCellPosition();\n }\n // find the next cell to start editing\n var nextRenderedCell = this.findNextCellToFocusOn(gridCell, backwards, false);\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (nextRenderedCell instanceof CellComp) {\n nextRenderedCell.focusCell(true);\n }\n else if (nextRenderedCell) {\n return this.tryToFocusFullWidthRow(nextRenderedCell.getRowPosition(), backwards);\n }\n return exists(nextRenderedCell);\n };\n // called by the cell, when tab is pressed while editing.\n // @return: RenderedCell when navigation successful, otherwise null\n RowRenderer.prototype.findNextCellToFocusOn = function (gridCell, backwards, startEditing) {\n var nextCell = gridCell;\n while (true) {\n if (!backwards) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n nextCell = this.cellNavigationService.getNextTabbedCell(nextCell, backwards);\n // allow user to override what cell to go to next\n var userFunc = this.gridOptionsWrapper.getTabToNextCellFunc();\n if (exists(userFunc)) {\n var params = {\n backwards: backwards,\n editing: startEditing,\n previousCellPosition: gridCell,\n nextCellPosition: nextCell ? nextCell : null\n };\n var userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n doOnce(function () { console.warn(\"AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextCell = {\n rowIndex: userCell.rowIndex,\n column: userCell.column,\n rowPinned: userCell.rowPinned\n };\n }\n else {\n nextCell = null;\n }\n }\n // if no 'next cell', means we have got to last cell of grid, so nothing to move to,\n // so bottom right cell going forwards, or top left going backwards\n if (!nextCell) {\n return null;\n }\n if (nextCell.rowIndex < 0) {\n var headerLen = this.beans.headerNavigationService.getHeaderRowCount();\n this.focusController.focusHeaderPosition({ headerRowIndex: headerLen + (nextCell.rowIndex), column: nextCell.column });\n return null;\n }\n // if editing, but cell not editable, skip cell. we do this before we do all of\n // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping\n // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless\n // (except for the last one) which causes grid to stall for a while.\n // note - for full row edit, we do focus non-editable cells, as the row stays in edit mode.\n var fullRowEdit = this.gridOptionsWrapper.isFullRowEdit();\n if (startEditing && !fullRowEdit) {\n var cellIsEditable = this.isCellEditable(nextCell);\n if (!cellIsEditable) {\n continue;\n }\n }\n this.ensureCellVisible(nextCell);\n // we have to call this after ensureColumnVisible - otherwise it could be a virtual column\n // or row that is not currently in view, hence the renderedCell would not exist\n var nextCellComp = this.getComponentForCell(nextCell);\n // if next cell is fullWidth row, then no rendered cell,\n // as fullWidth rows have no cells, so we skip it\n if (!nextCellComp) {\n var rowComp = this.getRowConByPosition(nextCell);\n if (!rowComp || !rowComp.isFullWidth()) {\n continue;\n }\n else {\n return rowComp;\n }\n }\n if (nextCellComp.isSuppressNavigable()) {\n continue;\n }\n // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation\n // consistent, we set into range here also.\n if (this.rangeController) {\n this.rangeController.setRangeToCell(nextCell);\n }\n // we successfully tabbed onto a grid cell, so return true\n return nextCellComp;\n }\n };\n RowRenderer.prototype.isCellEditable = function (cell) {\n var rowNode = this.lookupRowNodeForCell(cell);\n if (rowNode) {\n return cell.column.isCellEditable(rowNode);\n }\n return false;\n };\n RowRenderer.prototype.lookupRowNodeForCell = function (cell) {\n if (cell.rowPinned === Constants.PINNED_TOP) {\n return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);\n }\n if (cell.rowPinned === Constants.PINNED_BOTTOM) {\n return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);\n }\n return this.paginationProxy.getRow(cell.rowIndex);\n };\n // returns true if any row between startIndex and endIndex is rendered. used by\n // SSRM or IRM, as they don't want to purge visible blocks from cache.\n RowRenderer.prototype.isRangeInRenderedViewport = function (startIndex, endIndex) {\n // parent closed means the parent node is not expanded, thus these blocks are not visible\n var parentClosed = startIndex == null || endIndex == null;\n if (parentClosed) {\n return false;\n }\n var blockAfterViewport = startIndex > this.lastRenderedRow;\n var blockBeforeViewport = endIndex < this.firstRenderedRow;\n var blockInsideViewport = !blockBeforeViewport && !blockAfterViewport;\n return blockInsideViewport;\n };\n __decorate$D([\n Autowired(\"paginationProxy\")\n ], RowRenderer.prototype, \"paginationProxy\", void 0);\n __decorate$D([\n Autowired(\"columnController\")\n ], RowRenderer.prototype, \"columnController\", void 0);\n __decorate$D([\n Autowired(\"$scope\")\n ], RowRenderer.prototype, \"$scope\", void 0);\n __decorate$D([\n Autowired(\"pinnedRowModel\")\n ], RowRenderer.prototype, \"pinnedRowModel\", void 0);\n __decorate$D([\n Autowired(\"rowModel\")\n ], RowRenderer.prototype, \"rowModel\", void 0);\n __decorate$D([\n Autowired(\"focusController\")\n ], RowRenderer.prototype, \"focusController\", void 0);\n __decorate$D([\n Autowired(\"cellNavigationService\")\n ], RowRenderer.prototype, \"cellNavigationService\", void 0);\n __decorate$D([\n Autowired(\"columnApi\")\n ], RowRenderer.prototype, \"columnApi\", void 0);\n __decorate$D([\n Autowired(\"gridApi\")\n ], RowRenderer.prototype, \"gridApi\", void 0);\n __decorate$D([\n Autowired(\"beans\")\n ], RowRenderer.prototype, \"beans\", void 0);\n __decorate$D([\n Autowired(\"rowContainerHeightService\")\n ], RowRenderer.prototype, \"rowContainerHeightService\", void 0);\n __decorate$D([\n Autowired(\"animationFrameService\")\n ], RowRenderer.prototype, \"animationFrameService\", void 0);\n __decorate$D([\n Autowired(\"rowPositionUtils\")\n ], RowRenderer.prototype, \"rowPositionUtils\", void 0);\n __decorate$D([\n Optional(\"rangeController\")\n ], RowRenderer.prototype, \"rangeController\", void 0);\n __decorate$D([\n Optional(\"controllersService\")\n ], RowRenderer.prototype, \"controllersService\", void 0);\n __decorate$D([\n __param$5(0, Qualifier(\"loggerFactory\"))\n ], RowRenderer.prototype, \"agWire\", null);\n __decorate$D([\n PostConstruct\n ], RowRenderer.prototype, \"postConstruct\", null);\n RowRenderer = __decorate$D([\n Bean(\"rowRenderer\")\n ], RowRenderer);\n return RowRenderer;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar CssClassApplier = /** @class */ (function () {\n function CssClassApplier() {\n }\n CssClassApplier.addHeaderClassesFromColDef = function (abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {\n if (missing(abstractColDef)) {\n return;\n }\n this.addColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup);\n };\n CssClassApplier.addToolPanelClassesFromColDef = function (abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {\n if (missing(abstractColDef)) {\n return;\n }\n this.addColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup);\n };\n CssClassApplier.addColumnClassesFromCollDef = function (classesOrFunc, abstractColDef, eHeaderCell, gridOptionsWrapper, column, columnGroup) {\n if (missing(classesOrFunc)) {\n return;\n }\n var classToUse;\n if (typeof classesOrFunc === 'function') {\n var params = {\n // bad naming, as colDef here can be a group or a column,\n // however most people won't appreciate the difference,\n // so keeping it as colDef to avoid confusion.\n colDef: abstractColDef,\n column: column,\n columnGroup: columnGroup,\n context: gridOptionsWrapper.getContext(),\n api: gridOptionsWrapper.getApi()\n };\n var headerClassFunc = classesOrFunc;\n classToUse = headerClassFunc(params);\n }\n else {\n classToUse = classesOrFunc;\n }\n if (typeof classToUse === 'string') {\n addCssClass(eHeaderCell, classToUse);\n }\n else if (Array.isArray(classToUse)) {\n classToUse.forEach(function (cssClassItem) {\n addCssClass(eHeaderCell, cssClassItem);\n });\n }\n };\n return CssClassApplier;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$K = (undefined && undefined.__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$E = (undefined && undefined.__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 HoverFeature = /** @class */ (function (_super) {\n __extends$K(HoverFeature, _super);\n function HoverFeature(columns, element) {\n var _this = _super.call(this) || this;\n _this.columns = columns;\n _this.element = element;\n return _this;\n }\n HoverFeature.prototype.postConstruct = function () {\n this.addMouseHoverListeners();\n };\n HoverFeature.prototype.addMouseHoverListeners = function () {\n this.addManagedListener(this.element, 'mouseout', this.onMouseOut.bind(this));\n this.addManagedListener(this.element, 'mouseover', this.onMouseOver.bind(this));\n };\n HoverFeature.prototype.onMouseOut = function () {\n this.columnHoverService.clearMouseOver();\n };\n HoverFeature.prototype.onMouseOver = function () {\n this.columnHoverService.setMouseOver(this.columns);\n };\n __decorate$E([\n Autowired('columnHoverService')\n ], HoverFeature.prototype, \"columnHoverService\", void 0);\n __decorate$E([\n PostConstruct\n ], HoverFeature.prototype, \"postConstruct\", null);\n return HoverFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$L = (undefined && undefined.__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$F = (undefined && undefined.__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 SetLeftFeature = /** @class */ (function (_super) {\n __extends$L(SetLeftFeature, _super);\n function SetLeftFeature(columnOrGroup, eCell, beans, colsSpanning) {\n var _this = _super.call(this) || this;\n _this.columnOrGroup = columnOrGroup;\n _this.eCell = eCell;\n _this.ariaEl = _this.eCell.querySelector('[role=columnheader]') || _this.eCell;\n _this.colsSpanning = colsSpanning;\n _this.beans = beans;\n _this.printLayout = beans.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n return _this;\n }\n SetLeftFeature.prototype.setColsSpanning = function (colsSpanning) {\n this.colsSpanning = colsSpanning;\n this.onLeftChanged();\n };\n SetLeftFeature.prototype.getColumnOrGroup = function () {\n if (this.beans.gridOptionsWrapper.isEnableRtl() && this.colsSpanning) {\n return last(this.colsSpanning);\n }\n return this.columnOrGroup;\n };\n SetLeftFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.columnOrGroup, Column.EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));\n this.setLeftFirstTime();\n // when in print layout, the left position is also dependent on the width of the pinned sections.\n // so additionally update left if any column width changes.\n if (this.printLayout) {\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onLeftChanged.bind(this));\n }\n };\n SetLeftFeature.prototype.setLeftFirstTime = function () {\n var suppressMoveAnimation = this.beans.gridOptionsWrapper.isSuppressColumnMoveAnimation();\n var oldLeftExists = exists(this.columnOrGroup.getOldLeft());\n var animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;\n if (animateColumnMove) {\n this.animateInLeft();\n }\n else {\n this.onLeftChanged();\n }\n };\n SetLeftFeature.prototype.animateInLeft = function () {\n var _this = this;\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n var oldLeft = colOrGroup.getOldLeft();\n var oldActualLeft = this.modifyLeftForPrintLayout(colOrGroup, oldLeft);\n var actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(oldActualLeft);\n // we must keep track of the left we want to set to, as this would otherwise lead to a race\n // condition, if the user changed the left value many times in one VM turn, then we want to make\n // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left\n // position. eg if user changes column position twice, then setLeft() below executes twice in next\n // VM turn, but only one (the correct one) should get applied.\n this.actualLeft = actualLeft;\n this.beans.columnAnimationService.executeNextVMTurn(function () {\n // test this left value is the latest one to be applied, and if not, do nothing\n if (_this.actualLeft === actualLeft) {\n _this.setLeft(actualLeft);\n }\n });\n };\n SetLeftFeature.prototype.onLeftChanged = function () {\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(this.actualLeft);\n };\n SetLeftFeature.prototype.modifyLeftForPrintLayout = function (colOrGroup, leftPosition) {\n if (!this.printLayout) {\n return leftPosition;\n }\n if (colOrGroup.getPinned() === Constants.PINNED_LEFT) {\n return leftPosition;\n }\n var leftWidth = this.beans.columnController.getDisplayedColumnsLeftWidth();\n if (colOrGroup.getPinned() === Constants.PINNED_RIGHT) {\n var bodyWidth = this.beans.columnController.getBodyContainerWidth();\n return leftWidth + bodyWidth + leftPosition;\n }\n // is in body\n return leftWidth + leftPosition;\n };\n SetLeftFeature.prototype.setLeft = function (value) {\n // if the value is null, then that means the column is no longer\n // displayed. there is logic in the rendering to fade these columns\n // out, so we don't try and change their left positions.\n if (exists(value)) {\n this.eCell.style.left = value + \"px\";\n }\n var indexColumn;\n if (this.columnOrGroup instanceof Column) {\n indexColumn = this.columnOrGroup;\n }\n else {\n var columnGroup = this.columnOrGroup;\n var children = columnGroup.getLeafColumns();\n if (!children.length) {\n return;\n }\n if (children.length > 1) {\n setAriaColSpan(this.ariaEl, children.length);\n }\n indexColumn = children[0];\n }\n var index = this.beans.columnController.getAriaColumnIndex(indexColumn);\n setAriaColIndex(this.ariaEl, index);\n };\n __decorate$F([\n PostConstruct\n ], SetLeftFeature.prototype, \"postConstruct\", null);\n return SetLeftFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$M = (undefined && undefined.__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$G = (undefined && undefined.__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 AgAbstractLabel = /** @class */ (function (_super) {\n __extends$M(AgAbstractLabel, _super);\n function AgAbstractLabel(config, template) {\n var _this = _super.call(this, template) || this;\n _this.labelSeparator = '';\n _this.labelAlignment = 'left';\n _this.label = '';\n _this.config = config || {};\n return _this;\n }\n AgAbstractLabel.prototype.postConstruct = function () {\n addCssClass(this.getGui(), 'ag-labeled');\n addCssClass(this.eLabel, 'ag-label');\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 clearElement(this.eLabel);\n if (typeof this.label === 'string') {\n this.eLabel.innerText = this.label + this.labelSeparator;\n }\n else if (this.label) {\n this.eLabel.appendChild(this.label);\n }\n if (this.label === '') {\n addCssClass(this.eLabel, 'ag-hidden');\n this.eLabel.setAttribute('role', 'presentation');\n }\n else {\n removeCssClass(this.eLabel, 'ag-hidden');\n this.eLabel.removeAttribute('role');\n }\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.getLabelId = function () {\n this.eLabel.id = this.eLabel.id || \"ag-\" + this.getCompId() + \"-label\";\n return this.eLabel.id;\n };\n AgAbstractLabel.prototype.getLabel = function () {\n return this.label;\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 addOrRemoveCssClass(eGui, 'ag-label-align-left', alignment === 'left');\n addOrRemoveCssClass(eGui, 'ag-label-align-right', alignment === 'right');\n 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 setElementWidth(this.eLabel, width);\n return this;\n };\n __decorate$G([\n PostConstruct\n ], AgAbstractLabel.prototype, \"postConstruct\", null);\n return AgAbstractLabel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$N = (undefined && undefined.__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 AgAbstractField = /** @class */ (function (_super) {\n __extends$N(AgAbstractField, _super);\n function AgAbstractField(config, template, className) {\n var _this = _super.call(this, config, template) || this;\n _this.className = className;\n _this.disabled = false;\n return _this;\n }\n AgAbstractField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.className) {\n addCssClass(this.getGui(), this.className);\n }\n };\n AgAbstractField.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addManagedListener(this, AgAbstractField.EVENT_CHANGED, function () { return callbackFn(_this.getValue()); });\n return this;\n };\n AgAbstractField.prototype.getWidth = function () {\n return this.getGui().clientWidth;\n };\n AgAbstractField.prototype.setWidth = function (width) {\n setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAbstractField.prototype.getPreviousValue = function () {\n return this.previousValue;\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.previousValue = this.value;\n this.value = value;\n if (!silent) {\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n }\n return this;\n };\n AgAbstractField.prototype.setDisabled = function (disabled) {\n disabled = !!disabled;\n var element = this.getGui();\n setDisabled(element, disabled);\n addOrRemoveCssClass(element, 'ag-disabled', disabled);\n this.disabled = disabled;\n return this;\n };\n AgAbstractField.prototype.isDisabled = function () {\n return !!this.disabled;\n };\n AgAbstractField.EVENT_CHANGED = 'valueChange';\n return AgAbstractField;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$O = (undefined && undefined.__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$H = (undefined && undefined.__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 AgAbstractInputField = /** @class */ (function (_super) {\n __extends$O(AgAbstractInputField, _super);\n function AgAbstractInputField(config, className, inputType, displayFieldTag) {\n if (inputType === void 0) { inputType = 'text'; }\n if (displayFieldTag === void 0) { displayFieldTag = 'input'; }\n var _this = _super.call(this, config, /* html */ \"\\n
\\n
\\n
\\n <\" + displayFieldTag + \" ref=\\\"eInput\\\" class=\\\"ag-input-field-input\\\">\\n
\\n
\", className) || this;\n _this.inputType = inputType;\n _this.displayFieldTag = displayFieldTag;\n return _this;\n }\n AgAbstractInputField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setInputType();\n addCssClass(this.eLabel, this.className + \"-label\");\n addCssClass(this.eWrapper, this.className + \"-input-wrapper\");\n addCssClass(this.eInput, this.className + \"-input\");\n addCssClass(this.getGui(), 'ag-input-field');\n this.eInput.id = this.eInput.id || \"ag-\" + this.getCompId() + \"-input\";\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.refreshLabel = function () {\n if (exists(this.getLabel())) {\n setAriaLabelledBy(this.eInput, this.getLabelId());\n }\n else {\n this.eInput.removeAttribute('aria-labelledby');\n }\n _super.prototype.refreshLabel.call(this);\n };\n AgAbstractInputField.prototype.addInputListeners = function () {\n var _this = this;\n this.addManagedListener(this.eInput, 'input', function (e) { return _this.setValue(e.target.value); });\n };\n AgAbstractInputField.prototype.setInputType = function () {\n if (this.displayFieldTag === 'input') {\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 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 AgAbstractInputField.prototype.getFocusableElement = function () {\n return this.eInput;\n };\n AgAbstractInputField.prototype.setMaxLength = function (length) {\n var eInput = this.eInput;\n eInput.maxLength = length;\n return this;\n };\n AgAbstractInputField.prototype.setInputPlaceholder = function (placeholder) {\n addOrRemoveAttribute(this.eInput, 'placeholder', placeholder);\n return this;\n };\n AgAbstractInputField.prototype.setInputAriaLabel = function (label) {\n setAriaLabel(this.eInput, label);\n return this;\n };\n AgAbstractInputField.prototype.setDisabled = function (disabled) {\n setDisabled(this.eInput, disabled);\n return _super.prototype.setDisabled.call(this, disabled);\n };\n __decorate$H([\n RefSelector('eLabel')\n ], AgAbstractInputField.prototype, \"eLabel\", void 0);\n __decorate$H([\n RefSelector('eWrapper')\n ], AgAbstractInputField.prototype, \"eWrapper\", void 0);\n __decorate$H([\n RefSelector('eInput')\n ], AgAbstractInputField.prototype, \"eInput\", void 0);\n return AgAbstractInputField;\n}(AgAbstractField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$P = (undefined && undefined.__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 AgCheckbox = /** @class */ (function (_super) {\n __extends$P(AgCheckbox, _super);\n function AgCheckbox(config, className, inputType) {\n if (className === void 0) { className = 'ag-checkbox'; }\n if (inputType === void 0) { inputType = 'checkbox'; }\n var _this = _super.call(this, config, className, inputType) || this;\n _this.labelAlignment = 'right';\n _this.selected = false;\n _this.readOnly = false;\n _this.passive = false;\n return _this;\n }\n AgCheckbox.prototype.addInputListeners = function () {\n this.addManagedListener(this.eInput, 'click', this.onCheckboxClick.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.toggle.bind(this));\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.isReadOnly = function () {\n return this.readOnly;\n };\n AgCheckbox.prototype.setReadOnly = function (readOnly) {\n addOrRemoveCssClass(this.eWrapper, 'ag-disabled', readOnly);\n this.eInput.disabled = readOnly;\n this.readOnly = readOnly;\n };\n AgCheckbox.prototype.setDisabled = function (disabled) {\n addOrRemoveCssClass(this.eWrapper, 'ag-disabled', disabled);\n return _super.prototype.setDisabled.call(this, disabled);\n };\n AgCheckbox.prototype.toggle = function () {\n var previousValue = this.isSelected();\n var nextValue = this.getNextValue();\n if (this.passive) {\n this.dispatchChange(nextValue, previousValue);\n }\n else {\n this.setValue(nextValue);\n }\n };\n AgCheckbox.prototype.getValue = function () {\n return this.isSelected();\n };\n AgCheckbox.prototype.setValue = function (value, silent) {\n this.refreshSelectedClass(value);\n this.setSelected(value, silent);\n return this;\n };\n AgCheckbox.prototype.setName = function (name) {\n var input = this.getInputElement();\n input.name = name;\n return this;\n };\n AgCheckbox.prototype.isSelected = function () {\n return this.selected;\n };\n AgCheckbox.prototype.setSelected = function (selected, silent) {\n if (this.isSelected() === selected) {\n return;\n }\n this.previousValue = this.isSelected();\n selected = this.selected = typeof selected === 'boolean' ? selected : undefined;\n this.eInput.checked = selected;\n this.eInput.indeterminate = selected === undefined;\n if (!silent) {\n this.dispatchChange(this.selected, this.previousValue);\n }\n };\n AgCheckbox.prototype.dispatchChange = function (selected, previousValue, event) {\n this.dispatchEvent({ type: AgCheckbox.EVENT_CHANGED, selected: selected, previousValue: previousValue, event: event });\n var input = this.getInputElement();\n var checkboxChangedEvent = {\n type: Events.EVENT_CHECKBOX_CHANGED,\n id: input.id,\n name: input.name,\n selected: selected,\n previousValue: previousValue\n };\n this.eventService.dispatchEvent(checkboxChangedEvent);\n };\n AgCheckbox.prototype.onCheckboxClick = function (e) {\n if (this.passive) {\n return;\n }\n var previousValue = this.isSelected();\n var selected = this.selected = e.target.checked;\n this.refreshSelectedClass(selected);\n this.dispatchChange(selected, previousValue, e);\n };\n AgCheckbox.prototype.refreshSelectedClass = function (value) {\n addOrRemoveCssClass(this.eWrapper, 'ag-checked', value === true);\n addOrRemoveCssClass(this.eWrapper, 'ag-indeterminate', value == null);\n };\n return AgCheckbox;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Q = (undefined && undefined.__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$I = (undefined && undefined.__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 SelectAllFeature = /** @class */ (function (_super) {\n __extends$Q(SelectAllFeature, _super);\n function SelectAllFeature(cbSelectAll, column) {\n var _this = _super.call(this) || this;\n _this.cbSelectAllVisible = false;\n _this.processingEventFromCheckbox = false;\n _this.cbSelectAll = cbSelectAll;\n _this.column = column;\n var colDef = column.getColDef();\n _this.filteredOnly = colDef ? !!colDef.headerCheckboxSelectionFilteredOnly : false;\n return _this;\n }\n SelectAllFeature.prototype.postConstruct = function () {\n this.showOrHideSelectAll();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideSelectAll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.showOrHideSelectAll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SELECTION_CHANGED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));\n this.addManagedListener(this.cbSelectAll, AgCheckbox.EVENT_CHANGED, this.onCbSelectAll.bind(this));\n this.cbSelectAll.getInputElement().setAttribute('tabindex', '-1');\n this.refreshSelectAllLabel();\n };\n SelectAllFeature.prototype.showOrHideSelectAll = function () {\n this.cbSelectAllVisible = this.isCheckboxSelection();\n this.cbSelectAll.setDisplayed(this.cbSelectAllVisible);\n if (this.cbSelectAllVisible) {\n // in case user is trying this feature with the wrong model type\n this.checkRightRowModelType();\n // make sure checkbox is showing the right state\n this.updateStateOfCheckbox();\n }\n this.refreshHeaderAriaDescribedBy(this.cbSelectAllVisible);\n };\n SelectAllFeature.prototype.refreshHeaderAriaDescribedBy = function (isSelectAllVisible) {\n var parentHeader = this.cbSelectAll.getParentComponent();\n var parentHeaderGui = parentHeader && parentHeader.getGui();\n if (!parentHeaderGui || !isVisible(parentHeaderGui)) {\n return;\n }\n var describedByIds = '';\n if (parentHeaderGui) {\n describedByIds = getAriaDescribedBy(parentHeaderGui);\n }\n var cbSelectAllId = this.cbSelectAll.getInputElement().id;\n var describedByIdsHasSelectAllFeature = describedByIds.indexOf(cbSelectAllId) !== -1;\n if (isSelectAllVisible) {\n if (!describedByIdsHasSelectAllFeature) {\n setAriaDescribedBy(parentHeaderGui, cbSelectAllId + \" \" + describedByIds.trim());\n }\n }\n else if (describedByIdsHasSelectAllFeature) {\n setAriaDescribedBy(parentHeaderGui, describedByIds.trim().split(' ').filter(function (id) { return id === cbSelectAllId; }).join(' '));\n }\n };\n SelectAllFeature.prototype.onModelChanged = function () {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n };\n SelectAllFeature.prototype.onSelectionChanged = function () {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n };\n SelectAllFeature.prototype.getNextCheckboxState = function (selectionCount) {\n // if no rows, always have it unselected\n if (selectionCount.selected === 0 && selectionCount.notSelected === 0) {\n return false;\n }\n // if mix of selected and unselected, this is the tri-state\n if (selectionCount.selected > 0 && selectionCount.notSelected > 0) {\n return null;\n }\n // only selected\n if (selectionCount.selected > 0) {\n return true;\n }\n // nothing selected\n return false;\n };\n SelectAllFeature.prototype.updateStateOfCheckbox = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n this.processingEventFromCheckbox = true;\n var selectionCount = this.getSelectionCount();\n var allSelected = this.getNextCheckboxState(selectionCount);\n this.cbSelectAll.setValue(allSelected);\n this.refreshSelectAllLabel();\n this.processingEventFromCheckbox = false;\n };\n SelectAllFeature.prototype.refreshSelectAllLabel = function () {\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n var checked = this.cbSelectAll.getValue();\n var ariaStatus = checked ? translate('ariaChecked', 'checked') : translate('ariaUnchecked', 'unchecked');\n var ariaLabel = translate('ariaRowSelectAll', 'Press Space to toggle all rows selection');\n this.cbSelectAll.setInputAriaLabel(ariaLabel + \" (\" + ariaStatus + \")\");\n };\n SelectAllFeature.prototype.getSelectionCount = function () {\n var _this = this;\n var selectedCount = 0;\n var notSelectedCount = 0;\n var callback = function (node) {\n if (_this.gridOptionsWrapper.isGroupSelectsChildren() && node.group) {\n return;\n }\n if (node.isSelected()) {\n selectedCount++;\n }\n else if (!node.selectable) ;\n else {\n notSelectedCount++;\n }\n };\n if (this.filteredOnly) {\n this.gridApi.forEachNodeAfterFilter(callback);\n }\n else {\n this.gridApi.forEachNode(callback);\n }\n return {\n notSelected: notSelectedCount,\n selected: selectedCount\n };\n };\n SelectAllFeature.prototype.checkRightRowModelType = function () {\n var rowModelType = this.rowModel.getType();\n var rowModelMatches = rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n if (!rowModelMatches) {\n console.warn(\"AG Grid: selectAllCheckbox is only available if using normal row model, you are using \" + rowModelType);\n }\n };\n SelectAllFeature.prototype.onCbSelectAll = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n if (!this.cbSelectAllVisible) {\n return;\n }\n var value = this.cbSelectAll.getValue();\n if (value) {\n this.selectionController.selectAllRowNodes(this.filteredOnly);\n }\n else {\n this.selectionController.deselectAllRowNodes(this.filteredOnly);\n }\n };\n SelectAllFeature.prototype.isCheckboxSelection = function () {\n var result = this.column.getColDef().headerCheckboxSelection;\n if (typeof result === 'function') {\n var func = result;\n result = func({\n column: this.column,\n colDef: this.column.getColDef(),\n columnApi: this.columnApi,\n api: this.gridApi\n });\n }\n if (result) {\n if (this.gridOptionsWrapper.isRowModelServerSide()) {\n console.warn('headerCheckboxSelection is not supported for Server Side Row Model');\n return false;\n }\n if (this.gridOptionsWrapper.isRowModelInfinite()) {\n console.warn('headerCheckboxSelection is not supported for Infinite Row Model');\n return false;\n }\n if (this.gridOptionsWrapper.isRowModelViewport()) {\n console.warn('headerCheckboxSelection is not supported for Viewport Row Model');\n return false;\n }\n // otherwise the row model is compatible, so return true\n return true;\n }\n return false;\n };\n __decorate$I([\n Autowired('gridApi')\n ], SelectAllFeature.prototype, \"gridApi\", void 0);\n __decorate$I([\n Autowired('columnApi')\n ], SelectAllFeature.prototype, \"columnApi\", void 0);\n __decorate$I([\n Autowired('rowModel')\n ], SelectAllFeature.prototype, \"rowModel\", void 0);\n __decorate$I([\n Autowired('selectionController')\n ], SelectAllFeature.prototype, \"selectionController\", void 0);\n __decorate$I([\n PostConstruct\n ], SelectAllFeature.prototype, \"postConstruct\", null);\n return SelectAllFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$R = (undefined && undefined.__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 AbstractHeaderWrapper = /** @class */ (function (_super) {\n __extends$R(AbstractHeaderWrapper, _super);\n function AbstractHeaderWrapper() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AbstractHeaderWrapper.prototype.shouldStopEventPropagation = function (e) {\n var _a = this.focusController.getFocusedHeader(), headerRowIndex = _a.headerRowIndex, column = _a.column;\n return isUserSuppressingHeaderKeyboardEvent(this.gridOptionsWrapper, e, headerRowIndex, column);\n };\n AbstractHeaderWrapper.prototype.getColumn = function () {\n return this.column;\n };\n AbstractHeaderWrapper.prototype.getPinned = function () {\n return this.pinned;\n };\n return AbstractHeaderWrapper;\n}(ManagedFocusComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$S = (undefined && undefined.__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$J = (undefined && undefined.__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 HeaderWrapperComp = /** @class */ (function (_super) {\n __extends$S(HeaderWrapperComp, _super);\n function HeaderWrapperComp(column, pinned) {\n var _this = _super.call(this, HeaderWrapperComp.TEMPLATE) || this;\n _this.headerCompVersion = 0;\n _this.refreshFunctions = [];\n _this.column = column;\n _this.pinned = pinned;\n return _this;\n }\n HeaderWrapperComp.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.colDefVersion = this.columnController.getColDefVersion();\n this.updateState();\n this.setupWidth();\n this.setupMovingCss();\n this.setupTooltip();\n this.setupResize();\n this.setupMenuClass();\n this.setupSortableClass();\n this.addColumnHoverListener();\n this.addActiveHeaderMouseListeners();\n this.createManagedBean(new HoverFeature([this.column], this.getGui()));\n this.addManagedListener(this.column, Column.EVENT_FILTER_ACTIVE_CHANGED, this.onFilterChanged.bind(this));\n this.onFilterChanged();\n this.createManagedBean(new SelectAllFeature(this.cbSelectAll, this.column));\n this.cbSelectAll.setParentComponent(this);\n this.createManagedBean(new SetLeftFeature(this.column, this.getGui(), this.beans));\n this.addAttributes();\n CssClassApplier.addHeaderClassesFromColDef(this.column.getColDef(), this.getGui(), this.gridOptionsWrapper, this.column, null);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.onColumnPivotChanged.bind(this));\n this.appendHeaderComp();\n };\n HeaderWrapperComp.prototype.onColumnRowGroupChanged = function () {\n this.checkDisplayName();\n };\n HeaderWrapperComp.prototype.onColumnPivotChanged = function () {\n this.checkDisplayName();\n };\n HeaderWrapperComp.prototype.onColumnValueChanged = function () {\n this.checkDisplayName();\n };\n HeaderWrapperComp.prototype.checkDisplayName = function () {\n // display name can change if aggFunc different, eg sum(Gold) is now max(Gold)\n if (this.displayName !== this.calculateDisplayName()) {\n this.refresh();\n }\n };\n HeaderWrapperComp.prototype.updateState = function () {\n var colDef = this.column.getColDef();\n this.sortable = colDef.sortable;\n this.displayName = this.calculateDisplayName();\n this.draggable = this.workOutDraggable();\n };\n HeaderWrapperComp.prototype.calculateDisplayName = function () {\n return this.columnController.getDisplayNameForColumn(this.column, 'header', true);\n };\n HeaderWrapperComp.prototype.onNewColumnsLoaded = function () {\n var colDefVersionNow = this.columnController.getColDefVersion();\n if (colDefVersionNow != this.colDefVersion) {\n this.colDefVersion = colDefVersionNow;\n this.refresh();\n }\n };\n HeaderWrapperComp.prototype.refresh = function () {\n this.updateState();\n this.refreshHeaderComp();\n this.refreshFunctions.forEach(function (f) { return f(); });\n };\n HeaderWrapperComp.prototype.refreshHeaderComp = function () {\n // if no header comp created yet, it's cos of async creation, so first version is yet\n // to get here, in which case nothing to refresh\n if (!this.headerComp) {\n return;\n }\n var colDef = this.column.getColDef();\n var newHeaderCompConfigured = this.colDefHeaderComponent != colDef.headerComponent\n || this.colDefHeaderComponentFramework != colDef.headerComponentFramework;\n var headerCompRefreshed = newHeaderCompConfigured ? false : this.attemptHeaderCompRefresh();\n if (headerCompRefreshed) {\n var dragSourceIsMissing = this.draggable && !this.moveDragSource;\n var dragSourceNeedsRemoving = !this.draggable && this.moveDragSource;\n if (dragSourceIsMissing || dragSourceNeedsRemoving) {\n this.attachDraggingToHeaderComp();\n }\n }\n else {\n this.appendHeaderComp();\n }\n };\n HeaderWrapperComp.prototype.destroyHeaderComp = function () {\n if (this.headerComp) {\n this.getGui().removeChild(this.headerCompGui);\n this.headerComp = this.destroyBean(this.headerComp);\n this.headerCompGui = undefined;\n }\n this.removeMoveDragSource();\n };\n HeaderWrapperComp.prototype.removeMoveDragSource = function () {\n if (this.moveDragSource) {\n this.dragAndDropService.removeDragSource(this.moveDragSource);\n this.moveDragSource = undefined;\n }\n };\n HeaderWrapperComp.prototype.attemptHeaderCompRefresh = function () {\n // if no refresh method, then we want to replace the headerComp\n if (!this.headerComp.refresh) {\n return false;\n }\n // if the cell renderer has a refresh method, we call this instead of doing a refresh\n var params = this.createParams();\n // take any custom params off of the user\n var finalParams = this.userComponentFactory.createFinalParams(this.getComponentHolder(), 'headerComponent', params);\n var res = this.headerComp.refresh(finalParams);\n return res;\n };\n HeaderWrapperComp.prototype.addActiveHeaderMouseListeners = function () {\n var _this = this;\n var listener = function (e) { return _this.setActiveHeader(e.type === 'mouseenter'); };\n this.addManagedListener(this.getGui(), 'mouseenter', listener);\n this.addManagedListener(this.getGui(), 'mouseleave', listener);\n };\n HeaderWrapperComp.prototype.setActiveHeader = function (active) {\n addOrRemoveCssClass(this.getGui(), 'ag-header-active', active);\n };\n HeaderWrapperComp.prototype.onFocusIn = function (e) {\n if (!this.getGui().contains(e.relatedTarget)) {\n var headerRow = this.getParentComponent();\n this.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());\n }\n this.setActiveHeader(true);\n };\n HeaderWrapperComp.prototype.onFocusOut = function (e) {\n if (this.getGui().contains(e.relatedTarget)) {\n return;\n }\n this.setActiveHeader(false);\n };\n HeaderWrapperComp.prototype.handleKeyDown = function (e) {\n var headerComp = this.headerComp;\n if (!headerComp) {\n return;\n }\n if (e.keyCode === KeyCode.SPACE) {\n var checkbox = this.cbSelectAll;\n if (checkbox.isDisplayed() && !checkbox.getGui().contains(document.activeElement)) {\n e.preventDefault();\n checkbox.setValue(!checkbox.getValue());\n }\n }\n if (e.keyCode === KeyCode.ENTER) {\n if (e.ctrlKey || e.metaKey) {\n if (this.menuEnabled && headerComp.showMenu) {\n e.preventDefault();\n headerComp.showMenu();\n }\n }\n else if (this.sortable) {\n var multiSort = e.shiftKey;\n this.sortController.progressSort(this.column, multiSort, \"uiColumnSorted\");\n }\n }\n };\n HeaderWrapperComp.prototype.onTabKeyDown = function () { };\n HeaderWrapperComp.prototype.getComponentHolder = function () {\n return this.column.getColDef();\n };\n HeaderWrapperComp.prototype.addColumnHoverListener = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, this.onColumnHover.bind(this));\n this.onColumnHover();\n };\n HeaderWrapperComp.prototype.onColumnHover = function () {\n var isHovered = this.columnHoverService.isHovered(this.column);\n addOrRemoveCssClass(this.getGui(), 'ag-column-hover', isHovered);\n };\n HeaderWrapperComp.prototype.setupSortableClass = function () {\n var _this = this;\n var eGui = this.getGui();\n var updateSortableCssClass = function () {\n addOrRemoveCssClass(eGui, 'ag-header-cell-sortable', !!_this.sortable);\n };\n var updateAriaSort = function () {\n if (_this.sortable) {\n setAriaSort(eGui, getAriaSortState(_this.column));\n }\n else {\n removeAriaSort(eGui);\n }\n };\n updateSortableCssClass();\n updateAriaSort();\n this.refreshFunctions.push(updateSortableCssClass);\n this.refreshFunctions.push(updateAriaSort);\n this.addManagedListener(this.column, Column.EVENT_SORT_CHANGED, updateAriaSort.bind(this));\n };\n HeaderWrapperComp.prototype.onFilterChanged = function () {\n var filterPresent = this.column.isFilterActive();\n addOrRemoveCssClass(this.getGui(), 'ag-header-cell-filtered', filterPresent);\n };\n HeaderWrapperComp.prototype.appendHeaderComp = function () {\n this.headerCompVersion++;\n var colDef = this.column.getColDef();\n this.colDefHeaderComponent = colDef.headerComponent;\n this.colDefHeaderComponentFramework = colDef.headerComponentFramework;\n var params = this.createParams();\n var callback = this.afterHeaderCompCreated.bind(this, this.headerCompVersion);\n this.userComponentFactory.newHeaderComponent(params).then(callback);\n };\n HeaderWrapperComp.prototype.createParams = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n this.menuEnabled = this.menuFactory.isMenuEnabled(this.column) && !colDef.suppressMenu;\n var params = {\n column: this.column,\n displayName: this.displayName,\n enableSorting: colDef.sortable,\n enableMenu: this.menuEnabled,\n showColumnMenu: function (source) {\n _this.gridApi.showColumnMenuAfterButtonClick(_this.column, source);\n },\n progressSort: function (multiSort) {\n _this.sortController.progressSort(_this.column, !!multiSort, \"uiColumnSorted\");\n },\n setSort: function (sort, multiSort) {\n _this.sortController.setSortForColumn(_this.column, sort, !!multiSort, \"uiColumnSorted\");\n },\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext(),\n eGridHeader: this.getGui()\n };\n return params;\n };\n HeaderWrapperComp.prototype.afterHeaderCompCreated = function (version, headerComp) {\n if (version != this.headerCompVersion || !this.isAlive()) {\n this.destroyBean(headerComp);\n return;\n }\n this.destroyHeaderComp();\n this.headerComp = headerComp;\n this.headerCompGui = headerComp.getGui();\n this.getGui().appendChild(this.headerCompGui);\n this.attachDraggingToHeaderComp();\n };\n HeaderWrapperComp.prototype.onColumnMovingChanged = function () {\n // this function adds or removes the moving css, based on if the col is moving.\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n if (this.column.isMoving()) {\n addCssClass(this.getGui(), 'ag-header-cell-moving');\n }\n else {\n removeCssClass(this.getGui(), 'ag-header-cell-moving');\n }\n };\n HeaderWrapperComp.prototype.workOutDraggable = function () {\n var colDef = this.column.getColDef();\n var isSuppressMovableColumns = this.gridOptionsWrapper.isSuppressMovableColumns();\n var colCanMove = !isSuppressMovableColumns && !colDef.suppressMovable && !colDef.lockPosition;\n // we should still be allowed drag the column, even if it can't be moved, if the column\n // can be dragged to a rowGroup or pivot drop zone\n return !!colCanMove || !!colDef.enableRowGroup || !!colDef.enablePivot;\n };\n HeaderWrapperComp.prototype.attachDraggingToHeaderComp = function () {\n var _this = this;\n this.removeMoveDragSource();\n if (!this.draggable) {\n return;\n }\n this.moveDragSource = {\n type: exports.DragSourceType.HeaderCell,\n eElement: this.headerCompGui,\n defaultIconName: DragAndDropService.ICON_HIDE,\n getDragItem: function () { return _this.createDragItem(); },\n dragItemName: this.displayName,\n onDragStarted: function () { return _this.column.setMoving(true, \"uiColumnMoved\"); },\n onDragStopped: function () { return _this.column.setMoving(false, \"uiColumnMoved\"); }\n };\n this.dragAndDropService.addDragSource(this.moveDragSource, true);\n };\n HeaderWrapperComp.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n HeaderWrapperComp.prototype.setupResize = function () {\n var _this = this;\n var colDef = this.getComponentHolder();\n var destroyResizeFuncs = [];\n var canResize;\n var canAutosize;\n var addResize = function () {\n setDisplayed(_this.eResize, canResize);\n if (!canResize) {\n return;\n }\n var finishedWithResizeFunc = _this.horizontalResizeService.addResizeBar({\n eResizeBar: _this.eResize,\n onResizeStart: _this.onResizeStart.bind(_this),\n onResizing: _this.onResizing.bind(_this, false),\n onResizeEnd: _this.onResizing.bind(_this, true)\n });\n destroyResizeFuncs.push(finishedWithResizeFunc);\n if (canAutosize) {\n var skipHeaderOnAutoSize_1 = _this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n var autoSizeColListener_1 = function () {\n _this.columnController.autoSizeColumn(_this.column, skipHeaderOnAutoSize_1, \"uiColumnResized\");\n };\n _this.eResize.addEventListener('dblclick', autoSizeColListener_1);\n var touchListener_1 = new TouchListener(_this.eResize);\n touchListener_1.addEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener_1);\n _this.addDestroyFunc(function () {\n _this.eResize.removeEventListener('dblclick', autoSizeColListener_1);\n touchListener_1.removeEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener_1);\n touchListener_1.destroy();\n });\n }\n };\n var removeResize = function () {\n destroyResizeFuncs.forEach(function (f) { return f(); });\n destroyResizeFuncs.length = 0;\n };\n var refresh = function () {\n var resize = _this.column.isResizable();\n var autoSize = !_this.gridOptionsWrapper.isSuppressAutoSize() && !colDef.suppressAutoSize;\n var propertyChange = resize !== canResize || autoSize !== canAutosize;\n if (propertyChange) {\n canResize = resize;\n canAutosize = autoSize;\n removeResize();\n addResize();\n }\n };\n refresh();\n this.addDestroyFunc(removeResize);\n this.refreshFunctions.push(refresh);\n };\n HeaderWrapperComp.prototype.onResizing = function (finished, resizeAmount) {\n var resizeAmountNormalised = this.normaliseResizeAmount(resizeAmount);\n var columnWidths = [{ key: this.column, newWidth: this.resizeStartWidth + resizeAmountNormalised }];\n this.columnController.setColumnWidths(columnWidths, this.resizeWithShiftKey, finished, \"uiColumnDragged\");\n if (finished) {\n removeCssClass(this.getGui(), 'ag-column-resizing');\n }\n };\n HeaderWrapperComp.prototype.onResizeStart = function (shiftKey) {\n this.resizeStartWidth = this.column.getActualWidth();\n this.resizeWithShiftKey = shiftKey;\n addCssClass(this.getGui(), 'ag-column-resizing');\n };\n HeaderWrapperComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'header';\n res.colDef = this.column.getColDef();\n return res;\n };\n HeaderWrapperComp.prototype.setupTooltip = function () {\n var _this = this;\n var refresh = function () {\n var newTooltipText = _this.column.getColDef().headerTooltip;\n _this.setTooltip(escapeString(newTooltipText));\n };\n refresh();\n this.refreshFunctions.push(refresh);\n };\n HeaderWrapperComp.prototype.setupMovingCss = function () {\n this.addManagedListener(this.column, Column.EVENT_MOVING_CHANGED, this.onColumnMovingChanged.bind(this));\n this.onColumnMovingChanged();\n };\n HeaderWrapperComp.prototype.addAttributes = function () {\n this.getGui().setAttribute(\"col-id\", this.column.getColId());\n };\n HeaderWrapperComp.prototype.setupWidth = function () {\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, this.onColumnWidthChanged.bind(this));\n this.onColumnWidthChanged();\n };\n HeaderWrapperComp.prototype.setupMenuClass = function () {\n this.addManagedListener(this.column, Column.EVENT_MENU_VISIBLE_CHANGED, this.onMenuVisible.bind(this));\n };\n HeaderWrapperComp.prototype.onMenuVisible = function () {\n this.addOrRemoveCssClass('ag-column-menu-visible', this.column.isMenuVisible());\n };\n HeaderWrapperComp.prototype.onColumnWidthChanged = function () {\n this.getGui().style.width = this.column.getActualWidth() + 'px';\n };\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderGroupCell - should refactor out?\n HeaderWrapperComp.prototype.normaliseResizeAmount = function (dragChange) {\n var result = dragChange;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (this.pinned !== Constants.PINNED_LEFT) {\n result *= -1;\n }\n }\n else {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n if (this.pinned === Constants.PINNED_RIGHT) {\n result *= -1;\n }\n }\n return result;\n };\n HeaderWrapperComp.TEMPLATE = \"
\\n
\\n \\n
\";\n __decorate$J([\n Autowired('dragAndDropService')\n ], HeaderWrapperComp.prototype, \"dragAndDropService\", void 0);\n __decorate$J([\n Autowired('columnController')\n ], HeaderWrapperComp.prototype, \"columnController\", void 0);\n __decorate$J([\n Autowired('horizontalResizeService')\n ], HeaderWrapperComp.prototype, \"horizontalResizeService\", void 0);\n __decorate$J([\n Autowired('menuFactory')\n ], HeaderWrapperComp.prototype, \"menuFactory\", void 0);\n __decorate$J([\n Autowired('gridApi')\n ], HeaderWrapperComp.prototype, \"gridApi\", void 0);\n __decorate$J([\n Autowired('columnApi')\n ], HeaderWrapperComp.prototype, \"columnApi\", void 0);\n __decorate$J([\n Autowired('sortController')\n ], HeaderWrapperComp.prototype, \"sortController\", void 0);\n __decorate$J([\n Autowired('userComponentFactory')\n ], HeaderWrapperComp.prototype, \"userComponentFactory\", void 0);\n __decorate$J([\n Autowired('columnHoverService')\n ], HeaderWrapperComp.prototype, \"columnHoverService\", void 0);\n __decorate$J([\n Autowired('beans')\n ], HeaderWrapperComp.prototype, \"beans\", void 0);\n __decorate$J([\n RefSelector('eResize')\n ], HeaderWrapperComp.prototype, \"eResize\", void 0);\n __decorate$J([\n RefSelector('cbSelectAll')\n ], HeaderWrapperComp.prototype, \"cbSelectAll\", void 0);\n __decorate$J([\n PreDestroy\n ], HeaderWrapperComp.prototype, \"destroyHeaderComp\", null);\n return HeaderWrapperComp;\n}(AbstractHeaderWrapper));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$T = (undefined && undefined.__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$K = (undefined && undefined.__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 HeaderGroupWrapperComp = /** @class */ (function (_super) {\n __extends$T(HeaderGroupWrapperComp, _super);\n function HeaderGroupWrapperComp(columnGroup, pinned) {\n var _this = _super.call(this, HeaderGroupWrapperComp.TEMPLATE) || this;\n // the children can change, we keep destroy functions related to listening to the children here\n _this.removeChildListenersFuncs = [];\n _this.column = columnGroup;\n _this.pinned = pinned;\n return _this;\n }\n HeaderGroupWrapperComp.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n CssClassApplier.addHeaderClassesFromColDef(this.getComponentHolder(), this.getGui(), this.gridOptionsWrapper, null, this.column);\n var displayName = this.columnController.getDisplayNameForColumnGroup(this.column, 'header');\n this.appendHeaderGroupComp(displayName);\n this.setupResize();\n this.addClasses();\n this.setupWidth();\n this.addAttributes();\n this.setupMovingCss();\n this.setupTooltip();\n this.setupExpandable();\n this.createManagedBean(new HoverFeature(this.column.getOriginalColumnGroup().getLeafColumns(), this.getGui()));\n this.createManagedBean(new SetLeftFeature(this.column, this.getGui(), this.beans));\n };\n HeaderGroupWrapperComp.prototype.onFocusIn = function (e) {\n if (!this.getGui().contains(e.relatedTarget)) {\n var headerRow = this.getParentComponent();\n this.beans.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());\n }\n };\n HeaderGroupWrapperComp.prototype.handleKeyDown = function (e) {\n var activeEl = document.activeElement;\n var eGui = this.getGui();\n var wrapperHasFocus = activeEl === eGui;\n if (!this.expandable || !wrapperHasFocus) {\n return;\n }\n if (e.keyCode === KeyCode.ENTER) {\n var column = this.getColumn();\n var newExpandedValue = !column.isExpanded();\n this.columnController.setColumnGroupOpened(column.getOriginalColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n }\n };\n HeaderGroupWrapperComp.prototype.onTabKeyDown = function () { };\n HeaderGroupWrapperComp.prototype.setupExpandable = function () {\n var column = this.getColumn();\n var originalColumnGroup = column.getOriginalColumnGroup();\n this.refreshExpanded();\n this.addManagedListener(originalColumnGroup, OriginalColumnGroup.EVENT_EXPANDABLE_CHANGED, this.refreshExpanded.bind(this));\n this.addManagedListener(originalColumnGroup, OriginalColumnGroup.EVENT_EXPANDED_CHANGED, this.refreshExpanded.bind(this));\n };\n HeaderGroupWrapperComp.prototype.refreshExpanded = function () {\n var column = this.getColumn();\n var eGui = this.getGui();\n var expandable = column.isExpandable();\n var expanded = column.isExpanded();\n this.expandable = expandable;\n if (!expandable) {\n eGui.removeAttribute('aria-expanded');\n }\n else {\n setAriaExpanded(eGui, expanded);\n }\n };\n HeaderGroupWrapperComp.prototype.setupMovingCss = function () {\n var _this = this;\n var originalColumnGroup = this.column.getOriginalColumnGroup();\n var leafColumns = originalColumnGroup.getLeafColumns();\n leafColumns.forEach(function (col) {\n _this.addManagedListener(col, Column.EVENT_MOVING_CHANGED, _this.onColumnMovingChanged.bind(_this));\n });\n this.onColumnMovingChanged();\n };\n HeaderGroupWrapperComp.prototype.getComponentHolder = function () {\n return this.column.getColGroupDef();\n };\n HeaderGroupWrapperComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'headerGroup';\n // this is wrong, but leaving it as i don't want to change code,\n // but the ColumnGroup does not have a ColDef or a Column (although it does have GroupDef and ColumnGroup)\n res.colDef = this.getComponentHolder();\n res.column = this.getColumn();\n return res;\n };\n HeaderGroupWrapperComp.prototype.setupTooltip = function () {\n var colGroupDef = this.getComponentHolder();\n var tooltipText = colGroupDef && colGroupDef.headerTooltip;\n if (tooltipText != null) {\n this.setTooltip(escapeString(tooltipText));\n }\n };\n HeaderGroupWrapperComp.prototype.onColumnMovingChanged = function () {\n // this function adds or removes the moving css, based on if the col is moving.\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n addOrRemoveCssClass(this.getGui(), 'ag-header-cell-moving', this.column.isMoving());\n };\n HeaderGroupWrapperComp.prototype.addAttributes = function () {\n this.getGui().setAttribute(\"col-id\", this.column.getUniqueId());\n };\n HeaderGroupWrapperComp.prototype.appendHeaderGroupComp = function (displayName) {\n var _this = this;\n var params = {\n displayName: displayName,\n columnGroup: this.column,\n setExpanded: function (expanded) {\n _this.columnController.setColumnGroupOpened(_this.column.getOriginalColumnGroup(), expanded, \"gridInitializing\");\n },\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsWrapper.getContext()\n };\n if (!displayName) {\n var columnGroup = this.column;\n var leafCols = columnGroup.getLeafColumns();\n // find the top most column group that represents the same columns. so if we are dragging a group, we also\n // want to visually show the parent groups dragging for the same column set. for example imaging 5 levels\n // of grouping, with each group only containing the next group, and the last group containing three columns,\n // then when you move any group (even the lowest level group) you are in-fact moving all the groups, as all\n // the groups represent the same column set.\n while (columnGroup.getParent() && columnGroup.getParent().getLeafColumns().length === leafCols.length) {\n columnGroup = columnGroup.getParent();\n }\n var colGroupDef = columnGroup.getColGroupDef();\n if (colGroupDef) {\n displayName = colGroupDef.headerName;\n }\n if (!displayName) {\n displayName = leafCols ? this.columnController.getDisplayNameForColumn(leafCols[0], 'header', true) : '';\n }\n }\n var callback = this.afterHeaderCompCreated.bind(this, displayName);\n this.userComponentFactory.newHeaderGroupComponent(params).then(callback);\n };\n HeaderGroupWrapperComp.prototype.afterHeaderCompCreated = function (displayName, headerGroupComp) {\n var _this = this;\n this.getGui().appendChild(headerGroupComp.getGui());\n this.addDestroyFunc(function () {\n _this.getContext().destroyBean(headerGroupComp);\n });\n this.setupMove(headerGroupComp.getGui(), displayName);\n };\n HeaderGroupWrapperComp.prototype.addClasses = function () {\n // having different classes below allows the style to not have a bottom border\n // on the group header, if no group is specified\n // columnGroup.getColGroupDef\n var style = this.column.isPadding() ? 'no' : 'with';\n this.addCssClass(\"ag-header-group-cell-\" + style + \"-group\");\n };\n HeaderGroupWrapperComp.prototype.setupMove = function (eHeaderGroup, displayName) {\n var _this = this;\n if (!eHeaderGroup) {\n return;\n }\n if (this.isSuppressMoving()) {\n return;\n }\n var allLeafColumns = this.column.getOriginalColumnGroup().getLeafColumns();\n var dragSource = {\n type: exports.DragSourceType.HeaderCell,\n eElement: eHeaderGroup,\n defaultIconName: DragAndDropService.ICON_HIDE,\n dragItemName: displayName,\n // we add in the original group leaf columns, so we move both visible and non-visible items\n getDragItem: this.getDragItemForGroup.bind(this),\n onDragStarted: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(true, \"uiColumnDragged\"); }); },\n onDragStopped: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(false, \"uiColumnDragged\"); }); }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n // when moving the columns, we want to move all the columns (contained within the DragItem) in this group in one go,\n // and in the order they are currently in the screen.\n HeaderGroupWrapperComp.prototype.getDragItemForGroup = function () {\n var allColumnsOriginalOrder = this.column.getOriginalColumnGroup().getLeafColumns();\n // capture visible state, used when re-entering grid to dictate which columns should be visible\n var visibleState = {};\n allColumnsOriginalOrder.forEach(function (column) { return visibleState[column.getId()] = column.isVisible(); });\n var allColumnsCurrentOrder = [];\n this.columnController.getAllDisplayedColumns().forEach(function (column) {\n if (allColumnsOriginalOrder.indexOf(column) >= 0) {\n allColumnsCurrentOrder.push(column);\n removeFromArray(allColumnsOriginalOrder, column);\n }\n });\n // we are left with non-visible columns, stick these in at the end\n allColumnsOriginalOrder.forEach(function (column) { return allColumnsCurrentOrder.push(column); });\n // create and return dragItem\n return {\n columns: allColumnsCurrentOrder,\n visibleState: visibleState\n };\n };\n HeaderGroupWrapperComp.prototype.isSuppressMoving = function () {\n // if any child is fixed, then don't allow moving\n var childSuppressesMoving = false;\n this.column.getLeafColumns().forEach(function (column) {\n if (column.getColDef().suppressMovable || column.getColDef().lockPosition) {\n childSuppressesMoving = true;\n }\n });\n var result = childSuppressesMoving || this.gridOptionsWrapper.isSuppressMovableColumns();\n return result;\n };\n HeaderGroupWrapperComp.prototype.setupWidth = function () {\n // we need to listen to changes in child columns, as they impact our width\n this.addListenersToChildrenColumns();\n // the children belonging to this group can change, so we need to add and remove listeners as they change\n this.addManagedListener(this.column, ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED, this.onDisplayedChildrenChanged.bind(this));\n this.onWidthChanged();\n // the child listeners are not tied to this components life-cycle, as children can get added and removed\n // to the group - hence they are on a different life-cycle. so we must make sure the existing children\n // listeners are removed when we finally get destroyed\n this.addDestroyFunc(this.removeListenersOnChildrenColumns.bind(this));\n };\n HeaderGroupWrapperComp.prototype.onDisplayedChildrenChanged = function () {\n this.addListenersToChildrenColumns();\n this.onWidthChanged();\n };\n HeaderGroupWrapperComp.prototype.addListenersToChildrenColumns = function () {\n var _this = this;\n // first destroy any old listeners\n this.removeListenersOnChildrenColumns();\n // now add new listeners to the new set of children\n var widthChangedListener = this.onWidthChanged.bind(this);\n this.column.getLeafColumns().forEach(function (column) {\n column.addEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n column.addEventListener(Column.EVENT_VISIBLE_CHANGED, widthChangedListener);\n _this.removeChildListenersFuncs.push(function () {\n column.removeEventListener(Column.EVENT_WIDTH_CHANGED, widthChangedListener);\n column.removeEventListener(Column.EVENT_VISIBLE_CHANGED, widthChangedListener);\n });\n });\n };\n HeaderGroupWrapperComp.prototype.removeListenersOnChildrenColumns = function () {\n this.removeChildListenersFuncs.forEach(function (func) { return func(); });\n this.removeChildListenersFuncs = [];\n };\n HeaderGroupWrapperComp.prototype.onWidthChanged = function () {\n this.getGui().style.width = this.column.getActualWidth() + 'px';\n };\n HeaderGroupWrapperComp.prototype.setupResize = function () {\n var _this = this;\n this.eHeaderCellResize = this.getRefElement('agResize');\n if (!this.column.isResizable()) {\n removeFromParent(this.eHeaderCellResize);\n return;\n }\n var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.eHeaderCellResize,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this, false),\n onResizeEnd: this.onResizing.bind(this, true)\n });\n this.addDestroyFunc(finishedWithResizeFunc);\n if (!this.gridOptionsWrapper.isSuppressAutoSize()) {\n var skipHeaderOnAutoSize_1 = this.gridOptionsWrapper.isSkipHeaderOnAutoSize();\n this.eHeaderCellResize.addEventListener('dblclick', function (event) {\n // get list of all the column keys we are responsible for\n var keys = [];\n _this.column.getDisplayedLeafColumns().forEach(function (column) {\n // not all cols in the group may be participating with auto-resize\n if (!column.getColDef().suppressAutoSize) {\n keys.push(column.getColId());\n }\n });\n if (keys.length > 0) {\n _this.columnController.autoSizeColumns(keys, skipHeaderOnAutoSize_1, \"uiColumnResized\");\n }\n });\n }\n };\n HeaderGroupWrapperComp.prototype.onResizeStart = function (shiftKey) {\n var _this = this;\n var leafCols = this.column.getDisplayedLeafColumns();\n this.resizeCols = leafCols.filter(function (col) { return col.isResizable(); });\n this.resizeStartWidth = 0;\n this.resizeCols.forEach(function (col) { return _this.resizeStartWidth += col.getActualWidth(); });\n this.resizeRatios = [];\n this.resizeCols.forEach(function (col) { return _this.resizeRatios.push(col.getActualWidth() / _this.resizeStartWidth); });\n var takeFromGroup = null;\n if (shiftKey) {\n takeFromGroup = this.columnController.getDisplayedGroupAfter(this.column);\n }\n if (takeFromGroup) {\n var takeFromLeafCols = takeFromGroup.getDisplayedLeafColumns();\n this.resizeTakeFromCols = takeFromLeafCols.filter(function (col) { return col.isResizable(); });\n this.resizeTakeFromStartWidth = 0;\n this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromStartWidth += col.getActualWidth(); });\n this.resizeTakeFromRatios = [];\n this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromRatios.push(col.getActualWidth() / _this.resizeTakeFromStartWidth); });\n }\n else {\n this.resizeTakeFromCols = null;\n this.resizeTakeFromStartWidth = null;\n this.resizeTakeFromRatios = null;\n }\n addCssClass(this.getGui(), 'ag-column-resizing');\n };\n HeaderGroupWrapperComp.prototype.onResizing = function (finished, resizeAmount) {\n var resizeSets = [];\n var resizeAmountNormalised = this.normaliseDragChange(resizeAmount);\n resizeSets.push({\n columns: this.resizeCols,\n ratios: this.resizeRatios,\n width: this.resizeStartWidth + resizeAmountNormalised\n });\n if (this.resizeTakeFromCols) {\n resizeSets.push({\n columns: this.resizeTakeFromCols,\n ratios: this.resizeTakeFromRatios,\n width: this.resizeTakeFromStartWidth - resizeAmountNormalised\n });\n }\n this.columnController.resizeColumnSets(resizeSets, finished, 'uiColumnDragged');\n if (finished) {\n removeCssClass(this.getGui(), 'ag-column-resizing');\n }\n };\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderCell - should refactor out?\n HeaderGroupWrapperComp.prototype.normaliseDragChange = function (dragChange) {\n var result = dragChange;\n if (this.gridOptionsWrapper.isEnableRtl()) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (this.pinned !== Constants.PINNED_LEFT) {\n result *= -1;\n }\n }\n else if (this.pinned === Constants.PINNED_RIGHT) {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n result *= -1;\n }\n return result;\n };\n HeaderGroupWrapperComp.TEMPLATE = \"
\\n
\\n
\";\n __decorate$K([\n Autowired('columnController')\n ], HeaderGroupWrapperComp.prototype, \"columnController\", void 0);\n __decorate$K([\n Autowired('horizontalResizeService')\n ], HeaderGroupWrapperComp.prototype, \"horizontalResizeService\", void 0);\n __decorate$K([\n Autowired('dragAndDropService')\n ], HeaderGroupWrapperComp.prototype, \"dragAndDropService\", void 0);\n __decorate$K([\n Autowired('userComponentFactory')\n ], HeaderGroupWrapperComp.prototype, \"userComponentFactory\", void 0);\n __decorate$K([\n Autowired('beans')\n ], HeaderGroupWrapperComp.prototype, \"beans\", void 0);\n __decorate$K([\n Autowired('gridApi')\n ], HeaderGroupWrapperComp.prototype, \"gridApi\", void 0);\n __decorate$K([\n Autowired('columnApi')\n ], HeaderGroupWrapperComp.prototype, \"columnApi\", void 0);\n return HeaderGroupWrapperComp;\n}(AbstractHeaderWrapper));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$U = (undefined && undefined.__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$L = (undefined && undefined.__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};\n// optional floating filter for user provided filters - instead of providing a floating filter,\n// they can provide a getModelAsString() method on the filter instead. this class just displays\n// the string returned from getModelAsString()\nvar ReadOnlyFloatingFilter = /** @class */ (function (_super) {\n __extends$U(ReadOnlyFloatingFilter, _super);\n function ReadOnlyFloatingFilter() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n ReadOnlyFloatingFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n ReadOnlyFloatingFilter.prototype.init = function (params) {\n this.params = params;\n var displayName = this.columnController.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.gridOptionsWrapper.getLocaleTextFunc();\n this.eFloatingFilterText\n .setDisabled(true)\n .setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n ReadOnlyFloatingFilter.prototype.onParentModelChanged = function (parentModel) {\n var _this = this;\n if (!parentModel) {\n this.eFloatingFilterText.setValue('');\n return;\n }\n this.params.parentFilterInstance(function (filterInstance) {\n // it would be nice to check if getModelAsString was present before creating this component,\n // however that is not possible, as React Hooks and VueJS don't attached the methods to the Filter until\n // AFTER the filter is created, not allowing inspection before this (we create floating filters as columns\n // are drawn, but the parent filters are only created when needed).\n if (filterInstance.getModelAsString) {\n var modelAsString = filterInstance.getModelAsString(parentModel);\n _this.eFloatingFilterText.setValue(modelAsString);\n }\n });\n };\n __decorate$L([\n RefSelector('eFloatingFilterText')\n ], ReadOnlyFloatingFilter.prototype, \"eFloatingFilterText\", void 0);\n __decorate$L([\n Autowired('columnController')\n ], ReadOnlyFloatingFilter.prototype, \"columnController\", void 0);\n return ReadOnlyFloatingFilter;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar FloatingFilterMapper = /** @class */ (function () {\n function FloatingFilterMapper() {\n }\n FloatingFilterMapper.getFloatingFilterType = function (filterType) {\n return this.filterToFloatingFilterMapping[filterType];\n };\n FloatingFilterMapper.filterToFloatingFilterMapping = {\n set: 'agSetColumnFloatingFilter',\n agSetColumnFilter: 'agSetColumnFloatingFilter',\n multi: 'agMultiColumnFloatingFilter',\n agMultiColumnFilter: 'agMultiColumnFloatingFilter',\n number: 'agNumberColumnFloatingFilter',\n agNumberColumnFilter: 'agNumberColumnFloatingFilter',\n date: 'agDateColumnFloatingFilter',\n agDateColumnFilter: 'agDateColumnFloatingFilter',\n text: 'agTextColumnFloatingFilter',\n agTextColumnFilter: 'agTextColumnFloatingFilter'\n };\n return FloatingFilterMapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$V = (undefined && undefined.__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$M = (undefined && undefined.__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 FloatingFilterWrapper = /** @class */ (function (_super) {\n __extends$V(FloatingFilterWrapper, _super);\n function FloatingFilterWrapper(column, pinned) {\n var _this = _super.call(this, FloatingFilterWrapper.TEMPLATE) || this;\n _this.column = column;\n _this.pinned = pinned;\n return _this;\n }\n FloatingFilterWrapper.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setupFloatingFilter();\n this.setupWidth();\n this.setupLeftPositioning();\n this.setupColumnHover();\n this.createManagedBean(new HoverFeature([this.column], this.getGui()));\n this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));\n };\n FloatingFilterWrapper.prototype.onTabKeyDown = function (e) {\n var activeEl = document.activeElement;\n var eGui = this.getGui();\n var wrapperHasFocus = activeEl === eGui;\n if (wrapperHasFocus) {\n return;\n }\n e.preventDefault();\n var nextFocusableEl = this.focusController.findNextFocusableElement(eGui, null, e.shiftKey);\n if (nextFocusableEl) {\n nextFocusableEl.focus();\n }\n else {\n eGui.focus();\n }\n };\n FloatingFilterWrapper.prototype.handleKeyDown = function (e) {\n var activeEl = document.activeElement;\n var eGui = this.getGui();\n var wrapperHasFocus = activeEl === eGui;\n switch (e.keyCode) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (!wrapperHasFocus) {\n e.preventDefault();\n }\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n if (wrapperHasFocus) {\n return;\n }\n e.stopPropagation();\n case KeyCode.ENTER:\n if (wrapperHasFocus) {\n if (this.focusController.focusInto(eGui)) {\n e.preventDefault();\n }\n }\n break;\n case KeyCode.ESCAPE:\n if (!wrapperHasFocus) {\n this.getGui().focus();\n }\n }\n };\n FloatingFilterWrapper.prototype.onFocusIn = function (e) {\n var eGui = this.getGui();\n if (!eGui.contains(e.relatedTarget)) {\n var headerRow = this.getParentComponent();\n this.beans.focusController.setFocusedHeader(headerRow.getRowIndex(), this.getColumn());\n }\n };\n FloatingFilterWrapper.prototype.setupFloatingFilter = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n if (!colDef.filter || !colDef.floatingFilter) {\n return;\n }\n this.floatingFilterCompPromise = this.getFloatingFilterInstance();\n if (!this.floatingFilterCompPromise) {\n return;\n }\n this.floatingFilterCompPromise.then(function (compInstance) {\n if (compInstance) {\n _this.setupWithFloatingFilter(compInstance);\n _this.setupSyncWithFilter();\n }\n });\n };\n FloatingFilterWrapper.prototype.setupLeftPositioning = function () {\n var setLeftFeature = new SetLeftFeature(this.column, this.getGui(), this.beans);\n this.createManagedBean(setLeftFeature);\n };\n FloatingFilterWrapper.prototype.setupSyncWithFilter = function () {\n var _this = this;\n var syncWithFilter = function (filterChangedEvent) {\n _this.onParentModelChanged(_this.currentParentModel(), filterChangedEvent);\n };\n this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, syncWithFilter);\n if (this.filterManager.isFilterActive(this.column)) {\n syncWithFilter(null);\n }\n };\n // linked to event listener in template\n FloatingFilterWrapper.prototype.showParentFilter = function () {\n var eventSource = this.suppressFilterButton ? this.eFloatingFilterBody : this.eButtonShowMainFilter;\n this.menuFactory.showMenuAfterButtonClick(this.column, eventSource, 'filterMenuTab', ['filterMenuTab']);\n };\n FloatingFilterWrapper.prototype.setupColumnHover = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, this.onColumnHover.bind(this));\n this.onColumnHover();\n };\n FloatingFilterWrapper.prototype.onColumnHover = function () {\n addOrRemoveCssClass(this.getGui(), 'ag-column-hover', this.columnHoverService.isHovered(this.column));\n };\n FloatingFilterWrapper.prototype.setupWidth = function () {\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, this.onColumnWidthChanged.bind(this));\n this.onColumnWidthChanged();\n };\n FloatingFilterWrapper.prototype.onColumnWidthChanged = function () {\n this.getGui().style.width = this.column.getActualWidth() + \"px\";\n };\n FloatingFilterWrapper.prototype.setupWithFloatingFilter = function (floatingFilterComp) {\n var _this = this;\n var disposeFunc = function () {\n _this.getContext().destroyBean(floatingFilterComp);\n };\n if (!this.isAlive()) {\n disposeFunc();\n return;\n }\n this.addDestroyFunc(disposeFunc);\n var floatingFilterCompUi = floatingFilterComp.getGui();\n addOrRemoveCssClass(this.eFloatingFilterBody, 'ag-floating-filter-full-body', this.suppressFilterButton);\n addOrRemoveCssClass(this.eFloatingFilterBody, 'ag-floating-filter-body', !this.suppressFilterButton);\n setDisplayed(this.eButtonWrapper, !this.suppressFilterButton);\n var eIcon = createIconNoSpan('filter', this.gridOptionsWrapper, this.column);\n this.eButtonShowMainFilter.appendChild(eIcon);\n this.eFloatingFilterBody.appendChild(floatingFilterCompUi);\n if (floatingFilterComp.afterGuiAttached) {\n floatingFilterComp.afterGuiAttached();\n }\n };\n FloatingFilterWrapper.prototype.parentFilterInstance = function (callback) {\n var filterComponent = this.getFilterComponent();\n if (filterComponent) {\n filterComponent.then(callback);\n }\n };\n FloatingFilterWrapper.prototype.getFilterComponent = function (createIfDoesNotExist) {\n if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }\n return this.filterManager.getFilterComponent(this.column, 'NO_UI', createIfDoesNotExist);\n };\n FloatingFilterWrapper.getDefaultFloatingFilterType = function (def) {\n if (def == null) {\n return null;\n }\n var defaultFloatingFilterType = null;\n if (typeof def.filter === 'string') {\n // will be undefined if not in the map\n defaultFloatingFilterType = FloatingFilterMapper.getFloatingFilterType(def.filter);\n }\n else if (def.filterFramework) ;\n else if (def.filter === true) {\n var setFilterModuleLoaded = ModuleRegistry.isRegistered(exports.ModuleNames.SetFilterModule);\n defaultFloatingFilterType = setFilterModuleLoaded ? 'agSetColumnFloatingFilter' : 'agTextColumnFloatingFilter';\n }\n return defaultFloatingFilterType;\n };\n FloatingFilterWrapper.prototype.getFloatingFilterInstance = function () {\n var colDef = this.column.getColDef();\n var defaultFloatingFilterType = FloatingFilterWrapper.getDefaultFloatingFilterType(colDef);\n var filterParams = this.filterManager.createFilterParams(this.column, colDef);\n var finalFilterParams = this.userComponentFactory.createFinalParams(colDef, 'filter', filterParams);\n var params = {\n api: this.gridApi,\n column: this.column,\n filterParams: finalFilterParams,\n currentParentModel: this.currentParentModel.bind(this),\n parentFilterInstance: this.parentFilterInstance.bind(this),\n showParentFilter: this.showParentFilter.bind(this),\n onFloatingFilterChanged: this.onFloatingFilterChanged.bind(this),\n suppressFilterButton: false // This one might be overridden from the colDef\n };\n // this is unusual - we need a params value OUTSIDE the component the params are for.\n // the params are for the floating filter component, but this property is actually for the wrapper.\n this.suppressFilterButton = colDef.floatingFilterComponentParams ? !!colDef.floatingFilterComponentParams.suppressFilterButton : false;\n var promise = this.userComponentFactory.newFloatingFilterComponent(colDef, params, defaultFloatingFilterType);\n if (!promise) {\n var compInstance = this.userComponentFactory.createUserComponentFromConcreteClass(ReadOnlyFloatingFilter, params);\n promise = AgPromise.resolve(compInstance);\n }\n return promise;\n };\n FloatingFilterWrapper.prototype.currentParentModel = function () {\n var filterComponent = this.getFilterComponent(false);\n return filterComponent ? filterComponent.resolveNow(null, function (filter) { return filter && filter.getModel(); }) : null;\n };\n FloatingFilterWrapper.prototype.onParentModelChanged = function (model, filterChangedEvent) {\n if (!this.floatingFilterCompPromise) {\n return;\n }\n this.floatingFilterCompPromise.then(function (comp) { return comp && comp.onParentModelChanged(model, filterChangedEvent); });\n };\n FloatingFilterWrapper.prototype.onFloatingFilterChanged = function () {\n console.warn('AG Grid: since version 21.x, how floating filters are implemented has changed. ' +\n 'Instead of calling params.onFloatingFilterChanged(), get a reference to the main filter via ' +\n 'params.parentFilterInstance() and then set a value on the parent filter directly.');\n };\n FloatingFilterWrapper.TEMPLATE = \"
\\n
\\n
\\n \\n
\\n
\";\n __decorate$M([\n Autowired('columnHoverService')\n ], FloatingFilterWrapper.prototype, \"columnHoverService\", void 0);\n __decorate$M([\n Autowired('userComponentFactory')\n ], FloatingFilterWrapper.prototype, \"userComponentFactory\", void 0);\n __decorate$M([\n Autowired('gridApi')\n ], FloatingFilterWrapper.prototype, \"gridApi\", void 0);\n __decorate$M([\n Autowired('columnApi')\n ], FloatingFilterWrapper.prototype, \"columnApi\", void 0);\n __decorate$M([\n Autowired('filterManager')\n ], FloatingFilterWrapper.prototype, \"filterManager\", void 0);\n __decorate$M([\n Autowired('menuFactory')\n ], FloatingFilterWrapper.prototype, \"menuFactory\", void 0);\n __decorate$M([\n Autowired('beans')\n ], FloatingFilterWrapper.prototype, \"beans\", void 0);\n __decorate$M([\n RefSelector('eFloatingFilterBody')\n ], FloatingFilterWrapper.prototype, \"eFloatingFilterBody\", void 0);\n __decorate$M([\n RefSelector('eButtonWrapper')\n ], FloatingFilterWrapper.prototype, \"eButtonWrapper\", void 0);\n __decorate$M([\n RefSelector('eButtonShowMainFilter')\n ], FloatingFilterWrapper.prototype, \"eButtonShowMainFilter\", void 0);\n return FloatingFilterWrapper;\n}(AbstractHeaderWrapper));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$W = (undefined && undefined.__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$N = (undefined && undefined.__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 HeaderRowType;\n(function (HeaderRowType) {\n HeaderRowType[HeaderRowType[\"COLUMN_GROUP\"] = 0] = \"COLUMN_GROUP\";\n HeaderRowType[HeaderRowType[\"COLUMN\"] = 1] = \"COLUMN\";\n HeaderRowType[HeaderRowType[\"FLOATING_FILTER\"] = 2] = \"FLOATING_FILTER\";\n})(HeaderRowType || (HeaderRowType = {}));\nvar HeaderRowComp = /** @class */ (function (_super) {\n __extends$W(HeaderRowComp, _super);\n function HeaderRowComp(dept, type, pinned) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.headerComps = {};\n _this.setRowIndex(dept);\n _this.type = type;\n _this.pinned = pinned;\n var niceClassName = HeaderRowType[type].toLowerCase().replace(/_/g, '-');\n _this.addCssClass(\"ag-header-row-\" + niceClassName);\n if (isBrowserSafari()) {\n // fix for a Safari rendering bug that caused the header to flicker above chart panels\n // as you move the mouse over the header\n _this.getGui().style.transform = 'translateZ(0)';\n }\n return _this;\n }\n HeaderRowComp.prototype.forEachHeaderElement = function (callback) {\n var _this = this;\n Object.keys(this.headerComps).forEach(function (key) {\n callback(_this.headerComps[key]);\n });\n };\n HeaderRowComp.prototype.setRowIndex = function (rowIndex) {\n this.dept = rowIndex;\n setAriaRowIndex(this.getGui(), rowIndex + 1);\n };\n HeaderRowComp.prototype.getRowIndex = function () {\n return this.dept;\n };\n HeaderRowComp.prototype.getType = function () {\n return this.type;\n };\n HeaderRowComp.prototype.destroyAllChildComponents = function () {\n var idsOfAllChildren = Object.keys(this.headerComps);\n this.destroyChildComponents(idsOfAllChildren);\n };\n HeaderRowComp.prototype.destroyChildComponents = function (idsToDestroy) {\n var _this = this;\n idsToDestroy.forEach(function (id) {\n var childHeaderWrapper = _this.headerComps[id];\n _this.getGui().removeChild(childHeaderWrapper.getGui());\n _this.destroyBean(childHeaderWrapper);\n delete _this.headerComps[id];\n });\n };\n HeaderRowComp.prototype.onRowHeightChanged = function () {\n var headerRowCount = this.columnController.getHeaderRowCount();\n var sizes = [];\n var numberOfFloating = 0;\n var groupHeight;\n var headerHeight;\n if (this.columnController.isPivotMode()) {\n groupHeight = this.gridOptionsWrapper.getPivotGroupHeaderHeight();\n headerHeight = this.gridOptionsWrapper.getPivotHeaderHeight();\n }\n else {\n if (this.columnController.hasFloatingFilters()) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n groupHeight = this.gridOptionsWrapper.getGroupHeaderHeight();\n headerHeight = this.gridOptionsWrapper.getHeaderHeight();\n }\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n for (var i = 0; i < numberOfGroups; i++) {\n sizes.push(groupHeight);\n }\n sizes.push(headerHeight);\n for (var i = 0; i < numberOfFloating; i++) {\n sizes.push(this.gridOptionsWrapper.getFloatingFiltersHeight());\n }\n var rowHeight = 0;\n for (var i = 0; i < this.dept; i++) {\n rowHeight += sizes[i];\n }\n this.getGui().style.top = rowHeight + 'px';\n this.getGui().style.height = sizes[this.dept] + 'px';\n };\n //noinspection JSUnusedLocalSymbols\n HeaderRowComp.prototype.init = function () {\n this.onRowHeightChanged();\n this.onVirtualColumnsChanged();\n this.setWidth();\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));\n // this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n };\n HeaderRowComp.prototype.onColumnResized = function () {\n this.setWidth();\n };\n HeaderRowComp.prototype.setWidth = function () {\n var width = this.getWidthForRow();\n this.getGui().style.width = width + 'px';\n };\n HeaderRowComp.prototype.getWidthForRow = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n if (printLayout) {\n var centerRow = missing(this.pinned);\n if (centerRow) {\n return this.columnController.getContainerWidth(Constants.PINNED_RIGHT)\n + this.columnController.getContainerWidth(Constants.PINNED_LEFT)\n + this.columnController.getContainerWidth(null);\n }\n return 0;\n }\n // if not printing, just return the width as normal\n return this.columnController.getContainerWidth(this.pinned);\n };\n HeaderRowComp.prototype.onDisplayedColumnsChanged = function () {\n this.onVirtualColumnsChanged();\n this.setWidth();\n };\n HeaderRowComp.prototype.getColumnsInViewport = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n return printLayout ? this.getColumnsInViewportPrintLayout() : this.getColumnsInViewportNormalLayout();\n };\n HeaderRowComp.prototype.getColumnsInViewportPrintLayout = function () {\n var _this = this;\n // for print layout, we add all columns into the center\n if (this.pinned != null) {\n return [];\n }\n var viewportColumns = [];\n var actualDepth = this.getActualDepth();\n [Constants.PINNED_LEFT, null, Constants.PINNED_RIGHT].forEach(function (pinned) {\n var items = _this.columnController.getVirtualHeaderGroupRow(pinned, actualDepth);\n viewportColumns = viewportColumns.concat(items);\n });\n return viewportColumns;\n };\n HeaderRowComp.prototype.getActualDepth = function () {\n return this.type == HeaderRowType.FLOATING_FILTER ? this.dept - 1 : this.dept;\n };\n HeaderRowComp.prototype.getColumnsInViewportNormalLayout = function () {\n // when in normal layout, we add the columns for that container only\n return this.columnController.getVirtualHeaderGroupRow(this.pinned, this.getActualDepth());\n };\n HeaderRowComp.prototype.onVirtualColumnsChanged = function () {\n var _this = this;\n var compIdsToRemove = Object.keys(this.headerComps);\n var compIdsWanted = [];\n var columns = this.getColumnsInViewport();\n columns.forEach(function (child) {\n // skip groups that have no displayed children. this can happen when the group is broken,\n // and this section happens to have nothing to display for the open / closed state.\n // (a broken group is one that is split, ie columns in the group have a non-group column\n // in between them)\n if (child.isEmptyGroup()) {\n return;\n }\n var idOfChild = child.getUniqueId();\n var eParentContainer = _this.getGui();\n // if we already have this cell rendered, do nothing\n var previousComp = _this.headerComps[idOfChild];\n // it's possible there is a new Column with the same ID, but it's for a different Column.\n // this is common with pivoting, where the pivot cols change, but the id's are still pivot_0,\n // pivot_1 etc. so if new col but same ID, need to remove the old col here first as we are\n // about to replace it in the this.headerComps map.\n var previousCompForOldColumn = previousComp && previousComp.getColumn() != child;\n if (previousCompForOldColumn) {\n _this.destroyChildComponents([idOfChild]);\n removeFromArray(compIdsToRemove, idOfChild);\n previousComp = undefined;\n }\n if (previousComp) {\n // already have comp for this column, so do nothing\n removeFromArray(compIdsToRemove, idOfChild);\n }\n else {\n // don't have comp, need to create one\n var headerComp = _this.createHeaderComp(child);\n _this.headerComps[idOfChild] = headerComp;\n eParentContainer.appendChild(headerComp.getGui());\n }\n compIdsWanted.push(idOfChild);\n });\n // we want to keep columns that are focused, otherwise keyboard navigation breaks\n var isFocusedAndDisplayed = function (colId) {\n var wrapper = _this.headerComps[colId];\n var isFocused = _this.focusController.isHeaderWrapperFocused(wrapper);\n if (!isFocused) {\n return false;\n }\n var isDisplayed = _this.columnController.isDisplayed(wrapper.getColumn());\n return isDisplayed;\n };\n var focusedAndDisplayedComps = compIdsToRemove.filter(isFocusedAndDisplayed);\n focusedAndDisplayedComps.forEach(function (colId) {\n removeFromArray(compIdsToRemove, colId);\n compIdsWanted.push(colId);\n });\n // at this point, anything left in currentChildIds is an element that is no longer in the viewport\n this.destroyChildComponents(compIdsToRemove);\n var ensureDomOrder = this.gridOptionsWrapper.isEnsureDomOrder();\n if (ensureDomOrder) {\n var correctChildOrder = compIdsWanted.map(function (id) { return _this.headerComps[id].getGui(); });\n setDomChildOrder(this.getGui(), correctChildOrder);\n }\n };\n HeaderRowComp.prototype.createHeaderComp = function (columnGroupChild) {\n var result;\n switch (this.type) {\n case HeaderRowType.COLUMN_GROUP:\n result = new HeaderGroupWrapperComp(columnGroupChild, this.pinned);\n break;\n case HeaderRowType.FLOATING_FILTER:\n result = new FloatingFilterWrapper(columnGroupChild, this.pinned);\n break;\n default:\n result = new HeaderWrapperComp(columnGroupChild, this.pinned);\n break;\n }\n this.createBean(result);\n result.setParentComponent(this);\n return result;\n };\n HeaderRowComp.prototype.getHeaderComps = function () {\n return this.headerComps;\n };\n __decorate$N([\n Autowired('columnController')\n ], HeaderRowComp.prototype, \"columnController\", void 0);\n __decorate$N([\n Autowired('focusController')\n ], HeaderRowComp.prototype, \"focusController\", void 0);\n __decorate$N([\n PreDestroy\n ], HeaderRowComp.prototype, \"destroyAllChildComponents\", null);\n __decorate$N([\n PostConstruct\n ], HeaderRowComp.prototype, \"init\", null);\n return HeaderRowComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$O = (undefined && undefined.__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 MoveColumnController = /** @class */ (function () {\n function MoveColumnController(pinned, eContainer) {\n this.needToMoveLeft = false;\n this.needToMoveRight = false;\n this.pinned = pinned;\n this.eContainer = eContainer;\n this.centerContainer = !exists(pinned);\n }\n MoveColumnController.prototype.init = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('MoveColumnController');\n this.controllersService.whenReady(function () {\n _this.gridBodyCon = _this.controllersService.getGridBodyController();\n });\n };\n MoveColumnController.prototype.getIconName = function () {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n };\n MoveColumnController.prototype.onDragEnter = function (draggingEvent) {\n // we do dummy drag, so make sure column appears in the right location when first placed\n var columns = draggingEvent.dragItem.columns;\n var dragCameFromToolPanel = draggingEvent.dragSource.type === exports.DragSourceType.ToolPanel;\n if (dragCameFromToolPanel) {\n // the if statement doesn't work if drag leaves grid, then enters again\n this.setColumnsVisible(columns, true, \"uiColumnDragged\");\n }\n else {\n // restore previous state of visible columns upon re-entering. this means if the user drags\n // a group out, and then drags the group back in, only columns that were originally visible\n // will be visible again. otherwise a group with three columns (but only two visible) could\n // be dragged out, then when it's dragged in again, all three are visible. this stops that.\n var visibleState_1 = draggingEvent.dragItem.visibleState;\n var visibleColumns = (columns || []).filter(function (column) { return visibleState_1[column.getId()]; });\n this.setColumnsVisible(visibleColumns, true, \"uiColumnDragged\");\n }\n this.setColumnsPinned(columns, this.pinned, \"uiColumnDragged\");\n this.onDragging(draggingEvent, true);\n };\n MoveColumnController.prototype.onDragLeave = function (draggingEvent) {\n var hideColumnOnExit = !this.gridOptionsWrapper.isSuppressDragLeaveHidesColumns() && !draggingEvent.fromNudge;\n if (hideColumnOnExit) {\n var dragItem = draggingEvent.dragSource.getDragItem();\n var columns = dragItem.columns;\n this.setColumnsVisible(columns, false, \"uiColumnDragged\");\n }\n this.ensureIntervalCleared();\n };\n MoveColumnController.prototype.setColumnsVisible = function (columns, visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });\n this.columnController.setColumnsVisible(allowedCols, visible, source);\n }\n };\n MoveColumnController.prototype.setColumnsPinned = function (columns, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockPinned; });\n this.columnController.setColumnsPinned(allowedCols, pinned, source);\n }\n };\n MoveColumnController.prototype.onDragStop = function () {\n this.ensureIntervalCleared();\n };\n MoveColumnController.prototype.normaliseX = function (x) {\n // flip the coordinate if doing RTL\n if (this.gridOptionsWrapper.isEnableRtl()) {\n var clientWidth = this.eContainer.clientWidth;\n x = clientWidth - x;\n }\n // adjust for scroll only if centre container (the pinned containers don't scroll)\n if (this.centerContainer) {\n x += this.controllersService.getCenterRowContainerCon().getCenterViewportScrollLeft();\n }\n return x;\n };\n MoveColumnController.prototype.checkCenterForScrolling = function (xAdjustedForScroll) {\n if (this.centerContainer) {\n // scroll if the mouse has gone outside the grid (or just outside the scrollable part if pinning)\n // putting in 50 buffer, so even if user gets to edge of grid, a scroll will happen\n var firstVisiblePixel = this.controllersService.getCenterRowContainerCon().getCenterViewportScrollLeft();\n var lastVisiblePixel = firstVisiblePixel + this.controllersService.getCenterRowContainerCon().getCenterWidth();\n if (this.gridOptionsWrapper.isEnableRtl()) {\n this.needToMoveRight = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveLeft = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n else {\n this.needToMoveLeft = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveRight = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n if (this.needToMoveLeft || this.needToMoveRight) {\n this.ensureIntervalStarted();\n }\n else {\n this.ensureIntervalCleared();\n }\n }\n };\n MoveColumnController.prototype.onDragging = function (draggingEvent, fromEnter) {\n var _this = this;\n if (fromEnter === void 0) { fromEnter = false; }\n this.lastDraggingEvent = draggingEvent;\n // if moving up or down (ie not left or right) then do nothing\n if (missing(draggingEvent.hDirection)) {\n return;\n }\n var mouseXNormalised = this.normaliseX(draggingEvent.x);\n // if the user is dragging into the panel, ie coming from the side panel into the main grid,\n // we don't want to scroll the grid this time, it would appear like the table is jumping\n // each time a column is dragged in.\n if (!fromEnter) {\n this.checkCenterForScrolling(mouseXNormalised);\n }\n var hDirectionNormalised = this.normaliseDirection(draggingEvent.hDirection);\n var dragSourceType = draggingEvent.dragSource.type;\n var columnsToMove = draggingEvent.dragSource.getDragItem().columns;\n columnsToMove = columnsToMove.filter(function (col) {\n if (col.getColDef().lockPinned) {\n // if locked return true only if both col and container are same pin type.\n // double equals (==) here on purpose so that null==undefined is true (for not pinned options)\n return col.getPinned() == _this.pinned;\n }\n // if not pin locked, then always allowed to be in this container\n return true;\n });\n this.attemptMoveColumns(dragSourceType, columnsToMove, hDirectionNormalised, mouseXNormalised, fromEnter);\n };\n MoveColumnController.prototype.normaliseDirection = function (hDirection) {\n if (this.gridOptionsWrapper.isEnableRtl()) {\n switch (hDirection) {\n case exports.HorizontalDirection.Left: return exports.HorizontalDirection.Right;\n case exports.HorizontalDirection.Right: return exports.HorizontalDirection.Left;\n default: console.error(\"AG Grid: Unknown direction \" + hDirection);\n }\n }\n else {\n return hDirection;\n }\n };\n // returns the index of the first column in the list ONLY if the cols are all beside\n // each other. if the cols are not beside each other, then returns null\n MoveColumnController.prototype.calculateOldIndex = function (movingCols) {\n var gridCols = this.columnController.getAllGridColumns();\n var indexes = sortNumerically(movingCols.map(function (col) { return gridCols.indexOf(col); }));\n var firstIndex = indexes[0];\n var lastIndex = last(indexes);\n var spread = lastIndex - firstIndex;\n var gapsExist = spread !== indexes.length - 1;\n return gapsExist ? null : firstIndex;\n };\n MoveColumnController.prototype.attemptMoveColumns = function (dragSourceType, allMovingColumns, hDirection, mouseX, fromEnter) {\n var draggingLeft = hDirection === exports.HorizontalDirection.Left;\n var draggingRight = hDirection === exports.HorizontalDirection.Right;\n // it is important to sort the moving columns as they are in grid columns, as the list of moving columns\n // could themselves be part of 'married children' groups, which means we need to maintain the order within\n // the moving list.\n var allMovingColumnsOrdered = allMovingColumns.slice();\n this.columnController.sortColumnsLikeGridColumns(allMovingColumnsOrdered);\n var validMoves = this.calculateValidMoves(allMovingColumnsOrdered, draggingRight, mouseX);\n // if cols are not adjacent, then this returns null. when moving, we constrain the direction of the move\n // (ie left or right) to the mouse direction. however\n var oldIndex = this.calculateOldIndex(allMovingColumnsOrdered);\n if (validMoves.length === 0) {\n return;\n }\n var firstValidMove = validMoves[0];\n // the two check below stop an error when the user grabs a group my a middle column, then\n // it is possible the mouse pointer is to the right of a column while been dragged left.\n // so we need to make sure that the mouse pointer is actually left of the left most column\n // if moving left, and right of the right most column if moving right\n // we check 'fromEnter' below so we move the column to the new spot if the mouse is coming from\n // outside the grid, eg if the column is moving from side panel, mouse is moving left, then we should\n // place the column to the RHS even if the mouse is moving left and the column is already on\n // the LHS. otherwise we stick to the rule described above.\n var constrainDirection = oldIndex !== null && !fromEnter;\n // don't consider 'fromEnter' when dragging header cells, otherwise group can jump to opposite direction of drag\n if (dragSourceType == exports.DragSourceType.HeaderCell) {\n constrainDirection = oldIndex !== null;\n }\n if (constrainDirection) {\n // only allow left drag if this column is moving left\n if (draggingLeft && firstValidMove >= oldIndex) {\n return;\n }\n // only allow right drag if this column is moving right\n if (draggingRight && firstValidMove <= oldIndex) {\n return;\n }\n }\n for (var i = 0; i < validMoves.length; i++) {\n var move = validMoves[i];\n if (!this.columnController.doesMovePassRules(allMovingColumnsOrdered, move)) {\n continue;\n }\n this.columnController.moveColumns(allMovingColumnsOrdered, move, \"uiColumnDragged\");\n // important to return here, so once we do the first valid move, we don't try do any more\n return;\n }\n };\n MoveColumnController.prototype.calculateValidMoves = function (movingCols, draggingRight, mouseX) {\n var isMoveBlocked = this.gridOptionsWrapper.isSuppressMovableColumns() || movingCols.some(function (col) { return col.getColDef().suppressMovable; });\n if (isMoveBlocked) {\n return [];\n }\n // this is the list of cols on the screen, so it's these we use when comparing the x mouse position\n var allDisplayedCols = this.columnController.getDisplayedColumns(this.pinned);\n // but this list is the list of all cols, when we move a col it's the index within this list that gets used,\n // so the result we return has to be and index location for this list\n var allGridCols = this.columnController.getAllGridColumns();\n var movingDisplayedCols = allDisplayedCols.filter(function (col) { return includes(movingCols, col); });\n var otherDisplayedCols = allDisplayedCols.filter(function (col) { return !includes(movingCols, col); });\n var otherGridCols = allGridCols.filter(function (col) { return !includes(movingCols, col); });\n // work out how many DISPLAYED columns fit before the 'x' position. this gives us the displayIndex.\n // for example, if cols are a,b,c,d and we find a,b fit before 'x', then we want to place the moving\n // col between b and c (so that it is under the mouse position).\n var displayIndex = 0;\n var availableWidth = mouseX;\n // if we are dragging right, then the columns will be to the left of the mouse, so we also want to\n // include the width of the moving columns\n if (draggingRight) {\n var widthOfMovingDisplayedCols_1 = 0;\n movingDisplayedCols.forEach(function (col) { return widthOfMovingDisplayedCols_1 += col.getActualWidth(); });\n availableWidth -= widthOfMovingDisplayedCols_1;\n }\n if (availableWidth > 0) {\n // now count how many of the displayed columns will fit to the left\n for (var i = 0; i < otherDisplayedCols.length; i++) {\n var col = otherDisplayedCols[i];\n availableWidth -= col.getActualWidth();\n if (availableWidth < 0) {\n break;\n }\n displayIndex++;\n }\n // trial and error, if going right, we adjust by one, i didn't manage to quantify why, but it works\n if (draggingRight) {\n displayIndex++;\n }\n }\n // the display index is with respect to all the showing columns, however when we move, it's with\n // respect to all grid columns, so we need to translate from display index to grid index\n var firstValidMove;\n if (displayIndex > 0) {\n var leftColumn = otherDisplayedCols[displayIndex - 1];\n firstValidMove = otherGridCols.indexOf(leftColumn) + 1;\n }\n else {\n firstValidMove = otherGridCols.indexOf(otherDisplayedCols[0]);\n if (firstValidMove === -1) {\n firstValidMove = 0;\n }\n }\n var validMoves = [firstValidMove];\n var numberComparator = function (a, b) { return a - b; };\n // add in other valid moves due to hidden columns and married children. for example, a particular\n // move might break a group that has married children (so move isn't valid), however there could\n // be hidden columns (not displayed) that we could jump over to make the move valid. because\n // they are hidden, user doesn't see any different, however it allows moves that would otherwise\n // not work. for example imagine a group with 9 columns and all columns are hidden except the\n // middle one (so 4 hidden to left, 4 hidden to right), then when moving 'firstValidMove' will\n // be relative to the not-shown column, however we need to consider the move jumping over all the\n // hidden children. if we didn't do this, then if the group just described was at the end (RHS) of the\n // grid, there would be no way to put a column after it (as the grid would only consider beside the\n // visible column, which would fail valid move rules).\n if (draggingRight) {\n // if dragging right, then we add all the additional moves to the right. so in other words\n // if the next move is not valid, find the next move to the right that is valid.\n var pointer = firstValidMove + 1;\n var lastIndex = allGridCols.length - 1;\n while (pointer <= lastIndex) {\n validMoves.push(pointer);\n pointer++;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator);\n }\n else {\n // if dragging left we do the reverse of dragging right, we add in all the valid moves to the\n // left. however we also have to consider moves to the right for all hidden columns first.\n // (this logic is hard to reason with, it was worked out with trial and error,\n // more observation rather than science).\n // add moves to the right\n var pointer = firstValidMove;\n var lastIndex = allGridCols.length - 1;\n var displacedCol = allGridCols[pointer];\n while (pointer <= lastIndex && this.isColumnHidden(allDisplayedCols, displacedCol)) {\n pointer++;\n validMoves.push(pointer);\n displacedCol = allGridCols[pointer];\n }\n // add moves to the left\n pointer = firstValidMove - 1;\n var firstDisplayIndex = 0;\n while (pointer >= firstDisplayIndex) {\n validMoves.push(pointer);\n pointer--;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator).reverse();\n }\n return validMoves;\n };\n // isHidden takes into account visible=false and group=closed, ie it is not displayed\n MoveColumnController.prototype.isColumnHidden = function (displayedColumns, col) {\n return displayedColumns.indexOf(col) < 0;\n };\n MoveColumnController.prototype.ensureIntervalStarted = function () {\n if (!this.movingIntervalId) {\n this.intervalCount = 0;\n this.failedMoveAttempts = 0;\n this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);\n if (this.needToMoveLeft) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_LEFT, true);\n }\n else {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_RIGHT, true);\n }\n }\n };\n MoveColumnController.prototype.ensureIntervalCleared = function () {\n if (this.movingIntervalId) {\n window.clearInterval(this.movingIntervalId);\n this.movingIntervalId = null;\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_MOVE);\n }\n };\n MoveColumnController.prototype.moveInterval = function () {\n // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow\n // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.\n var pixelsToMove;\n this.intervalCount++;\n pixelsToMove = 10 + (this.intervalCount * 5);\n if (pixelsToMove > 100) {\n pixelsToMove = 100;\n }\n var pixelsMoved = null;\n var scrollFeature = this.gridBodyCon.getScrollFeature();\n if (this.needToMoveLeft) {\n pixelsMoved = scrollFeature.scrollHorizontally(-pixelsToMove);\n }\n else if (this.needToMoveRight) {\n pixelsMoved = scrollFeature.scrollHorizontally(pixelsToMove);\n }\n if (pixelsMoved !== 0) {\n this.onDragging(this.lastDraggingEvent);\n this.failedMoveAttempts = 0;\n }\n else {\n // we count the failed move attempts. if we fail to move 7 times, then we pin the column.\n // this is how we achieve pining by dragging the column to the edge of the grid.\n this.failedMoveAttempts++;\n var columns = this.lastDraggingEvent.dragItem.columns;\n var columnsThatCanPin = columns.filter(function (c) { return !c.getColDef().lockPinned; });\n if (columnsThatCanPin.length > 0) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_PINNED);\n if (this.failedMoveAttempts > 7) {\n var pinType = this.needToMoveLeft ? Constants.PINNED_LEFT : Constants.PINNED_RIGHT;\n this.setColumnsPinned(columnsThatCanPin, pinType, \"uiColumnDragged\");\n this.dragAndDropService.nudge();\n }\n }\n }\n };\n __decorate$O([\n Autowired('loggerFactory')\n ], MoveColumnController.prototype, \"loggerFactory\", void 0);\n __decorate$O([\n Autowired('columnController')\n ], MoveColumnController.prototype, \"columnController\", void 0);\n __decorate$O([\n Autowired('dragAndDropService')\n ], MoveColumnController.prototype, \"dragAndDropService\", void 0);\n __decorate$O([\n Autowired('gridOptionsWrapper')\n ], MoveColumnController.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$O([\n Autowired('controllersService')\n ], MoveColumnController.prototype, \"controllersService\", void 0);\n __decorate$O([\n PostConstruct\n ], MoveColumnController.prototype, \"init\", null);\n return MoveColumnController;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$P = (undefined && undefined.__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 BodyDropPivotTarget = /** @class */ (function () {\n function BodyDropPivotTarget(pinned) {\n this.columnsToAggregate = [];\n this.columnsToGroup = [];\n this.columnsToPivot = [];\n this.pinned = pinned;\n }\n /** Callback for when drag enters */\n BodyDropPivotTarget.prototype.onDragEnter = function (draggingEvent) {\n var _this = this;\n this.clearColumnsList();\n // in pivot mode, we don't accept any drops if functions are read only\n if (this.gridOptionsWrapper.isFunctionsReadOnly()) {\n return;\n }\n var dragColumns = draggingEvent.dragItem.columns;\n if (!dragColumns) {\n return;\n }\n dragColumns.forEach(function (column) {\n // we don't allow adding secondary columns\n if (!column.isPrimary()) {\n return;\n }\n if (column.isAnyFunctionActive()) {\n return;\n }\n if (column.isAllowValue()) {\n _this.columnsToAggregate.push(column);\n }\n else if (column.isAllowRowGroup()) {\n _this.columnsToGroup.push(column);\n }\n else if (column.isAllowPivot()) {\n _this.columnsToPivot.push(column);\n }\n });\n };\n BodyDropPivotTarget.prototype.getIconName = function () {\n var totalColumns = this.columnsToAggregate.length + this.columnsToGroup.length + this.columnsToPivot.length;\n if (totalColumns > 0) {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n }\n return null;\n };\n /** Callback for when drag leaves */\n BodyDropPivotTarget.prototype.onDragLeave = function (draggingEvent) {\n // if we are taking columns out of the center, then we remove them from the report\n this.clearColumnsList();\n };\n BodyDropPivotTarget.prototype.clearColumnsList = function () {\n this.columnsToAggregate.length = 0;\n this.columnsToGroup.length = 0;\n this.columnsToPivot.length = 0;\n };\n /** Callback for when dragging */\n BodyDropPivotTarget.prototype.onDragging = function (draggingEvent) {\n };\n /** Callback for when drag stops */\n BodyDropPivotTarget.prototype.onDragStop = function (draggingEvent) {\n if (this.columnsToAggregate.length > 0) {\n this.columnController.addValueColumns(this.columnsToAggregate, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToGroup.length > 0) {\n this.columnController.addRowGroupColumns(this.columnsToGroup, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToPivot.length > 0) {\n this.columnController.addPivotColumns(this.columnsToPivot, \"toolPanelDragAndDrop\");\n }\n };\n __decorate$P([\n Autowired('columnController')\n ], BodyDropPivotTarget.prototype, \"columnController\", void 0);\n __decorate$P([\n Autowired('gridOptionsWrapper')\n ], BodyDropPivotTarget.prototype, \"gridOptionsWrapper\", void 0);\n return BodyDropPivotTarget;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$X = (undefined && undefined.__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$Q = (undefined && undefined.__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 DropType;\n(function (DropType) {\n DropType[DropType[\"ColumnMove\"] = 0] = \"ColumnMove\";\n DropType[DropType[\"Pivot\"] = 1] = \"Pivot\";\n})(DropType || (DropType = {}));\nvar BodyDropTarget = /** @class */ (function (_super) {\n __extends$X(BodyDropTarget, _super);\n function BodyDropTarget(pinned, eContainer) {\n var _this = _super.call(this) || this;\n _this.dropListeners = {};\n _this.pinned = pinned;\n _this.eContainer = eContainer;\n return _this;\n }\n BodyDropTarget.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function (p) {\n var containers;\n switch (_this.pinned) {\n case Constants.PINNED_LEFT:\n containers = [p.leftRowContainerCon, p.bottomLeftRowContainerCon, p.topLeftRowContainerCon];\n break;\n case Constants.PINNED_RIGHT:\n containers = [p.rightRowContainerCon, p.bottomRightRowContainerCon, p.topRightRowContainerCon];\n break;\n default:\n containers = [p.centerRowContainerCon, p.bottomCenterRowContainerCon, p.topCenterRowContainerCon];\n break;\n }\n _this.eSecondaryContainers = containers.map(function (c) { return c.getContainerElement(); });\n });\n };\n BodyDropTarget.prototype.isInterestedIn = function (type) {\n return type === exports.DragSourceType.HeaderCell ||\n (type === exports.DragSourceType.ToolPanel && this.gridOptionsWrapper.isAllowDragFromColumnsToolPanel());\n };\n BodyDropTarget.prototype.getSecondaryContainers = function () {\n return this.eSecondaryContainers;\n };\n BodyDropTarget.prototype.getContainer = function () {\n return this.eContainer;\n };\n BodyDropTarget.prototype.init = function () {\n this.moveColumnController = this.createBean(new MoveColumnController(this.pinned, this.eContainer));\n var bodyDropPivotTarget = new BodyDropPivotTarget(this.pinned);\n this.createBean(bodyDropPivotTarget);\n this.dropListeners[DropType.ColumnMove] = this.moveColumnController;\n this.dropListeners[DropType.Pivot] = bodyDropPivotTarget;\n this.dragAndDropService.addDropTarget(this);\n };\n BodyDropTarget.prototype.getIconName = function () {\n return this.currentDropListener.getIconName();\n };\n // we want to use the bodyPivotTarget if the user is dragging columns in from the toolPanel\n // and we are in pivot mode, as it has to logic to set pivot/value/group on the columns when\n // dropped into the grid's body.\n BodyDropTarget.prototype.getDropType = function (draggingEvent) {\n if (this.columnController.isPivotMode()) {\n // in pivot mode, then if moving a column (ie didn't come from toolpanel) then it's\n // a standard column move, however if it came from the toolpanel, then we are introducing\n // dimensions or values to the grid\n if (draggingEvent.dragSource.type === exports.DragSourceType.ToolPanel) {\n return DropType.Pivot;\n }\n return DropType.ColumnMove;\n }\n // it's a column, and not pivot mode, so always moving\n return DropType.ColumnMove;\n };\n BodyDropTarget.prototype.onDragEnter = function (draggingEvent) {\n // we pick the drop listener depending on whether we are in pivot mode are not. if we are\n // in pivot mode, then dropping cols changes the row group, pivot, value stats. otherwise\n // we change visibility state and position.\n // if (this.columnController.isPivotMode()) {\n var dropType = this.getDropType(draggingEvent);\n this.currentDropListener = this.dropListeners[dropType];\n this.currentDropListener.onDragEnter(draggingEvent);\n };\n BodyDropTarget.prototype.onDragLeave = function (params) {\n this.currentDropListener.onDragLeave(params);\n };\n BodyDropTarget.prototype.onDragging = function (params) {\n this.currentDropListener.onDragging(params);\n };\n BodyDropTarget.prototype.onDragStop = function (params) {\n this.currentDropListener.onDragStop(params);\n };\n __decorate$Q([\n Autowired('dragAndDropService')\n ], BodyDropTarget.prototype, \"dragAndDropService\", void 0);\n __decorate$Q([\n Autowired('columnController')\n ], BodyDropTarget.prototype, \"columnController\", void 0);\n __decorate$Q([\n Autowired('controllersService')\n ], BodyDropTarget.prototype, \"controllersService\", void 0);\n __decorate$Q([\n PostConstruct\n ], BodyDropTarget.prototype, \"postConstruct\", null);\n __decorate$Q([\n PostConstruct\n ], BodyDropTarget.prototype, \"init\", null);\n return BodyDropTarget;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Y = (undefined && undefined.__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$R = (undefined && undefined.__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 HeaderContainer = /** @class */ (function (_super) {\n __extends$Y(HeaderContainer, _super);\n function HeaderContainer(eContainer, eViewport, pinned) {\n var _this = _super.call(this) || this;\n _this.groupsRowComps = [];\n _this.eContainer = eContainer;\n _this.pinned = pinned;\n _this.eViewport = eViewport;\n return _this;\n }\n HeaderContainer.prototype.forEachHeaderElement = function (callback) {\n if (this.groupsRowComps) {\n this.groupsRowComps.forEach(function (c) { return c.forEachHeaderElement(callback); });\n }\n if (this.columnsRowComp) {\n this.columnsRowComp.forEachHeaderElement(callback);\n }\n if (this.filtersRowComp) {\n this.filtersRowComp.forEachHeaderElement(callback);\n }\n };\n HeaderContainer.prototype.init = function () {\n // if value changes, then if not pivoting, we at least need to change the label eg from sum() to avg(),\n // if pivoting, then the columns have changed\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));\n this.setupDragAndDrop();\n };\n HeaderContainer.prototype.onColumnResized = function () {\n this.setWidthOfPinnedContainer();\n };\n HeaderContainer.prototype.onDisplayedColumnsChanged = function () {\n this.setWidthOfPinnedContainer();\n };\n HeaderContainer.prototype.onScrollVisibilityChanged = function () {\n this.setWidthOfPinnedContainer();\n };\n HeaderContainer.prototype.onScrollbarWidthChanged = function () {\n this.setWidthOfPinnedContainer();\n };\n HeaderContainer.prototype.setWidthOfPinnedContainer = function () {\n var pinningLeft = this.pinned === Constants.PINNED_LEFT;\n var pinningRight = this.pinned === Constants.PINNED_RIGHT;\n var controller = this.columnController;\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n if (pinningLeft || pinningRight) {\n // size to fit all columns\n var width = controller[pinningLeft ? 'getDisplayedColumnsLeftWidth' : 'getDisplayedColumnsRightWidth']();\n // if there is a scroll showing (and taking up space, so Windows, and not iOS)\n // in the body, then we add extra space to keep header aligned with the body,\n // as body width fits the cols and the scrollbar\n var addPaddingForScrollbar = this.scrollVisibleService.isVerticalScrollShowing() && ((isRtl && pinningLeft) || (!isRtl && pinningRight));\n if (addPaddingForScrollbar) {\n width += scrollbarWidth;\n }\n setFixedWidth(this.eContainer, width);\n }\n };\n HeaderContainer.prototype.getRowComps = function () {\n var res = [];\n if (this.groupsRowComps) {\n res = res.concat(this.groupsRowComps);\n }\n if (this.columnsRowComp) {\n res.push(this.columnsRowComp);\n }\n if (this.filtersRowComp) {\n res.push(this.filtersRowComp);\n }\n return res;\n };\n // grid cols have changed - this also means the number of rows in the header can have\n // changed. so we remove all the old rows and insert new ones for a complete refresh\n HeaderContainer.prototype.onGridColumnsChanged = function () {\n this.refresh(true);\n };\n // we expose this for gridOptions.api.refreshHeader() to call\n HeaderContainer.prototype.refresh = function (keepColumns) {\n if (keepColumns === void 0) { keepColumns = false; }\n this.refreshRowComps(keepColumns);\n };\n HeaderContainer.prototype.setupDragAndDrop = function () {\n // center section has viewport, but pinned sections do not\n var dropContainer = this.eViewport ? this.eViewport : this.eContainer;\n var bodyDropTarget = new BodyDropTarget(this.pinned, dropContainer);\n this.createManagedBean(bodyDropTarget);\n };\n HeaderContainer.prototype.destroyRowComps = function (keepColumns) {\n if (keepColumns === void 0) { keepColumns = false; }\n this.groupsRowComps.forEach(this.destroyRowComp.bind(this));\n this.groupsRowComps = [];\n this.destroyRowComp(this.filtersRowComp);\n this.filtersRowComp = undefined;\n if (!keepColumns) {\n this.destroyRowComp(this.columnsRowComp);\n this.columnsRowComp = undefined;\n }\n };\n HeaderContainer.prototype.destroyRowComp = function (rowComp) {\n if (rowComp) {\n this.destroyBean(rowComp);\n this.eContainer.removeChild(rowComp.getGui());\n }\n };\n HeaderContainer.prototype.refreshRowComps = function (keepColumns) {\n var _this = this;\n if (keepColumns === void 0) { keepColumns = false; }\n var sequence = new NumberSequence();\n var refreshColumnGroups = function () {\n var groupRowCount = _this.columnController.getHeaderRowCount() - 1;\n _this.groupsRowComps.forEach(_this.destroyRowComp.bind(_this));\n _this.groupsRowComps = [];\n for (var i = 0; i < groupRowCount; i++) {\n var rowComp = _this.createBean(new HeaderRowComp(sequence.next(), HeaderRowType.COLUMN_GROUP, _this.pinned));\n _this.groupsRowComps.push(rowComp);\n }\n };\n var refreshColumns = function () {\n var rowIndex = sequence.next();\n if (_this.columnsRowComp) {\n var rowIndexMismatch = _this.columnsRowComp.getRowIndex() !== rowIndex;\n if (!keepColumns || rowIndexMismatch) {\n _this.destroyRowComp(_this.columnsRowComp);\n _this.columnsRowComp = undefined;\n }\n }\n if (!_this.columnsRowComp) {\n _this.columnsRowComp = _this.createBean(new HeaderRowComp(rowIndex, HeaderRowType.COLUMN, _this.pinned));\n }\n };\n var refreshFilters = function () {\n var includeFloatingFilter = !_this.columnController.isPivotMode() && _this.columnController.hasFloatingFilters();\n var destroyPreviousComp = function () {\n _this.destroyRowComp(_this.filtersRowComp);\n _this.filtersRowComp = undefined;\n };\n if (!includeFloatingFilter) {\n destroyPreviousComp();\n return;\n }\n var rowIndex = sequence.next();\n if (_this.filtersRowComp) {\n var rowIndexMismatch = _this.filtersRowComp.getRowIndex() !== rowIndex;\n if (!keepColumns || rowIndexMismatch) {\n destroyPreviousComp();\n }\n }\n if (!_this.filtersRowComp) {\n _this.filtersRowComp = _this.createBean(new HeaderRowComp(rowIndex, HeaderRowType.FLOATING_FILTER, _this.pinned));\n }\n };\n refreshColumnGroups();\n refreshColumns();\n refreshFilters();\n // this re-adds the this.columnsRowComp, which is fine, it just means the DOM will rearrange then,\n // taking it out of the last position and re-inserting relative to the other rows.\n this.getRowComps().forEach(function (rowComp) { return _this.eContainer.appendChild(rowComp.getGui()); });\n };\n __decorate$R([\n Autowired('columnController')\n ], HeaderContainer.prototype, \"columnController\", void 0);\n __decorate$R([\n Autowired('scrollVisibleService')\n ], HeaderContainer.prototype, \"scrollVisibleService\", void 0);\n __decorate$R([\n PostConstruct\n ], HeaderContainer.prototype, \"init\", null);\n __decorate$R([\n PreDestroy\n ], HeaderContainer.prototype, \"destroyRowComps\", null);\n return HeaderContainer;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$Z = (undefined && undefined.__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$S = (undefined && undefined.__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};\n(function (HeaderNavigationDirection) {\n HeaderNavigationDirection[HeaderNavigationDirection[\"UP\"] = 0] = \"UP\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"DOWN\"] = 1] = \"DOWN\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"LEFT\"] = 2] = \"LEFT\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"RIGHT\"] = 3] = \"RIGHT\";\n})(exports.HeaderNavigationDirection || (exports.HeaderNavigationDirection = {}));\nvar HeaderNavigationService = /** @class */ (function (_super) {\n __extends$Z(HeaderNavigationService, _super);\n function HeaderNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderNavigationService.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function (p) {\n _this.gridBodyCon = p.gridBodyCon;\n });\n };\n HeaderNavigationService.prototype.registerHeaderRoot = function (headerRoot) {\n this.headerRoot = headerRoot;\n };\n HeaderNavigationService.prototype.getHeaderRowCount = function () {\n var headerContainers = this.headerRoot.getHeaderContainers();\n return headerContainers.size === 0 ? 0 : this.getHeaderContainer().getRowComps().length;\n };\n HeaderNavigationService.prototype.getHeaderRowType = function (idx) {\n if (this.getHeaderRowCount()) {\n return this.getHeaderContainer().getRowComps()[idx].getType();\n }\n };\n HeaderNavigationService.prototype.getHeaderContainer = function (position) {\n if (position === void 0) { position = 'center'; }\n if (position === null) {\n position = 'center';\n }\n return this.headerRoot.getHeaderContainers().get(position);\n };\n /*\n * This method navigates grid header vertically\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n HeaderNavigationService.prototype.navigateVertically = function (direction, fromHeader, event) {\n if (!fromHeader) {\n fromHeader = this.focusController.getFocusedHeader();\n }\n if (!fromHeader) {\n return false;\n }\n var headerRowIndex = fromHeader.headerRowIndex, column = fromHeader.column;\n var rowLen = this.getHeaderRowCount();\n var isUp = direction === exports.HeaderNavigationDirection.UP;\n var nextRow = isUp ? headerRowIndex - 1 : headerRowIndex + 1;\n var nextFocusColumn = null;\n var skipColumn = false;\n if (nextRow < 0) {\n nextRow = 0;\n nextFocusColumn = column;\n skipColumn = true;\n }\n if (nextRow >= rowLen) {\n nextRow = -1; // -1 indicates the focus should move to grid rows.\n }\n var currentRowType = this.getHeaderRowType(headerRowIndex);\n if (!skipColumn) {\n if (currentRowType === HeaderRowType.COLUMN_GROUP) {\n var currentColumn = column;\n nextFocusColumn = isUp ? column.getParent() : currentColumn.getDisplayedChildren()[0];\n }\n else if (currentRowType === HeaderRowType.FLOATING_FILTER) {\n nextFocusColumn = column;\n }\n else {\n var currentColumn = column;\n nextFocusColumn = isUp ? currentColumn.getParent() : currentColumn;\n }\n if (!nextFocusColumn) {\n return false;\n }\n }\n return this.focusController.focusHeaderPosition({ headerRowIndex: nextRow, column: nextFocusColumn }, undefined, false, true, event);\n };\n /*\n * This method navigates grid header horizontally\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n HeaderNavigationService.prototype.navigateHorizontally = function (direction, fromTab, event) {\n if (fromTab === void 0) { fromTab = false; }\n var focusedHeader = this.focusController.getFocusedHeader();\n var isLeft = direction === exports.HeaderNavigationDirection.LEFT;\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var nextHeader;\n var normalisedDirection;\n // either navigating to the left or isRtl (cannot be both)\n if (isLeft !== isRtl) {\n normalisedDirection = 'Before';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n else {\n normalisedDirection = 'After';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n if (nextHeader) {\n return this.focusController.focusHeaderPosition(nextHeader, normalisedDirection, fromTab, true, event);\n }\n if (!fromTab) {\n return true;\n }\n return this.focusNextHeaderRow(focusedHeader, normalisedDirection, event);\n };\n HeaderNavigationService.prototype.focusNextHeaderRow = function (focusedHeader, direction, event) {\n var currentIndex = focusedHeader.headerRowIndex;\n var nextPosition = null;\n var nextRowIndex;\n if (direction === 'Before') {\n if (currentIndex > 0) {\n nextRowIndex = currentIndex - 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'end');\n }\n }\n else {\n nextRowIndex = currentIndex + 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'start');\n }\n return this.focusController.focusHeaderPosition(nextPosition, direction, true, true, event);\n };\n HeaderNavigationService.prototype.scrollToColumn = function (column, direction) {\n if (direction === void 0) { direction = 'After'; }\n if (column.getPinned()) {\n return;\n }\n var columnToScrollTo;\n if (column instanceof ColumnGroup) {\n var columns = column.getDisplayedLeafColumns();\n columnToScrollTo = direction === 'Before' ? last(columns) : columns[0];\n }\n else {\n columnToScrollTo = column;\n }\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(columnToScrollTo);\n // need to nudge the scrolls for the floating items. otherwise when we set focus on a non-visible\n // floating cell, the scrolls get out of sync\n this.gridBodyCon.getScrollFeature().horizontallyScrollHeaderCenterAndFloatingCenter();\n // need to flush frames, to make sure the correct cells are rendered\n this.animationFrameService.flushAllFrames();\n };\n __decorate$S([\n Autowired('focusController')\n ], HeaderNavigationService.prototype, \"focusController\", void 0);\n __decorate$S([\n Autowired('headerPositionUtils')\n ], HeaderNavigationService.prototype, \"headerPositionUtils\", void 0);\n __decorate$S([\n Autowired('animationFrameService')\n ], HeaderNavigationService.prototype, \"animationFrameService\", void 0);\n __decorate$S([\n Autowired('controllersService')\n ], HeaderNavigationService.prototype, \"controllersService\", void 0);\n __decorate$S([\n PostConstruct\n ], HeaderNavigationService.prototype, \"postConstruct\", null);\n HeaderNavigationService = __decorate$S([\n Bean('headerNavigationService')\n ], HeaderNavigationService);\n return HeaderNavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar KeyName = /** @class */ (function () {\n function KeyName() {\n }\n KeyName.BACKSPACE = 'Backspace';\n KeyName.TAB = 'Tab';\n KeyName.ENTER = 'Enter';\n KeyName.SHIFT = 'Shift';\n KeyName.ESCAPE = 'Escape';\n KeyName.SPACE = ' ';\n KeyName.LEFT = 'ArrowLeft';\n KeyName.UP = 'ArrowUp';\n KeyName.RIGHT = 'ArrowRight';\n KeyName.DOWN = 'ArrowDown';\n KeyName.DELETE = 'Delete';\n // IE11 & Edge treat the numpad del key differently - with numlock on we get \"Del\" for key\n KeyName.NUM_PAD_DELETE = 'Del';\n KeyName.A = 'a';\n KeyName.C = 'c';\n KeyName.V = 'v';\n KeyName.D = 'd';\n KeyName.Z = 'z';\n KeyName.Y = 'y';\n KeyName.F2 = 'F2';\n KeyName.PAGE_UP = 'PageUp';\n KeyName.PAGE_DOWN = 'PageDown';\n KeyName.PAGE_HOME = 'Home';\n KeyName.PAGE_END = 'End';\n return KeyName;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$_ = (undefined && undefined.__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$T = (undefined && undefined.__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 CenterWidthFeature = /** @class */ (function (_super) {\n __extends$_(CenterWidthFeature, _super);\n function CenterWidthFeature(callback) {\n var _this = _super.call(this) || this;\n _this.callback = callback;\n return _this;\n }\n CenterWidthFeature.prototype.postConstruct = function () {\n var listener = this.setWidth.bind(this);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.setWidth();\n };\n CenterWidthFeature.prototype.setWidth = function () {\n var columnController = this.columnController;\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var centerWidth = columnController.getBodyContainerWidth();\n var leftWidth = columnController.getDisplayedColumnsLeftWidth();\n var rightWidth = columnController.getDisplayedColumnsRightWidth();\n var totalWidth = printLayout ? centerWidth + leftWidth + rightWidth : centerWidth;\n this.callback(totalWidth);\n };\n __decorate$T([\n Autowired('columnController')\n ], CenterWidthFeature.prototype, \"columnController\", void 0);\n __decorate$T([\n PostConstruct\n ], CenterWidthFeature.prototype, \"postConstruct\", null);\n return CenterWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$$ = (undefined && undefined.__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$U = (undefined && undefined.__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 HeaderRootComp = /** @class */ (function (_super) {\n __extends$$(HeaderRootComp, _super);\n function HeaderRootComp() {\n var _this = _super.call(this, HeaderRootComp.TEMPLATE) || this;\n _this.headerContainers = new Map();\n return _this;\n }\n HeaderRootComp.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n this.gridApi.registerHeaderRootComp(this);\n this.autoWidthCalculator.registerHeaderRootComp(this);\n this.registerHeaderContainer(new HeaderContainer(this.eHeaderContainer, this.eHeaderViewport, null), 'center');\n this.registerHeaderContainer(new HeaderContainer(this.ePinnedLeftHeader, null, Constants.PINNED_LEFT), 'left');\n this.registerHeaderContainer(new HeaderContainer(this.ePinnedRightHeader, null, Constants.PINNED_RIGHT), 'right');\n this.headerContainers.forEach(function (container) { return _this.createManagedBean(container); });\n this.headerNavigationService.registerHeaderRoot(this);\n // shotgun way to get labels to change, eg from sum(amount) to avg(amount)\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.onDomLayoutChanged.bind(this));\n // for setting ag-pivot-on / ag-pivot-off CSS classes\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));\n this.onPivotModeChanged();\n this.addPreventHeaderScroll();\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.eHeaderContainer.style.width = width + \"px\"; }));\n if (this.columnController.isReady()) {\n this.refreshHeader();\n }\n this.setupHeaderHeight();\n this.controllersService.registerHeaderRootComp(this);\n };\n HeaderRootComp.prototype.setupHeaderHeight = function () {\n var listener = this.setHeaderHeight.bind(this);\n listener();\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n };\n HeaderRootComp.prototype.registerHeaderContainer = function (headerContainer, type) {\n this.headerContainers.set(type, headerContainer);\n };\n HeaderRootComp.prototype.onTabKeyDown = function (e) {\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n var direction = e.shiftKey !== isRtl\n ? exports.HeaderNavigationDirection.LEFT\n : exports.HeaderNavigationDirection.RIGHT;\n if (this.headerNavigationService.navigateHorizontally(direction, true, e) ||\n this.focusController.focusNextGridCoreContainer(e.shiftKey)) {\n e.preventDefault();\n }\n };\n HeaderRootComp.prototype.handleKeyDown = function (e) {\n var direction = null;\n switch (e.key) {\n case KeyName.LEFT:\n direction = exports.HeaderNavigationDirection.LEFT;\n case KeyName.RIGHT:\n if (!exists(direction)) {\n direction = exports.HeaderNavigationDirection.RIGHT;\n }\n this.headerNavigationService.navigateHorizontally(direction, false, e);\n break;\n case KeyName.UP:\n direction = exports.HeaderNavigationDirection.UP;\n case KeyName.DOWN:\n if (!exists(direction)) {\n direction = exports.HeaderNavigationDirection.DOWN;\n }\n if (this.headerNavigationService.navigateVertically(direction, null, e)) {\n e.preventDefault();\n }\n break;\n default:\n return;\n }\n };\n HeaderRootComp.prototype.onFocusOut = function (e) {\n var relatedTarget = e.relatedTarget;\n var eGui = this.getGui();\n if (!relatedTarget && eGui.contains(document.activeElement)) {\n return;\n }\n if (!eGui.contains(relatedTarget)) {\n this.focusController.clearFocusedHeader();\n }\n };\n HeaderRootComp.prototype.onDomLayoutChanged = function () {\n var newValue = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n if (this.printLayout !== newValue) {\n this.printLayout = newValue;\n this.refreshHeader();\n }\n };\n HeaderRootComp.prototype.setHorizontalScroll = function (offset) {\n this.eHeaderContainer.style.transform = \"translateX(\" + offset + \"px)\";\n };\n HeaderRootComp.prototype.forEachHeaderElement = function (callback) {\n this.headerContainers.forEach(function (childContainer) { return childContainer.forEachHeaderElement(callback); });\n };\n HeaderRootComp.prototype.refreshHeader = function () {\n this.headerContainers.forEach(function (container) { return container.refresh(); });\n };\n HeaderRootComp.prototype.onPivotModeChanged = function () {\n var pivotMode = this.columnController.isPivotMode();\n addOrRemoveCssClass(this.getGui(), 'ag-pivot-on', pivotMode);\n addOrRemoveCssClass(this.getGui(), 'ag-pivot-off', !pivotMode);\n };\n HeaderRootComp.prototype.setHeaderHeight = function () {\n var _a = this, columnController = _a.columnController, gridOptionsWrapper = _a.gridOptionsWrapper;\n var numberOfFloating = 0;\n var headerRowCount = columnController.getHeaderRowCount();\n var totalHeaderHeight;\n var groupHeight;\n var headerHeight;\n if (columnController.isPivotMode()) {\n groupHeight = gridOptionsWrapper.getPivotGroupHeaderHeight();\n headerHeight = gridOptionsWrapper.getPivotHeaderHeight();\n }\n else {\n var hasFloatingFilters = columnController.hasFloatingFilters();\n if (hasFloatingFilters) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n groupHeight = gridOptionsWrapper.getGroupHeaderHeight();\n headerHeight = gridOptionsWrapper.getHeaderHeight();\n }\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n totalHeaderHeight = numberOfFloating * gridOptionsWrapper.getFloatingFiltersHeight();\n totalHeaderHeight += numberOfGroups * groupHeight;\n totalHeaderHeight += headerHeight;\n // one extra pixel is needed here to account for the\n // height of the border\n var px = totalHeaderHeight + 1 + \"px\";\n this.getGui().style.height = px;\n this.getGui().style.minHeight = px;\n };\n // if the user is in floating filter and hits tab a few times, the header can\n // end up scrolling to show items off the screen, leaving the grid and header\n // and the grid columns no longer in sync.\n HeaderRootComp.prototype.addPreventHeaderScroll = function () {\n var _this = this;\n this.addManagedListener(this.eHeaderViewport, 'scroll', function () {\n // if the header scrolls, the header will be out of sync. so we reset the\n // header scroll, and then scroll the body, which will in turn set the offset\n // on the header, giving the impression that the header scrolled as expected.\n var scrollLeft = _this.eHeaderViewport.scrollLeft;\n if (scrollLeft !== 0) {\n var gridBodyCon = _this.controllersService.getGridBodyController();\n gridBodyCon.getScrollFeature().scrollHorizontally(scrollLeft);\n _this.eHeaderViewport.scrollLeft = 0;\n }\n });\n };\n HeaderRootComp.prototype.getHeaderContainers = function () {\n return this.headerContainers;\n };\n HeaderRootComp.prototype.onPinnedLeftWidthChanged = function () {\n var displayed = this.pinnedWidthService.getPinnedLeftWidth() > 0;\n setDisplayed(this.ePinnedLeftHeader, displayed);\n };\n HeaderRootComp.prototype.onPinnedRightWidthChanged = function () {\n var displayed = this.pinnedWidthService.getPinnedRightWidth() > 0;\n setDisplayed(this.ePinnedRightHeader, displayed);\n };\n HeaderRootComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$U([\n RefSelector('ePinnedLeftHeader')\n ], HeaderRootComp.prototype, \"ePinnedLeftHeader\", void 0);\n __decorate$U([\n RefSelector('ePinnedRightHeader')\n ], HeaderRootComp.prototype, \"ePinnedRightHeader\", void 0);\n __decorate$U([\n RefSelector('eHeaderContainer')\n ], HeaderRootComp.prototype, \"eHeaderContainer\", void 0);\n __decorate$U([\n RefSelector('eHeaderViewport')\n ], HeaderRootComp.prototype, \"eHeaderViewport\", void 0);\n __decorate$U([\n Autowired('columnController')\n ], HeaderRootComp.prototype, \"columnController\", void 0);\n __decorate$U([\n Autowired('gridApi')\n ], HeaderRootComp.prototype, \"gridApi\", void 0);\n __decorate$U([\n Autowired('autoWidthCalculator')\n ], HeaderRootComp.prototype, \"autoWidthCalculator\", void 0);\n __decorate$U([\n Autowired('headerNavigationService')\n ], HeaderRootComp.prototype, \"headerNavigationService\", void 0);\n __decorate$U([\n Autowired('pinnedWidthService')\n ], HeaderRootComp.prototype, \"pinnedWidthService\", void 0);\n __decorate$U([\n Autowired('controllersService')\n ], HeaderRootComp.prototype, \"controllersService\", void 0);\n return HeaderRootComp;\n}(ManagedFocusComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$10 = (undefined && undefined.__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 __assign$6 = (undefined && undefined.__assign) || function () {\n __assign$6 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$6.apply(this, arguments);\n};\nvar __decorate$V = (undefined && undefined.__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 FilterManager = /** @class */ (function (_super) {\n __extends$10(FilterManager, _super);\n function FilterManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.allAdvancedFilters = new Map();\n _this.activeAdvancedFilters = [];\n _this.quickFilter = null;\n _this.quickFilterParts = null;\n // this is true when the grid is processing the filter change. this is used by the cell comps, so that they\n // don't flash when data changes due to filter changes. there is no need to flash when filter changes as the\n // user is in control, so doesn't make sense to show flashing changes. for example, go to main demo where\n // this feature is turned off (hack code to always return false for isSuppressFlashingCellsBecauseFiltering(), put in)\n // 100,000 rows and group by country. then do some filtering. all the cells flash, which is silly.\n _this.processingFilterChange = false;\n return _this;\n }\n FilterManager_1 = FilterManager;\n FilterManager.prototype.init = function () {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_CHANGED, this.onNewRowsLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n this.quickFilter = this.parseQuickFilter(this.gridOptionsWrapper.getQuickFilterText());\n this.setQuickFilterParts();\n this.allowShowChangeAfterFilter = this.gridOptionsWrapper.isAllowShowChangeAfterFilter();\n };\n FilterManager.prototype.setQuickFilterParts = function () {\n this.quickFilterParts = this.quickFilter ? this.quickFilter.split(' ') : null;\n };\n FilterManager.prototype.setFilterModel = function (model) {\n var _this = this;\n var allPromises = [];\n if (model) {\n // mark the filters as we set them, so any active filters left over we stop\n var modelKeys_1 = convertToSet(Object.keys(model));\n this.allAdvancedFilters.forEach(function (filterWrapper, colId) {\n var newModel = model[colId];\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, newModel));\n modelKeys_1.delete(colId);\n });\n // at this point, processedFields contains data for which we don't have a filter working yet\n modelKeys_1.forEach(function (colId) {\n var column = _this.columnController.getPrimaryColumn(colId);\n if (!column) {\n console.warn('Warning ag-grid setFilterModel - no column found for colId ' + colId);\n return;\n }\n var filterWrapper = _this.getOrCreateFilterWrapper(column, 'NO_UI');\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, model[colId]));\n });\n }\n else {\n this.allAdvancedFilters.forEach(function (filterWrapper) {\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, null));\n });\n }\n AgPromise.all(allPromises).then(function () { return _this.onFilterChanged(); });\n };\n FilterManager.prototype.setModelOnFilterWrapper = function (filterPromise, newModel) {\n return new AgPromise(function (resolve) {\n filterPromise.then(function (filter) {\n if (typeof filter.setModel !== 'function') {\n console.warn('Warning ag-grid - filter missing setModel method, which is needed for setFilterModel');\n resolve();\n }\n (filter.setModel(newModel) || AgPromise.resolve()).then(function () { return resolve(); });\n });\n });\n };\n FilterManager.prototype.getFilterModel = function () {\n var result = {};\n this.allAdvancedFilters.forEach(function (filterWrapper, key) {\n // because user can provide filters, we provide useful error checking and messages\n var filterPromise = filterWrapper.filterPromise;\n var filter = filterPromise.resolveNow(null, function (promiseFilter) { return promiseFilter; });\n if (filter == null) {\n return null;\n }\n if (typeof filter.getModel !== 'function') {\n console.warn('Warning ag-grid - filter API missing getModel method, which is needed for getFilterModel');\n return;\n }\n var model = filter.getModel();\n if (exists(model)) {\n result[key] = model;\n }\n });\n return result;\n };\n // returns true if any advanced filter (ie not quick filter) active\n FilterManager.prototype.isAdvancedFilterPresent = function () {\n return this.activeAdvancedFilters.length > 0;\n };\n // called by:\n // 1) onFilterChanged()\n // 2) onNewRowsLoaded()\n FilterManager.prototype.updateActiveFilters = function () {\n var _this = this;\n this.activeAdvancedFilters.length = 0;\n this.allAdvancedFilters.forEach(function (filterWrapper) {\n if (filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); })) {\n var resolvedPromise = filterWrapper.filterPromise.resolveNow(null, function (filter) { return filter; });\n _this.activeAdvancedFilters.push(resolvedPromise);\n }\n });\n };\n FilterManager.prototype.updateFilterFlagInColumns = function (source, additionalEventAttributes) {\n this.allAdvancedFilters.forEach(function (filterWrapper) {\n var isFilterActive = filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });\n filterWrapper.column.setFilterActive(isFilterActive, source, additionalEventAttributes);\n });\n };\n FilterManager.prototype.isAnyFilterPresent = function () {\n return this.isQuickFilterPresent() || this.isAdvancedFilterPresent() || this.gridOptionsWrapper.isExternalFilterPresent();\n };\n FilterManager.prototype.doAdvancedFiltersPass = function (node, filterToSkip) {\n var data = node.data;\n for (var i = 0; i < this.activeAdvancedFilters.length; i++) {\n var filter = this.activeAdvancedFilters[i];\n if (filter == null || filter === filterToSkip) {\n continue;\n }\n if (typeof filter.doesFilterPass !== 'function') {\n // because users can do custom filters, give nice error message\n throw new Error('Filter is missing method doesFilterPass');\n }\n if (!filter.doesFilterPass({ node: node, data: data })) {\n return false;\n }\n }\n return true;\n };\n FilterManager.prototype.parseQuickFilter = function (newFilter) {\n if (!exists(newFilter)) {\n return null;\n }\n if (!this.gridOptionsWrapper.isRowModelDefault()) {\n console.warn('ag-grid: quick filtering only works with the Client-Side Row Model');\n return null;\n }\n return newFilter.toUpperCase();\n };\n FilterManager.prototype.setQuickFilter = function (newFilter) {\n var parsedFilter = this.parseQuickFilter(newFilter);\n if (this.quickFilter !== parsedFilter) {\n this.quickFilter = parsedFilter;\n this.setQuickFilterParts();\n this.onFilterChanged();\n }\n };\n FilterManager.prototype.onFilterChanged = function (filterInstance, additionalEventAttributes) {\n this.updateActiveFilters();\n this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);\n this.allAdvancedFilters.forEach(function (filterWrapper) {\n filterWrapper.filterPromise.then(function (filter) {\n if (filter !== filterInstance && filter.onAnyFilterChanged) {\n filter.onAnyFilterChanged();\n }\n });\n });\n var filterChangedEvent = {\n type: Events.EVENT_FILTER_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n // because internal events are not async in ag-grid, when the dispatchEvent\n // method comes back, we know all listeners have finished executing.\n this.processingFilterChange = true;\n this.eventService.dispatchEvent(filterChangedEvent);\n this.processingFilterChange = false;\n };\n FilterManager.prototype.isSuppressFlashingCellsBecauseFiltering = function () {\n // if user has elected to always flash cell changes, then always return false, otherwise we suppress flashing\n // changes when filtering\n return !this.allowShowChangeAfterFilter && this.processingFilterChange;\n };\n FilterManager.prototype.isQuickFilterPresent = function () {\n return this.quickFilter !== null;\n };\n FilterManager.prototype.doesRowPassOtherFilters = function (filterToSkip, node) {\n return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });\n };\n FilterManager.prototype.doesRowPassQuickFilterNoCache = function (node, filterPart) {\n var _this = this;\n var columns = this.columnController.getAllColumnsForQuickFilter();\n return some(columns, function (column) {\n var part = _this.getQuickFilterTextForColumn(column, node);\n return exists(part) && part.indexOf(filterPart) >= 0;\n });\n };\n FilterManager.prototype.doesRowPassQuickFilterCache = function (node, filterPart) {\n if (!node.quickFilterAggregateText) {\n this.aggregateRowForQuickFilter(node);\n }\n return node.quickFilterAggregateText.indexOf(filterPart) >= 0;\n };\n FilterManager.prototype.doesRowPassQuickFilter = function (node) {\n var _this = this;\n var usingCache = this.gridOptionsWrapper.isCacheQuickFilter();\n // each part must pass, if any fails, then the whole filter fails\n return every(this.quickFilterParts, function (part) {\n return usingCache ? _this.doesRowPassQuickFilterCache(node, part) : _this.doesRowPassQuickFilterNoCache(node, part);\n });\n };\n FilterManager.prototype.doesRowPassFilter = function (params) {\n // the row must pass ALL of the filters, so if any of them fail,\n // we return true. that means if a row passes the quick filter,\n // but fails the column filter, it fails overall\n // first up, check quick filter\n if (this.isQuickFilterPresent() && !this.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\n // secondly, give the client a chance to reject this row\n if (this.gridOptionsWrapper.isExternalFilterPresent() && !this.gridOptionsWrapper.doesExternalFilterPass(params.rowNode)) {\n return false;\n }\n // lastly, check our internal advanced filter\n if (this.isAdvancedFilterPresent() && !this.doAdvancedFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n };\n FilterManager.prototype.getQuickFilterTextForColumn = function (column, node) {\n var value = this.valueService.getValue(column, node, true);\n var colDef = column.getColDef();\n if (colDef.getQuickFilterText) {\n var params = {\n value: value,\n node: node,\n data: node.data,\n column: column,\n colDef: colDef,\n context: this.gridOptionsWrapper.getContext()\n };\n value = colDef.getQuickFilterText(params);\n }\n return exists(value) ? value.toString().toUpperCase() : null;\n };\n FilterManager.prototype.aggregateRowForQuickFilter = function (node) {\n var _this = this;\n var stringParts = [];\n var columns = this.columnController.getAllColumnsForQuickFilter();\n forEach(columns, function (column) {\n var part = _this.getQuickFilterTextForColumn(column, node);\n if (exists(part)) {\n stringParts.push(part);\n }\n });\n node.quickFilterAggregateText = stringParts.join(FilterManager_1.QUICK_FILTER_SEPARATOR);\n };\n FilterManager.prototype.onNewRowsLoaded = function (source) {\n this.allAdvancedFilters.forEach(function (filterWrapper) {\n filterWrapper.filterPromise.then(function (filter) {\n if (filter.onNewRowsLoaded) {\n filter.onNewRowsLoaded();\n }\n });\n });\n this.updateFilterFlagInColumns(source);\n this.updateActiveFilters();\n };\n FilterManager.prototype.createValueGetter = function (column) {\n var _this = this;\n return function (node) { return _this.valueService.getValue(column, node, true); };\n };\n FilterManager.prototype.getFilterComponent = function (column, source, createIfDoesNotExist) {\n if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }\n if (createIfDoesNotExist) {\n return this.getOrCreateFilterWrapper(column, source).filterPromise;\n }\n var filterWrapper = this.cachedFilter(column);\n return filterWrapper ? filterWrapper.filterPromise : null;\n };\n FilterManager.prototype.isFilterActive = function (column) {\n var filterWrapper = this.cachedFilter(column);\n return !!filterWrapper && filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });\n };\n FilterManager.prototype.getOrCreateFilterWrapper = function (column, source) {\n var filterWrapper = this.cachedFilter(column);\n if (!filterWrapper) {\n filterWrapper = this.createFilterWrapper(column, source);\n this.allAdvancedFilters.set(column.getColId(), filterWrapper);\n }\n else if (source !== 'NO_UI') {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n };\n FilterManager.prototype.cachedFilter = function (column) {\n return this.allAdvancedFilters.get(column.getColId());\n };\n FilterManager.prototype.createFilterInstance = function (column, $scope) {\n var _this = this;\n var defaultFilter = ModuleRegistry.isRegistered(exports.ModuleNames.SetFilterModule) ? 'agSetColumnFilter' : 'agTextColumnFilter';\n var colDef = column.getColDef();\n var filterInstance;\n var params = __assign$6(__assign$6({}, this.createFilterParams(column, colDef, $scope)), { filterModifiedCallback: function () {\n var event = {\n type: Events.EVENT_FILTER_MODIFIED,\n api: _this.gridApi,\n columnApi: _this.columnApi,\n column: column,\n filterInstance: filterInstance\n };\n _this.eventService.dispatchEvent(event);\n }, filterChangedCallback: function (additionalEventAttributes) {\n return _this.onFilterChanged(filterInstance, additionalEventAttributes);\n }, doesRowPassOtherFilter: function (node) { return _this.doesRowPassOtherFilters(filterInstance, node); } });\n var res = this.userComponentFactory.newFilterComponent(colDef, params, defaultFilter);\n if (res) {\n res.then(function (r) { return filterInstance = r; });\n }\n return res;\n };\n FilterManager.prototype.createFilterParams = function (column, colDef, $scope) {\n if ($scope === void 0) { $scope = null; }\n var params = {\n api: this.gridOptionsWrapper.getApi(),\n column: column,\n colDef: cloneObject(colDef),\n rowModel: this.rowModel,\n filterChangedCallback: function () { },\n filterModifiedCallback: function () { },\n valueGetter: this.createValueGetter(column),\n context: this.gridOptionsWrapper.getContext(),\n doesRowPassOtherFilter: function () { return true; },\n };\n // hack in scope if using AngularJS\n if ($scope) {\n params.$scope = $scope;\n }\n return params;\n };\n FilterManager.prototype.createFilterWrapper = function (column, source) {\n var filterWrapper = {\n column: column,\n filterPromise: null,\n scope: null,\n compiledElement: null,\n guiPromise: AgPromise.resolve(null)\n };\n filterWrapper.scope = this.gridOptionsWrapper.isAngularCompileFilters() ? this.$scope.$new() : null;\n filterWrapper.filterPromise = this.createFilterInstance(column, filterWrapper.scope);\n if (filterWrapper.filterPromise) {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n };\n FilterManager.prototype.putIntoGui = function (filterWrapper, source) {\n var _this = this;\n var eFilterGui = document.createElement('div');\n eFilterGui.className = 'ag-filter';\n filterWrapper.guiPromise = new AgPromise(function (resolve) {\n filterWrapper.filterPromise.then(function (filter) {\n var guiFromFilter = filter.getGui();\n if (!exists(guiFromFilter)) {\n console.warn(\"getGui method from filter returned \" + guiFromFilter + \", it should be a DOM element or an HTML template string.\");\n }\n // for backwards compatibility with Angular 1 - we\n // used to allow providing back HTML from getGui().\n // once we move away from supporting Angular 1\n // directly, we can change this.\n if (typeof guiFromFilter === 'string') {\n guiFromFilter = loadTemplate(guiFromFilter);\n }\n eFilterGui.appendChild(guiFromFilter);\n if (filterWrapper.scope) {\n var compiledElement = _this.$compile(eFilterGui)(filterWrapper.scope);\n filterWrapper.compiledElement = compiledElement;\n window.setTimeout(function () { return filterWrapper.scope.$apply(); }, 0);\n }\n resolve(eFilterGui);\n _this.eventService.dispatchEvent({\n type: Events.EVENT_FILTER_OPENED,\n column: filterWrapper.column,\n source: source,\n eGui: eFilterGui,\n api: _this.gridApi,\n columnApi: _this.columnApi\n });\n });\n });\n };\n FilterManager.prototype.onNewColumnsLoaded = function () {\n var _this = this;\n var atLeastOneFilterGone = false;\n this.allAdvancedFilters.forEach(function (filterWrapper) {\n var oldColumn = !_this.columnController.getPrimaryColumn(filterWrapper.column);\n if (oldColumn) {\n atLeastOneFilterGone = true;\n _this.disposeFilterWrapper(filterWrapper, 'filterDestroyed');\n }\n });\n if (atLeastOneFilterGone) {\n this.onFilterChanged();\n }\n };\n // destroys the filter, so it not longer takes part\n FilterManager.prototype.destroyFilter = function (column, source) {\n if (source === void 0) { source = 'api'; }\n var filterWrapper = this.allAdvancedFilters.get(column.getColId());\n if (filterWrapper) {\n this.disposeFilterWrapper(filterWrapper, source);\n this.onFilterChanged();\n }\n };\n FilterManager.prototype.disposeFilterWrapper = function (filterWrapper, source) {\n var _this = this;\n filterWrapper.filterPromise.then(function (filter) {\n (filter.setModel(null) || AgPromise.resolve()).then(function () {\n _this.getContext().destroyBean(filter);\n filterWrapper.column.setFilterActive(false, source);\n if (filterWrapper.scope) {\n if (filterWrapper.compiledElement) {\n filterWrapper.compiledElement.remove();\n }\n filterWrapper.scope.$destroy();\n }\n _this.allAdvancedFilters.delete(filterWrapper.column.getColId());\n });\n });\n };\n FilterManager.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n this.allAdvancedFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'filterDestroyed'); });\n };\n var FilterManager_1;\n FilterManager.QUICK_FILTER_SEPARATOR = '\\n';\n __decorate$V([\n Autowired('$compile')\n ], FilterManager.prototype, \"$compile\", void 0);\n __decorate$V([\n Autowired('$scope')\n ], FilterManager.prototype, \"$scope\", void 0);\n __decorate$V([\n Autowired('valueService')\n ], FilterManager.prototype, \"valueService\", void 0);\n __decorate$V([\n Autowired('columnController')\n ], FilterManager.prototype, \"columnController\", void 0);\n __decorate$V([\n Autowired('rowModel')\n ], FilterManager.prototype, \"rowModel\", void 0);\n __decorate$V([\n Autowired('columnApi')\n ], FilterManager.prototype, \"columnApi\", void 0);\n __decorate$V([\n Autowired('gridApi')\n ], FilterManager.prototype, \"gridApi\", void 0);\n __decorate$V([\n Autowired('userComponentFactory')\n ], FilterManager.prototype, \"userComponentFactory\", void 0);\n __decorate$V([\n PostConstruct\n ], FilterManager.prototype, \"init\", null);\n __decorate$V([\n PreDestroy\n ], FilterManager.prototype, \"destroy\", null);\n FilterManager = FilterManager_1 = __decorate$V([\n Bean('filterManager')\n ], FilterManager);\n return FilterManager;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$11 = (undefined && undefined.__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$W = (undefined && undefined.__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 ValueService = /** @class */ (function (_super) {\n __extends$11(ValueService, _super);\n function ValueService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.initialised = false;\n return _this;\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 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 = 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 = 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 if (result == null) {\n var openedGroup = this.getOpenedGroup(rowNode, column);\n if (openedGroup != null) {\n return openedGroup;\n }\n }\n return result;\n };\n ValueService.prototype.getOpenedGroup = function (rowNode, column) {\n if (!this.gridOptionsWrapper.isShowOpenedGroup()) {\n return;\n }\n var colDef = column.getColDef();\n if (!colDef.showRowGroup) {\n return;\n }\n var showRowGroup = column.getColDef().showRowGroup;\n var pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && (showRowGroup === true || showRowGroup === pointer.rowGroupColumn.getId())) {\n return pointer.key;\n }\n pointer = pointer.parent;\n }\n return undefined;\n };\n ValueService.prototype.setValue = function (rowNode, colKey, newValue, eventSource) {\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 if (missing(rowNode.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 (missing(field) && missing(newValueHandler) && 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 && exists(newValueHandler)) {\n valueWasDifferent = newValueHandler(params);\n }\n else if (exists(valueSetter)) {\n valueWasDifferent = this.expressionService.evaluate(valueSetter, params);\n }\n else {\n valueWasDifferent = this.setValueUsingField(rowNode.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.EVENT_CELL_VALUE_CHANGED,\n event: null,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n column: params.column,\n api: params.api,\n columnApi: params.columnApi,\n colDef: params.colDef,\n context: params.context,\n data: rowNode.data,\n node: rowNode,\n oldValue: params.oldValue,\n newValue: params.newValue,\n value: params.newValue,\n source: eventSource\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 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$W([\n Autowired('expressionService')\n ], ValueService.prototype, \"expressionService\", void 0);\n __decorate$W([\n Autowired('columnController')\n ], ValueService.prototype, \"columnController\", void 0);\n __decorate$W([\n Autowired('valueCache')\n ], ValueService.prototype, \"valueCache\", void 0);\n __decorate$W([\n PostConstruct\n ], ValueService.prototype, \"init\", null);\n ValueService = __decorate$W([\n Bean('valueService')\n ], ValueService);\n return ValueService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$12 = (undefined && undefined.__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$X = (undefined && undefined.__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};\n(function (LayoutCssClasses) {\n LayoutCssClasses[\"AUTO_HEIGHT\"] = \"ag-layout-auto-height\";\n LayoutCssClasses[\"NORMAL\"] = \"ag-layout-normal\";\n LayoutCssClasses[\"PRINT\"] = \"ag-layout-print\";\n})(exports.LayoutCssClasses || (exports.LayoutCssClasses = {}));\nvar LayoutFeature = /** @class */ (function (_super) {\n __extends$12(LayoutFeature, _super);\n function LayoutFeature(view) {\n var _this = _super.call(this) || this;\n _this.view = view;\n return _this;\n }\n LayoutFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, this.updateLayoutClasses.bind(this));\n this.updateLayoutClasses();\n };\n LayoutFeature.prototype.updateLayoutClasses = function () {\n var domLayout = this.gridOptionsWrapper.getDomLayout();\n this.view.updateLayoutClasses({\n autoHeight: domLayout === Constants.DOM_LAYOUT_AUTO_HEIGHT,\n normal: domLayout === Constants.DOM_LAYOUT_NORMAL,\n print: domLayout === Constants.DOM_LAYOUT_PRINT\n });\n };\n __decorate$X([\n Autowired('gridOptionsWrapper')\n ], LayoutFeature.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$X([\n PostConstruct\n ], LayoutFeature.prototype, \"postConstruct\", null);\n return LayoutFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$13 = (undefined && undefined.__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$Y = (undefined && undefined.__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 GridBodyScrollFeature = /** @class */ (function (_super) {\n __extends$13(GridBodyScrollFeature, _super);\n function GridBodyScrollFeature(eBodyViewport) {\n var _this = _super.call(this) || this;\n _this.scrollLeft = -1;\n _this.nextScrollTop = -1;\n _this.scrollTop = -1;\n _this.eBodyViewport = eBodyViewport;\n _this.resetLastHorizontalScrollElementDebounced = debounce(_this.resetLastHorizontalScrollElement.bind(_this), 500);\n return _this;\n }\n GridBodyScrollFeature.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n this.controllersService.whenReady(function (p) {\n _this.centerRowContainerCon = p.centerRowContainerCon;\n _this.onDisplayedColumnsWidthChanged();\n _this.addScrollListener();\n });\n };\n GridBodyScrollFeature.prototype.addScrollListener = function () {\n var fakeHScroll = this.controllersService.getFakeHScrollCon();\n this.addManagedListener(this.centerRowContainerCon.getViewportElement(), 'scroll', this.onCenterViewportScroll.bind(this));\n this.addManagedListener(fakeHScroll.getViewport(), 'scroll', this.onFakeHorizontalScroll.bind(this));\n var onVerticalScroll = this.gridOptionsWrapper.isDebounceVerticalScrollbar() ?\n debounce(this.onVerticalScroll.bind(this), 100)\n : this.onVerticalScroll.bind(this);\n this.addManagedListener(this.eBodyViewport, 'scroll', onVerticalScroll);\n };\n GridBodyScrollFeature.prototype.onDisplayedColumnsWidthChanged = function () {\n if (this.enableRtl) {\n // because RTL is all backwards, a change in the width of the row\n // can cause a change in the scroll position, without a scroll event,\n // because the scroll position in RTL is a function that depends on\n // the width. to be convinced of this, take out this line, enable RTL,\n // scroll all the way to the left and then resize a column\n this.horizontallyScrollHeaderCenterAndFloatingCenter();\n }\n };\n GridBodyScrollFeature.prototype.horizontallyScrollHeaderCenterAndFloatingCenter = function (scrollLeft) {\n if (scrollLeft === undefined) {\n scrollLeft = this.centerRowContainerCon.getCenterViewportScrollLeft();\n }\n var offset = this.enableRtl ? scrollLeft : -scrollLeft;\n var topCenterContainer = this.controllersService.getTopCenterRowContainerCon();\n var bottomCenterContainer = this.controllersService.getBottomCenterRowContainerCon();\n var headerRootComp = this.controllersService.getHeaderRootComp();\n var fakeHScroll = this.controllersService.getFakeHScrollCon();\n headerRootComp.setHorizontalScroll(offset);\n bottomCenterContainer.setContainerTranslateX(offset);\n topCenterContainer.setContainerTranslateX(offset);\n var partner = this.lastHorizontalScrollElement === this.centerRowContainerCon.getViewportElement() ?\n fakeHScroll.getViewport() : this.centerRowContainerCon.getViewportElement();\n setScrollLeft(partner, Math.abs(scrollLeft), this.enableRtl);\n };\n GridBodyScrollFeature.prototype.isControllingScroll = function (eDiv) {\n if (!this.lastHorizontalScrollElement) {\n this.lastHorizontalScrollElement = eDiv;\n return true;\n }\n return eDiv === this.lastHorizontalScrollElement;\n };\n GridBodyScrollFeature.prototype.onFakeHorizontalScroll = function () {\n var fakeHScrollViewport = this.controllersService.getFakeHScrollCon().getViewport();\n if (!this.isControllingScroll(fakeHScrollViewport)) {\n return;\n }\n this.onBodyHorizontalScroll(fakeHScrollViewport);\n };\n GridBodyScrollFeature.prototype.onCenterViewportScroll = function () {\n var centerContainerViewport = this.centerRowContainerCon.getViewportElement();\n if (!this.isControllingScroll(centerContainerViewport)) {\n return;\n }\n this.onBodyHorizontalScroll(centerContainerViewport);\n };\n GridBodyScrollFeature.prototype.onBodyHorizontalScroll = function (eSource) {\n var centerContainerViewport = this.centerRowContainerCon.getViewportElement();\n var scrollLeft = centerContainerViewport.scrollLeft;\n if (this.shouldBlockScrollUpdate('horizontal', scrollLeft, true)) {\n return;\n }\n // we do Math.round() rather than Math.floor(), to mirror how scroll values are applied.\n // eg if a scale is applied (ie user has zoomed the browser), then applying scroll=200\n // could result in 199.88, which then floor(199.88) = 199, however round(199.88) = 200.\n // initially Math.floor() was used, however this caused (almost) infinite loop with aligned grids,\n // as the scroll would move 1px at at time bouncing from one grid to the next (eg one grid would cause\n // scroll to 200px, the next to 199px, then the first back to 198px and so on).\n this.doHorizontalScroll(Math.round(getScrollLeft(eSource, this.enableRtl)));\n this.resetLastHorizontalScrollElementDebounced();\n };\n GridBodyScrollFeature.prototype.onVerticalScroll = function () {\n var scrollTop = this.eBodyViewport.scrollTop;\n if (this.shouldBlockScrollUpdate('vertical', scrollTop, true)) {\n return;\n }\n this.animationFrameService.setScrollTop(scrollTop);\n this.nextScrollTop = scrollTop;\n if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n else {\n this.animationFrameService.schedule();\n }\n };\n GridBodyScrollFeature.prototype.resetLastHorizontalScrollElement = function () {\n this.lastHorizontalScrollElement = null;\n };\n GridBodyScrollFeature.prototype.doHorizontalScroll = function (scrollLeft) {\n this.scrollLeft = scrollLeft;\n var event = {\n type: Events.EVENT_BODY_SCROLL,\n api: this.gridApi,\n columnApi: this.columnApi,\n direction: 'horizontal',\n left: this.scrollLeft,\n top: this.scrollTop\n };\n this.eventService.dispatchEvent(event);\n this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);\n this.onHorizontalViewportChanged();\n };\n GridBodyScrollFeature.prototype.shouldBlockScrollUpdate = function (direction, scrollTo, touchOnly) {\n // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport\n // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually\n // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,\n // as otherwise it was causing the rows and header to flicker.\n if (touchOnly === void 0) { touchOnly = false; }\n // sometimes when scrolling, we got values that extended the maximum scroll allowed. we used to\n // ignore these scrolls. problem is the max scroll position could be skipped (eg the previous scroll event\n // could be 10px before the max position, and then current scroll event could be 20px after the max position).\n // if we just ignored the last event, we would be setting the scroll to 10px before the max position, when in\n // actual fact the user has exceeded the max scroll and thus scroll should be set to the max.\n if (touchOnly && !isIOSUserAgent()) {\n return false;\n }\n if (direction === 'vertical') {\n var clientHeight = getInnerHeight(this.eBodyViewport);\n var scrollHeight = this.eBodyViewport.scrollHeight;\n if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {\n return true;\n }\n }\n if (direction === 'horizontal') {\n var clientWidth = this.centerRowContainerCon.getCenterWidth();\n var scrollWidth = this.centerRowContainerCon.getViewportElement().scrollWidth;\n if (this.enableRtl && isRtlNegativeScroll()) {\n if (scrollTo > 0) {\n return true;\n }\n }\n else if (scrollTo < 0) {\n return true;\n }\n if (Math.abs(scrollTo) + clientWidth > scrollWidth) {\n return true;\n }\n }\n return false;\n };\n GridBodyScrollFeature.prototype.redrawRowsAfterScroll = function () {\n var event = {\n type: Events.EVENT_BODY_SCROLL,\n direction: 'vertical',\n api: this.gridApi,\n columnApi: this.columnApi,\n left: this.scrollLeft,\n top: this.scrollTop\n };\n this.eventService.dispatchEvent(event);\n };\n GridBodyScrollFeature.prototype.onHorizontalViewportChanged = function () {\n this.centerRowContainerCon.onHorizontalViewportChanged();\n };\n // this is to cater for AG-3274, where grid is removed from the dom and then inserted back in again.\n // (which happens with some implementations of tabbing). this can result in horizontal scroll getting\n // reset back to the left, however no scroll event is fired. so we need to get header to also scroll\n // back to the left to be kept in sync.\n // adding and removing the grid from the DOM both resets the scroll position and\n // triggers a resize event, so notify listeners if the scroll position has changed\n GridBodyScrollFeature.prototype.checkScrollLeft = function () {\n if (this.scrollLeft !== this.centerRowContainerCon.getCenterViewportScrollLeft()) {\n this.onBodyHorizontalScroll(this.centerRowContainerCon.getViewportElement());\n }\n };\n GridBodyScrollFeature.prototype.executeAnimationFrameScroll = function () {\n var frameNeeded = this.scrollTop != this.nextScrollTop;\n if (frameNeeded) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n return frameNeeded;\n };\n // called by scrollHorizontally method and alignedGridsService\n GridBodyScrollFeature.prototype.setHorizontalScrollPosition = function (hScrollPosition) {\n var minScrollLeft = 0;\n var maxScrollLeft = this.centerRowContainerCon.getViewportElement().scrollWidth - this.centerRowContainerCon.getCenterWidth();\n if (this.shouldBlockScrollUpdate('horizontal', hScrollPosition)) {\n if (this.enableRtl && isRtlNegativeScroll()) {\n hScrollPosition = hScrollPosition > 0 ? 0 : maxScrollLeft;\n }\n else {\n hScrollPosition = Math.min(Math.max(hScrollPosition, minScrollLeft), maxScrollLeft);\n }\n }\n setScrollLeft(this.centerRowContainerCon.getViewportElement(), Math.abs(hScrollPosition), this.enableRtl);\n // we need to manually do the event handling (rather than wait for the event)\n // for the alignedGridsService, as if we don't, the aligned grid service gets\n // notified async, and then it's 'consuming' flag doesn't get used right, and\n // we can end up with an infinite loop\n this.doHorizontalScroll(hScrollPosition);\n };\n GridBodyScrollFeature.prototype.setVerticalScrollPosition = function (vScrollPosition) {\n this.eBodyViewport.scrollTop = vScrollPosition;\n };\n GridBodyScrollFeature.prototype.getVScrollPosition = function () {\n var result = {\n top: this.eBodyViewport.scrollTop,\n bottom: this.eBodyViewport.scrollTop + this.eBodyViewport.offsetHeight\n };\n return result;\n };\n GridBodyScrollFeature.prototype.getHScrollPosition = function () {\n return this.centerRowContainerCon.getHScrollPosition();\n };\n GridBodyScrollFeature.prototype.isHorizontalScrollShowing = function () {\n return this.centerRowContainerCon.isHorizontalScrollShowing();\n };\n // called by the headerRootComp and moveColumnController\n GridBodyScrollFeature.prototype.scrollHorizontally = function (pixels) {\n var oldScrollPosition = this.centerRowContainerCon.getViewportElement().scrollLeft;\n this.setHorizontalScrollPosition(oldScrollPosition + pixels);\n return this.centerRowContainerCon.getViewportElement().scrollLeft - oldScrollPosition;\n };\n // gets called by rowRenderer when new data loaded, as it will want to scroll to the top\n GridBodyScrollFeature.prototype.scrollToTop = function () {\n this.eBodyViewport.scrollTop = 0;\n };\n // Valid values for position are bottom, middle and top\n GridBodyScrollFeature.prototype.ensureNodeVisible = function (comparator, position) {\n if (position === void 0) { position = null; }\n // look for the node index we want to display\n var rowCount = this.rowModel.getRowCount();\n var comparatorIsAFunction = typeof comparator === 'function';\n var indexToSelect = -1;\n // go through all the nodes, find the one we want to show\n for (var i = 0; i < rowCount; i++) {\n var node = this.rowModel.getRow(i);\n if (comparatorIsAFunction) {\n if (comparator(node)) {\n indexToSelect = i;\n break;\n }\n }\n else {\n // check object equality against node and data\n if (comparator === node || comparator === node.data) {\n indexToSelect = i;\n break;\n }\n }\n }\n if (indexToSelect >= 0) {\n this.ensureIndexVisible(indexToSelect, position);\n }\n };\n // Valid values for position are bottom, middle and top\n // position should be {'top','middle','bottom', or undefined/null}.\n // if undefined/null, then the grid will to the minimal amount of scrolling,\n // eg if grid needs to scroll up, it scrolls until row is on top,\n // if grid needs to scroll down, it scrolls until row is on bottom,\n // if row is already in view, grid does not scroll\n GridBodyScrollFeature.prototype.ensureIndexVisible = function (index, position) {\n // if for print or auto height, everything is always visible\n if (this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT) {\n return;\n }\n var rowCount = this.paginationProxy.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= rowCount) {\n console.warn('invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n var isPaging = this.gridOptionsWrapper.isPagination();\n var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();\n if (!paginationPanelEnabled) {\n this.paginationProxy.goToPageWithIndex(index);\n }\n var rowNode = this.paginationProxy.getRow(index);\n var rowGotShiftedDuringOperation;\n do {\n var startingRowTop = rowNode.rowTop;\n var startingRowHeight = rowNode.rowHeight;\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var rowTopPixel = rowNode.rowTop - paginationOffset;\n var rowBottomPixel = rowTopPixel + rowNode.rowHeight;\n var scrollPosition = this.getVScrollPosition();\n var heightOffset = this.heightScaler.getDivStretchOffset();\n var vScrollTop = scrollPosition.top + heightOffset;\n var vScrollBottom = scrollPosition.bottom + heightOffset;\n var viewportHeight = vScrollBottom - vScrollTop;\n // work out the pixels for top, middle and bottom up front,\n // make the if/else below easier to read\n var pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);\n var pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);\n // make sure if middle, the row is not outside the top of the grid\n var pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);\n var rowBelowViewport = vScrollTop > rowTopPixel;\n var rowAboveViewport = vScrollBottom < rowBottomPixel;\n var newScrollPosition = null;\n if (position === 'top') {\n newScrollPosition = pxTop;\n }\n else if (position === 'bottom') {\n newScrollPosition = pxBottom;\n }\n else if (position === 'middle') {\n newScrollPosition = pxMiddle;\n }\n else if (rowBelowViewport) {\n // if row is before, scroll up with row at top\n newScrollPosition = pxTop;\n }\n else if (rowAboveViewport) {\n // if row is below, scroll down with row at bottom\n newScrollPosition = pxBottom;\n }\n if (newScrollPosition !== null) {\n this.eBodyViewport.scrollTop = newScrollPosition;\n this.rowRenderer.redrawAfterScroll();\n }\n // the row can get shifted if during the rendering (during rowRenderer.redrawAfterScroll()),\n // the height of a row changes due to lazy calculation of row heights when using\n // colDef.autoHeight or gridOptions.getRowHeight.\n // if row was shifted, then the position we scrolled to is incorrect.\n rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)\n || (startingRowHeight !== rowNode.rowHeight);\n } while (rowGotShiftedDuringOperation);\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n GridBodyScrollFeature.prototype.ensureColumnVisible = function (key) {\n var column = this.columnController.getGridColumn(key);\n if (!column) {\n return;\n }\n if (column.isPinned()) {\n console.warn('calling ensureIndexVisible on a ' + column.getPinned() + ' pinned column doesn\\'t make sense for column ' + column.getColId());\n return;\n }\n if (!this.columnController.isColumnDisplayed(column)) {\n console.warn('column is not currently visible');\n return;\n }\n var colLeftPixel = column.getLeft();\n var colRightPixel = colLeftPixel + column.getActualWidth();\n var viewportWidth = this.centerRowContainerCon.getCenterWidth();\n var scrollPosition = this.centerRowContainerCon.getCenterViewportScrollLeft();\n var bodyWidth = this.columnController.getBodyContainerWidth();\n var viewportLeftPixel;\n var viewportRightPixel;\n // the logic of working out left and right viewport px is both here and in the ColumnController,\n // need to refactor it out to one place\n if (this.enableRtl) {\n viewportLeftPixel = bodyWidth - scrollPosition - viewportWidth;\n viewportRightPixel = bodyWidth - scrollPosition;\n }\n else {\n viewportLeftPixel = scrollPosition;\n viewportRightPixel = viewportWidth + scrollPosition;\n }\n var viewportScrolledPastCol = viewportLeftPixel > colLeftPixel;\n var viewportScrolledBeforeCol = viewportRightPixel < colRightPixel;\n var colToSmallForViewport = viewportWidth < column.getActualWidth();\n var alignColToLeft = viewportScrolledPastCol || colToSmallForViewport;\n var alignColToRight = viewportScrolledBeforeCol;\n if (alignColToLeft || alignColToRight) {\n var newScrollPosition = void 0;\n if (this.enableRtl) {\n newScrollPosition = alignColToLeft ? (bodyWidth - viewportWidth - colLeftPixel) : (bodyWidth - colRightPixel);\n }\n else {\n newScrollPosition = alignColToLeft ? colLeftPixel : (colRightPixel - viewportWidth);\n }\n this.centerRowContainerCon.setCenterViewportScrollLeft(newScrollPosition);\n }\n // this will happen anyway, as the move will cause a 'scroll' event on the body, however\n // it is possible that the ensureColumnVisible method is called from within AG Grid and\n // the caller will need to have the columns rendered to continue, which will be before\n // the event has been worked on (which is the case for cell navigation).\n this.centerRowContainerCon.onHorizontalViewportChanged();\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n __decorate$Y([\n Autowired('controllersService')\n ], GridBodyScrollFeature.prototype, \"controllersService\", void 0);\n __decorate$Y([\n Autowired('animationFrameService')\n ], GridBodyScrollFeature.prototype, \"animationFrameService\", void 0);\n __decorate$Y([\n Autowired('columnApi')\n ], GridBodyScrollFeature.prototype, \"columnApi\", void 0);\n __decorate$Y([\n Autowired('gridApi')\n ], GridBodyScrollFeature.prototype, \"gridApi\", void 0);\n __decorate$Y([\n Autowired('paginationProxy')\n ], GridBodyScrollFeature.prototype, \"paginationProxy\", void 0);\n __decorate$Y([\n Autowired('rowModel')\n ], GridBodyScrollFeature.prototype, \"rowModel\", void 0);\n __decorate$Y([\n Autowired('rowContainerHeightService')\n ], GridBodyScrollFeature.prototype, \"heightScaler\", void 0);\n __decorate$Y([\n Autowired('rowRenderer')\n ], GridBodyScrollFeature.prototype, \"rowRenderer\", void 0);\n __decorate$Y([\n Autowired('columnController')\n ], GridBodyScrollFeature.prototype, \"columnController\", void 0);\n __decorate$Y([\n PostConstruct\n ], GridBodyScrollFeature.prototype, \"postConstruct\", null);\n return GridBodyScrollFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$14 = (undefined && undefined.__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 __assign$7 = (undefined && undefined.__assign) || function () {\n __assign$7 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$7.apply(this, arguments);\n};\nvar __decorate$Z = (undefined && undefined.__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 __spreadArrays$5 = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar RowDragFeature = /** @class */ (function (_super) {\n __extends$14(RowDragFeature, _super);\n function RowDragFeature(eContainer) {\n var _this = _super.call(this) || this;\n _this.isMultiRowDrag = false;\n _this.isGridSorted = false;\n _this.isGridFiltered = false;\n _this.isRowGroupActive = false;\n _this.eContainer = eContainer;\n return _this;\n }\n RowDragFeature.prototype.postConstruct = function () {\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.clientSideRowModel = this.rowModel;\n }\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));\n this.onSortChanged();\n this.onFilterChanged();\n this.onRowGroupChanged();\n };\n RowDragFeature.prototype.onSortChanged = function () {\n this.isGridSorted = this.sortController.isSortActive();\n };\n RowDragFeature.prototype.onFilterChanged = function () {\n this.isGridFiltered = this.filterManager.isAnyFilterPresent();\n };\n RowDragFeature.prototype.onRowGroupChanged = function () {\n var rowGroups = this.columnController.getRowGroupColumns();\n this.isRowGroupActive = !missingOrEmpty(rowGroups);\n };\n RowDragFeature.prototype.getContainer = function () {\n return this.eContainer;\n };\n RowDragFeature.prototype.isInterestedIn = function (type) {\n return type === exports.DragSourceType.RowDrag;\n };\n RowDragFeature.prototype.getIconName = function () {\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n if (managedDrag && this.shouldPreventRowMove()) {\n return DragAndDropService.ICON_NOT_ALLOWED;\n }\n return DragAndDropService.ICON_MOVE;\n };\n RowDragFeature.prototype.shouldPreventRowMove = function () {\n return this.isGridSorted || this.isGridFiltered || this.isRowGroupActive;\n };\n RowDragFeature.prototype.getRowNodes = function (draggingEvent) {\n if (!this.isFromThisGrid(draggingEvent)) {\n return draggingEvent.dragItem.rowNodes || [];\n }\n var enableMultiRowDragging = this.gridOptionsWrapper.isEnableMultiRowDragging();\n var selectedNodes = this.selectionController.getSelectedNodes();\n var currentNode = draggingEvent.dragItem.rowNode;\n if (enableMultiRowDragging && selectedNodes.indexOf(currentNode) !== -1) {\n this.isMultiRowDrag = true;\n return __spreadArrays$5(selectedNodes);\n }\n this.isMultiRowDrag = false;\n return [currentNode];\n };\n RowDragFeature.prototype.onDragEnter = function (draggingEvent) {\n // when entering, we fire the enter event, then in onEnterOrDragging,\n // we also fire the move event. so we get both events when entering.\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_ENTER, draggingEvent);\n this.getRowNodes(draggingEvent).forEach(function (rowNode) {\n rowNode.setDragging(true);\n });\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.onDragging = function (draggingEvent) {\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.isFromThisGrid = function (draggingEvent) {\n var dragSourceDomDataKey = draggingEvent.dragSource.dragSourceDomDataKey;\n return dragSourceDomDataKey === this.gridOptionsWrapper.getDomDataKey();\n };\n RowDragFeature.prototype.isDropZoneWithinThisGrid = function (draggingEvent) {\n var gridBodyCon = this.controllersService.getGridBodyController();\n var gridGui = gridBodyCon.getGui();\n var dropZoneTarget = draggingEvent.dropZoneTarget;\n return !gridGui.contains(dropZoneTarget);\n };\n RowDragFeature.prototype.onEnterOrDragging = function (draggingEvent) {\n // this event is fired for enter and move\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_MOVE, draggingEvent);\n this.lastDraggingEvent = draggingEvent;\n var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n if (managedDrag) {\n this.doManagedDrag(draggingEvent, pixel);\n }\n this.checkCenterForScrolling(pixel);\n };\n RowDragFeature.prototype.doManagedDrag = function (draggingEvent, pixel) {\n var _this = this;\n var rowNodes;\n var isFromThisGrid = this.isFromThisGrid(draggingEvent);\n if (isFromThisGrid) {\n rowNodes = [draggingEvent.dragItem.rowNode];\n if (this.isMultiRowDrag) {\n rowNodes = __spreadArrays$5(this.selectionController.getSelectedNodes()).sort(function (a, b) { return _this.getRowIndexNumber(a) - _this.getRowIndexNumber(b); });\n }\n draggingEvent.dragItem.rowNodes = rowNodes;\n }\n else {\n rowNodes = draggingEvent.dragItem.rowNodes;\n }\n var managedDrag = this.gridOptionsWrapper.isRowDragManaged();\n if (managedDrag && this.shouldPreventRowMove()) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !isFromThisGrid) {\n if (!this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.clientSideRowModel.highlightRowAtPixel(rowNodes[0], pixel);\n }\n }\n else {\n this.moveRows(rowNodes, pixel);\n }\n };\n RowDragFeature.prototype.getRowIndexNumber = function (rowNode) {\n return parseInt(last(rowNode.getRowIndexString().split('-')), 10);\n };\n RowDragFeature.prototype.moveRowAndClearHighlight = function (draggingEvent) {\n var _this = this;\n var lastHighlightedRowNode = this.clientSideRowModel.getLastHighlightedRowNode();\n var isBelow = lastHighlightedRowNode && lastHighlightedRowNode.highlighted === 'below';\n var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var rowNodes = draggingEvent.dragItem.rowNodes;\n var increment = isBelow ? 1 : 0;\n if (this.isFromThisGrid(draggingEvent)) {\n rowNodes.forEach(function (rowNode) {\n if (rowNode.rowTop < pixel) {\n increment -= 1;\n }\n });\n this.moveRows(rowNodes, pixel, increment);\n }\n else {\n var getRowNodeId_1 = this.gridOptionsWrapper.getRowNodeIdFunc();\n var addIndex = this.clientSideRowModel.getRowIndexAtPixel(pixel) + 1;\n if (this.clientSideRowModel.getHighlightPosition(pixel) === 'above') {\n addIndex--;\n }\n this.clientSideRowModel.updateRowData({\n add: rowNodes\n .map(function (node) { return node.data; })\n .filter(function (data) { return !_this.clientSideRowModel.getRowNode(getRowNodeId_1 ? getRowNodeId_1(data) : data.id); }),\n addIndex: addIndex\n });\n }\n this.clearRowHighlight();\n };\n RowDragFeature.prototype.clearRowHighlight = function () {\n this.clientSideRowModel.highlightRowAtPixel(null);\n };\n RowDragFeature.prototype.moveRows = function (rowNodes, pixel, increment) {\n if (increment === void 0) { increment = 0; }\n var rowWasMoved = this.clientSideRowModel.ensureRowsAtPixel(rowNodes, pixel, increment);\n if (rowWasMoved) {\n this.focusController.clearFocusedCell();\n if (this.rangeController) {\n this.rangeController.removeAllCellRanges();\n }\n }\n };\n RowDragFeature.prototype.checkCenterForScrolling = function (pixel) {\n // scroll if the mouse is within 50px of the grid edge\n var gridBodyCon = this.controllersService.getGridBodyController();\n var pixelRange = gridBodyCon.getScrollFeature().getVScrollPosition();\n // console.log(`pixelRange = (${pixelRange.top}, ${pixelRange.bottom})`);\n this.needToMoveUp = pixel < (pixelRange.top + 50);\n this.needToMoveDown = pixel > (pixelRange.bottom - 50);\n // console.log(`needToMoveUp = ${this.needToMoveUp} = pixel < (pixelRange.top + 50) = ${pixel} < (${pixelRange.top} + 50)`);\n // console.log(`needToMoveDown = ${this.needToMoveDown} = pixel < (pixelRange.top + 50) = ${pixel} < (${pixelRange.top} + 50)`);\n if (this.needToMoveUp || this.needToMoveDown) {\n this.ensureIntervalStarted();\n }\n else {\n this.ensureIntervalCleared();\n }\n };\n RowDragFeature.prototype.ensureIntervalStarted = function () {\n if (this.movingIntervalId) {\n return;\n }\n this.intervalCount = 0;\n this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);\n };\n RowDragFeature.prototype.ensureIntervalCleared = function () {\n if (!exists(this.movingIntervalId)) {\n return;\n }\n window.clearInterval(this.movingIntervalId);\n this.movingIntervalId = null;\n };\n RowDragFeature.prototype.moveInterval = function () {\n // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow\n // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.\n var pixelsToMove;\n this.intervalCount++;\n pixelsToMove = 10 + (this.intervalCount * 5);\n if (pixelsToMove > 100) {\n pixelsToMove = 100;\n }\n var pixelsMoved = null;\n var gridBodyCon = this.controllersService.getGridBodyController();\n if (this.needToMoveDown) {\n pixelsMoved = gridBodyCon.scrollVertically(pixelsToMove);\n }\n else if (this.needToMoveUp) {\n pixelsMoved = gridBodyCon.scrollVertically(-pixelsToMove);\n }\n if (pixelsMoved !== 0) {\n this.onDragging(this.lastDraggingEvent);\n }\n };\n RowDragFeature.prototype.addRowDropZone = function (params) {\n var _this = this;\n if (!params.getContainer()) {\n doOnce(function () { return console.warn('AG Grid: addRowDropZone - A container target needs to be provided'); }, 'add-drop-zone-empty-target');\n return;\n }\n if (this.dragAndDropService.findExternalZone(params)) {\n console.warn('AG Grid: addRowDropZone - target already exists in the list of DropZones. Use `removeRowDropZone` before adding it again.');\n return;\n }\n var processedParams = {\n getContainer: params.getContainer\n };\n if (params.fromGrid) {\n params.fromGrid = undefined;\n processedParams = params;\n }\n else {\n if (params.onDragEnter) {\n processedParams.onDragEnter = function (e) {\n params.onDragEnter(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n };\n }\n if (params.onDragLeave) {\n processedParams.onDragLeave = function (e) {\n params.onDragLeave(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n };\n }\n if (params.onDragging) {\n processedParams.onDragging = function (e) {\n params.onDragging(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n };\n }\n if (params.onDragStop) {\n processedParams.onDragStop = function (e) {\n params.onDragStop(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n };\n }\n }\n this.dragAndDropService.addDropTarget(__assign$7({ isInterestedIn: function (type) { return type === exports.DragSourceType.RowDrag; }, getIconName: function () { return DragAndDropService.ICON_MOVE; }, external: true }, processedParams));\n };\n RowDragFeature.prototype.getRowDropZone = function (events) {\n var _this = this;\n var getContainer = this.getContainer.bind(this);\n var onDragEnter = this.onDragEnter.bind(this);\n var onDragLeave = this.onDragLeave.bind(this);\n var onDragging = this.onDragging.bind(this);\n var onDragStop = this.onDragStop.bind(this);\n if (!events) {\n return { getContainer: getContainer, onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragging: onDragging, onDragStop: onDragStop, /* @private */ fromGrid: true };\n }\n return {\n getContainer: getContainer,\n onDragEnter: events.onDragEnter\n ? (function (e) {\n onDragEnter(e);\n events.onDragEnter(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n })\n : onDragEnter,\n onDragLeave: events.onDragLeave\n ? (function (e) {\n onDragLeave(e);\n events.onDragLeave(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n })\n : onDragLeave,\n onDragging: events.onDragging\n ? (function (e) {\n onDragging(e);\n events.onDragging(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n })\n : onDragging,\n onDragStop: events.onDragStop\n ? (function (e) {\n onDragStop(e);\n events.onDragStop(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n })\n : onDragStop,\n fromGrid: true /* @private */\n };\n };\n RowDragFeature.prototype.draggingToRowDragEvent = function (type, draggingEvent) {\n var yNormalised = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var mouseIsPastLastRow = yNormalised > this.paginationProxy.getCurrentPageHeight();\n var overIndex = -1;\n var overNode = null;\n if (!mouseIsPastLastRow) {\n overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);\n overNode = this.rowModel.getRow(overIndex);\n }\n var vDirectionString;\n switch (draggingEvent.vDirection) {\n case exports.VerticalDirection.Down:\n vDirectionString = 'down';\n break;\n case exports.VerticalDirection.Up:\n vDirectionString = 'up';\n break;\n default:\n vDirectionString = null;\n break;\n }\n var event = {\n type: type,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n event: draggingEvent.event,\n node: draggingEvent.dragItem.rowNode,\n nodes: draggingEvent.dragItem.rowNodes,\n overIndex: overIndex,\n overNode: overNode,\n y: yNormalised,\n vDirection: vDirectionString\n };\n return event;\n };\n RowDragFeature.prototype.dispatchGridEvent = function (type, draggingEvent) {\n var event = this.draggingToRowDragEvent(type, draggingEvent);\n this.eventService.dispatchEvent(event);\n };\n RowDragFeature.prototype.onDragLeave = function (draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_LEAVE, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsWrapper.isRowDragManaged()) {\n this.clearRowHighlight();\n }\n if (this.isFromThisGrid(draggingEvent)) {\n this.isMultiRowDrag = false;\n }\n };\n RowDragFeature.prototype.onDragStop = function (draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_END, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsWrapper.isRowDragManaged() &&\n (this.gridOptionsWrapper.isSuppressMoveWhenRowDragging() || !this.isFromThisGrid(draggingEvent)) &&\n !this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.moveRowAndClearHighlight(draggingEvent);\n }\n };\n RowDragFeature.prototype.stopDragging = function (draggingEvent) {\n this.ensureIntervalCleared();\n this.getRowNodes(draggingEvent).forEach(function (rowNode) {\n rowNode.setDragging(false);\n });\n };\n __decorate$Z([\n Autowired('dragAndDropService')\n ], RowDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$Z([\n Autowired('rowModel')\n ], RowDragFeature.prototype, \"rowModel\", void 0);\n __decorate$Z([\n Autowired('paginationProxy')\n ], RowDragFeature.prototype, \"paginationProxy\", void 0);\n __decorate$Z([\n Autowired('columnController')\n ], RowDragFeature.prototype, \"columnController\", void 0);\n __decorate$Z([\n Autowired('focusController')\n ], RowDragFeature.prototype, \"focusController\", void 0);\n __decorate$Z([\n Autowired('sortController')\n ], RowDragFeature.prototype, \"sortController\", void 0);\n __decorate$Z([\n Autowired('filterManager')\n ], RowDragFeature.prototype, \"filterManager\", void 0);\n __decorate$Z([\n Autowired('selectionController')\n ], RowDragFeature.prototype, \"selectionController\", void 0);\n __decorate$Z([\n Optional('rangeController')\n ], RowDragFeature.prototype, \"rangeController\", void 0);\n __decorate$Z([\n Autowired('mouseEventService')\n ], RowDragFeature.prototype, \"mouseEventService\", void 0);\n __decorate$Z([\n Autowired('controllersService')\n ], RowDragFeature.prototype, \"controllersService\", void 0);\n __decorate$Z([\n PostConstruct\n ], RowDragFeature.prototype, \"postConstruct\", null);\n return RowDragFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$15 = (undefined && undefined.__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$_ = (undefined && undefined.__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 RowAnimationCssClasses;\n(function (RowAnimationCssClasses) {\n RowAnimationCssClasses[\"ANIMATION_ON\"] = \"ag-row-animation\";\n RowAnimationCssClasses[\"ANIMATION_OFF\"] = \"ag-row-no-animation\";\n})(RowAnimationCssClasses || (RowAnimationCssClasses = {}));\nvar CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';\nvar CSS_CLASS_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';\nvar CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';\nvar GridBodyController = /** @class */ (function (_super) {\n __extends$15(GridBodyController, _super);\n function GridBodyController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridBodyController.prototype.getScrollFeature = function () {\n return this.bodyScrollFeature;\n };\n GridBodyController.prototype.getBodyViewportElement = function () {\n return this.eBodyViewport;\n };\n GridBodyController.prototype.setView = function (view, eGridBody, eBodyViewport, eTop, eBottom) {\n this.view = view;\n this.eGridBody = eGridBody;\n this.eBodyViewport = eBodyViewport;\n this.eTop = eTop;\n this.eBottom = eBottom;\n this.setCellTextSelection(this.gridOptionsWrapper.isEnableCellTextSelect());\n this.createManagedBean(new LayoutFeature(this.view));\n this.bodyScrollFeature = this.createManagedBean(new GridBodyScrollFeature(this.eBodyViewport));\n this.addRowDragListener();\n this.setupRowAnimationCssClass();\n this.controllersService.registerGridBodyController(this);\n this.addEventListeners();\n this.onGridColumnsChanged();\n this.addBodyViewportListener();\n this.setFloatingHeights();\n this.disableBrowserDragging();\n this.addStopEditingWhenGridLosesFocus();\n };\n GridBodyController.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.setFloatingHeights.bind(this));\n };\n // used by ColumnAnimationService\n GridBodyController.prototype.setColumnMovingCss = function (moving) {\n this.view.setColumnMovingCss(moving);\n };\n GridBodyController.prototype.setCellTextSelection = function (selectable) {\n if (selectable === void 0) { selectable = false; }\n this.view.setCellSelectableCss(selectable);\n };\n GridBodyController.prototype.onScrollVisibilityChanged = function () {\n var show = this.scrollVisibleService.isVerticalScrollShowing();\n this.view.setVerticalScrollPaddingVisible(show);\n };\n GridBodyController.prototype.onGridColumnsChanged = function () {\n var columns = this.columnController.getAllGridColumns();\n this.view.setColumnCount(columns ? columns.length : 0);\n };\n // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)\n // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.\n GridBodyController.prototype.disableBrowserDragging = function () {\n this.addManagedListener(this.eGridBody, 'dragstart', function (event) {\n if (event.target instanceof HTMLImageElement) {\n event.preventDefault();\n return false;\n }\n });\n };\n GridBodyController.prototype.addStopEditingWhenGridLosesFocus = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isStopEditingWhenCellsLoseFocus()) {\n return;\n }\n var focusOutListener = function (event) {\n // this is the element the focus is moving to\n var elementWithFocus = event.relatedTarget;\n if (getTabIndex(elementWithFocus) === null) {\n _this.rowRenderer.stopEditing();\n return;\n }\n var clickInsideGrid = \n // see if click came from inside the viewports\n viewports.some(function (viewport) { return viewport.contains(elementWithFocus); })\n // and also that it's not from a detail grid\n && _this.mouseEventService.isElementInThisGrid(elementWithFocus);\n if (!clickInsideGrid) {\n var popupService = _this.popupService;\n clickInsideGrid =\n popupService.getActivePopups().some(function (popup) { return popup.contains(elementWithFocus); }) ||\n popupService.isElementWithinCustomPopup(elementWithFocus);\n }\n if (!clickInsideGrid) {\n _this.rowRenderer.stopEditing();\n }\n };\n var viewports = [this.eBodyViewport, this.eBottom, this.eTop];\n viewports.forEach(function (viewport) { return _this.addManagedListener(viewport, 'focusout', focusOutListener); });\n };\n GridBodyController.prototype.updateRowCount = function () {\n var headerCount = this.headerNavigationService.getHeaderRowCount();\n var modelType = this.paginationProxy.getType();\n var rowCount = -1;\n if (modelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n rowCount = 0;\n this.paginationProxy.forEachNode(function (node) {\n if (!node.group) {\n rowCount++;\n }\n });\n }\n var total = rowCount === -1 ? -1 : (headerCount + rowCount);\n this.view.setRowCount(total);\n };\n GridBodyController.prototype.registerBodyViewportResizeListener = function (listener) {\n this.view.registerBodyViewportResizeListener(listener);\n };\n GridBodyController.prototype.setVerticalScrollPaddingVisible = function (visible) {\n this.view.setVerticalScrollPaddingVisible(visible);\n };\n GridBodyController.prototype.isVerticalScrollShowing = function () {\n var isAlwaysShowVerticalScroll = this.gridOptionsWrapper.isAlwaysShowVerticalScroll();\n this.view.setAlwaysVerticalScrollClass(isAlwaysShowVerticalScroll);\n return isAlwaysShowVerticalScroll || isVerticalScrollShowing(this.eBodyViewport);\n };\n GridBodyController.prototype.setupRowAnimationCssClass = function () {\n var _this = this;\n var listener = function () {\n // we don't want to use row animation if scaling, as rows jump strangely as you scroll,\n // when scaling and doing row animation.\n var animateRows = _this.gridOptionsWrapper.isAnimateRows() && !_this.rowContainerHeightService.isStretching();\n _this.view.setRowAnimationCssOnBodyViewport(animateRows);\n };\n listener();\n this.addManagedListener(this.eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, listener);\n };\n GridBodyController.prototype.getGridBodyElement = function () {\n return this.eGridBody;\n };\n GridBodyController.prototype.addBodyViewportListener = function () {\n var _this = this;\n // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing\n // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell\n var listener = function (mouseEvent) {\n var target = getTarget(mouseEvent);\n if (target === _this.eBodyViewport || target === _this.controllersService.getCenterRowContainerCon().getViewportElement()) {\n // show it\n if (_this.contextMenuFactory) {\n _this.contextMenuFactory.onContextMenu(mouseEvent, null, null, null, null, _this.eGridBody);\n }\n }\n };\n this.addManagedListener(this.eBodyViewport, 'contextmenu', listener);\n };\n GridBodyController.prototype.getGui = function () {\n return this.eGridBody;\n };\n // called by rowDragFeature\n GridBodyController.prototype.scrollVertically = function (pixels) {\n var oldScrollPosition = this.eBodyViewport.scrollTop;\n this.bodyScrollFeature.setVerticalScrollPosition(oldScrollPosition + pixels);\n return this.eBodyViewport.scrollTop - oldScrollPosition;\n };\n // + rangeController - used to know when to scroll when user is dragging outside the\n // main viewport while doing a range selection\n GridBodyController.prototype.getBodyClientRect = function () {\n if (!this.eBodyViewport) {\n return;\n }\n return this.eBodyViewport.getBoundingClientRect();\n };\n GridBodyController.prototype.addRowDragListener = function () {\n this.rowDragFeature = this.createManagedBean(new RowDragFeature(this.eBodyViewport));\n this.dragAndDropService.addDropTarget(this.rowDragFeature);\n };\n GridBodyController.prototype.getRowDragFeature = function () {\n return this.rowDragFeature;\n };\n GridBodyController.prototype.setFloatingHeights = function () {\n var pinnedRowModel = this.pinnedRowModel;\n var floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();\n if (floatingTopHeight) {\n // adding 1px for cell bottom border\n floatingTopHeight += 1;\n }\n var floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();\n if (floatingBottomHeight) {\n // adding 1px for cell bottom border\n floatingBottomHeight += 1;\n }\n this.view.setTopHeight(floatingTopHeight);\n this.view.setBottomHeight(floatingBottomHeight);\n this.view.setTopDisplay(floatingTopHeight ? 'inherit' : 'none');\n this.view.setBottomDisplay(floatingBottomHeight ? 'inherit' : 'none');\n };\n // method will call itself if no available width. this covers if the grid\n // isn't visible, but is just about to be visible.\n GridBodyController.prototype.sizeColumnsToFit = function (nextTimeout) {\n var _this = this;\n // IE is different to the other browsers, it already removes the scroll width\n // while calling window.getComputedStyle() (which is called by getInnerWidth())\n var removeScrollWidth = this.isVerticalScrollShowing() && !isBrowserIE();\n var scrollWidthToRemove = removeScrollWidth ? this.gridOptionsWrapper.getScrollbarWidth() : 0;\n var bodyViewportWidth = getInnerWidth(this.eBodyViewport);\n var availableWidth = bodyViewportWidth - scrollWidthToRemove;\n if (availableWidth > 0) {\n this.columnController.sizeColumnsToFit(availableWidth, \"sizeColumnsToFit\");\n return;\n }\n if (nextTimeout === undefined) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(100);\n }, 0);\n }\n else if (nextTimeout === 100) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(500);\n }, 100);\n }\n else if (nextTimeout === 500) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(-1);\n }, 500);\n }\n else {\n console.warn('AG Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +\n 'zero width, maybe the grid is not visible yet on the screen?');\n }\n };\n __decorate$_([\n Autowired('rowContainerHeightService')\n ], GridBodyController.prototype, \"rowContainerHeightService\", void 0);\n __decorate$_([\n Autowired('controllersService')\n ], GridBodyController.prototype, \"controllersService\", void 0);\n __decorate$_([\n Autowired('columnController')\n ], GridBodyController.prototype, \"columnController\", void 0);\n __decorate$_([\n Autowired('scrollVisibleService')\n ], GridBodyController.prototype, \"scrollVisibleService\", void 0);\n __decorate$_([\n Optional('contextMenuFactory')\n ], GridBodyController.prototype, \"contextMenuFactory\", void 0);\n __decorate$_([\n Autowired('headerNavigationService')\n ], GridBodyController.prototype, \"headerNavigationService\", void 0);\n __decorate$_([\n Autowired('paginationProxy')\n ], GridBodyController.prototype, \"paginationProxy\", void 0);\n __decorate$_([\n Autowired('dragAndDropService')\n ], GridBodyController.prototype, \"dragAndDropService\", void 0);\n __decorate$_([\n Autowired('pinnedRowModel')\n ], GridBodyController.prototype, \"pinnedRowModel\", void 0);\n __decorate$_([\n Autowired('rowRenderer')\n ], GridBodyController.prototype, \"rowRenderer\", void 0);\n __decorate$_([\n Autowired('popupService')\n ], GridBodyController.prototype, \"popupService\", void 0);\n __decorate$_([\n Autowired('mouseEventService')\n ], GridBodyController.prototype, \"mouseEventService\", void 0);\n return GridBodyController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$16 = (undefined && undefined.__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$$ = (undefined && undefined.__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 RowContainerEventsFeature = /** @class */ (function (_super) {\n __extends$16(RowContainerEventsFeature, _super);\n function RowContainerEventsFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n RowContainerEventsFeature.prototype.postConstruct = function () {\n this.addMouseListeners();\n this.mockContextMenuForIPad();\n this.addKeyboardEvents();\n };\n RowContainerEventsFeature.prototype.addKeyboardEvents = function () {\n var _this = this;\n var eventNames = ['keydown', 'keypress'];\n eventNames.forEach(function (eventName) {\n var listener = _this.processKeyboardEvent.bind(_this, eventName);\n _this.addManagedListener(_this.element, eventName, listener);\n });\n };\n RowContainerEventsFeature.prototype.addMouseListeners = function () {\n var _this = this;\n var eventNames = ['dblclick', 'contextmenu', 'mouseover', 'mouseout', 'click', 'mousedown'];\n eventNames.forEach(function (eventName) {\n var listener = _this.processMouseEvent.bind(_this, eventName);\n _this.addManagedListener(_this.element, eventName, listener);\n });\n };\n RowContainerEventsFeature.prototype.processMouseEvent = function (eventName, mouseEvent) {\n if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||\n isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var rowComp = this.getRowForEvent(mouseEvent);\n var cellComp = this.mouseEventService.getRenderedCellForEvent(mouseEvent);\n if (eventName === \"contextmenu\") {\n this.handleContextMenuMouseEvent(mouseEvent, null, rowComp, cellComp);\n }\n else {\n if (cellComp) {\n cellComp.onMouseEvent(eventName, mouseEvent);\n }\n if (rowComp) {\n rowComp.onMouseEvent(eventName, mouseEvent);\n }\n }\n };\n RowContainerEventsFeature.prototype.mockContextMenuForIPad = function () {\n var _this = this;\n // we do NOT want this when not in iPad, otherwise we will be doing\n if (!isIOSUserAgent()) {\n return;\n }\n var touchListener = new TouchListener(this.element);\n var longTapListener = function (event) {\n var rowComp = _this.getRowForEvent(event.touchEvent);\n var cellComp = _this.mouseEventService.getRenderedCellForEvent(event.touchEvent);\n _this.handleContextMenuMouseEvent(null, event.touchEvent, rowComp, cellComp);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n };\n RowContainerEventsFeature.prototype.getRowForEvent = function (event) {\n var sourceElement = getTarget(event);\n while (sourceElement) {\n var rowCon = this.gridOptionsWrapper.getDomData(sourceElement, RowController.DOM_DATA_KEY_RENDERED_ROW);\n if (rowCon) {\n return rowCon;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n };\n RowContainerEventsFeature.prototype.handleContextMenuMouseEvent = function (mouseEvent, touchEvent, rowComp, cellComp) {\n var rowNode = rowComp ? rowComp.getRowNode() : null;\n var column = cellComp ? cellComp.getColumn() : null;\n var value = null;\n if (column) {\n var event_1 = mouseEvent ? mouseEvent : touchEvent;\n cellComp.dispatchCellContextMenuEvent(event_1);\n value = this.valueService.getValue(column, rowNode);\n }\n // if user clicked on a cell, anchor to that cell, otherwise anchor to the grid panel\n var gridBodyCon = this.controllersService.getGridBodyController();\n var anchorToElement = cellComp ? cellComp.getGui() : gridBodyCon.getGridBodyElement();\n if (this.contextMenuFactory) {\n this.contextMenuFactory.onContextMenu(mouseEvent, touchEvent, rowNode, column, value, anchorToElement);\n }\n };\n RowContainerEventsFeature.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {\n var cellComp = getComponentForEvent(this.gridOptionsWrapper, keyboardEvent, 'cellComp');\n var rowComp = getComponentForEvent(this.gridOptionsWrapper, keyboardEvent, 'renderedRow');\n if (keyboardEvent.defaultPrevented) {\n return;\n }\n if (cellComp) {\n this.processCellKeyboardEvent(cellComp, eventName, keyboardEvent);\n }\n else if (rowComp && rowComp.isFullWidth()) {\n this.processFullWidthRowKeyboardEvent(rowComp, eventName, keyboardEvent);\n }\n };\n RowContainerEventsFeature.prototype.processCellKeyboardEvent = function (cellComp, eventName, keyboardEvent) {\n var rowNode = cellComp.getRenderedRow().getRowNode();\n var column = cellComp.getColumn();\n var editing = cellComp.isEditing();\n var gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsWrapper, keyboardEvent, rowNode, column, editing);\n if (gridProcessingAllowed) {\n switch (eventName) {\n case 'keydown':\n // first see if it's a scroll key, page up / down, home / end etc\n var wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);\n // if not a scroll key, then we pass onto cell\n if (!wasScrollKey) {\n cellComp.onKeyDown(keyboardEvent);\n }\n // perform clipboard and undo / redo operations\n this.doGridOperations(keyboardEvent, cellComp);\n break;\n case 'keypress':\n cellComp.onKeyPress(keyboardEvent);\n break;\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = cellComp.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_DOWN);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n if (eventName === 'keypress') {\n var cellKeyPressEvent = cellComp.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_PRESS);\n this.eventService.dispatchEvent(cellKeyPressEvent);\n }\n };\n RowContainerEventsFeature.prototype.processFullWidthRowKeyboardEvent = function (rowComp, eventName, keyboardEvent) {\n var rowNode = rowComp.getRowNode();\n var focusedCell = this.focusController.getFocusedCell();\n var column = (focusedCell && focusedCell.column);\n var gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsWrapper, keyboardEvent, rowNode, column, false);\n if (gridProcessingAllowed) {\n var key = keyboardEvent.key;\n if (eventName === 'keydown') {\n switch (key) {\n case KeyName.UP:\n case KeyName.DOWN:\n rowComp.onKeyboardNavigate(keyboardEvent);\n break;\n case KeyName.TAB:\n rowComp.onTabKeyDown(keyboardEvent);\n }\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = rowComp.createRowEvent(Events.EVENT_CELL_KEY_DOWN, keyboardEvent);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n if (eventName === 'keypress') {\n var cellKeyPressEvent = rowComp.createRowEvent(Events.EVENT_CELL_KEY_PRESS, keyboardEvent);\n this.eventService.dispatchEvent(cellKeyPressEvent);\n }\n };\n RowContainerEventsFeature.prototype.doGridOperations = function (keyboardEvent, cellComp) {\n // check if ctrl or meta key pressed\n if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {\n return;\n }\n // if the cell the event came from is editing, then we do not\n // want to do the default shortcut keys, otherwise the editor\n // (eg a text field) would not be able to do the normal cut/copy/paste\n if (cellComp.isEditing()) {\n return;\n }\n // for copy / paste, we don't want to execute when the event\n // was from a child grid (happens in master detail)\n if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {\n return;\n }\n switch (keyboardEvent.which) {\n case KeyCode.A:\n return this.onCtrlAndA(keyboardEvent);\n case KeyCode.C:\n return this.onCtrlAndC(keyboardEvent);\n case KeyCode.V:\n return this.onCtrlAndV();\n case KeyCode.D:\n return this.onCtrlAndD(keyboardEvent);\n case KeyCode.Z:\n return keyboardEvent.shiftKey ? this.undoRedoService.redo() : this.undoRedoService.undo();\n case KeyCode.Y:\n return this.undoRedoService.redo();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndA = function (event) {\n var _a = this, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeController = _a.rangeController;\n var PINNED_BOTTOM = Constants.PINNED_BOTTOM, PINNED_TOP = Constants.PINNED_TOP;\n if (rangeController && paginationProxy.isRowsToRender()) {\n var _b = [\n pinnedRowModel.isEmpty(PINNED_TOP),\n pinnedRowModel.isEmpty(PINNED_BOTTOM)\n ], isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];\n var floatingStart = isEmptyPinnedTop ? null : PINNED_TOP;\n var floatingEnd = void 0;\n var rowEnd = void 0;\n if (isEmptyPinnedBottom) {\n floatingEnd = null;\n rowEnd = this.paginationProxy.getRowCount() - 1;\n }\n else {\n floatingEnd = PINNED_BOTTOM;\n rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;\n }\n var allDisplayedColumns = this.columnController.getAllDisplayedColumns();\n if (missingOrEmpty(allDisplayedColumns)) {\n return;\n }\n rangeController.setCellRange({\n rowStartIndex: 0,\n rowStartPinned: floatingStart,\n rowEndIndex: rowEnd,\n rowEndPinned: floatingEnd,\n columnStart: allDisplayedColumns[0],\n columnEnd: last(allDisplayedColumns)\n });\n }\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndC = function (event) {\n if (!this.clipboardService || this.gridOptionsWrapper.isEnableCellTextSelection()) {\n return;\n }\n this.clipboardService.copyToClipboard();\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndV = function () {\n if (ModuleRegistry.isRegistered(exports.ModuleNames.ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {\n this.clipboardService.pasteFromClipboard();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndD = function (event) {\n if (ModuleRegistry.isRegistered(exports.ModuleNames.ClipboardModule) && !this.gridOptionsWrapper.isSuppressClipboardPaste()) {\n this.clipboardService.copyRangeDown();\n }\n event.preventDefault();\n };\n __decorate$$([\n Autowired('mouseEventService')\n ], RowContainerEventsFeature.prototype, \"mouseEventService\", void 0);\n __decorate$$([\n Autowired('valueService')\n ], RowContainerEventsFeature.prototype, \"valueService\", void 0);\n __decorate$$([\n Optional('contextMenuFactory')\n ], RowContainerEventsFeature.prototype, \"contextMenuFactory\", void 0);\n __decorate$$([\n Autowired('controllersService')\n ], RowContainerEventsFeature.prototype, \"controllersService\", void 0);\n __decorate$$([\n Autowired('navigationService')\n ], RowContainerEventsFeature.prototype, \"navigationService\", void 0);\n __decorate$$([\n Autowired('focusController')\n ], RowContainerEventsFeature.prototype, \"focusController\", void 0);\n __decorate$$([\n Autowired('undoRedoService')\n ], RowContainerEventsFeature.prototype, \"undoRedoService\", void 0);\n __decorate$$([\n Autowired('columnController')\n ], RowContainerEventsFeature.prototype, \"columnController\", void 0);\n __decorate$$([\n Autowired('paginationProxy')\n ], RowContainerEventsFeature.prototype, \"paginationProxy\", void 0);\n __decorate$$([\n Autowired('pinnedRowModel')\n ], RowContainerEventsFeature.prototype, \"pinnedRowModel\", void 0);\n __decorate$$([\n Optional('rangeController')\n ], RowContainerEventsFeature.prototype, \"rangeController\", void 0);\n __decorate$$([\n Optional('clipboardService')\n ], RowContainerEventsFeature.prototype, \"clipboardService\", void 0);\n __decorate$$([\n PostConstruct\n ], RowContainerEventsFeature.prototype, \"postConstruct\", null);\n return RowContainerEventsFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$17 = (undefined && undefined.__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$10 = (undefined && undefined.__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};\n// listens to changes in the center viewport size, for column and row virtualisation,\n// and adjusts grid as necessary. there are two viewports, one for horizontal and one for\n// vertical scrolling.\nvar ViewportSizeFeature = /** @class */ (function (_super) {\n __extends$17(ViewportSizeFeature, _super);\n function ViewportSizeFeature(centerContainer) {\n var _this = _super.call(this) || this;\n _this.centerContainerCon = centerContainer;\n return _this;\n }\n ViewportSizeFeature.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function () {\n _this.gridBodyCon = _this.controllersService.getGridBodyController();\n _this.listenForResize();\n });\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));\n };\n ViewportSizeFeature.prototype.listenForResize = function () {\n var listener = this.onCenterViewportResized.bind(this);\n // centerContainer gets horizontal resizes\n this.centerContainerCon.registerViewportResizeListener(listener);\n // eBodyViewport gets vertical resizes\n this.gridBodyCon.registerBodyViewportResizeListener(listener);\n };\n ViewportSizeFeature.prototype.onScrollbarWidthChanged = function () {\n this.checkViewportAndScrolls();\n };\n ViewportSizeFeature.prototype.onCenterViewportResized = function () {\n if (this.centerContainerCon.isViewportVisible()) {\n this.checkViewportAndScrolls();\n var newWidth = this.centerContainerCon.getCenterWidth();\n if (newWidth !== this.centerWidth) {\n this.centerWidth = newWidth;\n this.columnController.refreshFlexedColumns({ viewportWidth: this.centerWidth, updateBodyWidths: true, fireResizedEvent: true });\n }\n }\n else {\n this.bodyHeight = 0;\n }\n };\n // gets called every time the viewport size changes. we use this to check visibility of scrollbars\n // in the grid panel, and also to check size and position of viewport for row and column virtualisation.\n ViewportSizeFeature.prototype.checkViewportAndScrolls = function () {\n // results in updating anything that depends on scroll showing\n this.updateScrollVisibleService();\n // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer\n this.checkBodyHeight();\n // check for virtual columns for ColumnController\n this.onHorizontalViewportChanged();\n this.gridBodyCon.getScrollFeature().checkScrollLeft();\n };\n ViewportSizeFeature.prototype.getBodyHeight = function () {\n return this.bodyHeight;\n };\n ViewportSizeFeature.prototype.checkBodyHeight = function () {\n var eBodyViewport = this.gridBodyCon.getBodyViewportElement();\n var bodyHeight = getInnerHeight(eBodyViewport);\n if (this.bodyHeight !== bodyHeight) {\n this.bodyHeight = bodyHeight;\n var event_1 = {\n type: Events.EVENT_BODY_HEIGHT_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ViewportSizeFeature.prototype.updateScrollVisibleService = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateScrollVisibleServiceImpl();\n setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);\n };\n ViewportSizeFeature.prototype.updateScrollVisibleServiceImpl = function () {\n var params = {\n horizontalScrollShowing: this.isHorizontalScrollShowing(),\n verticalScrollShowing: this.gridBodyCon.isVerticalScrollShowing()\n };\n this.scrollVisibleService.setScrollsVisible(params);\n // fix - gridComp should just listen to event from above\n this.gridBodyCon.setVerticalScrollPaddingVisible(params.verticalScrollShowing);\n };\n ViewportSizeFeature.prototype.isHorizontalScrollShowing = function () {\n var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();\n return isAlwaysShowHorizontalScroll || this.centerContainerCon.isViewportHScrollShowing();\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)\n ViewportSizeFeature.prototype.onHorizontalViewportChanged = function () {\n var scrollWidth = this.centerContainerCon.getCenterWidth();\n var scrollPosition = this.centerContainerCon.getViewportScrollLeft();\n this.columnController.setViewportPosition(scrollWidth, scrollPosition);\n };\n __decorate$10([\n Autowired('controllersService')\n ], ViewportSizeFeature.prototype, \"controllersService\", void 0);\n __decorate$10([\n Autowired('columnController')\n ], ViewportSizeFeature.prototype, \"columnController\", void 0);\n __decorate$10([\n Autowired('scrollVisibleService')\n ], ViewportSizeFeature.prototype, \"scrollVisibleService\", void 0);\n __decorate$10([\n Autowired('columnApi')\n ], ViewportSizeFeature.prototype, \"columnApi\", void 0);\n __decorate$10([\n Autowired('gridApi')\n ], ViewportSizeFeature.prototype, \"gridApi\", void 0);\n __decorate$10([\n PostConstruct\n ], ViewportSizeFeature.prototype, \"postConstruct\", null);\n return ViewportSizeFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$18 = (undefined && undefined.__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$11 = (undefined && undefined.__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 SetPinnedLeftWidthFeature = /** @class */ (function (_super) {\n __extends$18(SetPinnedLeftWidthFeature, _super);\n function SetPinnedLeftWidthFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n SetPinnedLeftWidthFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));\n };\n SetPinnedLeftWidthFeature.prototype.onPinnedLeftWidthChanged = function () {\n var leftWidth = this.pinnedWidthService.getPinnedLeftWidth();\n var displayed = leftWidth > 0;\n setDisplayed(this.element, displayed);\n if (displayed) {\n setFixedWidth(this.element, leftWidth);\n }\n };\n __decorate$11([\n Autowired('pinnedWidthService')\n ], SetPinnedLeftWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$11([\n PostConstruct\n ], SetPinnedLeftWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedLeftWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$19 = (undefined && undefined.__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$12 = (undefined && undefined.__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 SetPinnedRightWidthFeature = /** @class */ (function (_super) {\n __extends$19(SetPinnedRightWidthFeature, _super);\n function SetPinnedRightWidthFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n SetPinnedRightWidthFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));\n };\n SetPinnedRightWidthFeature.prototype.onPinnedRightWidthChanged = function () {\n var rightWidth = this.pinnedWidthService.getPinnedRightWidth();\n var displayed = rightWidth > 0;\n setDisplayed(this.element, displayed);\n if (displayed) {\n setFixedWidth(this.element, rightWidth);\n }\n };\n __decorate$12([\n Autowired('pinnedWidthService')\n ], SetPinnedRightWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$12([\n PostConstruct\n ], SetPinnedRightWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedRightWidthFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1a = (undefined && undefined.__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$13 = (undefined && undefined.__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 SetHeightFeature = /** @class */ (function (_super) {\n __extends$1a(SetHeightFeature, _super);\n function SetHeightFeature(eContainer, eWrapper) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n _this.eWrapper = eWrapper;\n return _this;\n }\n SetHeightFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onHeightChanged.bind(this));\n };\n SetHeightFeature.prototype.onHeightChanged = function () {\n var height = this.maxDivHeightScaler.getUiContainerHeight();\n var heightString = height != null ? height + \"px\" : \"\";\n this.eContainer.style.height = heightString;\n if (this.eWrapper) {\n this.eWrapper.style.height = heightString;\n }\n };\n __decorate$13([\n Autowired(\"rowContainerHeightService\")\n ], SetHeightFeature.prototype, \"maxDivHeightScaler\", void 0);\n __decorate$13([\n PostConstruct\n ], SetHeightFeature.prototype, \"postConstruct\", null);\n return SetHeightFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1b = (undefined && undefined.__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$14 = (undefined && undefined.__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 DragListenerFeature = /** @class */ (function (_super) {\n __extends$1b(DragListenerFeature, _super);\n function DragListenerFeature(eContainer) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n return _this;\n }\n DragListenerFeature.prototype.postConstruct = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isEnableRangeSelection() || // no range selection if no property\n missing(this.rangeController) // no range selection if not enterprise version\n ) {\n return;\n }\n var params = {\n eElement: this.eContainer,\n onDragStart: this.rangeController.onDragStart.bind(this.rangeController),\n onDragStop: this.rangeController.onDragStop.bind(this.rangeController),\n onDragging: this.rangeController.onDragging.bind(this.rangeController)\n };\n this.dragService.addDragSource(params);\n this.addDestroyFunc(function () { return _this.dragService.removeDragSource(params); });\n };\n __decorate$14([\n Optional('rangeController')\n ], DragListenerFeature.prototype, \"rangeController\", void 0);\n __decorate$14([\n Autowired('dragService')\n ], DragListenerFeature.prototype, \"dragService\", void 0);\n __decorate$14([\n PostConstruct\n ], DragListenerFeature.prototype, \"postConstruct\", null);\n return DragListenerFeature;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1c = (undefined && undefined.__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$15 = (undefined && undefined.__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 __spreadArrays$6 = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar RowContainerNames;\n(function (RowContainerNames) {\n RowContainerNames[\"LEFT\"] = \"left\";\n RowContainerNames[\"RIGHT\"] = \"right\";\n RowContainerNames[\"CENTER\"] = \"center\";\n RowContainerNames[\"FULL_WIDTH\"] = \"fullWidth\";\n RowContainerNames[\"TOP_LEFT\"] = \"topLeft\";\n RowContainerNames[\"TOP_RIGHT\"] = \"topRight\";\n RowContainerNames[\"TOP_CENTER\"] = \"topCenter\";\n RowContainerNames[\"TOP_FULL_WITH\"] = \"topFullWidth\";\n RowContainerNames[\"BOTTOM_LEFT\"] = \"bottomLeft\";\n RowContainerNames[\"BOTTOM_RIGHT\"] = \"bottomRight\";\n RowContainerNames[\"BOTTOM_CENTER\"] = \"bottomCenter\";\n RowContainerNames[\"BOTTOM_FULL_WITH\"] = \"bottomFullWidth\";\n})(RowContainerNames || (RowContainerNames = {}));\nvar ContainerCssClasses = convertToMap([\n [RowContainerNames.CENTER, 'ag-center-cols-container'],\n [RowContainerNames.LEFT, 'ag-pinned-left-cols-container'],\n [RowContainerNames.RIGHT, 'ag-pinned-right-cols-container'],\n [RowContainerNames.FULL_WIDTH, 'ag-full-width-container'],\n [RowContainerNames.TOP_CENTER, 'ag-floating-top-container'],\n [RowContainerNames.TOP_LEFT, 'ag-pinned-left-floating-top'],\n [RowContainerNames.TOP_RIGHT, 'ag-pinned-right-floating-top'],\n [RowContainerNames.TOP_FULL_WITH, 'ag-floating-top-full-width-container'],\n [RowContainerNames.BOTTOM_CENTER, 'ag-floating-bottom-container'],\n [RowContainerNames.BOTTOM_LEFT, 'ag-pinned-left-floating-bottom'],\n [RowContainerNames.BOTTOM_RIGHT, 'ag-pinned-right-floating-bottom'],\n [RowContainerNames.BOTTOM_FULL_WITH, 'ag-floating-bottom-full-width-container'],\n]);\nvar ViewportCssClasses = convertToMap([\n [RowContainerNames.CENTER, 'ag-center-cols-viewport'],\n [RowContainerNames.TOP_CENTER, 'ag-floating-top-viewport'],\n [RowContainerNames.BOTTOM_CENTER, 'ag-floating-bottom-viewport'],\n]);\nvar WrapperCssClasses = convertToMap([\n [RowContainerNames.CENTER, 'ag-center-cols-clipper'],\n]);\nvar RowContainerController = /** @class */ (function (_super) {\n __extends$1c(RowContainerController, _super);\n function RowContainerController(name) {\n var _this = _super.call(this) || this;\n _this.name = name;\n return _this;\n }\n RowContainerController.prototype.postConstruct = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n this.forContainers([RowContainerNames.CENTER], function () { return _this.viewportSizeFeature = _this.createManagedBean(new ViewportSizeFeature(_this)); });\n this.registerWithControllersService();\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n };\n RowContainerController.prototype.registerWithControllersService = function () {\n switch (this.name) {\n case RowContainerNames.CENTER:\n this.controllersService.registerCenterRowContainerCon(this);\n break;\n case RowContainerNames.LEFT:\n this.controllersService.registerLeftRowContainerCon(this);\n break;\n case RowContainerNames.RIGHT:\n this.controllersService.registerRightRowContainerCon(this);\n break;\n case RowContainerNames.TOP_CENTER:\n this.controllersService.registerTopCenterRowContainerCon(this);\n break;\n case RowContainerNames.TOP_LEFT:\n this.controllersService.registerTopLeftRowContainerCon(this);\n break;\n case RowContainerNames.TOP_RIGHT:\n this.controllersService.registerTopRightRowContainerCon(this);\n break;\n case RowContainerNames.BOTTOM_CENTER:\n this.controllersService.registerBottomCenterRowContainerCon(this);\n break;\n case RowContainerNames.BOTTOM_LEFT:\n this.controllersService.registerBottomLeftRowContainerCon(this);\n break;\n case RowContainerNames.BOTTOM_RIGHT:\n this.controllersService.registerBottomRightRowContainerCon(this);\n break;\n }\n };\n RowContainerController.prototype.forContainers = function (names, callback) {\n if (names.indexOf(this.name) >= 0) {\n callback();\n }\n };\n RowContainerController.prototype.getContainerElement = function () {\n return this.eContainer;\n };\n RowContainerController.prototype.getViewportSizeFeature = function () {\n return this.viewportSizeFeature;\n };\n RowContainerController.prototype.setView = function (view, eContainer, eViewport, eWrapper) {\n var _this = this;\n this.view = view;\n this.eContainer = eContainer;\n this.eViewport = eViewport;\n this.eWrapper = eWrapper;\n this.createManagedBean(new RowContainerEventsFeature(this.eContainer));\n this.addPreventScrollWhileDragging();\n var allTopNoFW = [RowContainerNames.TOP_CENTER, RowContainerNames.TOP_LEFT, RowContainerNames.TOP_RIGHT];\n var allBottomNoFW = [RowContainerNames.BOTTOM_CENTER, RowContainerNames.BOTTOM_LEFT, RowContainerNames.BOTTOM_RIGHT];\n var allMiddleNoFW = [RowContainerNames.CENTER, RowContainerNames.LEFT, RowContainerNames.RIGHT];\n var allNoFW = __spreadArrays$6(allTopNoFW, allBottomNoFW, allMiddleNoFW);\n var allMiddle = [RowContainerNames.CENTER, RowContainerNames.LEFT, RowContainerNames.RIGHT, RowContainerNames.FULL_WIDTH];\n var allCenter = [RowContainerNames.CENTER, RowContainerNames.TOP_CENTER, RowContainerNames.BOTTOM_CENTER];\n var allLeft = [RowContainerNames.LEFT, RowContainerNames.BOTTOM_LEFT, RowContainerNames.TOP_LEFT];\n var allRight = [RowContainerNames.RIGHT, RowContainerNames.BOTTOM_RIGHT, RowContainerNames.TOP_RIGHT];\n this.forContainers(allLeft, function () { return _this.createManagedBean(new SetPinnedLeftWidthFeature(_this.eContainer)); });\n this.forContainers(allRight, function () { return _this.createManagedBean(new SetPinnedRightWidthFeature(_this.eContainer)); });\n this.forContainers(allMiddle, function () { return _this.createManagedBean(new SetHeightFeature(_this.eContainer, _this.eWrapper)); });\n this.forContainers(allNoFW, function () { return _this.createManagedBean(new DragListenerFeature(_this.eContainer)); });\n this.forContainers(allCenter, function () { return _this.createManagedBean(new CenterWidthFeature(function (width) { return _this.eContainer.style.width = width + \"px\"; })); });\n };\n RowContainerController.prototype.onDisplayedColumnsChanged = function () {\n var _this = this;\n this.forContainers([RowContainerNames.CENTER], function () { return _this.onHorizontalViewportChanged(); });\n };\n RowContainerController.prototype.onDisplayedColumnsWidthChanged = function () {\n var _this = this;\n this.forContainers([RowContainerNames.CENTER], function () { return _this.onHorizontalViewportChanged(); });\n };\n RowContainerController.prototype.onScrollVisibilityChanged = function () {\n if (this.name !== RowContainerNames.CENTER) {\n return;\n }\n var visible = this.scrollVisibleService.isHorizontalScrollShowing();\n var scrollbarWidth = visible ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;\n var height = scrollbarWidth == 0 ? '100%' : \"calc(100% + \" + scrollbarWidth + \"px)\";\n this.view.setViewportHeight(height);\n };\n // this methods prevents the grid views from being scrolled while the dragService is being used\n // eg. the view should not scroll up and down while dragging rows using the rowDragComp.\n RowContainerController.prototype.addPreventScrollWhileDragging = function () {\n var _this = this;\n var preventScroll = function (e) {\n if (_this.dragService.isDragging()) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n };\n this.eContainer.addEventListener('touchmove', preventScroll, { passive: false });\n this.addDestroyFunc(function () { return _this.eContainer.removeEventListener('touchmove', preventScroll); });\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged, API (doLayout)\n RowContainerController.prototype.onHorizontalViewportChanged = function () {\n var scrollWidth = this.getCenterWidth();\n var scrollPosition = this.getCenterViewportScrollLeft();\n this.columnController.setViewportPosition(scrollWidth, scrollPosition);\n };\n RowContainerController.prototype.getCenterWidth = function () {\n return getInnerWidth(this.eViewport);\n };\n RowContainerController.prototype.getCenterViewportScrollLeft = function () {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerController.prototype.registerViewportResizeListener = function (listener) {\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eViewport, listener);\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n };\n RowContainerController.prototype.isViewportVisible = function () {\n return isVisible(this.eViewport);\n };\n RowContainerController.prototype.isViewportHScrollShowing = function () {\n return isHorizontalScrollShowing(this.eViewport);\n };\n RowContainerController.prototype.getViewportScrollLeft = function () {\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerController.prototype.isHorizontalScrollShowing = function () {\n var isAlwaysShowHorizontalScroll = this.gridOptionsWrapper.isAlwaysShowHorizontalScroll();\n return isAlwaysShowHorizontalScroll || isHorizontalScrollShowing(this.eViewport);\n };\n RowContainerController.prototype.getViewportElement = function () {\n return this.eViewport;\n };\n RowContainerController.prototype.setContainerTranslateX = function (amount) {\n this.eContainer.style.transform = \"translateX(\" + amount + \"px)\";\n };\n RowContainerController.prototype.getHScrollPosition = function () {\n var res = {\n left: this.eViewport.scrollLeft,\n right: this.eViewport.scrollLeft + this.eViewport.offsetWidth\n };\n return res;\n };\n RowContainerController.prototype.setCenterViewportScrollLeft = function (value) {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n setScrollLeft(this.eViewport, value, this.enableRtl);\n };\n __decorate$15([\n Autowired('scrollVisibleService')\n ], RowContainerController.prototype, \"scrollVisibleService\", void 0);\n __decorate$15([\n Autowired('dragService')\n ], RowContainerController.prototype, \"dragService\", void 0);\n __decorate$15([\n Autowired('controllersService')\n ], RowContainerController.prototype, \"controllersService\", void 0);\n __decorate$15([\n Autowired('columnController')\n ], RowContainerController.prototype, \"columnController\", void 0);\n __decorate$15([\n Autowired('resizeObserverService')\n ], RowContainerController.prototype, \"resizeObserverService\", void 0);\n __decorate$15([\n PostConstruct\n ], RowContainerController.prototype, \"postConstruct\", null);\n return RowContainerController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1d = (undefined && undefined.__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$16 = (undefined && undefined.__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 GRID_BODY_TEMPLATE = /* html */ \"
\\n \\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n
\";\nvar GridBodyComp = /** @class */ (function (_super) {\n __extends$1d(GridBodyComp, _super);\n function GridBodyComp() {\n return _super.call(this, GRID_BODY_TEMPLATE) || this;\n }\n GridBodyComp.prototype.init = function () {\n var _this = this;\n var setHeight = function (height, element) {\n var heightString = height + \"px\";\n element.style.minHeight = heightString;\n element.style.height = heightString;\n };\n var view = {\n setRowAnimationCssOnBodyViewport: this.setRowAnimationCssOnBodyViewport.bind(this),\n setColumnCount: function (count) { return setAriaColCount(_this.getGui(), count); },\n setRowCount: function (count) { return setAriaRowCount(_this.getGui(), count); },\n setTopHeight: function (height) { return setHeight(height, _this.eTop); },\n setBottomHeight: function (height) { return setHeight(height, _this.eBottom); },\n setTopDisplay: function (display) { return _this.eTop.style.display = display; },\n setBottomDisplay: function (display) { return _this.eBottom.style.display = display; },\n setColumnMovingCss: function (moving) { return _this.addOrRemoveCssClass(CSS_CLASS_COLUMN_MOVING, moving); },\n updateLayoutClasses: function (params) {\n addOrRemoveCssClass(_this.eBodyViewport, exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n addOrRemoveCssClass(_this.eBodyViewport, exports.LayoutCssClasses.NORMAL, params.normal);\n addOrRemoveCssClass(_this.eBodyViewport, exports.LayoutCssClasses.PRINT, params.print);\n _this.addOrRemoveCssClass(exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n _this.addOrRemoveCssClass(exports.LayoutCssClasses.NORMAL, params.normal);\n _this.addOrRemoveCssClass(exports.LayoutCssClasses.PRINT, params.print);\n },\n setAlwaysVerticalScrollClass: function (on) {\n return addOrRemoveCssClass(_this.eBodyViewport, CSS_CLASS_FORCE_VERTICAL_SCROLL, on);\n },\n registerBodyViewportResizeListener: function (listener) {\n var unsubscribeFromResize = _this.resizeObserverService.observeResize(_this.eBodyViewport, listener);\n _this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n },\n setVerticalScrollPaddingVisible: function (show) {\n var scroller = show ? 'scroll' : 'hidden';\n _this.eTop.style.overflowY = _this.eBottom.style.overflowY = scroller;\n },\n setCellSelectableCss: function (selectable) {\n [_this.eTop, _this.eBodyViewport, _this.eBottom]\n .forEach(function (ct) { return addOrRemoveCssClass(ct, CSS_CLASS_CELL_SELECTABLE, selectable); });\n },\n };\n this.controller = this.createManagedBean(new GridBodyController());\n this.controller.setView(view, this.getGui(), this.eBodyViewport, this.eTop, this.eBottom);\n if (this.$scope) {\n this.addAngularApplyCheck();\n }\n this.gridApi.registerGridComp(this);\n this.beans.registerGridComp(this);\n if (this.contextMenuFactory) {\n this.contextMenuFactory.registerGridComp(this);\n }\n if (this.menuFactory) {\n this.menuFactory.registerGridComp(this);\n }\n if (this.rangeController || this.gridOptionsWrapper.isRowSelectionMulti()) {\n setAriaMultiSelectable(this.getGui(), true);\n if (this.rangeController) {\n this.rangeController.registerGridComp(this);\n }\n }\n [this.eTop, this.eBodyViewport, this.eBottom].forEach(function (element) {\n _this.addManagedListener(element, 'focusin', function () {\n addCssClass(element, 'ag-has-focus');\n });\n _this.addManagedListener(element, 'focusout', function (e) {\n if (!element.contains(e.relatedTarget)) {\n removeCssClass(element, 'ag-has-focus');\n }\n });\n });\n };\n GridBodyComp.prototype.setRowAnimationCssOnBodyViewport = function (animateRows) {\n addOrRemoveCssClass(this.eBodyViewport, RowAnimationCssClasses.ANIMATION_ON, animateRows);\n addOrRemoveCssClass(this.eBodyViewport, RowAnimationCssClasses.ANIMATION_OFF, !animateRows);\n };\n GridBodyComp.prototype.addAngularApplyCheck = function () {\n var _this = this;\n // this makes sure if we queue up requests, we only execute oe\n var applyTriggered = false;\n var listener = function () {\n // only need to do one apply at a time\n if (applyTriggered) {\n return;\n }\n applyTriggered = true; // mark 'need apply' to true\n window.setTimeout(function () {\n applyTriggered = false;\n _this.$scope.$apply();\n }, 0);\n };\n // these are the events we need to do an apply after - these are the ones that can end up\n // with columns added or removed\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, listener);\n };\n GridBodyComp.prototype.getFloatingTopBottom = function () {\n return [this.eTop, this.eBottom];\n };\n // + rangeController\n GridBodyComp.prototype.addScrollEventListener = function (listener) {\n this.eBodyViewport.addEventListener('scroll', listener);\n };\n // + rangeController\n GridBodyComp.prototype.removeScrollEventListener = function (listener) {\n this.eBodyViewport.removeEventListener('scroll', listener);\n };\n __decorate$16([\n Autowired('beans')\n ], GridBodyComp.prototype, \"beans\", void 0);\n __decorate$16([\n Autowired('gridApi')\n ], GridBodyComp.prototype, \"gridApi\", void 0);\n __decorate$16([\n Autowired('$scope')\n ], GridBodyComp.prototype, \"$scope\", void 0);\n __decorate$16([\n Autowired('resizeObserverService')\n ], GridBodyComp.prototype, \"resizeObserverService\", void 0);\n __decorate$16([\n Optional('rangeController')\n ], GridBodyComp.prototype, \"rangeController\", void 0);\n __decorate$16([\n Optional('contextMenuFactory')\n ], GridBodyComp.prototype, \"contextMenuFactory\", void 0);\n __decorate$16([\n Optional('menuFactory')\n ], GridBodyComp.prototype, \"menuFactory\", void 0);\n __decorate$16([\n RefSelector('eBodyViewport')\n ], GridBodyComp.prototype, \"eBodyViewport\", void 0);\n __decorate$16([\n RefSelector('eTop')\n ], GridBodyComp.prototype, \"eTop\", void 0);\n __decorate$16([\n RefSelector('eBottom')\n ], GridBodyComp.prototype, \"eBottom\", void 0);\n __decorate$16([\n RefSelector('headerRoot')\n ], GridBodyComp.prototype, \"headerRootComp\", void 0);\n __decorate$16([\n PostConstruct\n ], GridBodyComp.prototype, \"init\", null);\n return GridBodyComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n(function (ExcelFactoryMode) {\n ExcelFactoryMode[ExcelFactoryMode[\"SINGLE_SHEET\"] = 0] = \"SINGLE_SHEET\";\n ExcelFactoryMode[ExcelFactoryMode[\"MULTI_SHEET\"] = 1] = \"MULTI_SHEET\";\n})(exports.ExcelFactoryMode || (exports.ExcelFactoryMode = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n(function (ClientSideRowModelSteps) {\n ClientSideRowModelSteps[\"EVERYTHING\"] = \"group\";\n ClientSideRowModelSteps[\"FILTER\"] = \"filter\";\n ClientSideRowModelSteps[\"SORT\"] = \"sort\";\n ClientSideRowModelSteps[\"MAP\"] = \"map\";\n ClientSideRowModelSteps[\"AGGREGATE\"] = \"aggregate\";\n ClientSideRowModelSteps[\"PIVOT\"] = \"pivot\";\n ClientSideRowModelSteps[\"NOTHING\"] = \"nothing\";\n})(exports.ClientSideRowModelSteps || (exports.ClientSideRowModelSteps = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$17 = (undefined && undefined.__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 GridApi = /** @class */ (function () {\n function GridApi() {\n this.detailGridInfoMap = {};\n this.destroyCalled = false;\n }\n GridApi.prototype.registerGridComp = function (gridBodyComp) {\n this.gridBodyComp = gridBodyComp;\n };\n GridApi.prototype.registerOverlayWrapperComp = function (overlayWrapperComp) {\n this.overlayWrapperComp = overlayWrapperComp;\n };\n GridApi.prototype.registerGridCompController = function (gridCompController) {\n this.gridCompController = gridCompController;\n };\n GridApi.prototype.registerHeaderRootComp = function (headerRootComp) {\n this.headerRootComp = headerRootComp;\n };\n GridApi.prototype.registerSideBarComp = function (sideBarComp) {\n this.sideBarComp = sideBarComp;\n };\n GridApi.prototype.init = function () {\n var _this = this;\n switch (this.rowModel.getType()) {\n case Constants.ROW_MODEL_TYPE_CLIENT_SIDE:\n this.clientSideRowModel = this.rowModel;\n break;\n case Constants.ROW_MODEL_TYPE_INFINITE:\n this.infiniteRowModel = this.rowModel;\n break;\n case Constants.ROW_MODEL_TYPE_SERVER_SIDE:\n this.serverSideRowModel = this.rowModel;\n break;\n }\n this.controllersService.whenReady(function () {\n _this.gridBodyCon = _this.controllersService.getGridBodyController();\n });\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__getAlignedGridService = function () {\n return this.alignedGridsService;\n };\n GridApi.prototype.addDetailGridInfo = function (id, gridInfo) {\n this.detailGridInfoMap[id] = gridInfo;\n };\n GridApi.prototype.removeDetailGridInfo = function (id) {\n this.detailGridInfoMap[id] = undefined;\n };\n GridApi.prototype.getDetailGridInfo = function (id) {\n return this.detailGridInfoMap[id];\n };\n GridApi.prototype.forEachDetailGridInfo = function (callback) {\n var index = 0;\n iterateObject(this.detailGridInfoMap, function (id, gridInfo) {\n // check for undefined, as old references will still be lying around\n if (exists(gridInfo)) {\n callback(gridInfo, index);\n index++;\n }\n });\n };\n GridApi.prototype.getDataAsCsv = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.CsvExportModule, 'api.getDataAsCsv')) {\n return this.csvCreator.getDataAsCsv(params);\n }\n };\n GridApi.prototype.exportDataAsCsv = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.CsvExportModule, 'api.exportDataAsCSv')) {\n this.csvCreator.exportDataAsCsv(params);\n }\n };\n GridApi.prototype.getDataAsExcel = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.getDataAsExcel')) {\n var exportMode = (params && params.exportMode) || 'xlsx';\n if (this.excelCreator.getFactoryMode(exportMode) === exports.ExcelFactoryMode.MULTI_SHEET) {\n console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');\n return;\n }\n return this.excelCreator.getDataAsExcel(params);\n }\n };\n GridApi.prototype.exportDataAsExcel = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.exportDataAsExcel')) {\n var exportMode = (params && params.exportMode) || 'xlsx';\n if (this.excelCreator.getFactoryMode(exportMode) === exports.ExcelFactoryMode.MULTI_SHEET) {\n console.warn('AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling `api.getMultipleSheetAsExcel()` or `api.exportMultipleSheetsAsExcel()`');\n return;\n }\n this.excelCreator.exportDataAsExcel(params);\n }\n };\n GridApi.prototype.getSheetDataForExcel = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.getSheetDataForExcel')) {\n var exportMode = (params && params.exportMode) || 'xlsx';\n this.excelCreator.setFactoryMode(exports.ExcelFactoryMode.MULTI_SHEET, exportMode);\n return this.excelCreator.getSheetDataForExcel(params);\n }\n };\n GridApi.prototype.getMultipleSheetsAsExcel = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.getMultipleSheetsAsExcel')) {\n return this.excelCreator.getMultipleSheetsAsExcel(params);\n }\n };\n GridApi.prototype.exportMultipleSheetsAsExcel = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.ExcelExportModule, 'api.exportMultipleSheetsAsExcel')) {\n return this.excelCreator.exportMultipleSheetsAsExcel(params);\n }\n };\n /** @deprecated */\n GridApi.prototype.setEnterpriseDatasource = function (datasource) {\n console.warn(\"ag-grid: since version 18.x, api.setEnterpriseDatasource() should be replaced with api.setServerSideDatasource()\");\n this.setServerSideDatasource(datasource);\n };\n GridApi.prototype.setGridAriaProperty = function (property, value) {\n if (!property) {\n return;\n }\n var eGrid = this.gridBodyComp.getGui();\n var ariaProperty = \"aria-\" + property;\n if (value === null) {\n eGrid.removeAttribute(ariaProperty);\n }\n else {\n eGrid.setAttribute(ariaProperty, value);\n }\n };\n GridApi.prototype.setServerSideDatasource = function (datasource) {\n if (this.serverSideRowModel) {\n // should really have an IEnterpriseRowModel interface, so we are not casting to any\n this.serverSideRowModel.setDatasource(datasource);\n }\n else {\n console.warn(\"AG Grid: you can only use an enterprise datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_SERVER_SIDE + \"'\");\n }\n };\n GridApi.prototype.setDatasource = function (datasource) {\n if (this.gridOptionsWrapper.isRowModelInfinite()) {\n this.rowModel.setDatasource(datasource);\n }\n else {\n console.warn(\"AG Grid: you can only use a datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_INFINITE + \"'\");\n }\n };\n GridApi.prototype.setViewportDatasource = function (viewportDatasource) {\n if (this.gridOptionsWrapper.isRowModelViewport()) {\n // this is bad coding, because it's using an interface that's exposed in the enterprise.\n // really we should create an interface in the core for viewportDatasource and let\n // the enterprise implement it, rather than casting to 'any' here\n this.rowModel.setViewportDatasource(viewportDatasource);\n }\n else {\n console.warn(\"AG Grid: you can only use a viewport datasource when gridOptions.rowModelType is '\" + Constants.ROW_MODEL_TYPE_VIEWPORT + \"'\");\n }\n };\n GridApi.prototype.setRowData = function (rowData) {\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n if (this.gridOptionsWrapper.isImmutableData()) {\n var transactionAndMap = this.immutableService.createTransactionForRowData(rowData);\n if (!transactionAndMap) {\n return;\n }\n var transaction = transactionAndMap[0], orderIdMap = transactionAndMap[1];\n var nodeTransaction = this.clientSideRowModel.updateRowData(transaction, orderIdMap);\n // need to force updating of full width rows - note this wouldn't be necessary the full width cell comp listened\n // to the data change event on the row node and refreshed itself.\n if (nodeTransaction) {\n this.rowRenderer.refreshFullWidthRows(nodeTransaction.update);\n }\n }\n else {\n this.selectionController.reset();\n this.clientSideRowModel.setRowData(rowData);\n }\n }\n else {\n console.warn('cannot call setRowData unless using normal row model');\n }\n };\n /** @deprecated */\n GridApi.prototype.setFloatingTopRowData = function (rows) {\n console.warn('AG Grid: since v12, api.setFloatingTopRowData() is now api.setPinnedTopRowData()');\n this.setPinnedTopRowData(rows);\n };\n /** @deprecated */\n GridApi.prototype.setFloatingBottomRowData = function (rows) {\n console.warn('AG Grid: since v12, api.setFloatingBottomRowData() is now api.setPinnedBottomRowData()');\n this.setPinnedBottomRowData(rows);\n };\n /** @deprecated */\n GridApi.prototype.getFloatingTopRowCount = function () {\n console.warn('AG Grid: since v12, api.getFloatingTopRowCount() is now api.getPinnedTopRowCount()');\n return this.getPinnedTopRowCount();\n };\n /** @deprecated */\n GridApi.prototype.getFloatingBottomRowCount = function () {\n console.warn('AG Grid: since v12, api.getFloatingBottomRowCount() is now api.getPinnedBottomRowCount()');\n return this.getPinnedBottomRowCount();\n };\n /** @deprecated */\n GridApi.prototype.getFloatingTopRow = function (index) {\n console.warn('AG Grid: since v12, api.getFloatingTopRow() is now api.getPinnedTopRow()');\n return this.getPinnedTopRow(index);\n };\n /** @deprecated */\n GridApi.prototype.getFloatingBottomRow = function (index) {\n console.warn('AG Grid: since v12, api.getFloatingBottomRow() is now api.getPinnedBottomRow()');\n return this.getPinnedBottomRow(index);\n };\n GridApi.prototype.setPinnedTopRowData = function (rows) {\n this.pinnedRowModel.setPinnedTopRowData(rows);\n };\n GridApi.prototype.setPinnedBottomRowData = function (rows) {\n this.pinnedRowModel.setPinnedBottomRowData(rows);\n };\n GridApi.prototype.getPinnedTopRowCount = function () {\n return this.pinnedRowModel.getPinnedTopRowCount();\n };\n GridApi.prototype.getPinnedBottomRowCount = function () {\n return this.pinnedRowModel.getPinnedBottomRowCount();\n };\n GridApi.prototype.getPinnedTopRow = function (index) {\n return this.pinnedRowModel.getPinnedTopRow(index);\n };\n GridApi.prototype.getPinnedBottomRow = function (index) {\n return this.pinnedRowModel.getPinnedBottomRow(index);\n };\n GridApi.prototype.setColumnDefs = function (colDefs, source) {\n if (source === void 0) { source = \"api\"; }\n this.columnController.setColumnDefs(colDefs, source);\n };\n GridApi.prototype.setAutoGroupColumnDef = function (colDef, source) {\n this.gridOptionsWrapper.setProperty('autoGroupColumnDef', colDef, true);\n };\n GridApi.prototype.expireValueCache = function () {\n this.valueCache.expire();\n };\n GridApi.prototype.getVerticalPixelRange = function () {\n return this.gridBodyCon.getScrollFeature().getVScrollPosition();\n };\n GridApi.prototype.getHorizontalPixelRange = function () {\n return this.gridBodyCon.getScrollFeature().getHScrollPosition();\n };\n GridApi.prototype.setAlwaysShowHorizontalScroll = function (show) {\n this.gridOptionsWrapper.setProperty('alwaysShowHorizontalScroll', show);\n };\n GridApi.prototype.setAlwaysShowVerticalScroll = function (show) {\n this.gridOptionsWrapper.setProperty('alwaysShowVerticalScroll', show);\n };\n GridApi.prototype.refreshToolPanel = function () {\n if (!this.sideBarComp) {\n return;\n }\n this.sideBarComp.refresh();\n };\n GridApi.prototype.refreshCells = function (params) {\n if (params === void 0) { params = {}; }\n if (Array.isArray(params)) {\n // the old version of refreshCells() took an array of rowNodes for the first argument\n console.warn('since AG Grid v11.1, refreshCells() now takes parameters, please see the documentation.');\n return;\n }\n this.rowRenderer.refreshCells(params);\n };\n GridApi.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n this.rowRenderer.flashCells(params);\n };\n GridApi.prototype.redrawRows = function (params) {\n if (params === void 0) { params = {}; }\n var rowNodes = params ? params.rowNodes : undefined;\n this.rowRenderer.redrawRows(rowNodes);\n };\n /** @deprecated */\n GridApi.prototype.refreshView = function () {\n console.warn('AG Grid: since v11.1, refreshView() is deprecated, please call refreshCells() or redrawRows() instead');\n this.redrawRows();\n };\n /** @deprecated */\n GridApi.prototype.refreshRows = function (rowNodes) {\n console.warn('since AG Grid v11.1, refreshRows() is deprecated, please use refreshCells({rowNodes: rows}) or redrawRows({rowNodes: rows}) instead');\n this.refreshCells({ rowNodes: rowNodes });\n };\n /** @deprecated */\n GridApi.prototype.rowDataChanged = function (rows) {\n console.warn('AG Grid: rowDataChanged is deprecated, either call refreshView() to refresh everything, or call rowNode.setRowData(newData) to set value on a particular node');\n this.redrawRows();\n };\n /** @deprecated */\n GridApi.prototype.softRefreshView = function () {\n console.error('AG Grid: since v16, softRefreshView() is no longer supported. Please check the documentation on how to refresh.');\n };\n /** @deprecated */\n GridApi.prototype.refreshGroupRows = function () {\n console.warn('AG Grid: since v11.1, refreshGroupRows() is no longer supported, call refreshCells() instead. ' +\n 'Because refreshCells() now does dirty checking, it will only refresh cells that have changed, so it should ' +\n 'not be necessary to only refresh the group rows.');\n this.refreshCells();\n };\n GridApi.prototype.setFunctionsReadOnly = function (readOnly) {\n this.gridOptionsWrapper.setProperty('functionsReadOnly', readOnly);\n };\n GridApi.prototype.refreshHeader = function () {\n this.headerRootComp.refreshHeader();\n };\n GridApi.prototype.isAnyFilterPresent = function () {\n return this.filterManager.isAnyFilterPresent();\n };\n /** @deprecated */\n GridApi.prototype.isAdvancedFilterPresent = function () {\n console.warn('AG Grid: isAdvancedFilterPresent() is deprecated, please use isColumnFilterPresent()');\n return this.isColumnFilterPresent();\n };\n GridApi.prototype.isColumnFilterPresent = function () {\n return this.filterManager.isAdvancedFilterPresent();\n };\n GridApi.prototype.isQuickFilterPresent = function () {\n return this.filterManager.isQuickFilterPresent();\n };\n GridApi.prototype.getModel = function () {\n return this.rowModel;\n };\n GridApi.prototype.setRowNodeExpanded = function (rowNode, expanded) {\n if (rowNode) {\n rowNode.setExpanded(expanded);\n }\n };\n GridApi.prototype.onGroupExpandedOrCollapsed = function (deprecated_refreshFromIndex) {\n if (missing(this.clientSideRowModel)) {\n console.warn('AG Grid: cannot call onGroupExpandedOrCollapsed unless using normal row model');\n }\n if (exists(deprecated_refreshFromIndex)) {\n console.warn('AG Grid: api.onGroupExpandedOrCollapsed - refreshFromIndex parameter is no longer used, the grid will refresh all rows');\n }\n // we don't really want the user calling this if only one rowNode was expanded, instead they should be\n // calling rowNode.setExpanded(boolean) - this way we do a 'keepRenderedRows=false' so that the whole\n // grid gets refreshed again - otherwise the row with the rowNodes that were changed won't get updated,\n // and thus the expand icon in the group cell won't get 'opened' or 'closed'.\n this.clientSideRowModel.refreshModel({ step: exports.ClientSideRowModelSteps.MAP });\n };\n GridApi.prototype.refreshInMemoryRowModel = function (step) {\n console.warn(\"ag-grid: since version 18.x, api.refreshInMemoryRowModel() should be replaced with api.refreshClientSideRowModel()\");\n this.refreshClientSideRowModel(step);\n };\n GridApi.prototype.refreshClientSideRowModel = function (step) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call refreshClientSideRowModel unless using normal row model');\n }\n var paramsStep = exports.ClientSideRowModelSteps.EVERYTHING;\n var stepsMapped = {\n group: exports.ClientSideRowModelSteps.EVERYTHING,\n filter: exports.ClientSideRowModelSteps.FILTER,\n map: exports.ClientSideRowModelSteps.MAP,\n aggregate: exports.ClientSideRowModelSteps.AGGREGATE,\n sort: exports.ClientSideRowModelSteps.SORT,\n pivot: exports.ClientSideRowModelSteps.PIVOT\n };\n if (exists(step)) {\n paramsStep = stepsMapped[step];\n }\n if (missing(paramsStep)) {\n console.error(\"AG Grid: invalid step \" + step + \", available steps are \" + Object.keys(stepsMapped).join(', '));\n return;\n }\n var modelParams = {\n step: paramsStep,\n keepRenderedRows: true,\n animate: true,\n keepEditingRows: true\n };\n this.clientSideRowModel.refreshModel(modelParams);\n };\n GridApi.prototype.isAnimationFrameQueueEmpty = function () {\n return this.animationFrameService.isQueueEmpty();\n };\n GridApi.prototype.getRowNode = function (id) {\n return this.rowModel.getRowNode(id);\n };\n GridApi.prototype.getSizesForCurrentTheme = function () {\n return {\n rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),\n headerHeight: this.gridOptionsWrapper.getHeaderHeight()\n };\n };\n GridApi.prototype.expandAll = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.expandOrCollapseAll(true);\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.expandAll(true);\n }\n else {\n console.warn('AG Grid: expandAll only works with Client Side Row Model and Server Side Row Model');\n }\n };\n GridApi.prototype.collapseAll = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.expandOrCollapseAll(false);\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.expandAll(false);\n }\n else {\n console.warn('AG Grid: collapseAll only works with Client Side Row Model and Server Side Row Model');\n }\n };\n GridApi.prototype.getToolPanelInstance = function (id) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n return this.sideBarComp.getToolPanelInstance(id);\n };\n GridApi.prototype.addVirtualRowListener = function (eventName, rowIndex, callback) {\n if (typeof eventName !== 'string') {\n console.warn('AG Grid: addVirtualRowListener is deprecated, please use addRenderedRowListener.');\n }\n this.addRenderedRowListener(eventName, rowIndex, callback);\n };\n GridApi.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n if (eventName === 'virtualRowSelected') {\n console.warn(\"AG Grid: event virtualRowSelected is deprecated, to register for individual row\\n selection events, add a listener directly to the row node.\");\n }\n this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);\n };\n GridApi.prototype.setQuickFilter = function (newFilter) {\n this.filterManager.setQuickFilter(newFilter);\n };\n GridApi.prototype.selectIndex = function (index, tryMulti, suppressEvents) {\n console.warn('AG Grid: do not use api for selection, call node.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n this.selectionController.selectIndex(index, tryMulti);\n };\n GridApi.prototype.deselectIndex = function (index, suppressEvents) {\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: do not use api for selection, call node.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n this.selectionController.deselectIndex(index);\n };\n GridApi.prototype.selectNode = function (node, tryMulti, suppressEvents) {\n if (tryMulti === void 0) { tryMulti = false; }\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: API for selection is deprecated, call node.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n node.setSelectedParams({ newValue: true, clearSelection: !tryMulti });\n };\n GridApi.prototype.deselectNode = function (node, suppressEvents) {\n if (suppressEvents === void 0) { suppressEvents = false; }\n console.warn('AG Grid: API for selection is deprecated, call node.setSelected(value) instead');\n if (suppressEvents) {\n console.warn('AG Grid: suppressEvents is no longer supported, stop listening for the event if you no longer want it');\n }\n node.setSelectedParams({ newValue: false });\n };\n GridApi.prototype.selectAll = function () {\n this.selectionController.selectAllRowNodes();\n };\n GridApi.prototype.deselectAll = function () {\n this.selectionController.deselectAllRowNodes();\n };\n GridApi.prototype.selectAllFiltered = function () {\n this.selectionController.selectAllRowNodes(true);\n };\n GridApi.prototype.deselectAllFiltered = function () {\n this.selectionController.deselectAllRowNodes(true);\n };\n GridApi.prototype.recomputeAggregates = function () {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call recomputeAggregates unless using normal row model');\n }\n console.warn(\"recomputeAggregates is deprecated, please call api.refreshClientSideRowModel('aggregate') instead\");\n this.clientSideRowModel.refreshModel({ step: exports.ClientSideRowModelSteps.AGGREGATE });\n };\n GridApi.prototype.sizeColumnsToFit = function () {\n this.gridBodyCon.sizeColumnsToFit();\n };\n GridApi.prototype.showLoadingOverlay = function () {\n this.overlayWrapperComp.showLoadingOverlay();\n };\n GridApi.prototype.showNoRowsOverlay = function () {\n this.overlayWrapperComp.showNoRowsOverlay();\n };\n GridApi.prototype.hideOverlay = function () {\n this.overlayWrapperComp.hideOverlay();\n };\n GridApi.prototype.isNodeSelected = function (node) {\n console.warn('AG Grid: no need to call api.isNodeSelected(), just call node.isSelected() instead');\n return node.isSelected();\n };\n GridApi.prototype.getSelectedNodesById = function () {\n console.error('AG Grid: since version 3.4, getSelectedNodesById no longer exists, use getSelectedNodes() instead');\n return null;\n };\n GridApi.prototype.getSelectedNodes = function () {\n return this.selectionController.getSelectedNodes();\n };\n GridApi.prototype.getSelectedRows = function () {\n return this.selectionController.getSelectedRows();\n };\n GridApi.prototype.getBestCostNodeSelection = function () {\n return this.selectionController.getBestCostNodeSelection();\n };\n GridApi.prototype.getRenderedNodes = function () {\n return this.rowRenderer.getRenderedNodes();\n };\n GridApi.prototype.ensureColIndexVisible = function (index) {\n console.warn('AG Grid: ensureColIndexVisible(index) no longer supported, use ensureColumnVisible(colKey) instead.');\n };\n GridApi.prototype.ensureColumnVisible = function (key) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(key);\n };\n // Valid values for position are bottom, middle and top\n GridApi.prototype.ensureIndexVisible = function (index, position) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(index, position);\n };\n // Valid values for position are bottom, middle and top\n GridApi.prototype.ensureNodeVisible = function (comparator, position) {\n if (position === void 0) { position = null; }\n this.gridBodyCon.getScrollFeature().ensureNodeVisible(comparator, position);\n };\n GridApi.prototype.forEachLeafNode = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNode unless using normal row model');\n }\n this.clientSideRowModel.forEachLeafNode(callback);\n };\n GridApi.prototype.forEachNode = function (callback) {\n this.rowModel.forEachNode(callback);\n };\n GridApi.prototype.forEachNodeAfterFilter = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNodeAfterFilter unless using normal row model');\n }\n this.clientSideRowModel.forEachNodeAfterFilter(callback);\n };\n GridApi.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n if (missing(this.clientSideRowModel)) {\n console.warn('cannot call forEachNodeAfterFilterAndSort unless using normal row model');\n }\n this.clientSideRowModel.forEachNodeAfterFilterAndSort(callback);\n };\n GridApi.prototype.getFilterApiForColDef = function (colDef) {\n console.warn('ag-grid API method getFilterApiForColDef deprecated, use getFilterInstance instead');\n return this.getFilterInstance(colDef);\n };\n GridApi.prototype.getFilterInstance = function (key, callback) {\n var column = this.columnController.getPrimaryColumn(key);\n if (column) {\n var filterPromise = this.filterManager.getFilterComponent(column, 'NO_UI');\n var currentValue = filterPromise && filterPromise.resolveNow(null, function (filterComp) { return filterComp; });\n if (callback) {\n if (currentValue) {\n setTimeout(callback, 0, currentValue);\n }\n else if (filterPromise) {\n filterPromise.then(callback);\n }\n }\n return currentValue;\n }\n };\n GridApi.prototype.getFilterApi = function (key) {\n console.warn('AG Grid: getFilterApi is deprecated, use getFilterInstance instead');\n return this.getFilterInstance(key);\n };\n GridApi.prototype.destroyFilter = function (key) {\n var column = this.columnController.getPrimaryColumn(key);\n if (column) {\n return this.filterManager.destroyFilter(column, \"filterDestroyed\");\n }\n };\n GridApi.prototype.getStatusPanel = function (key) {\n if (this.statusBarService) {\n return this.statusBarService.getStatusPanel(key);\n }\n };\n GridApi.prototype.getColumnDef = function (key) {\n var column = this.columnController.getPrimaryColumn(key);\n if (column) {\n return column.getColDef();\n }\n return null;\n };\n GridApi.prototype.getColumnDefs = function () { return this.columnController.getColumnDefs(); };\n GridApi.prototype.onFilterChanged = function () {\n this.filterManager.onFilterChanged();\n };\n GridApi.prototype.onSortChanged = function () {\n this.sortController.onSortChanged();\n };\n GridApi.prototype.setSortModel = function (sortModel, source) {\n console.warn('AG Grid: as of version 24.0.0, setSortModel() is deprecated, sort information is now part of Column State. Please use columnApi.applyColumnState() instead.');\n var columnState = [];\n if (sortModel) {\n sortModel.forEach(function (item, index) {\n columnState.push({\n colId: item.colId,\n sort: item.sort,\n sortIndex: index\n });\n });\n }\n this.columnController.applyColumnState({ state: columnState, defaultState: { sort: null } });\n };\n GridApi.prototype.getSortModel = function () {\n console.warn('AG Grid: as of version 24.0.0, getSortModel() is deprecated, sort information is now part of Column State. Please use columnApi.getColumnState() instead.');\n var columnState = this.columnController.getColumnState();\n var filteredStates = columnState.filter(function (item) { return item.sort != null; });\n var indexes = {};\n filteredStates.forEach(function (state) {\n var id = state.colId;\n var sortIndex = state.sortIndex;\n indexes[id] = sortIndex;\n });\n var res = filteredStates.map(function (s) {\n return { colId: s.colId, sort: s.sort };\n });\n res.sort(function (a, b) { return indexes[a.colId] - indexes[b.colId]; });\n return res;\n };\n GridApi.prototype.setFilterModel = function (model) {\n this.filterManager.setFilterModel(model);\n };\n GridApi.prototype.getFilterModel = function () {\n return this.filterManager.getFilterModel();\n };\n GridApi.prototype.getFocusedCell = function () {\n return this.focusController.getFocusedCell();\n };\n GridApi.prototype.clearFocusedCell = function () {\n return this.focusController.clearFocusedCell();\n };\n GridApi.prototype.setFocusedCell = function (rowIndex, colKey, floating) {\n this.focusController.setFocusedCell(rowIndex, colKey, floating, true);\n };\n GridApi.prototype.setSuppressRowDrag = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_ROW_DRAG, value);\n };\n GridApi.prototype.setSuppressMoveWhenRowDragging = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_MOVE_WHEN_ROW_DRAG, value);\n };\n GridApi.prototype.setSuppressRowClickSelection = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_ROW_CLICK_SELECTION, value);\n };\n GridApi.prototype.addRowDropZone = function (params) {\n this.gridBodyCon.getRowDragFeature().addRowDropZone(params);\n };\n GridApi.prototype.removeRowDropZone = function (params) {\n var activeDropTarget = this.dragAndDropService.findExternalZone(params);\n if (activeDropTarget) {\n this.dragAndDropService.removeDropTarget(activeDropTarget);\n }\n };\n GridApi.prototype.getRowDropZoneParams = function (events) {\n return this.gridBodyCon.getRowDragFeature().getRowDropZone(events);\n };\n GridApi.prototype.setHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_HEADER_HEIGHT, headerHeight);\n };\n GridApi.prototype.setDomLayout = function (domLayout) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DOM_LAYOUT, domLayout);\n };\n GridApi.prototype.setEnableCellTextSelection = function (selectable) {\n this.gridBodyCon.setCellTextSelection(selectable);\n };\n GridApi.prototype.setFillHandleDirection = function (direction) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_FILL_HANDLE_DIRECTION, direction);\n };\n GridApi.prototype.setGroupHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_HEADER_HEIGHT, headerHeight);\n };\n GridApi.prototype.setFloatingFiltersHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_FLOATING_FILTERS_HEIGHT, headerHeight);\n };\n GridApi.prototype.setPivotGroupHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PIVOT_GROUP_HEADER_HEIGHT, headerHeight);\n };\n GridApi.prototype.setIsExternalFilterPresent = function (isExternalFilterPresentFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_EXTERNAL_FILTER_PRESENT, isExternalFilterPresentFunc);\n };\n GridApi.prototype.setDoesExternalFilterPass = function (doesExternalFilterPassFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DOES_EXTERNAL_FILTER_PASS, doesExternalFilterPassFunc);\n };\n GridApi.prototype.setNavigateToNextCell = function (navigateToNextCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_CELL, navigateToNextCellFunc);\n };\n GridApi.prototype.setTabToNextCell = function (tabToNextCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_TAB_TO_NEXT_CELL, tabToNextCellFunc);\n };\n GridApi.prototype.setTabToNextHeader = function (tabToNextHeaderFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_TAB_TO_NEXT_HEADER, tabToNextHeaderFunc);\n };\n GridApi.prototype.setNavigateToNextHeader = function (navigateToNextHeaderFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_NAVIGATE_TO_NEXT_HEADER, navigateToNextHeaderFunc);\n };\n GridApi.prototype.setGroupRowAggNodes = function (groupRowAggNodesFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_ROW_AGG_NODES, groupRowAggNodesFunc);\n };\n GridApi.prototype.setGetBusinessKeyForNode = function (getBusinessKeyForNodeFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_BUSINESS_KEY_FOR_NODE, getBusinessKeyForNodeFunc);\n };\n GridApi.prototype.setGetChildCount = function (getChildCountFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CHILD_COUNT, getChildCountFunc);\n };\n GridApi.prototype.setProcessRowPostCreate = function (processRowPostCreateFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_ROW_POST_CREATE, processRowPostCreateFunc);\n };\n GridApi.prototype.setGetRowNodeId = function (getRowNodeIdFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_NODE_ID, getRowNodeIdFunc);\n };\n GridApi.prototype.setGetRowClass = function (rowClassFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_CLASS, rowClassFunc);\n };\n GridApi.prototype.setIsFullWidthCell = function (isFullWidthCellFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_FULL_WIDTH_CELL, isFullWidthCellFunc);\n };\n GridApi.prototype.setIsRowSelectable = function (isRowSelectableFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_ROW_SELECTABLE, isRowSelectableFunc);\n };\n GridApi.prototype.setIsRowMaster = function (isRowMasterFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_ROW_MASTER, isRowMasterFunc);\n };\n GridApi.prototype.setPostSort = function (postSortFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POST_SORT, postSortFunc);\n };\n GridApi.prototype.setGetDocument = function (getDocumentFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_DOCUMENT, getDocumentFunc);\n };\n GridApi.prototype.setGetContextMenuItems = function (getContextMenuItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CONTEXT_MENU_ITEMS, getContextMenuItemsFunc);\n };\n GridApi.prototype.setGetMainMenuItems = function (getMainMenuItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_MAIN_MENU_ITEMS, getMainMenuItemsFunc);\n };\n GridApi.prototype.setProcessCellForClipboard = function (processCellForClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_CELL_FOR_CLIPBOARD, processCellForClipboardFunc);\n };\n GridApi.prototype.setSendToClipboard = function (sendToClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SEND_TO_CLIPBOARD, sendToClipboardFunc);\n };\n GridApi.prototype.setProcessCellFromClipboard = function (processCellFromClipboardFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_CELL_FROM_CLIPBOARD, processCellFromClipboardFunc);\n };\n GridApi.prototype.setProcessSecondaryColDef = function (processSecondaryColDefFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_TO_SECONDARY_COLDEF, processSecondaryColDefFunc);\n };\n GridApi.prototype.setProcessSecondaryColGroupDef = function (processSecondaryColGroupDefFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_SECONDARY_COL_GROUP_DEF, processSecondaryColGroupDefFunc);\n };\n GridApi.prototype.setPostProcessPopup = function (postProcessPopupFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POST_PROCESS_POPUP, postProcessPopupFunc);\n };\n GridApi.prototype.setDefaultGroupSortComparator = function (defaultGroupSortComparatorFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_DEFAULT_GROUP_SORT_COMPARATOR, defaultGroupSortComparatorFunc);\n };\n GridApi.prototype.setProcessChartOptions = function (processChartOptionsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PROCESS_CHART_OPTIONS, processChartOptionsFunc);\n };\n GridApi.prototype.setGetChartToolbarItems = function (getChartToolbarItemsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_CHART_TOOLBAR_ITEMS, getChartToolbarItemsFunc);\n };\n GridApi.prototype.setPaginationNumberFormatter = function (paginationNumberFormatterFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PAGINATION_NUMBER_FORMATTER, paginationNumberFormatterFunc);\n };\n GridApi.prototype.setGetServerSideStoreParams = function (getServerSideStoreParamsFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_SERVER_SIDE_STORE_PARAMS, getServerSideStoreParamsFunc);\n };\n GridApi.prototype.setIsServerSideGroupOpenByDefault = function (isServerSideGroupOpenByDefaultFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUPS_OPEN_BY_DEFAULT, isServerSideGroupOpenByDefaultFunc);\n };\n GridApi.prototype.setIsApplyServerSideTransaction = function (isApplyServerSideTransactionFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_APPLY_SERVER_SIDE_TRANSACTION, isApplyServerSideTransactionFunc);\n };\n GridApi.prototype.setIsServerSideGroup = function (isServerSideGroupFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_IS_SERVER_SIDE_GROUP, isServerSideGroupFunc);\n };\n GridApi.prototype.setGetServerSideGroupKey = function (getServerSideGroupKeyFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_SERVER_SIDE_GROUP_KEY, getServerSideGroupKeyFunc);\n };\n GridApi.prototype.setGetRowStyle = function (rowStyleFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_STYLE, rowStyleFunc);\n };\n GridApi.prototype.setGetRowHeight = function (rowHeightFunc) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GET_ROW_HEIGHT, rowHeightFunc);\n };\n GridApi.prototype.setPivotHeaderHeight = function (headerHeight) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_PIVOT_HEADER_HEIGHT, headerHeight);\n };\n GridApi.prototype.isSideBarVisible = function () {\n return this.sideBarComp ? this.sideBarComp.isDisplayed() : false;\n };\n GridApi.prototype.setSideBarVisible = function (show) {\n if (!this.sideBarComp) {\n if (show) {\n console.warn('AG Grid: sideBar is not loaded');\n }\n return;\n }\n this.sideBarComp.setDisplayed(show);\n };\n GridApi.prototype.setSideBarPosition = function (position) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: sideBar is not loaded');\n return;\n }\n this.sideBarComp.setSideBarPosition(position);\n };\n GridApi.prototype.openToolPanel = function (key) {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n this.sideBarComp.openToolPanel(key);\n };\n GridApi.prototype.closeToolPanel = function () {\n if (!this.sideBarComp) {\n console.warn('AG Grid: toolPanel is only available in AG Grid Enterprise');\n return;\n }\n this.sideBarComp.close();\n };\n GridApi.prototype.getOpenedToolPanel = function () {\n return this.sideBarComp ? this.sideBarComp.openedItem() : null;\n };\n GridApi.prototype.getSideBar = function () {\n return this.gridOptionsWrapper.getSideBar();\n };\n GridApi.prototype.setSideBar = function (def) {\n this.gridOptionsWrapper.setProperty('sideBar', SideBarDefParser.parse(def));\n };\n GridApi.prototype.setSuppressClipboardPaste = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_SUPPRESS_CLIPBOARD_PASTE, value);\n };\n GridApi.prototype.isToolPanelShowing = function () {\n return this.sideBarComp.isToolPanelShowing();\n };\n GridApi.prototype.doLayout = function () {\n var message = \"AG Grid - since version 25.1, doLayout was taken out, as it's not needed. The grid responds to grid size changes automatically\";\n doOnce(function () { return console.warn(message); }, 'doLayoutDeprecated');\n };\n GridApi.prototype.resetRowHeights = function () {\n if (exists(this.clientSideRowModel)) {\n this.clientSideRowModel.resetRowHeights();\n }\n };\n GridApi.prototype.setGroupRemoveSingleChildren = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN, value);\n };\n GridApi.prototype.setGroupRemoveLowestSingleChildren = function (value) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, value);\n };\n GridApi.prototype.onRowHeightChanged = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.onRowHeightChanged();\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.onRowHeightChanged();\n }\n };\n GridApi.prototype.getValue = function (colKey, rowNode) {\n var column = this.columnController.getPrimaryColumn(colKey);\n if (missing(column)) {\n column = this.columnController.getGridColumn(colKey);\n }\n if (missing(column)) {\n return null;\n }\n return this.valueService.getValue(column, rowNode);\n };\n GridApi.prototype.addEventListener = function (eventType, listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.addEventListener(eventType, listener, async);\n };\n GridApi.prototype.addGlobalListener = function (listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.addGlobalListener(listener, async);\n };\n GridApi.prototype.removeEventListener = function (eventType, listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.removeEventListener(eventType, listener, async);\n };\n GridApi.prototype.removeGlobalListener = function (listener) {\n var async = this.gridOptionsWrapper.useAsyncEvents();\n this.eventService.removeGlobalListener(listener, async);\n };\n GridApi.prototype.dispatchEvent = function (event) {\n this.eventService.dispatchEvent(event);\n };\n GridApi.prototype.destroy = function () {\n // this is needed as GridAPI is a bean, and GridAPI.destroy() is called as part\n // of context.destroy(). so we need to stop the infinite loop.\n if (this.destroyCalled) {\n return;\n }\n this.destroyCalled = true;\n // destroy the UI first (as they use the services)\n this.gridCompController.destroyGridUi();\n // destroy the services\n this.context.destroy();\n };\n GridApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in teh API so at least the core grid can be garbage collected.\n //\n // wait about 100ms before clearing down the references, in case user has some cleanup to do,\n // and needs to deference the API first\n setTimeout(removeAllReferences.bind(window, this, 'Grid API'), 100);\n };\n GridApi.prototype.warnIfDestroyed = function (methodName) {\n if (this.destroyCalled) {\n console.warn(\"AG Grid: Grid API method \" + methodName + \" was called on a grid that was destroyed.\");\n }\n return this.destroyCalled;\n };\n GridApi.prototype.resetQuickFilter = function () {\n if (this.warnIfDestroyed('resetQuickFilter')) {\n return;\n }\n this.rowModel.forEachNode(function (node) { return node.quickFilterAggregateText = null; });\n };\n GridApi.prototype.getRangeSelections = function () {\n console.warn(\"AG Grid: in v20.1.x, api.getRangeSelections() is gone, please use getCellRanges() instead.\\n We had to change how cell selections works a small bit to allow charting to integrate. The return type of\\n getCellRanges() is a bit different, please check the AG Grid documentation.\");\n return null;\n };\n GridApi.prototype.getCellRanges = function () {\n if (this.rangeController) {\n return this.rangeController.getCellRanges();\n }\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n return null;\n };\n GridApi.prototype.camelCaseToHumanReadable = function (camelCase) {\n return camelCaseToHumanText(camelCase);\n };\n GridApi.prototype.addRangeSelection = function (deprecatedNoLongerUsed) {\n console.warn('AG Grid: As of version 21.x, range selection changed slightly to allow charting integration. Please call api.addCellRange() instead of api.addRangeSelection()');\n };\n GridApi.prototype.addCellRange = function (params) {\n if (!this.rangeController) {\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n }\n this.rangeController.addCellRange(params);\n };\n GridApi.prototype.clearRangeSelection = function () {\n if (!this.rangeController) {\n console.warn('AG Grid: cell range selection is only available in AG Grid Enterprise');\n }\n this.rangeController.removeAllCellRanges();\n };\n GridApi.prototype.undoCellEditing = function () {\n this.undoRedoService.undo();\n };\n GridApi.prototype.redoCellEditing = function () {\n this.undoRedoService.redo();\n };\n GridApi.prototype.getCurrentUndoSize = function () {\n return this.undoRedoService.getCurrentUndoStackSize();\n };\n GridApi.prototype.getCurrentRedoSize = function () {\n return this.undoRedoService.getCurrentRedoStackSize();\n };\n GridApi.prototype.getChartModels = function () {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.getChartModels') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.getChartModels')) {\n return this.chartService.getChartModels();\n }\n };\n GridApi.prototype.createRangeChart = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.createRangeChart') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.createRangeChart')) {\n return this.chartService.createRangeChart(params);\n }\n };\n GridApi.prototype.createCrossFilterChart = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.createCrossFilterChart') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.createCrossFilterChart')) {\n return this.chartService.createCrossFilterChart(params);\n }\n };\n GridApi.prototype.restoreChart = function (chartModel, chartContainer) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.restoreChart') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.restoreChart')) {\n return this.chartService.restoreChart(chartModel, chartContainer);\n }\n };\n GridApi.prototype.createPivotChart = function (params) {\n if (ModuleRegistry.assertRegistered(exports.ModuleNames.RangeSelectionModule, 'api.createPivotChart') &&\n ModuleRegistry.assertRegistered(exports.ModuleNames.GridChartsModule, 'api.createPivotChart')) {\n return this.chartService.createPivotChart(params);\n }\n };\n GridApi.prototype.copySelectedRowsToClipboard = function (includeHeader, columnKeys) {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copySelectedRowsToClipboard(includeHeader, columnKeys);\n };\n GridApi.prototype.copySelectedRangeToClipboard = function (includeHeader) {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copySelectedRangeToClipboard(includeHeader);\n };\n GridApi.prototype.copySelectedRangeDown = function () {\n if (!this.clipboardService) {\n console.warn('AG Grid: clipboard is only available in AG Grid Enterprise');\n }\n this.clipboardService.copyRangeDown();\n };\n GridApi.prototype.showColumnMenuAfterButtonClick = function (colKey, buttonElement) {\n // use grid column so works with pivot mode\n var column = this.columnController.getGridColumn(colKey);\n this.menuFactory.showMenuAfterButtonClick(column, buttonElement);\n };\n GridApi.prototype.showColumnMenuAfterMouseClick = function (colKey, mouseEvent) {\n // use grid column so works with pivot mode\n var column = this.columnController.getGridColumn(colKey);\n if (!column) {\n column = this.columnController.getPrimaryColumn(colKey);\n }\n if (!column) {\n console.error(\"AG Grid: column '\" + colKey + \"' not found\");\n return;\n }\n this.menuFactory.showMenuAfterMouseEvent(column, mouseEvent);\n };\n GridApi.prototype.hidePopupMenu = function () {\n // hide the context menu if in enterprise\n if (this.contextMenuFactory) {\n this.contextMenuFactory.hideActiveMenu();\n }\n // and hide the column menu always\n this.menuFactory.hideActiveMenu();\n };\n GridApi.prototype.setPopupParent = function (ePopupParent) {\n this.gridOptionsWrapper.setProperty(GridOptionsWrapper.PROP_POPUP_PARENT, ePopupParent);\n };\n GridApi.prototype.tabToNextCell = function () {\n return this.rowRenderer.tabToNextCell(false);\n };\n GridApi.prototype.tabToPreviousCell = function () {\n return this.rowRenderer.tabToNextCell(true);\n };\n GridApi.prototype.getCellRendererInstances = function (params) {\n if (params === void 0) { params = {}; }\n return this.rowRenderer.getCellRendererInstances(params);\n };\n GridApi.prototype.getCellEditorInstances = function (params) {\n if (params === void 0) { params = {}; }\n return this.rowRenderer.getCellEditorInstances(params);\n };\n GridApi.prototype.getEditingCells = function () {\n return this.rowRenderer.getEditingCells();\n };\n GridApi.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.rowRenderer.stopEditing(cancel);\n };\n GridApi.prototype.startEditingCell = function (params) {\n var column = this.columnController.getGridColumn(params.colKey);\n if (!column) {\n console.warn(\"AG Grid: no column found for \" + params.colKey);\n return;\n }\n var cellPosition = {\n rowIndex: params.rowIndex,\n rowPinned: params.rowPinned || null,\n column: column\n };\n var notPinned = missing(params.rowPinned);\n if (notPinned) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(params.rowIndex);\n }\n this.rowRenderer.startEditingCell(cellPosition, params.keyPress, params.charPress);\n };\n GridApi.prototype.addAggFunc = function (key, aggFunc) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFunc(key, aggFunc);\n }\n };\n GridApi.prototype.addAggFuncs = function (aggFuncs) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFuncs(aggFuncs);\n }\n };\n GridApi.prototype.clearAggFuncs = function () {\n if (this.aggFuncService) {\n this.aggFuncService.clear();\n }\n };\n GridApi.prototype.applyServerSideTransaction = function (transaction) {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.applyTransaction(transaction);\n };\n GridApi.prototype.applyServerSideTransactionAsync = function (transaction, callback) {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot apply Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);\n };\n GridApi.prototype.retryServerSideLoads = function () {\n if (!this.serverSideRowModel) {\n console.warn('AG Grid: API retryServerSideLoads() can only be used when using Server-Side Row Model.');\n return;\n }\n this.serverSideRowModel.retryLoads();\n };\n GridApi.prototype.flushServerSideAsyncTransactions = function () {\n if (!this.serverSideTransactionManager) {\n console.warn('AG Grid: Cannot flush Server Side Transaction if not using the Server Side Row Model.');\n return;\n }\n return this.serverSideTransactionManager.flushAsyncTransactions();\n };\n GridApi.prototype.applyTransaction = function (rowDataTransaction) {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: updateRowData() only works with ClientSideRowModel. Working with InfiniteRowModel was deprecated in v23.1 and removed in v24.1');\n return;\n }\n var res = this.clientSideRowModel.updateRowData(rowDataTransaction);\n // refresh all the full width rows\n this.rowRenderer.refreshFullWidthRows(res.update);\n // do change detection for all present cells\n if (!this.gridOptionsWrapper.isSuppressChangeDetection()) {\n this.rowRenderer.refreshCells();\n }\n return res;\n };\n /** @deprecated */\n GridApi.prototype.updateRowData = function (rowDataTransaction) {\n var message = 'AG Grid: as of v23.1, grid API updateRowData(transaction) is now called applyTransaction(transaction). updateRowData is deprecated and will be removed in a future major release.';\n doOnce(function () { return console.warn(message); }, 'updateRowData deprecated');\n return this.applyTransaction(rowDataTransaction);\n };\n GridApi.prototype.applyTransactionAsync = function (rowDataTransaction, callback) {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');\n return;\n }\n this.clientSideRowModel.batchUpdateRowData(rowDataTransaction, callback);\n };\n GridApi.prototype.flushAsyncTransactions = function () {\n if (!this.clientSideRowModel) {\n console.error('AG Grid: api.applyTransactionAsync() only works with ClientSideRowModel.');\n return;\n }\n this.clientSideRowModel.flushAsyncTransactions();\n };\n /** @deprecated */\n GridApi.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {\n var message = 'AG Grid: as of v23.1, grid API batchUpdateRowData(transaction, callback) is now called applyTransactionAsync(transaction, callback). batchUpdateRowData is deprecated and will be removed in a future major release.';\n doOnce(function () { return console.warn(message); }, 'batchUpdateRowData deprecated');\n this.applyTransactionAsync(rowDataTransaction, callback);\n };\n GridApi.prototype.insertItemsAtIndex = function (index, items, skipRefresh) {\n console.warn('AG Grid: insertItemsAtIndex() is deprecated, use updateRowData(transaction) instead.');\n this.updateRowData({ add: items, addIndex: index, update: null, remove: null });\n };\n GridApi.prototype.removeItems = function (rowNodes, skipRefresh) {\n console.warn('AG Grid: removeItems() is deprecated, use updateRowData(transaction) instead.');\n var dataToRemove = rowNodes.map(function (rowNode) { return rowNode.data; });\n this.updateRowData({ add: null, addIndex: null, update: null, remove: dataToRemove });\n };\n GridApi.prototype.addItems = function (items, skipRefresh) {\n console.warn('AG Grid: addItems() is deprecated, use updateRowData(transaction) instead.');\n this.updateRowData({ add: items, addIndex: null, update: null, remove: null });\n };\n GridApi.prototype.refreshVirtualPageCache = function () {\n console.warn('AG Grid: refreshVirtualPageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');\n this.refreshInfiniteCache();\n };\n GridApi.prototype.refreshInfinitePageCache = function () {\n console.warn('AG Grid: refreshInfinitePageCache() is now called refreshInfiniteCache(), please call refreshInfiniteCache() instead');\n this.refreshInfiniteCache();\n };\n GridApi.prototype.refreshInfiniteCache = function () {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.refreshCache();\n }\n else {\n console.warn(\"AG Grid: api.refreshInfiniteCache is only available when rowModelType='infinite'.\");\n }\n };\n GridApi.prototype.purgeVirtualPageCache = function () {\n console.warn('AG Grid: purgeVirtualPageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');\n this.purgeInfinitePageCache();\n };\n GridApi.prototype.purgeInfinitePageCache = function () {\n console.warn('AG Grid: purgeInfinitePageCache() is now called purgeInfiniteCache(), please call purgeInfiniteCache() instead');\n this.purgeInfiniteCache();\n };\n GridApi.prototype.purgeInfiniteCache = function () {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.purgeCache();\n }\n else {\n console.warn(\"AG Grid: api.purgeInfiniteCache is only available when rowModelType='infinite'.\");\n }\n };\n /** @deprecated */\n GridApi.prototype.purgeEnterpriseCache = function (route) {\n console.warn(\"ag-grid: since version 18.x, api.purgeEnterpriseCache() should be replaced with api.purgeServerSideCache()\");\n this.purgeServerSideCache(route);\n };\n /** @deprecated */\n GridApi.prototype.purgeServerSideCache = function (route) {\n if (route === void 0) { route = []; }\n if (this.serverSideRowModel) {\n console.warn(\"AG Grid: since v25.0, api.purgeServerSideCache is deprecated. Please use api.refreshServerSideStore({purge: true}) instead.\");\n this.refreshServerSideStore({\n route: route,\n purge: true\n });\n }\n else {\n console.warn(\"AG Grid: api.purgeServerSideCache is only available when rowModelType='serverSide'.\");\n }\n };\n GridApi.prototype.refreshServerSideStore = function (params) {\n if (this.serverSideRowModel) {\n this.serverSideRowModel.refreshStore(params);\n }\n else {\n console.warn(\"AG Grid: api.refreshServerSideStore is only available when rowModelType='serverSide'.\");\n }\n };\n GridApi.prototype.getServerSideStoreState = function () {\n if (this.serverSideRowModel) {\n return this.serverSideRowModel.getStoreState();\n }\n else {\n console.warn(\"AG Grid: api.getServerSideStoreState is only available when rowModelType='serverSide'.\");\n return [];\n }\n };\n GridApi.prototype.getVirtualRowCount = function () {\n console.warn('AG Grid: getVirtualRowCount() is now called getInfiniteRowCount(), please call getInfiniteRowCount() instead');\n return this.getInfiniteRowCount();\n };\n GridApi.prototype.getInfiniteRowCount = function () {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.getRowCount();\n }\n else {\n console.warn(\"AG Grid: api.getVirtualRowCount is only available when rowModelType='virtual'.\");\n }\n };\n GridApi.prototype.isMaxRowFound = function () {\n console.warn(\"AG Grid: api.isLastRowIndexKnown is deprecated, please use api.isLastRowIndexKnown()\");\n return this.isLastRowIndexKnown();\n };\n GridApi.prototype.isLastRowIndexKnown = function () {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.isLastRowIndexKnown();\n }\n else {\n console.warn(\"AG Grid: api.isMaxRowFound is only available when rowModelType='virtual'.\");\n }\n };\n GridApi.prototype.setVirtualRowCount = function (rowCount, maxRowFound) {\n console.warn('AG Grid: setVirtualRowCount() is now called setInfiniteRowCount(), please call setInfiniteRowCount() instead');\n this.setRowCount(rowCount, maxRowFound);\n };\n GridApi.prototype.setInfiniteRowCount = function (rowCount, maxRowFound) {\n console.warn('AG Grid: setInfiniteRowCount() is now called setRowCount(), please call setRowCount() instead');\n this.setRowCount(rowCount, maxRowFound);\n };\n GridApi.prototype.setRowCount = function (rowCount, maxRowFound) {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.setRowCount(rowCount, maxRowFound);\n }\n else {\n console.warn(\"AG Grid: api.setRowCount is only available for Infinite Row Model.\");\n }\n };\n GridApi.prototype.getVirtualPageState = function () {\n console.warn('AG Grid: getVirtualPageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');\n return this.getCacheBlockState();\n };\n GridApi.prototype.getInfinitePageState = function () {\n console.warn('AG Grid: getInfinitePageState() is now called getCacheBlockState(), please call getCacheBlockState() instead');\n return this.getCacheBlockState();\n };\n GridApi.prototype.getCacheBlockState = function () {\n return this.rowNodeBlockLoader.getBlockState();\n };\n GridApi.prototype.checkGridSize = function () {\n console.warn(\"in AG Grid v25.2.0, checkGridSize() was removed, as it was legacy and didn't do anything uesful.\");\n };\n GridApi.prototype.getFirstRenderedRow = function () {\n console.warn('in AG Grid v12, getFirstRenderedRow() was renamed to getFirstDisplayedRow()');\n return this.getFirstDisplayedRow();\n };\n GridApi.prototype.getFirstDisplayedRow = function () {\n return this.rowRenderer.getFirstVirtualRenderedRow();\n };\n GridApi.prototype.getLastRenderedRow = function () {\n console.warn('in AG Grid v12, getLastRenderedRow() was renamed to getLastDisplayedRow()');\n return this.getLastDisplayedRow();\n };\n GridApi.prototype.getLastDisplayedRow = function () {\n return this.rowRenderer.getLastVirtualRenderedRow();\n };\n GridApi.prototype.getDisplayedRowAtIndex = function (index) {\n return this.rowModel.getRow(index);\n };\n GridApi.prototype.getDisplayedRowCount = function () {\n return this.rowModel.getRowCount();\n };\n GridApi.prototype.paginationIsLastPageFound = function () {\n return this.paginationProxy.isLastPageFound();\n };\n GridApi.prototype.paginationGetPageSize = function () {\n return this.paginationProxy.getPageSize();\n };\n GridApi.prototype.paginationSetPageSize = function (size) {\n this.gridOptionsWrapper.setProperty('paginationPageSize', size);\n };\n GridApi.prototype.paginationGetCurrentPage = function () {\n return this.paginationProxy.getCurrentPage();\n };\n GridApi.prototype.paginationGetTotalPages = function () {\n return this.paginationProxy.getTotalPages();\n };\n GridApi.prototype.paginationGetRowCount = function () {\n return this.paginationProxy.getMasterRowCount();\n };\n GridApi.prototype.paginationGoToNextPage = function () {\n this.paginationProxy.goToNextPage();\n };\n GridApi.prototype.paginationGoToPreviousPage = function () {\n this.paginationProxy.goToPreviousPage();\n };\n GridApi.prototype.paginationGoToFirstPage = function () {\n this.paginationProxy.goToFirstPage();\n };\n GridApi.prototype.paginationGoToLastPage = function () {\n this.paginationProxy.goToLastPage();\n };\n GridApi.prototype.paginationGoToPage = function (page) {\n this.paginationProxy.goToPage(page);\n };\n __decorate$17([\n Optional('immutableService')\n ], GridApi.prototype, \"immutableService\", void 0);\n __decorate$17([\n Optional('csvCreator')\n ], GridApi.prototype, \"csvCreator\", void 0);\n __decorate$17([\n Optional('excelCreator')\n ], GridApi.prototype, \"excelCreator\", void 0);\n __decorate$17([\n Autowired('rowRenderer')\n ], GridApi.prototype, \"rowRenderer\", void 0);\n __decorate$17([\n Autowired('filterManager')\n ], GridApi.prototype, \"filterManager\", void 0);\n __decorate$17([\n Autowired('columnController')\n ], GridApi.prototype, \"columnController\", void 0);\n __decorate$17([\n Autowired('selectionController')\n ], GridApi.prototype, \"selectionController\", void 0);\n __decorate$17([\n Autowired('gridOptionsWrapper')\n ], GridApi.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$17([\n Autowired('valueService')\n ], GridApi.prototype, \"valueService\", void 0);\n __decorate$17([\n Autowired('alignedGridsService')\n ], GridApi.prototype, \"alignedGridsService\", void 0);\n __decorate$17([\n Autowired('eventService')\n ], GridApi.prototype, \"eventService\", void 0);\n __decorate$17([\n Autowired('pinnedRowModel')\n ], GridApi.prototype, \"pinnedRowModel\", void 0);\n __decorate$17([\n Autowired('context')\n ], GridApi.prototype, \"context\", void 0);\n __decorate$17([\n Autowired('rowModel')\n ], GridApi.prototype, \"rowModel\", void 0);\n __decorate$17([\n Autowired('sortController')\n ], GridApi.prototype, \"sortController\", void 0);\n __decorate$17([\n Autowired('paginationProxy')\n ], GridApi.prototype, \"paginationProxy\", void 0);\n __decorate$17([\n Autowired('focusController')\n ], GridApi.prototype, \"focusController\", void 0);\n __decorate$17([\n Autowired('dragAndDropService')\n ], GridApi.prototype, \"dragAndDropService\", void 0);\n __decorate$17([\n Optional('rangeController')\n ], GridApi.prototype, \"rangeController\", void 0);\n __decorate$17([\n Optional('clipboardService')\n ], GridApi.prototype, \"clipboardService\", void 0);\n __decorate$17([\n Optional('aggFuncService')\n ], GridApi.prototype, \"aggFuncService\", void 0);\n __decorate$17([\n Autowired('menuFactory')\n ], GridApi.prototype, \"menuFactory\", void 0);\n __decorate$17([\n Optional('contextMenuFactory')\n ], GridApi.prototype, \"contextMenuFactory\", void 0);\n __decorate$17([\n Autowired('valueCache')\n ], GridApi.prototype, \"valueCache\", void 0);\n __decorate$17([\n Autowired('animationFrameService')\n ], GridApi.prototype, \"animationFrameService\", void 0);\n __decorate$17([\n Optional('statusBarService')\n ], GridApi.prototype, \"statusBarService\", void 0);\n __decorate$17([\n Optional('chartService')\n ], GridApi.prototype, \"chartService\", void 0);\n __decorate$17([\n Optional('undoRedoService')\n ], GridApi.prototype, \"undoRedoService\", void 0);\n __decorate$17([\n Optional('headlessService')\n ], GridApi.prototype, \"headlessService\", void 0);\n __decorate$17([\n Optional('rowNodeBlockLoader')\n ], GridApi.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$17([\n Optional('ssrmTransactionManager')\n ], GridApi.prototype, \"serverSideTransactionManager\", void 0);\n __decorate$17([\n Optional('controllersService')\n ], GridApi.prototype, \"controllersService\", void 0);\n __decorate$17([\n PostConstruct\n ], GridApi.prototype, \"init\", null);\n __decorate$17([\n PreDestroy\n ], GridApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n GridApi = __decorate$17([\n Bean('gridApi')\n ], GridApi);\n return GridApi;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1e = (undefined && undefined.__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$18 = (undefined && undefined.__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 __param$6 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ExpressionService = /** @class */ (function (_super) {\n __extends$1e(ExpressionService, _super);\n function ExpressionService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.expressionToFunctionCache = {};\n return _this;\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('Params =', params);\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$18([\n __param$6(0, Qualifier('loggerFactory'))\n ], ExpressionService.prototype, \"setBeans\", null);\n ExpressionService = __decorate$18([\n Bean('expressionService')\n ], ExpressionService);\n return ExpressionService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1f = (undefined && undefined.__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$19 = (undefined && undefined.__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 TemplateService = /** @class */ (function (_super) {\n __extends$1f(TemplateService, _super);\n function TemplateService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.templateCache = {};\n _this.waitingCallbacks = {};\n return _this;\n }\n // returns the template if it is loaded, or null if it is not loaded\n // but will call the callback when it is loaded\n TemplateService.prototype.getTemplate = function (url, callback) {\n var templateFromCache = this.templateCache[url];\n if (templateFromCache) {\n return templateFromCache;\n }\n var callbackList = this.waitingCallbacks[url];\n var that = this;\n if (!callbackList) {\n // first time this was called, so need a new list for callbacks\n callbackList = [];\n this.waitingCallbacks[url] = callbackList;\n // and also need to do the http request\n var client = new XMLHttpRequest();\n client.onload = function () {\n that.handleHttpResult(this, url);\n };\n client.open(\"GET\", url);\n client.send();\n }\n // add this callback\n if (callback) {\n callbackList.push(callback);\n }\n // caller needs to wait for template to load, so return null\n return null;\n };\n TemplateService.prototype.handleHttpResult = function (httpResult, url) {\n if (httpResult.status !== 200 || httpResult.response === null) {\n console.warn(\"Unable to get template error \" + httpResult.status + \" - \" + url);\n return;\n }\n // response success, so process it\n // in IE9 the response is in - responseText\n this.templateCache[url] = httpResult.response || httpResult.responseText;\n // inform all listeners that this is now in the cache\n var callbacks = this.waitingCallbacks[url];\n for (var i = 0; i < callbacks.length; i++) {\n var callback = callbacks[i];\n // we could pass the callback the response, however we know the client of this code\n // is the cell renderer, and it passes the 'cellRefresh' method in as the callback\n // which doesn't take any parameters.\n callback();\n }\n if (this.$scope) {\n var that_1 = this;\n window.setTimeout(function () {\n that_1.$scope.$apply();\n }, 0);\n }\n };\n __decorate$19([\n Autowired('$scope')\n ], TemplateService.prototype, \"$scope\", void 0);\n TemplateService = __decorate$19([\n Bean('templateService')\n ], TemplateService);\n return TemplateService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1g = (undefined && undefined.__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$1a = (undefined && undefined.__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 __spreadArrays$7 = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar FocusController = /** @class */ (function (_super) {\n __extends$1g(FocusController, _super);\n function FocusController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FocusController_1 = FocusController;\n /**\n * Adds a gridCore to the list of the gridCores monitoring Keyboard Mode\n * in a specific HTMLDocument.\n *\n * @param doc {Document} - The Document containing the gridCore.\n * @param gridCore {GridComp} - The GridCore to be monitored.\n */\n FocusController.addKeyboardModeEvents = function (doc, controller) {\n var docControllers = FocusController_1.instancesMonitored.get(doc);\n if (docControllers && docControllers.length > 0) {\n if (docControllers.indexOf(controller) === -1) {\n docControllers.push(controller);\n }\n }\n else {\n FocusController_1.instancesMonitored.set(doc, [controller]);\n doc.addEventListener('keydown', FocusController_1.toggleKeyboardMode);\n doc.addEventListener('mousedown', FocusController_1.toggleKeyboardMode);\n }\n };\n /**\n * Removes a gridCore from the list of the gridCores monitoring Keyboard Mode\n * in a specific HTMLDocument.\n *\n * @param doc {Document} - The Document containing the gridCore.\n * @param gridCore {GridComp} - The GridCore to be removed.\n */\n FocusController.removeKeyboardModeEvents = function (doc, controller) {\n var docControllers = FocusController_1.instancesMonitored.get(doc);\n var newControllers = [];\n if (docControllers && docControllers.length) {\n newControllers = __spreadArrays$7(docControllers).filter(function (currentGridCore) { return currentGridCore !== controller; });\n FocusController_1.instancesMonitored.set(doc, newControllers);\n }\n if (newControllers.length === 0) {\n doc.removeEventListener('keydown', FocusController_1.toggleKeyboardMode);\n doc.removeEventListener('mousedown', FocusController_1.toggleKeyboardMode);\n }\n };\n /**\n * This method will be called by `keydown` and `mousedown` events on all Documents monitoring\n * KeyboardMode. It will then fire a KEYBOARD_FOCUS, MOUSE_FOCUS on each gridCore present in\n * the Document allowing each gridCore to maintain a state for KeyboardMode.\n *\n * @param event {KeyboardEvent | MouseEvent | TouchEvent} - The event triggered.\n */\n FocusController.toggleKeyboardMode = function (event) {\n var isKeyboardActive = FocusController_1.keyboardModeActive;\n var isKeyboardEvent = event.type === 'keydown';\n if (isKeyboardEvent) {\n // the following keys should not toggle keyboard mode.\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n }\n if (isKeyboardActive && isKeyboardEvent || !isKeyboardActive && !isKeyboardEvent) {\n return;\n }\n FocusController_1.keyboardModeActive = isKeyboardEvent;\n var doc = event.target.ownerDocument;\n if (!doc) {\n return;\n }\n var controllersForDoc = FocusController_1.instancesMonitored.get(doc);\n if (controllersForDoc) {\n controllersForDoc.forEach(function (controller) {\n controller.dispatchEvent({ type: isKeyboardEvent ? Events.EVENT_KEYBOARD_FOCUS : Events.EVENT_MOUSE_FOCUS });\n });\n }\n };\n FocusController.prototype.init = function () {\n var clearFocusedCellListener = this.clearFocusedCell.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverythingChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, clearFocusedCellListener);\n };\n FocusController.prototype.registerGridCompController = function (gridCompController) {\n var _this = this;\n this.gridCompController = gridCompController;\n var doc = this.gridOptionsWrapper.getDocument();\n FocusController_1.addKeyboardModeEvents(doc, gridCompController);\n this.addDestroyFunc(function () { return _this.unregisterGridCompController(gridCompController); });\n };\n FocusController.prototype.unregisterGridCompController = function (gridCompController) {\n var doc = this.gridOptionsWrapper.getDocument();\n FocusController_1.removeKeyboardModeEvents(doc, gridCompController);\n };\n FocusController.prototype.onColumnEverythingChanged = function () {\n // if the columns change, check and see if this column still exists. if it does, then\n // we can keep the focused cell. if it doesn't, then we need to drop the focused cell.\n if (!this.focusedCellPosition) {\n return;\n }\n var col = this.focusedCellPosition.column;\n var colFromColumnController = this.columnController.getGridColumn(col.getId());\n if (col !== colFromColumnController) {\n this.clearFocusedCell();\n }\n };\n FocusController.prototype.isKeyboardMode = function () {\n return FocusController_1.keyboardModeActive;\n };\n // we check if the browser is focusing something, and if it is, and\n // it's the cell we think is focused, then return the cell. so this\n // methods returns the cell if a) we think it has focus and b) the\n // browser thinks it has focus. this then returns nothing if we\n // first focus a cell, then second click outside the grid, as then the\n // grid cell will still be focused as far as the grid is concerned,\n // however the browser focus will have moved somewhere else.\n FocusController.prototype.getFocusCellToUseAfterRefresh = function () {\n if (this.gridOptionsWrapper.isSuppressFocusAfterRefresh() || !this.focusedCellPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about\n if (!this.getGridCellForDomElement(document.activeElement)) {\n return null;\n }\n return this.focusedCellPosition;\n };\n FocusController.prototype.getGridCellForDomElement = function (eBrowserCell) {\n var ePointer = eBrowserCell;\n while (ePointer) {\n var cellComp = this.gridOptionsWrapper.getDomData(ePointer, CellComp.DOM_DATA_KEY_CELL_COMP);\n if (cellComp) {\n return cellComp.getCellPosition();\n }\n ePointer = ePointer.parentNode;\n }\n return null;\n };\n FocusController.prototype.clearFocusedCell = function () {\n this.focusedCellPosition = null;\n this.onCellFocused(false);\n };\n FocusController.prototype.getFocusedCell = function () {\n return this.focusedCellPosition;\n };\n FocusController.prototype.setFocusedCell = function (rowIndex, colKey, floating, forceBrowserFocus) {\n if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }\n var gridColumn = this.columnController.getGridColumn(colKey);\n // if column doesn't exist, then blank the focused cell and return. this can happen when user sets new columns,\n // and the focused cell is in a column that no longer exists. after columns change, the grid refreshes and tries\n // to re-focus the focused cell.\n if (!gridColumn) {\n this.focusedCellPosition = null;\n return;\n }\n this.focusedCellPosition = gridColumn ? { rowIndex: rowIndex, rowPinned: makeNull(floating), column: gridColumn } : null;\n this.onCellFocused(forceBrowserFocus);\n };\n FocusController.prototype.isCellFocused = function (cellPosition) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.focusedCellPosition.column === cellPosition.column &&\n this.isRowFocused(cellPosition.rowIndex, cellPosition.rowPinned);\n };\n FocusController.prototype.isRowNodeFocused = function (rowNode) {\n return this.isRowFocused(rowNode.rowIndex, rowNode.rowPinned);\n };\n FocusController.prototype.isHeaderWrapperFocused = function (headerWrapper) {\n if (this.focusedHeaderPosition == null) {\n return false;\n }\n var column = headerWrapper.getColumn();\n var headerRowIndex = headerWrapper.getParentComponent().getRowIndex();\n var pinned = headerWrapper.getPinned();\n var _a = this.focusedHeaderPosition, focusedColumn = _a.column, focusedHeaderRowIndex = _a.headerRowIndex;\n return column === focusedColumn &&\n headerRowIndex === focusedHeaderRowIndex &&\n pinned == focusedColumn.getPinned();\n };\n FocusController.prototype.clearFocusedHeader = function () {\n this.focusedHeaderPosition = null;\n };\n FocusController.prototype.getFocusedHeader = function () {\n return this.focusedHeaderPosition;\n };\n FocusController.prototype.setFocusedHeader = function (headerRowIndex, column) {\n this.focusedHeaderPosition = { headerRowIndex: headerRowIndex, column: column };\n };\n FocusController.prototype.focusHeaderPosition = function (headerPosition, direction, fromTab, allowUserOverride, event) {\n if (direction === void 0) { direction = null; }\n if (fromTab === void 0) { fromTab = false; }\n if (allowUserOverride === void 0) { allowUserOverride = false; }\n if (allowUserOverride) {\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var currentPosition = this.getFocusedHeader();\n var headerRowCount = this.headerNavigationService.getHeaderRowCount();\n if (fromTab) {\n var userFunc = gridOptionsWrapper.getTabToNextHeaderFunc();\n if (userFunc) {\n var params = {\n backwards: direction === 'Before',\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount: headerRowCount\n };\n headerPosition = userFunc(params);\n }\n }\n else {\n var userFunc = gridOptionsWrapper.getNavigateToNextHeaderFunc();\n if (userFunc && event) {\n var params = {\n key: event.key,\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount: headerRowCount,\n event: event\n };\n headerPosition = userFunc(params);\n }\n }\n }\n if (!headerPosition) {\n return false;\n }\n if (headerPosition.headerRowIndex === -1) {\n return this.focusGridView(headerPosition.column);\n }\n this.headerNavigationService.scrollToColumn(headerPosition.column, direction);\n var childContainer = this.headerNavigationService.getHeaderContainer(headerPosition.column.getPinned());\n var rowComps = childContainer.getRowComps();\n var nextRowComp = rowComps[headerPosition.headerRowIndex];\n var headerComps = nextRowComp.getHeaderComps();\n var nextHeader = headerComps[headerPosition.column.getUniqueId()];\n if (nextHeader) {\n // this will automatically call the setFocusedHeader method above\n nextHeader.getFocusableElement().focus();\n return true;\n }\n return false;\n };\n FocusController.prototype.isAnyCellFocused = function () {\n return !!this.focusedCellPosition;\n };\n FocusController.prototype.isRowFocused = function (rowIndex, floating) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.focusedCellPosition.rowIndex === rowIndex && this.focusedCellPosition.rowPinned === makeNull(floating);\n };\n FocusController.prototype.findFocusableElements = function (rootNode, exclude, onlyUnmanaged) {\n if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }\n var focusableString = Constants.FOCUSABLE_SELECTOR;\n var excludeString = Constants.FOCUSABLE_EXCLUDE;\n if (exclude) {\n excludeString += ', ' + exclude;\n }\n if (onlyUnmanaged) {\n excludeString += ', [tabindex=\"-1\"]';\n }\n var nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString));\n var excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));\n if (!excludeNodes.length) {\n return nodes;\n }\n var diff = function (a, b) { return a.filter(function (element) { return b.indexOf(element) === -1; }); };\n return diff(nodes, excludeNodes);\n };\n FocusController.prototype.focusInto = function (rootNode, up, onlyUnmanaged) {\n if (up === void 0) { up = false; }\n if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }\n var focusableElements = this.findFocusableElements(rootNode, null, onlyUnmanaged);\n var toFocus = up ? last(focusableElements) : focusableElements[0];\n if (toFocus) {\n toFocus.focus();\n return true;\n }\n return false;\n };\n FocusController.prototype.findNextFocusableElement = function (rootNode, onlyManaged, backwards) {\n var focusable = this.findFocusableElements(rootNode, onlyManaged ? ':not([tabindex=\"-1\"])' : null);\n var currentIndex;\n if (onlyManaged) {\n currentIndex = findIndex(focusable, function (el) { return el.contains(document.activeElement); });\n }\n else {\n currentIndex = focusable.indexOf(document.activeElement);\n }\n var nextIndex = currentIndex + (backwards ? -1 : 1);\n if (nextIndex < 0 || nextIndex >= focusable.length) {\n return null;\n }\n return focusable[nextIndex];\n };\n FocusController.prototype.isFocusUnderManagedComponent = function (rootNode) {\n var managedContainers = rootNode.querySelectorAll(\".\" + ManagedFocusComponent.FOCUS_MANAGED_CLASS);\n if (!managedContainers.length) {\n return false;\n }\n for (var i = 0; i < managedContainers.length; i++) {\n if (managedContainers[i].contains(document.activeElement)) {\n return true;\n }\n }\n return false;\n };\n FocusController.prototype.findTabbableParent = function (node, limit) {\n if (limit === void 0) { limit = 5; }\n var counter = 0;\n while (node && getTabIndex(node) === null && ++counter <= limit) {\n node = node.parentElement;\n }\n if (getTabIndex(node) === null) {\n return null;\n }\n return node;\n };\n FocusController.prototype.onCellFocused = function (forceBrowserFocus) {\n var event = {\n type: Events.EVENT_CELL_FOCUSED,\n forceBrowserFocus: forceBrowserFocus,\n rowIndex: null,\n column: null,\n floating: null,\n api: this.gridApi,\n columnApi: this.columnApi,\n rowPinned: null,\n isFullWidthCell: false\n };\n if (this.focusedCellPosition) {\n var rowIndex = event.rowIndex = this.focusedCellPosition.rowIndex;\n var rowPinned = event.rowPinned = this.focusedCellPosition.rowPinned;\n event.column = this.focusedCellPosition.column;\n var rowCon = this.rowRenderer.getRowConByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });\n if (rowCon) {\n event.isFullWidthCell = rowCon.isFullWidth();\n }\n }\n this.eventService.dispatchEvent(event);\n };\n FocusController.prototype.focusGridView = function (column, backwards) {\n var nextRow = backwards\n ? this.rowPositionUtils.getLastRow()\n : this.rowPositionUtils.getFirstRow();\n if (!nextRow) {\n return false;\n }\n var rowIndex = nextRow.rowIndex, rowPinned = nextRow.rowPinned;\n var focusedHeader = this.getFocusedHeader();\n if (!column && focusedHeader) {\n column = focusedHeader.column;\n }\n if (rowIndex == null || !column) {\n return false;\n }\n this.rowRenderer.ensureCellVisible({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n this.setFocusedCell(rowIndex, column, makeNull(rowPinned), true);\n if (this.rangeController) {\n var cellPosition = { rowIndex: rowIndex, rowPinned: rowPinned, column: column };\n this.rangeController.setRangeToCell(cellPosition);\n }\n return true;\n };\n FocusController.prototype.focusNextGridCoreContainer = function (backwards) {\n if (this.gridCompController.focusNextInnerContainer(backwards)) {\n return true;\n }\n if (!backwards) {\n this.gridCompController.forceFocusOutOfContainer();\n }\n return false;\n };\n var FocusController_1;\n FocusController.AG_KEYBOARD_FOCUS = 'ag-keyboard-focus';\n FocusController.keyboardModeActive = false;\n FocusController.instancesMonitored = new Map();\n __decorate$1a([\n Autowired('columnController')\n ], FocusController.prototype, \"columnController\", void 0);\n __decorate$1a([\n Autowired('headerNavigationService')\n ], FocusController.prototype, \"headerNavigationService\", void 0);\n __decorate$1a([\n Autowired('columnApi')\n ], FocusController.prototype, \"columnApi\", void 0);\n __decorate$1a([\n Autowired('gridApi')\n ], FocusController.prototype, \"gridApi\", void 0);\n __decorate$1a([\n Autowired('rowRenderer')\n ], FocusController.prototype, \"rowRenderer\", void 0);\n __decorate$1a([\n Autowired('rowPositionUtils')\n ], FocusController.prototype, \"rowPositionUtils\", void 0);\n __decorate$1a([\n Optional('rangeController')\n ], FocusController.prototype, \"rangeController\", void 0);\n __decorate$1a([\n PostConstruct\n ], FocusController.prototype, \"init\", null);\n FocusController = FocusController_1 = __decorate$1a([\n Bean('focusController')\n ], FocusController);\n return FocusController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1h = (undefined && undefined.__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$1b = (undefined && undefined.__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 PopupService = /** @class */ (function (_super) {\n __extends$1h(PopupService, _super);\n function PopupService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.popupList = [];\n return _this;\n }\n PopupService.prototype.registerGridCompController = function (gridCompController) {\n var _this = this;\n this.gridCompController = gridCompController;\n this.addManagedListener(this.gridCompController, Events.EVENT_KEYBOARD_FOCUS, function () {\n forEach(_this.popupList, function (popup) { return addCssClass(popup.element, FocusController.AG_KEYBOARD_FOCUS); });\n });\n this.addManagedListener(this.gridCompController, Events.EVENT_MOUSE_FOCUS, function () {\n forEach(_this.popupList, function (popup) { return removeCssClass(popup.element, FocusController.AG_KEYBOARD_FOCUS); });\n });\n };\n PopupService.prototype.getPopupParent = function () {\n var ePopupParent = this.gridOptionsWrapper.getPopupParent();\n if (ePopupParent) {\n return ePopupParent;\n }\n return this.gridCompController.getGui();\n };\n PopupService.prototype.positionPopupForMenu = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n var y = this.keepYWithinBounds(params, sourceRect.top - parentRect.top);\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.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode);\n };\n PopupService.prototype.calculatePointerAlign = function (e) {\n var parentRect = this.getParentRect();\n return {\n x: e.clientX - parentRect.left,\n y: e.clientY - parentRect.top\n };\n };\n PopupService.prototype.positionPopupUnderComponent = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var alignSide = params.alignSide || 'left';\n var parentRect = this.getParentRect();\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.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);\n };\n PopupService.prototype.positionPopupOverComponent = function (params) {\n var sourceRect = params.eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\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.type, params.ePopup, params.eventSource, null, params.column, params.rowNode);\n };\n PopupService.prototype.callPostProcessPopup = function (type, ePopup, eventSource, mouseEvent, 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.getActivePopups = function () {\n return this.popupList.map(function (popup) { return popup.element; });\n };\n PopupService.prototype.getParentRect = function () {\n // subtract the popup parent borders, because popupParent.getBoundingClientRect\n // returns the rect outside the borders, but the 0,0 coordinate for absolute\n // positioning is inside the border, leading the popup to be off by the width\n // of the border\n var popupParent = this.getPopupParent();\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (popupParent === eDocument.body) {\n popupParent = eDocument.documentElement;\n }\n var style = getComputedStyle(popupParent);\n var bounds = popupParent.getBoundingClientRect();\n return {\n top: bounds.top + parseFloat(style.borderTopWidth) || 0,\n left: bounds.left + parseFloat(style.borderLeftWidth) || 0,\n right: bounds.right + parseFloat(style.borderRightWidth) || 0,\n bottom: bounds.bottom + parseFloat(style.borderBottomWidth) || 0,\n };\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 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 = getAbsoluteHeight(params.ePopup) - minHeight;\n }\n var heightOfParent = isBody ? (getAbsoluteHeight(docElement) + docElement.scrollTop) : parentRect.height;\n if (isBody) {\n heightOfParent -= Math.abs(documentRect.top - parentRect.top);\n }\n var maxY = heightOfParent - minHeight - diff;\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 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 = getAbsoluteWidth(ePopup) - minWidth;\n }\n var widthOfParent = isBody ? (getAbsoluteWidth(docElement) + docElement.scrollLeft) : parentRect.width;\n if (isBody) {\n widthOfParent -= Math.abs(documentRect.left - parentRect.left);\n }\n var maxX = widthOfParent - minWidth - diff;\n return Math.min(Math.max(x, 0), Math.abs(maxX));\n };\n PopupService.prototype.keepPopupPositionedRelativeTo = function (params) {\n var eParent = this.getPopupParent();\n var parentRect = eParent.getBoundingClientRect();\n var sourceRect = params.element.getBoundingClientRect();\n var initialDiffTop = parentRect.top - sourceRect.top;\n var initialDiffLeft = parentRect.left - sourceRect.left;\n var lastDiffTop = initialDiffTop;\n var lastDiffLeft = initialDiffLeft;\n var topPx = params.ePopup.style.top;\n var top = parseInt(topPx.substring(0, topPx.length - 1), 10);\n var leftPx = params.ePopup.style.left;\n var left = parseInt(leftPx.substring(0, leftPx.length - 1), 10);\n var intervalId = window.setInterval(function () {\n var pRect = eParent.getBoundingClientRect();\n var sRect = params.element.getBoundingClientRect();\n var elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;\n if (elementNotInDom) {\n params.hidePopup();\n return;\n }\n var currentDiffTop = pRect.top - sRect.top;\n if (currentDiffTop != lastDiffTop) {\n var newTop = top + initialDiffTop - currentDiffTop;\n params.ePopup.style.top = newTop + \"px\";\n }\n lastDiffTop = currentDiffTop;\n var currentDiffLeft = pRect.left - sRect.left;\n if (currentDiffLeft != lastDiffLeft) {\n var newLeft = left + initialDiffLeft - currentDiffLeft;\n params.ePopup.style.left = newLeft + \"px\";\n }\n lastDiffLeft = currentDiffLeft;\n }, 200);\n var res = function () {\n if (intervalId != null) {\n window.clearInterval(intervalId);\n }\n intervalId = undefined;\n };\n return res;\n };\n PopupService.prototype.addPopup = function (params) {\n var _this = this;\n var modal = params.modal, eChild = params.eChild, closeOnEsc = params.closeOnEsc, closedCallback = params.closedCallback, click = params.click, alwaysOnTop = params.alwaysOnTop, afterGuiAttached = params.afterGuiAttached, positionCallback = params.positionCallback, anchorToElement = params.anchorToElement;\n var eDocument = this.gridOptionsWrapper.getDocument();\n if (!eDocument) {\n console.warn('ag-grid: could not find the document, document is empty');\n return;\n }\n var pos = findIndex(this.popupList, function (popup) { return popup.element === eChild; });\n if (pos !== -1) {\n var popup = this.popupList[pos];\n return { hideFunc: popup.hideFunc, stopAnchoringFunc: popup.stopAnchoringFunc };\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 if (eChild.style.top == null) {\n eChild.style.top = '0px';\n }\n if (eChild.style.left == null) {\n eChild.style.left = '0px';\n }\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 addCssClass(eWrapper, theme);\n }\n addCssClass(eWrapper, 'ag-popup');\n addCssClass(eChild, this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr');\n addCssClass(eChild, 'ag-popup-child');\n if (this.focusController.isKeyboardMode()) {\n addCssClass(eChild, FocusController.AG_KEYBOARD_FOCUS);\n }\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 if (!eWrapper.contains(document.activeElement)) {\n return;\n }\n var key = event.which || event.keyCode;\n if (key === KeyCode.ESCAPE) {\n hidePopup({ keyboardEvent: event });\n }\n };\n var hidePopupOnMouseEvent = function (event) { return hidePopup({ mouseEvent: event }); };\n var hidePopupOnTouchEvent = function (event) { return hidePopup({ touchEvent: event }); };\n var destroyPositionTracker;\n var hidePopup = function (popupParams) {\n if (popupParams === void 0) { popupParams = {}; }\n var mouseEvent = popupParams.mouseEvent, touchEvent = popupParams.touchEvent, keyboardEvent = popupParams.keyboardEvent;\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: mouseEvent, touchEvent: touchEvent }, eChild) ||\n // if the event to close is actually the open event, then ignore it\n _this.isEventSameChainAsOriginalEvent({ originalMouseEvent: click, mouseEvent: mouseEvent, touchEvent: 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.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n if (closedCallback) {\n closedCallback(mouseEvent || touchEvent || keyboardEvent);\n }\n _this.popupList = _this.popupList.filter(function (popup) { return popup.element !== eChild; });\n if (destroyPositionTracker) {\n destroyPositionTracker();\n }\n };\n if (afterGuiAttached) {\n afterGuiAttached({ hidePopup: hidePopup });\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.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);\n }\n }, 0);\n if (positionCallback) {\n positionCallback();\n }\n if (anchorToElement) {\n // keeps popup positioned under created, eg if context menu, if user scrolls\n // using touchpad and the cell moves, it moves the popup to keep it with the cell.\n destroyPositionTracker = this.keepPopupPositionedRelativeTo({\n element: anchorToElement,\n ePopup: eChild,\n hidePopup: hidePopup\n });\n }\n this.popupList.push({\n element: eChild,\n hideFunc: hidePopup,\n stopAnchoringFunc: destroyPositionTracker\n });\n return {\n hideFunc: hidePopup,\n stopAnchoringFunc: destroyPositionTracker\n };\n };\n PopupService.prototype.isEventFromCurrentPopup = function (params, target) {\n var mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;\n var event = mouseEvent ? mouseEvent : touchEvent;\n if (!event) {\n return false;\n }\n var indexOfThisChild = findIndex(this.popupList, function (popup) { return popup.element === target; });\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 (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 an additional popup element, they should have the\n // `ag-custom-component-popup` class to be detected as part of the Custom Component\n return this.isElementWithinCustomPopup(event.target);\n };\n PopupService.prototype.isElementWithinCustomPopup = function (el) {\n if (!this.popupList.length) {\n return false;\n }\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 return false;\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 (params) {\n var originalMouseEvent = params.originalMouseEvent, mouseEvent = params.mouseEvent, touchEvent = params.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 && originalMouseEvent) {\n // for x, allow 4px margin, to cover iPads, where touch (which opens menu) is followed\n // by browser click (when you 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(originalMouseEvent.screenX - screenX_1) < 5;\n var yMatch = Math.abs(originalMouseEvent.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 (!containsClass(ePopup, 'ag-popup') && ePopup.parentElement) {\n ePopup = ePopup.parentElement;\n }\n return 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 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 = containsClass(eWrapper, 'ag-always-on-top');\n if (isPopupAlwaysOnTop) {\n if (pos !== popupLen - 1) {\n 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 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$1b([\n Autowired('environment')\n ], PopupService.prototype, \"environment\", void 0);\n __decorate$1b([\n Autowired('focusController')\n ], PopupService.prototype, \"focusController\", void 0);\n PopupService = __decorate$1b([\n Bean('popupService')\n ], PopupService);\n return PopupService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1i = (undefined && undefined.__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$1c = (undefined && undefined.__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 __param$7 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LoggerFactory = /** @class */ (function (_super) {\n __extends$1i(LoggerFactory, _super);\n function LoggerFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoggerFactory.prototype.setBeans = function (gridOptionsWrapper) {\n this.logging = gridOptionsWrapper.isDebug();\n };\n LoggerFactory.prototype.create = function (name) {\n return new Logger(name, this.isLogging.bind(this));\n };\n LoggerFactory.prototype.isLogging = function () {\n return this.logging;\n };\n __decorate$1c([\n __param$7(0, Qualifier('gridOptionsWrapper'))\n ], LoggerFactory.prototype, \"setBeans\", null);\n LoggerFactory = __decorate$1c([\n Bean('loggerFactory')\n ], LoggerFactory);\n return LoggerFactory;\n}(BeanStub));\nvar Logger = /** @class */ (function () {\n function Logger(name, isLoggingFunc) {\n this.name = name;\n this.isLoggingFunc = isLoggingFunc;\n }\n Logger.prototype.isLogging = function () {\n return this.isLoggingFunc();\n };\n Logger.prototype.log = function (message) {\n if (this.isLoggingFunc()) {\n // tslint:disable-next-line\n console.log('AG Grid.' + this.name + ': ' + message);\n }\n };\n return Logger;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1j = (undefined && undefined.__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$1d = (undefined && undefined.__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 AutoWidthCalculator = /** @class */ (function (_super) {\n __extends$1j(AutoWidthCalculator, _super);\n function AutoWidthCalculator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoWidthCalculator.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function (p) {\n _this.centerRowContainerCon = p.centerRowContainerCon;\n });\n };\n AutoWidthCalculator.prototype.registerHeaderRootComp = function (headerRootComp) {\n this.headerRootComp = headerRootComp;\n };\n // this is the trick: we create a dummy container and clone all the cells\n // into the dummy, then check the dummy's width. then destroy the dummy\n // as we don't need it any more.\n // drawback: only the cells visible on the screen are considered\n AutoWidthCalculator.prototype.getPreferredWidthForColumn = function (column, skipHeader) {\n var eHeaderCell = this.getHeaderCellForColumn(column);\n // cell isn't visible\n if (!eHeaderCell) {\n return -1;\n }\n var eDummyContainer = document.createElement('span');\n // position fixed, so it isn't restricted to the boundaries of the parent\n eDummyContainer.style.position = 'fixed';\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n var eBodyContainer = this.centerRowContainerCon.getContainerElement();\n eBodyContainer.appendChild(eDummyContainer);\n // get all the cells that are currently displayed (this only brings back\n // rendered cells, rows not rendered due to row visualisation will not be here)\n this.putRowCellsIntoDummyContainer(column, eDummyContainer);\n if (!skipHeader) {\n // we only consider the lowest level cell, not the group cell. in 99% of the time, this\n // will be enough. if we consider groups, then it gets too complicated for what it's worth,\n // as the groups can span columns and this class only considers one column at a time.\n this.cloneItemIntoDummy(eHeaderCell, eDummyContainer);\n }\n // at this point, all the clones are lined up vertically with natural widths. the dummy\n // container will have a width wide enough just to fit the largest.\n var dummyContainerWidth = eDummyContainer.offsetWidth;\n // we are finished with the dummy container, so get rid of it\n eBodyContainer.removeChild(eDummyContainer);\n // we add padding as I found sometimes the gui still put '...' after some of the texts. so the\n // user can configure the grid to add a few more pixels after the calculated width\n var autoSizePadding = this.gridOptionsWrapper.getAutoSizePadding();\n return dummyContainerWidth + autoSizePadding;\n };\n AutoWidthCalculator.prototype.getHeaderCellForColumn = function (column) {\n var comp = null;\n // find the rendered header cell\n this.headerRootComp.forEachHeaderElement(function (headerElement) {\n if (headerElement instanceof HeaderWrapperComp) {\n var headerWrapperComp = headerElement;\n if (headerWrapperComp.getColumn() === column) {\n comp = headerWrapperComp;\n }\n }\n });\n return comp ? comp.getGui() : null;\n };\n AutoWidthCalculator.prototype.putRowCellsIntoDummyContainer = function (column, eDummyContainer) {\n var _this = this;\n var eCells = this.rowRenderer.getAllCellsForColumn(column);\n eCells.forEach(function (eCell) { return _this.cloneItemIntoDummy(eCell, eDummyContainer); });\n };\n AutoWidthCalculator.prototype.cloneItemIntoDummy = function (eCell, eDummyContainer) {\n // make a deep clone of the cell\n var eCellClone = eCell.cloneNode(true);\n // the original has a fixed width, we remove this to allow the natural width based on content\n eCellClone.style.width = '';\n // the original has position = absolute, we need to remove this so it's positioned normally\n eCellClone.style.position = 'static';\n eCellClone.style.left = '';\n // we put the cell into a containing div, as otherwise the cells would just line up\n // on the same line, standard flow layout, by putting them into divs, they are laid\n // out one per line\n var eCloneParent = document.createElement('div');\n if (containsClass(eCellClone, 'ag-header-cell')) {\n addCssClass(eCloneParent, 'ag-header');\n addCssClass(eCloneParent, 'ag-header-row');\n eCloneParent.style.position = 'static';\n }\n else {\n addCssClass(eCloneParent, 'ag-row');\n }\n // table-row, so that each cell is on a row. i also tried display='block', but this\n // didn't work in IE\n eCloneParent.style.display = 'table-row';\n // the twig on the branch, the branch on the tree, the tree in the hole,\n // the hole in the bog, the bog in the clone, the clone in the parent,\n // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....\n eCloneParent.appendChild(eCellClone);\n eDummyContainer.appendChild(eCloneParent);\n };\n __decorate$1d([\n Autowired('rowRenderer')\n ], AutoWidthCalculator.prototype, \"rowRenderer\", void 0);\n __decorate$1d([\n Autowired('controllersService')\n ], AutoWidthCalculator.prototype, \"controllersService\", void 0);\n __decorate$1d([\n PostConstruct\n ], AutoWidthCalculator.prototype, \"postConstruct\", null);\n AutoWidthCalculator = __decorate$1d([\n Bean('autoWidthCalculator')\n ], AutoWidthCalculator);\n return AutoWidthCalculator;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1k = (undefined && undefined.__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$1e = (undefined && undefined.__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 HorizontalResizeService = /** @class */ (function (_super) {\n __extends$1k(HorizontalResizeService, _super);\n function HorizontalResizeService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HorizontalResizeService.prototype.addResizeBar = function (params) {\n var _this = this;\n var dragSource = {\n dragStartPixels: params.dragStartPixels || 0,\n eElement: params.eResizeBar,\n onDragStart: this.onDragStart.bind(this, params),\n onDragStop: this.onDragStop.bind(this, params),\n onDragging: this.onDragging.bind(this, params)\n };\n this.dragService.addDragSource(dragSource, true);\n // we pass remove func back to the caller, so call can tell us when they\n // are finished, and then we remove the listener from the drag source\n var finishedWithResizeFunc = function () { return _this.dragService.removeDragSource(dragSource); };\n return finishedWithResizeFunc;\n };\n HorizontalResizeService.prototype.onDragStart = function (params, mouseEvent) {\n this.dragStartX = mouseEvent.clientX;\n this.setResizeIcons();\n var shiftKey = mouseEvent instanceof MouseEvent && mouseEvent.shiftKey === true;\n params.onResizeStart(shiftKey);\n };\n HorizontalResizeService.prototype.setResizeIcons = function () {\n this.oldBodyCursor = this.eGridDiv.style.cursor;\n this.oldUserSelect = this.eGridDiv.style.userSelect;\n this.oldWebkitUserSelect = this.eGridDiv.style.webkitUserSelect;\n // change the body cursor, so when drag moves out of the drag bar, the cursor is still 'resize' (or 'move'\n this.eGridDiv.style.cursor = 'ew-resize';\n // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)\n this.eGridDiv.style.userSelect = 'none';\n this.eGridDiv.style.webkitUserSelect = 'none';\n };\n HorizontalResizeService.prototype.onDragStop = function (params, mouseEvent) {\n params.onResizeEnd(this.resizeAmount);\n this.resetIcons();\n };\n HorizontalResizeService.prototype.resetIcons = function () {\n // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)\n this.eGridDiv.style.cursor = this.oldBodyCursor;\n this.eGridDiv.style.userSelect = this.oldUserSelect;\n this.eGridDiv.style.webkitUserSelect = this.oldWebkitUserSelect;\n };\n HorizontalResizeService.prototype.onDragging = function (params, mouseEvent) {\n this.resizeAmount = mouseEvent.clientX - this.dragStartX;\n params.onResizing(this.resizeAmount);\n };\n __decorate$1e([\n Autowired('dragService')\n ], HorizontalResizeService.prototype, \"dragService\", void 0);\n __decorate$1e([\n Autowired('eGridDiv')\n ], HorizontalResizeService.prototype, \"eGridDiv\", void 0);\n HorizontalResizeService = __decorate$1e([\n Bean('horizontalResizeService')\n ], HorizontalResizeService);\n return HorizontalResizeService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1l = (undefined && undefined.__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$1f = (undefined && undefined.__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 GridCompController = /** @class */ (function (_super) {\n __extends$1l(GridCompController, _super);\n function GridCompController() {\n return _super.call(this) || this;\n }\n GridCompController.prototype.postConstruct = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('GridCompController');\n // register with services that need grid core\n [\n this.gridApi,\n this.popupService,\n this.focusController,\n this.controllersService\n ].forEach(function (service) { return service.registerGridCompController(_this); });\n if (ModuleRegistry.isRegistered(exports.ModuleNames.ClipboardModule)) {\n this.clipboardService.registerGridCompController(this);\n }\n };\n GridCompController.prototype.setView = function (view, eGridDiv, eGui) {\n var _this = this;\n this.view = view;\n this.eGridHostDiv = eGridDiv;\n this.eGui = eGui;\n this.mouseEventService.stampTopLevelGridCompWithGridInstance(eGridDiv);\n this.createManagedBean(new LayoutFeature(this.view));\n // important to set rtl before doLayout, as setting the RTL class impacts the scroll position,\n // which doLayout indirectly depends on\n this.addRtlSupport();\n this.addManagedListener(this, Events.EVENT_KEYBOARD_FOCUS, function () {\n _this.view.addOrRemoveKeyboardFocusClass(true);\n });\n this.addManagedListener(this, Events.EVENT_MOUSE_FOCUS, function () {\n _this.view.addOrRemoveKeyboardFocusClass(false);\n });\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eGridHostDiv, this.onGridSizeChanged.bind(this));\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n };\n GridCompController.prototype.showDropZones = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.RowGroupingModule);\n };\n GridCompController.prototype.showSideBar = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.SideBarModule);\n };\n GridCompController.prototype.showStatusBar = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.StatusBarModule);\n };\n GridCompController.prototype.showWatermark = function () {\n return ModuleRegistry.isRegistered(exports.ModuleNames.EnterpriseCoreModule);\n };\n GridCompController.prototype.onGridSizeChanged = function () {\n var event = {\n type: Events.EVENT_GRID_SIZE_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi,\n clientWidth: this.eGridHostDiv.clientWidth,\n clientHeight: this.eGridHostDiv.clientHeight\n };\n this.eventService.dispatchEvent(event);\n };\n GridCompController.prototype.addRtlSupport = function () {\n var cssClass = this.gridOptionsWrapper.isEnableRtl() ? 'ag-rtl' : 'ag-ltr';\n this.view.setRtlClass(cssClass);\n };\n GridCompController.prototype.destroyGridUi = function () {\n this.view.destroyGridUi();\n };\n GridCompController.prototype.getGui = function () {\n return this.eGui;\n };\n GridCompController.prototype.focusNextInnerContainer = function (backwards) {\n var focusableContainers = this.view.getFocusableContainers();\n var idxWithFocus = findIndex(focusableContainers, function (container) { return container.contains(document.activeElement); });\n var nextIdx = idxWithFocus + (backwards ? -1 : 1);\n if (nextIdx < 0 || nextIdx >= focusableContainers.length) {\n return false;\n }\n if (nextIdx === 0) {\n return this.focusGridHeader();\n }\n return this.focusController.focusInto(focusableContainers[nextIdx]);\n };\n GridCompController.prototype.focusGridHeader = function () {\n var firstColumn = this.columnController.getAllDisplayedColumns()[0];\n if (!firstColumn) {\n return false;\n }\n if (firstColumn.getParent()) {\n firstColumn = this.columnController.getColumnGroupAtLevel(firstColumn, 0);\n }\n this.focusController.focusHeaderPosition({ headerRowIndex: 0, column: firstColumn });\n return true;\n };\n GridCompController.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n this.view.forceFocusOutOfContainer(up);\n };\n __decorate$1f([\n Autowired('columnApi')\n ], GridCompController.prototype, \"columnApi\", void 0);\n __decorate$1f([\n Autowired('gridApi')\n ], GridCompController.prototype, \"gridApi\", void 0);\n __decorate$1f([\n Autowired('popupService')\n ], GridCompController.prototype, \"popupService\", void 0);\n __decorate$1f([\n Autowired('focusController')\n ], GridCompController.prototype, \"focusController\", void 0);\n __decorate$1f([\n Optional('clipboardService')\n ], GridCompController.prototype, \"clipboardService\", void 0);\n __decorate$1f([\n Autowired('loggerFactory')\n ], GridCompController.prototype, \"loggerFactory\", void 0);\n __decorate$1f([\n Autowired('resizeObserverService')\n ], GridCompController.prototype, \"resizeObserverService\", void 0);\n __decorate$1f([\n Autowired('columnController')\n ], GridCompController.prototype, \"columnController\", void 0);\n __decorate$1f([\n Autowired('controllersService')\n ], GridCompController.prototype, \"controllersService\", void 0);\n __decorate$1f([\n Autowired('mouseEventService')\n ], GridCompController.prototype, \"mouseEventService\", void 0);\n __decorate$1f([\n PostConstruct\n ], GridCompController.prototype, \"postConstruct\", null);\n return GridCompController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1m = (undefined && undefined.__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$1g = (undefined && undefined.__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 GridComp = /** @class */ (function (_super) {\n __extends$1m(GridComp, _super);\n function GridComp(eGridDiv) {\n var _this = _super.call(this, undefined, true) || this;\n _this.eGridDiv = eGridDiv;\n return _this;\n }\n GridComp.prototype.postConstruct = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('GridComp');\n var view = {\n destroyGridUi: function () { return _this.destroyBean(_this); },\n setRtlClass: function (cssClass) { return addCssClass(_this.getGui(), cssClass); },\n addOrRemoveKeyboardFocusClass: function (addOrRemove) { return _this.addOrRemoveCssClass(FocusController.AG_KEYBOARD_FOCUS, addOrRemove); },\n forceFocusOutOfContainer: this.forceFocusOutOfContainer.bind(this),\n updateLayoutClasses: this.updateLayoutClasses.bind(this),\n getFocusableContainers: this.getFocusableContainers.bind(this)\n };\n this.con = this.createManagedBean(new GridCompController());\n var template = this.createTemplate();\n this.setTemplate(template);\n this.con.setView(view, this.eGridDiv, this.getGui());\n this.insertGridIntoDom();\n _super.prototype.postConstruct.call(this);\n };\n GridComp.prototype.insertGridIntoDom = function () {\n var _this = this;\n var eGui = this.getGui();\n this.eGridDiv.appendChild(eGui);\n this.addDestroyFunc(function () {\n _this.eGridDiv.removeChild(eGui);\n _this.logger.log('Grid removed from DOM');\n });\n };\n GridComp.prototype.updateLayoutClasses = function (params) {\n addOrRemoveCssClass(this.eRootWrapperBody, exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n addOrRemoveCssClass(this.eRootWrapperBody, exports.LayoutCssClasses.NORMAL, params.normal);\n addOrRemoveCssClass(this.eRootWrapperBody, exports.LayoutCssClasses.PRINT, params.print);\n this.addOrRemoveCssClass(exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n this.addOrRemoveCssClass(exports.LayoutCssClasses.NORMAL, params.normal);\n this.addOrRemoveCssClass(exports.LayoutCssClasses.PRINT, params.print);\n };\n GridComp.prototype.createTemplate = function () {\n var dropZones = this.con.showDropZones() ? '' : '';\n var sideBar = this.con.showSideBar() ? '' : '';\n var statusBar = this.con.showStatusBar() ? '' : '';\n var watermark = this.con.showWatermark() ? '' : '';\n var template = /* html */ \"
\\n \" + dropZones + \"\\n
\\n \\n \" + sideBar + \"\\n
\\n \" + statusBar + \"\\n \\n \" + watermark + \"\\n
\";\n return template;\n };\n GridComp.prototype.getFocusableElement = function () {\n return this.eRootWrapperBody;\n };\n GridComp.prototype.getFocusableContainers = function () {\n var focusableContainers = [\n this.gridBodyComp.getGui()\n ];\n if (this.sideBarComp) {\n focusableContainers.push(this.sideBarComp.getGui());\n }\n return focusableContainers.filter(function (el) { return isVisible(el); });\n };\n GridComp.prototype.focusInnerElement = function (fromBottom) {\n var focusableContainers = this.getFocusableContainers();\n if (fromBottom) {\n if (focusableContainers.length > 1) {\n return this.focusController.focusInto(last(focusableContainers));\n }\n var lastColumn = last(this.columnController.getAllDisplayedColumns());\n if (this.focusController.focusGridView(lastColumn, true)) {\n return true;\n }\n }\n return this.con.focusGridHeader();\n };\n GridComp.prototype.onTabKeyDown = function () { };\n __decorate$1g([\n Autowired('columnController')\n ], GridComp.prototype, \"columnController\", void 0);\n __decorate$1g([\n Autowired('loggerFactory')\n ], GridComp.prototype, \"loggerFactory\", void 0);\n __decorate$1g([\n RefSelector('gridBody')\n ], GridComp.prototype, \"gridBodyComp\", void 0);\n __decorate$1g([\n RefSelector('sideBar')\n ], GridComp.prototype, \"sideBarComp\", void 0);\n __decorate$1g([\n RefSelector('rootWrapperBody')\n ], GridComp.prototype, \"eRootWrapperBody\", void 0);\n return GridComp;\n}(ManagedFocusComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1n = (undefined && undefined.__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$1h = (undefined && undefined.__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 StandardMenuFactory = /** @class */ (function (_super) {\n __extends$1n(StandardMenuFactory, _super);\n function StandardMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StandardMenuFactory.prototype.registerGridComp = function (gridBodyComp) {\n this.gridBodyComp = gridBodyComp;\n };\n StandardMenuFactory.prototype.hideActiveMenu = function () {\n if (this.hidePopup) {\n this.hidePopup();\n }\n };\n StandardMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupUnderMouseEvent({\n column: column,\n type: 'columnMenu',\n mouseEvent: mouseEvent,\n ePopup: eMenu\n });\n }, mouseEvent.target);\n };\n StandardMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupUnderComponent({\n type: 'columnMenu',\n eventSource: eventSource,\n ePopup: eMenu,\n keepWithinBounds: true,\n column: column\n });\n }, eventSource);\n };\n StandardMenuFactory.prototype.showPopup = function (column, positionCallback, eventSource) {\n var _this = this;\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU');\n var eMenu = document.createElement('div');\n eMenu.setAttribute('role', 'presentation');\n addCssClass(eMenu, 'ag-menu');\n this.tabListener = this.addManagedListener(eMenu, 'keydown', function (e) { return _this.trapFocusWithin(e, eMenu); });\n filterWrapper.guiPromise.then(function (gui) { return eMenu.appendChild(gui); });\n var hidePopup;\n var anchorToElement = eventSource || this.gridBodyComp.getGui();\n var closedCallback = function (e) {\n column.setMenuVisible(false, 'contextMenu');\n var isKeyboardEvent = e instanceof KeyboardEvent;\n if (_this.tabListener) {\n _this.tabListener = _this.tabListener();\n }\n if (isKeyboardEvent && eventSource && isVisible(eventSource)) {\n var focusableEl = _this.focusController.findTabbableParent(eventSource);\n if (focusableEl) {\n focusableEl.focus();\n }\n }\n };\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenu,\n closeOnEsc: true,\n closedCallback: closedCallback,\n positionCallback: function () { return positionCallback(eMenu); },\n anchorToElement: anchorToElement\n });\n if (addPopupRes) {\n this.hidePopup = hidePopup = addPopupRes.hideFunc;\n }\n filterWrapper.filterPromise.then(function (filter) {\n // need to make sure the filter is present before positioning, as only\n // after filter it is visible can we find out what the width of it is\n positionCallback(eMenu);\n if (filter.afterGuiAttached) {\n filter.afterGuiAttached({ container: 'columnMenu', hidePopup: hidePopup });\n }\n });\n column.setMenuVisible(true, 'contextMenu');\n };\n StandardMenuFactory.prototype.trapFocusWithin = function (e, menu) {\n if (e.keyCode !== KeyCode.TAB ||\n e.defaultPrevented ||\n this.focusController.findNextFocusableElement(menu, false, e.shiftKey)) {\n return;\n }\n e.preventDefault();\n this.focusController.focusInto(menu, e.shiftKey);\n };\n StandardMenuFactory.prototype.isMenuEnabled = function (column) {\n // for standard, we show menu if filter is enabled, and the menu is not suppressed\n return column.isFilterAllowed();\n };\n __decorate$1h([\n Autowired('filterManager')\n ], StandardMenuFactory.prototype, \"filterManager\", void 0);\n __decorate$1h([\n Autowired('popupService')\n ], StandardMenuFactory.prototype, \"popupService\", void 0);\n __decorate$1h([\n Autowired('focusController')\n ], StandardMenuFactory.prototype, \"focusController\", void 0);\n StandardMenuFactory = __decorate$1h([\n Bean('menuFactory')\n ], StandardMenuFactory);\n return StandardMenuFactory;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1o = (undefined && undefined.__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$1i = (undefined && undefined.__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};\n/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,\n * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */\nvar DragService = /** @class */ (function (_super) {\n __extends$1o(DragService, _super);\n function DragService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dragEndFunctions = [];\n _this.dragSources = [];\n return _this;\n }\n DragService.prototype.init = function () {\n this.logger = this.loggerFactory.create('DragService');\n };\n DragService.prototype.removeAllListeners = function () {\n this.dragSources.forEach(this.removeListener.bind(this));\n this.dragSources.length = 0;\n };\n DragService.prototype.removeListener = function (dragSourceAndListener) {\n var element = dragSourceAndListener.dragSource.eElement;\n var mouseDownListener = dragSourceAndListener.mouseDownListener;\n element.removeEventListener('mousedown', mouseDownListener);\n // remove touch listener only if it exists\n if (dragSourceAndListener.touchEnabled) {\n var touchStartListener = dragSourceAndListener.touchStartListener;\n element.removeEventListener('touchstart', touchStartListener, { passive: true });\n }\n };\n DragService.prototype.removeDragSource = function (params) {\n var dragSourceAndListener = find(this.dragSources, function (item) { return item.dragSource === params; });\n if (!dragSourceAndListener) {\n return;\n }\n this.removeListener(dragSourceAndListener);\n removeFromArray(this.dragSources, dragSourceAndListener);\n };\n DragService.prototype.setNoSelectToBody = function (noSelect) {\n var eDocument = this.gridOptionsWrapper.getDocument();\n var eBody = eDocument.querySelector('body');\n if (exists(eBody)) {\n // when we drag the mouse in AG Grid, this class gets added / removed from the body, so that\n // the mouse isn't selecting text when dragging.\n addOrRemoveCssClass(eBody, 'ag-unselectable', noSelect);\n }\n };\n DragService.prototype.isDragging = function () {\n return this.dragging;\n };\n DragService.prototype.addDragSource = function (params, includeTouch) {\n if (includeTouch === void 0) { includeTouch = false; }\n var mouseListener = this.onMouseDown.bind(this, params);\n params.eElement.addEventListener('mousedown', mouseListener);\n var touchListener = null;\n var suppressTouch = this.gridOptionsWrapper.isSuppressTouch();\n if (includeTouch && !suppressTouch) {\n touchListener = this.onTouchStart.bind(this, params);\n params.eElement.addEventListener('touchstart', touchListener, { passive: true });\n }\n this.dragSources.push({\n dragSource: params,\n mouseDownListener: mouseListener,\n touchStartListener: touchListener,\n touchEnabled: includeTouch\n });\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onTouchStart = function (params, touchEvent) {\n var _this = this;\n this.currentDragParams = params;\n this.dragging = false;\n var touch = touchEvent.touches[0];\n this.touchLastTime = touch;\n this.touchStart = touch;\n var touchMoveEvent = function (e) { return _this.onTouchMove(e, params.eElement); };\n var touchEndEvent = function (e) { return _this.onTouchUp(e, params.eElement); };\n var documentTouchMove = function (e) { if (e.cancelable) {\n e.preventDefault();\n } };\n var target = params.eElement;\n var events = [\n // Prevents the page document from moving while we are dragging items around.\n // preventDefault needs to be called in the touchmove listener and never inside the\n // touchstart, because using touchstart causes the click event to be cancelled on touch devices.\n { target: document, type: 'touchmove', listener: documentTouchMove, options: { passive: false } },\n { target: target, type: 'touchmove', listener: touchMoveEvent, options: { passive: true } },\n { target: target, type: 'touchend', listener: touchEndEvent, options: { passive: true } },\n { target: target, type: 'touchcancel', listener: touchEndEvent, options: { passive: true } }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n // see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onCommonMove(touch, this.touchStart, params.eElement);\n }\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onMouseDown = function (params, mouseEvent) {\n var _this = this;\n var e = mouseEvent;\n if (params.skipMouseEvent && params.skipMouseEvent(mouseEvent)) {\n return;\n }\n // if there are two elements with parent / child relationship, and both are draggable,\n // when we drag the child, we should NOT drag the parent. an example of this is row moving\n // and range selection - row moving should get preference when use drags the rowDrag component.\n if (e._alreadyProcessedByDragService) {\n return;\n }\n e._alreadyProcessedByDragService = true;\n // only interested in left button clicks\n if (mouseEvent.button !== 0) {\n return;\n }\n this.currentDragParams = params;\n this.dragging = false;\n this.mouseStartEvent = mouseEvent;\n var eDocument = this.gridOptionsWrapper.getDocument();\n this.setNoSelectToBody(true);\n var mouseMoveEvent = function (event) { return _this.onMouseMove(event, params.eElement); };\n var mouseUpEvent = function (event) { return _this.onMouseUp(event, params.eElement); };\n var contextEvent = function (event) { return event.preventDefault(); };\n var target = eDocument;\n var events = [\n { target: target, type: 'mousemove', listener: mouseMoveEvent },\n { target: target, type: 'mouseup', listener: mouseUpEvent },\n { target: target, type: 'contextmenu', listener: contextEvent }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n //see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onMouseMove(mouseEvent, params.eElement);\n }\n };\n DragService.prototype.addTemporaryEvents = function (events) {\n events.forEach(function (currentEvent) {\n var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;\n target.addEventListener(type, listener, options);\n });\n this.dragEndFunctions.push(function () {\n events.forEach(function (currentEvent) {\n var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;\n target.removeEventListener(type, listener, options);\n });\n });\n };\n // returns true if the event is close to the original event by X pixels either vertically or horizontally.\n // we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n DragService.prototype.isEventNearStartEvent = function (currentEvent, startEvent) {\n // by default, we wait 4 pixels before starting the drag\n var dragStartPixels = this.currentDragParams.dragStartPixels;\n var requiredPixelDiff = exists(dragStartPixels) ? dragStartPixels : 4;\n return areEventsNear(currentEvent, startEvent, requiredPixelDiff);\n };\n DragService.prototype.getFirstActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this.touchStart.identifier) {\n return touchList[i];\n }\n }\n return null;\n };\n DragService.prototype.onCommonMove = function (currentEvent, startEvent, el) {\n if (!this.dragging) {\n // if mouse hasn't travelled from the start position enough, do nothing\n if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {\n return;\n }\n this.dragging = true;\n var event_1 = {\n type: Events.EVENT_DRAG_STARTED,\n api: this.gridApi,\n columnApi: this.columnApi,\n target: el\n };\n this.eventService.dispatchEvent(event_1);\n this.currentDragParams.onDragStart(startEvent);\n // we need ONE drag action at the startEvent, so that we are guaranteed the drop target\n // at the start gets notified. this is because the drag can start outside of the element\n // that started it, as the mouse is allowed drag away from the mouse down before it's\n // considered a drag (the isEventNearStartEvent() above). if we didn't do this, then\n // it would be possible to click a column by the edge, then drag outside of the drop zone\n // in less than 4 pixels and the drag officially starts outside of the header but the header\n // wouldn't be notified of the dragging.\n this.currentDragParams.onDragging(startEvent);\n }\n this.currentDragParams.onDragging(currentEvent);\n };\n DragService.prototype.onTouchMove = function (touchEvent, el) {\n var touch = this.getFirstActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');\n this.onCommonMove(touch, this.touchStart, el);\n };\n // only gets called after a mouse down - as this is only added after mouseDown\n // and is removed when mouseUp happens\n DragService.prototype.onMouseMove = function (mouseEvent, el) {\n this.onCommonMove(mouseEvent, this.mouseStartEvent, el);\n };\n DragService.prototype.onTouchUp = function (touchEvent, el) {\n var touch = this.getFirstActiveTouch(touchEvent.changedTouches);\n // i haven't worked this out yet, but there is no matching touch\n // when we get the touch up event. to get around this, we swap in\n // the last touch. this is a hack to 'get it working' while we\n // figure out what's going on, why we are not getting a touch in\n // current event.\n if (!touch) {\n touch = this.touchLastTime;\n }\n // if mouse was left up before we started to move, then this is a tap.\n // we check this before onUpCommon as onUpCommon resets the dragging\n // let tap = !this.dragging;\n // let tapTarget = this.currentDragParams.eElement;\n this.onUpCommon(touch, el);\n // if tap, tell user\n // console.log(`${Math.random()} tap = ${tap}`);\n // if (tap) {\n // tapTarget.click();\n // }\n };\n DragService.prototype.onMouseUp = function (mouseEvent, el) {\n this.onUpCommon(mouseEvent, el);\n };\n DragService.prototype.onUpCommon = function (eventOrTouch, el) {\n if (this.dragging) {\n this.dragging = false;\n this.currentDragParams.onDragStop(eventOrTouch);\n var event_2 = {\n type: Events.EVENT_DRAG_STOPPED,\n api: this.gridApi,\n columnApi: this.columnApi,\n target: el\n };\n this.eventService.dispatchEvent(event_2);\n }\n this.setNoSelectToBody(false);\n this.mouseStartEvent = null;\n this.touchStart = null;\n this.touchLastTime = null;\n this.currentDragParams = null;\n this.dragEndFunctions.forEach(function (func) { return func(); });\n this.dragEndFunctions.length = 0;\n };\n __decorate$1i([\n Autowired('loggerFactory')\n ], DragService.prototype, \"loggerFactory\", void 0);\n __decorate$1i([\n Autowired('columnApi')\n ], DragService.prototype, \"columnApi\", void 0);\n __decorate$1i([\n Autowired('gridApi')\n ], DragService.prototype, \"gridApi\", void 0);\n __decorate$1i([\n PostConstruct\n ], DragService.prototype, \"init\", null);\n __decorate$1i([\n PreDestroy\n ], DragService.prototype, \"removeAllListeners\", null);\n DragService = __decorate$1i([\n Bean('dragService')\n ], DragService);\n return DragService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1p = (undefined && undefined.__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$1j = (undefined && undefined.__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 SortController = /** @class */ (function (_super) {\n __extends$1p(SortController, _super);\n function SortController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortController_1 = SortController;\n SortController.prototype.progressSort = function (column, multiSort, source) {\n if (source === void 0) { source = \"api\"; }\n var nextDirection = this.getNextSortDirection(column);\n this.setSortForColumn(column, nextDirection, multiSort, source);\n };\n SortController.prototype.setSortForColumn = function (column, sort, multiSort, source) {\n if (source === void 0) { source = \"api\"; }\n // auto correct - if sort not legal value, then set it to 'no sort' (which is null)\n if (sort !== Constants.SORT_ASC && sort !== Constants.SORT_DESC) {\n sort = null;\n }\n // update sort on current col\n column.setSort(sort, source);\n var doingMultiSort = multiSort && !this.gridOptionsWrapper.isSuppressMultiSort();\n // clear sort on all columns except this one, and update the icons\n if (!doingMultiSort) {\n this.clearSortBarThisColumn(column, source);\n }\n // sortIndex used for knowing order of cols when multi-col sort\n this.updateSortIndex(column);\n this.dispatchSortChangedEvents();\n };\n SortController.prototype.updateSortIndex = function (lastColToChange) {\n // update sortIndex on all sorting cols\n var allSortedCols = this.getColumnsWithSortingOrdered();\n var sortIndex = 0;\n allSortedCols.forEach(function (col) {\n if (col !== lastColToChange) {\n col.setSortIndex(sortIndex);\n sortIndex++;\n }\n });\n // last col to change always gets the last sort index, it's added to the end\n if (lastColToChange.getSort()) {\n lastColToChange.setSortIndex(sortIndex);\n }\n // clear sort index on all cols not sorting\n var allCols = this.columnController.getPrimaryAndSecondaryAndAutoColumns();\n allCols.filter(function (col) { return col.getSort() == null; }).forEach(function (col) { return col.setSortIndex(); });\n };\n // gets called by API, so if data changes, use can call this, which will end up\n // working out the sort order again of the rows.\n SortController.prototype.onSortChanged = function () {\n this.dispatchSortChangedEvents();\n };\n SortController.prototype.isSortActive = function () {\n // pull out all the columns that have sorting set\n var allCols = this.columnController.getPrimaryAndSecondaryAndAutoColumns();\n var sortedCols = allCols.filter(function (column) { return !!column.getSort(); });\n return sortedCols && sortedCols.length > 0;\n };\n SortController.prototype.dispatchSortChangedEvents = function () {\n var event = {\n type: Events.EVENT_SORT_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n SortController.prototype.clearSortBarThisColumn = function (columnToSkip, source) {\n this.columnController.getPrimaryAndSecondaryAndAutoColumns().forEach(function (columnToClear) {\n // Do not clear if either holding shift, or if column in question was clicked\n if (columnToClear !== columnToSkip) {\n // setting to 'undefined' as null means 'none' rather than cleared, otherwise issue will arise\n // if sort order is: ['desc', null , 'asc'], as it will start at null rather than 'desc'.\n columnToClear.setSort(undefined, source);\n }\n });\n };\n SortController.prototype.getNextSortDirection = function (column) {\n var sortingOrder;\n if (column.getColDef().sortingOrder) {\n sortingOrder = column.getColDef().sortingOrder;\n }\n else if (this.gridOptionsWrapper.getSortingOrder()) {\n sortingOrder = this.gridOptionsWrapper.getSortingOrder();\n }\n else {\n sortingOrder = SortController_1.DEFAULT_SORTING_ORDER;\n }\n if (!Array.isArray(sortingOrder) || sortingOrder.length <= 0) {\n console.warn(\"ag-grid: sortingOrder must be an array with at least one element, currently it's \" + sortingOrder);\n return null;\n }\n var currentIndex = sortingOrder.indexOf(column.getSort());\n var notInArray = currentIndex < 0;\n var lastItemInArray = currentIndex == sortingOrder.length - 1;\n var result;\n if (notInArray || lastItemInArray) {\n result = sortingOrder[0];\n }\n else {\n result = sortingOrder[currentIndex + 1];\n }\n // verify the sort type exists, as the user could provide the sortingOrder, need to make sure it's valid\n if (SortController_1.DEFAULT_SORTING_ORDER.indexOf(result) < 0) {\n console.warn('ag-grid: invalid sort type ' + result);\n return null;\n }\n return result;\n };\n SortController.prototype.getColumnsWithSortingOrdered = function () {\n // pull out all the columns that have sorting set\n var allColumnsIncludingAuto = this.columnController.getPrimaryAndSecondaryAndAutoColumns();\n var columnsWithSorting = allColumnsIncludingAuto.filter(function (column) { return !!column.getSort(); });\n // when both cols are missing sortIndex, we use the position of the col in all cols list.\n // this means if colDefs only have sort, but no sortIndex, we deterministically pick which\n // cols is sorted by first.\n var allColsIndexes = {};\n allColumnsIncludingAuto.forEach(function (col, index) { return allColsIndexes[col.getId()] = index; });\n // put the columns in order of which one got sorted first\n columnsWithSorting.sort(function (a, b) {\n var iA = a.getSortIndex();\n var iB = b.getSortIndex();\n if (iA != null && iB != null) {\n return iA - iB; // both present, normal comparison\n }\n else if (iA == null && iB == null) {\n // both missing, compare using column positions\n var posA = allColsIndexes[a.getId()];\n var posB = allColsIndexes[b.getId()];\n return posA > posB ? 1 : -1;\n }\n else if (iB == null) {\n return -1; // iB missing\n }\n else {\n return 1; // iA missing\n }\n });\n return columnsWithSorting;\n };\n // used by server side row models, to sent sort to server\n SortController.prototype.getSortModel = function () {\n return this.getColumnsWithSortingOrdered().map(function (column) { return ({\n sort: column.getSort(),\n colId: column.getId()\n }); });\n };\n SortController.prototype.getSortOptions = function () {\n return this.getColumnsWithSortingOrdered().map(function (column) { return ({\n sort: column.getSort(),\n column: column\n }); });\n };\n var SortController_1;\n SortController.DEFAULT_SORTING_ORDER = [Constants.SORT_ASC, Constants.SORT_DESC, null];\n __decorate$1j([\n Autowired('columnController')\n ], SortController.prototype, \"columnController\", void 0);\n __decorate$1j([\n Autowired('columnApi')\n ], SortController.prototype, \"columnApi\", void 0);\n __decorate$1j([\n Autowired('gridApi')\n ], SortController.prototype, \"gridApi\", void 0);\n SortController = SortController_1 = __decorate$1j([\n Bean('sortController')\n ], SortController);\n return SortController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1q = (undefined && undefined.__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$1k = (undefined && undefined.__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 MouseEventService = /** @class */ (function (_super) {\n __extends$1q(MouseEventService, _super);\n function MouseEventService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();\n return _this;\n }\n MouseEventService_1 = MouseEventService;\n // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,\n // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic\n // for where this is used.\n MouseEventService.prototype.stampTopLevelGridCompWithGridInstance = function (eGridDiv) {\n eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;\n };\n MouseEventService.prototype.getRenderedCellForEvent = function (event) {\n return getComponentForEvent(this.gridOptionsWrapper, event, 'cellComp');\n };\n // walks the path of the event, and returns true if this grid is the first one that it finds. if doing\n // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste\n // getting executed on many grids at the same time.\n MouseEventService.prototype.isEventFromThisGrid = function (event) {\n var res = this.isElementInThisGrid(event.target);\n return res;\n };\n MouseEventService.prototype.isElementInThisGrid = function (element) {\n var pointer = element;\n while (pointer) {\n var instanceId = pointer[MouseEventService_1.GRID_DOM_KEY];\n if (exists(instanceId)) {\n var eventFromThisGrid = instanceId === this.gridInstanceId;\n return eventFromThisGrid;\n }\n pointer = pointer.parentElement;\n }\n return false;\n };\n MouseEventService.prototype.getCellPositionForEvent = function (event) {\n var cellComp = this.getRenderedCellForEvent(event);\n return cellComp ? cellComp.getCellPosition() : null;\n };\n MouseEventService.prototype.getNormalisedPosition = function (event) {\n var gridPanelHasScrolls = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n var e = event;\n var x;\n var y;\n if (e.clientX != null || e.clientY != null) {\n x = e.clientX;\n y = e.clientY;\n }\n else {\n x = e.x;\n y = e.y;\n }\n if (gridPanelHasScrolls) {\n var gridBodyCon = this.controllersService.getGridBodyController();\n var vRange = gridBodyCon.getScrollFeature().getVScrollPosition();\n var hRange = gridBodyCon.getScrollFeature().getHScrollPosition();\n x += hRange.left;\n y += vRange.top;\n }\n return { x: x, y: y };\n };\n var MouseEventService_1;\n MouseEventService.gridInstanceSequence = new NumberSequence();\n MouseEventService.GRID_DOM_KEY = '__ag_grid_instance';\n __decorate$1k([\n Autowired('controllersService')\n ], MouseEventService.prototype, \"controllersService\", void 0);\n MouseEventService = MouseEventService_1 = __decorate$1k([\n Bean('mouseEventService')\n ], MouseEventService);\n return MouseEventService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1r = (undefined && undefined.__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$1l = (undefined && undefined.__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 CellNavigationService = /** @class */ (function (_super) {\n __extends$1r(CellNavigationService, _super);\n function CellNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // returns null if no cell to focus on, ie at the end of the grid\n CellNavigationService.prototype.getNextCellToFocus = function (key, lastCellToFocus) {\n // starting with the provided cell, we keep moving until we find a cell we can\n // focus on.\n var pointer = lastCellToFocus;\n var finished = false;\n // finished will be true when either:\n // a) cell found that we can focus on\n // b) run out of cells (ie the method returns null)\n while (!finished) {\n switch (key) {\n case KeyCode.UP:\n pointer = this.getCellAbove(pointer);\n break;\n case KeyCode.DOWN:\n pointer = this.getCellBelow(pointer);\n break;\n case KeyCode.RIGHT:\n if (this.gridOptionsWrapper.isEnableRtl()) {\n pointer = this.getCellToLeft(pointer);\n }\n else {\n pointer = this.getCellToRight(pointer);\n }\n break;\n case KeyCode.LEFT:\n if (this.gridOptionsWrapper.isEnableRtl()) {\n pointer = this.getCellToRight(pointer);\n }\n else {\n pointer = this.getCellToLeft(pointer);\n }\n break;\n default:\n pointer = null;\n console.warn('AG Grid: unknown key for navigation ' + key);\n break;\n }\n if (pointer) {\n finished = this.isCellGoodToFocusOn(pointer);\n }\n else {\n finished = true;\n }\n }\n return pointer;\n };\n CellNavigationService.prototype.isCellGoodToFocusOn = function (gridCell) {\n var column = gridCell.column;\n var rowNode;\n switch (gridCell.rowPinned) {\n case Constants.PINNED_TOP:\n rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);\n break;\n case Constants.PINNED_BOTTOM:\n rowNode = this.pinnedRowModel.getPinnedBottomRow(gridCell.rowIndex);\n break;\n default:\n rowNode = this.rowModel.getRow(gridCell.rowIndex);\n break;\n }\n if (!rowNode) {\n return false;\n }\n var suppressNavigable = column.isSuppressNavigable(rowNode);\n return !suppressNavigable;\n };\n CellNavigationService.prototype.getCellToLeft = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var colToLeft = this.columnController.getDisplayedColBefore(lastCell.column);\n if (!colToLeft) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToLeft,\n rowPinned: lastCell.rowPinned\n };\n };\n CellNavigationService.prototype.getCellToRight = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var colToRight = this.columnController.getDisplayedColAfter(lastCell.column);\n // if already on right, do nothing\n if (!colToRight) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToRight,\n rowPinned: lastCell.rowPinned\n };\n };\n CellNavigationService.prototype.getRowBelow = function (rowPosition) {\n // if already on top row, do nothing\n var index = rowPosition.rowIndex;\n var pinned = rowPosition.rowPinned;\n if (this.isLastRowInContainer(rowPosition)) {\n switch (pinned) {\n case Constants.PINNED_BOTTOM:\n // never any rows after pinned bottom\n return null;\n case Constants.PINNED_TOP:\n // if on last row of pinned top, then next row is main body (if rows exist),\n // otherwise it's the pinned bottom\n if (this.rowModel.isRowsToRender()) {\n return { rowIndex: this.paginationProxy.getPageFirstRow(), rowPinned: null };\n }\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_BOTTOM)) {\n return { rowIndex: 0, rowPinned: Constants.PINNED_BOTTOM };\n }\n return null;\n default:\n // if in the main body, then try pinned bottom, otherwise return nothing\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_BOTTOM)) {\n return { rowIndex: 0, rowPinned: Constants.PINNED_BOTTOM };\n }\n return null;\n }\n }\n return { rowIndex: index + 1, rowPinned: pinned };\n };\n CellNavigationService.prototype.getCellBelow = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var rowBelow = this.getRowBelow(lastCell);\n if (rowBelow) {\n return {\n rowIndex: rowBelow.rowIndex,\n column: lastCell.column,\n rowPinned: rowBelow.rowPinned\n };\n }\n return null;\n };\n CellNavigationService.prototype.isLastRowInContainer = function (rowPosition) {\n var pinned = rowPosition.rowPinned;\n var index = rowPosition.rowIndex;\n if (pinned === Constants.PINNED_TOP) {\n var lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return lastTopIndex <= index;\n }\n if (pinned === Constants.PINNED_BOTTOM) {\n var lastBottomIndex = this.pinnedRowModel.getPinnedBottomRowData().length - 1;\n return lastBottomIndex <= index;\n }\n var lastBodyIndex = this.paginationProxy.getPageLastRow();\n return lastBodyIndex <= index;\n };\n CellNavigationService.prototype.getRowAbove = function (rowPosition) {\n // if already on top row, do nothing\n var index = rowPosition.rowIndex;\n var pinned = rowPosition.rowPinned;\n var isFirstRow = pinned ? index === 0 : index === this.paginationProxy.getPageFirstRow();\n // if already on top row, do nothing\n if (isFirstRow) {\n if (pinned === Constants.PINNED_TOP) {\n return null;\n }\n if (!pinned) {\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_TOP)) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n // last floating bottom\n if (this.rowModel.isRowsToRender()) {\n return this.getLastBodyCell();\n }\n if (this.pinnedRowModel.isRowsToRender(Constants.PINNED_TOP)) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n return { rowIndex: index - 1, rowPinned: pinned };\n };\n CellNavigationService.prototype.getCellAbove = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var rowAbove = this.getRowAbove({ rowIndex: lastCell.rowIndex, rowPinned: lastCell.rowPinned });\n if (rowAbove) {\n return {\n rowIndex: rowAbove.rowIndex,\n column: lastCell.column,\n rowPinned: rowAbove.rowPinned\n };\n }\n return null;\n };\n CellNavigationService.prototype.getLastBodyCell = function () {\n var lastBodyRow = this.paginationProxy.getPageLastRow();\n return { rowIndex: lastBodyRow, rowPinned: null };\n };\n CellNavigationService.prototype.getLastFloatingTopRow = function () {\n var lastFloatingRow = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return { rowIndex: lastFloatingRow, rowPinned: Constants.PINNED_TOP };\n };\n CellNavigationService.prototype.getNextTabbedCell = function (gridCell, backwards) {\n if (backwards) {\n return this.getNextTabbedCellBackwards(gridCell);\n }\n return this.getNextTabbedCellForwards(gridCell);\n };\n CellNavigationService.prototype.getNextTabbedCellForwards = function (gridCell) {\n var displayedColumns = this.columnController.getAllDisplayedColumns();\n var newRowIndex = gridCell.rowIndex;\n var newFloating = gridCell.rowPinned;\n // move along to the next cell\n var newColumn = this.columnController.getDisplayedColAfter(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = displayedColumns[0];\n var rowBelow = this.getRowBelow(gridCell);\n if (missing(rowBelow)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowBelow.rowPinned && !this.paginationProxy.isRowInPage(rowBelow)) {\n return null;\n }\n newRowIndex = rowBelow ? rowBelow.rowIndex : null;\n newFloating = rowBelow ? rowBelow.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n };\n CellNavigationService.prototype.getNextTabbedCellBackwards = function (gridCell) {\n var displayedColumns = this.columnController.getAllDisplayedColumns();\n var newRowIndex = gridCell.rowIndex;\n var newFloating = gridCell.rowPinned;\n // move along to the next cell\n var newColumn = this.columnController.getDisplayedColBefore(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = last(displayedColumns);\n var rowAbove = this.getRowAbove({ rowIndex: gridCell.rowIndex, rowPinned: gridCell.rowPinned });\n if (missing(rowAbove)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowAbove.rowPinned && !this.paginationProxy.isRowInPage(rowAbove)) {\n return null;\n }\n newRowIndex = rowAbove ? rowAbove.rowIndex : null;\n newFloating = rowAbove ? rowAbove.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n };\n __decorate$1l([\n Autowired('columnController')\n ], CellNavigationService.prototype, \"columnController\", void 0);\n __decorate$1l([\n Autowired('rowModel')\n ], CellNavigationService.prototype, \"rowModel\", void 0);\n __decorate$1l([\n Autowired('pinnedRowModel')\n ], CellNavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$1l([\n Autowired('paginationProxy')\n ], CellNavigationService.prototype, \"paginationProxy\", void 0);\n CellNavigationService = __decorate$1l([\n Bean('cellNavigationService')\n ], CellNavigationService);\n return CellNavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1s = (undefined && undefined.__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$1m = (undefined && undefined.__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 ValueFormatterService = /** @class */ (function (_super) {\n __extends$1s(ValueFormatterService, _super);\n function ValueFormatterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueFormatterService.prototype.formatValue = function (column, node, $scope, value, suppliedFormatter, useFormatterFromColumn) {\n if (useFormatterFromColumn === void 0) { useFormatterFromColumn = true; }\n var result = null;\n var formatter;\n var colDef = column.getColDef();\n if (suppliedFormatter) {\n // use supplied formatter if provided, e.g. set filter items can have their own value formatters\n formatter = suppliedFormatter;\n }\n else if (useFormatterFromColumn) {\n // if row is pinned, give preference to the pinned formatter\n formatter = node && node.rowPinned && colDef.pinnedRowValueFormatter ?\n colDef.pinnedRowValueFormatter : colDef.valueFormatter;\n }\n if (formatter) {\n var params = {\n value: value,\n node: node,\n data: node ? node.data : null,\n colDef: colDef,\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n // originally we put the angular 1 scope here, but we don't want the scope\n // in the params interface, as other frameworks will see the interface, and\n // angular 1 is not cool any more. so we hack the scope in here (we cannot\n // include it above, as it's not in the interface, so would cause a compile error).\n // in the future, when we stop supporting angular 1, we can take this out.\n params.$scope = $scope;\n result = this.expressionService.evaluate(formatter, params);\n }\n else if (colDef.refData) {\n return colDef.refData[value] || '';\n }\n // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (i.e. with spaces)\n if (result == null && Array.isArray(value)) {\n result = value.join(', ');\n }\n return result;\n };\n __decorate$1m([\n Autowired('expressionService')\n ], ValueFormatterService.prototype, \"expressionService\", void 0);\n ValueFormatterService = __decorate$1m([\n Bean('valueFormatterService')\n ], ValueFormatterService);\n return ValueFormatterService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1t = (undefined && undefined.__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 AgRadioButton = /** @class */ (function (_super) {\n __extends$1t(AgRadioButton, _super);\n function AgRadioButton(config) {\n return _super.call(this, config, 'ag-radio-button', 'radio') || this;\n }\n AgRadioButton.prototype.isSelected = function () {\n return this.eInput.checked;\n };\n AgRadioButton.prototype.toggle = function () {\n // do not allow an active radio button to be deselected\n if (!this.isSelected()) {\n this.setValue(true);\n }\n };\n AgRadioButton.prototype.addInputListeners = function () {\n _super.prototype.addInputListeners.call(this);\n this.addManagedListener(this.eventService, Events.EVENT_CHECKBOX_CHANGED, this.onChange.bind(this));\n };\n /**\n * This ensures that if another radio button in the same named group is selected, we deselect this radio button.\n * By default the browser does this for you, but we are managing classes ourselves in order to ensure input\n * elements are styled correctly in IE11, and the DOM 'changed' event is only fired when a button is selected,\n * not deselected, so we need to use our own event.\n */\n AgRadioButton.prototype.onChange = function (event) {\n if (event.selected &&\n event.name &&\n this.eInput.name &&\n this.eInput.name === event.name &&\n event.id &&\n this.eInput.id !== event.id) {\n this.setValue(false, true);\n }\n };\n return AgRadioButton;\n}(AgCheckbox));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar OUTSIDE_ANGULAR_EVENTS = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave'];\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 this.isOutsideAngular = function (eventType) { return includes(OUTSIDE_ANGULAR_EVENTS, eventType); };\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.addEventListener = function (element, type, listener, useCapture) {\n element.addEventListener(type, listener, useCapture);\n };\n // for Vanilla JS, we just execute the listener\n VanillaFrameworkOverrides.prototype.dispatchEvent = function (eventType, listener) {\n listener();\n };\n return VanillaFrameworkOverrides;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1u = (undefined && undefined.__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$1n = (undefined && undefined.__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 ScrollVisibleService = /** @class */ (function (_super) {\n __extends$1u(ScrollVisibleService, _super);\n function ScrollVisibleService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScrollVisibleService.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n };\n ScrollVisibleService.prototype.onDisplayedColumnsChanged = function () {\n this.update();\n };\n ScrollVisibleService.prototype.onDisplayedColumnsWidthChanged = function () {\n this.update();\n };\n ScrollVisibleService.prototype.update = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateImpl();\n setTimeout(this.updateImpl.bind(this), 500);\n };\n ScrollVisibleService.prototype.updateImpl = function () {\n var params = {\n horizontalScrollShowing: this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing(),\n verticalScrollShowing: this.isVerticalScrollShowing()\n };\n this.setScrollsVisible(params);\n };\n ScrollVisibleService.prototype.setScrollsVisible = function (params) {\n var atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||\n this.verticalScrollShowing !== params.verticalScrollShowing;\n if (atLeastOneDifferent) {\n this.horizontalScrollShowing = params.horizontalScrollShowing;\n this.verticalScrollShowing = params.verticalScrollShowing;\n var event_1 = {\n type: Events.EVENT_SCROLL_VISIBILITY_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n // used by pagination service - to know page height\n ScrollVisibleService.prototype.isHorizontalScrollShowing = function () {\n return this.horizontalScrollShowing;\n };\n // used by header container\n ScrollVisibleService.prototype.isVerticalScrollShowing = function () {\n return this.verticalScrollShowing;\n };\n __decorate$1n([\n Autowired('columnApi')\n ], ScrollVisibleService.prototype, \"columnApi\", void 0);\n __decorate$1n([\n Autowired('gridApi')\n ], ScrollVisibleService.prototype, \"gridApi\", void 0);\n __decorate$1n([\n Autowired('controllersService')\n ], ScrollVisibleService.prototype, \"controllersService\", void 0);\n __decorate$1n([\n PostConstruct\n ], ScrollVisibleService.prototype, \"postConstruct\", null);\n ScrollVisibleService = __decorate$1n([\n Bean('scrollVisibleService')\n ], ScrollVisibleService);\n return ScrollVisibleService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1v = (undefined && undefined.__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$1o = (undefined && undefined.__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 StylingService = /** @class */ (function (_super) {\n __extends$1v(StylingService, _super);\n function StylingService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StylingService.prototype.processAllCellClasses = function (colDef, params, onApplicableClass, onNotApplicableClass) {\n this.processClassRules(colDef.cellClassRules, params, onApplicableClass, onNotApplicableClass);\n this.processStaticCellClasses(colDef, params, onApplicableClass);\n };\n StylingService.prototype.processClassRules = function (classRules, params, onApplicableClass, onNotApplicableClass) {\n if (isNonNullObject(classRules)) {\n var classNames = Object.keys(classRules);\n for (var i = 0; i < classNames.length; i++) {\n var className = classNames[i];\n var rule = classRules[className];\n var resultOfRule = void 0;\n if (typeof rule === 'string') {\n resultOfRule = this.expressionService.evaluate(rule, params);\n }\n else if (typeof rule === 'function') {\n resultOfRule = rule(params);\n }\n if (resultOfRule) {\n onApplicableClass(className);\n }\n else if (onNotApplicableClass) {\n onNotApplicableClass(className);\n }\n }\n }\n };\n StylingService.prototype.processStaticCellClasses = function (colDef, params, onApplicableClass) {\n var cellClass = colDef.cellClass;\n if (cellClass) {\n var classOrClasses = void 0;\n if (typeof colDef.cellClass === 'function') {\n var cellClassFunc = colDef.cellClass;\n classOrClasses = cellClassFunc(params);\n }\n else {\n classOrClasses = colDef.cellClass;\n }\n if (typeof classOrClasses === 'string') {\n onApplicableClass(classOrClasses);\n }\n else if (Array.isArray(classOrClasses)) {\n classOrClasses.forEach(function (cssClassItem) {\n onApplicableClass(cssClassItem);\n });\n }\n }\n };\n __decorate$1o([\n Autowired('expressionService')\n ], StylingService.prototype, \"expressionService\", void 0);\n StylingService = __decorate$1o([\n Bean('stylingService')\n ], StylingService);\n return StylingService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1w = (undefined && undefined.__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$1p = (undefined && undefined.__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 ColumnHoverService = /** @class */ (function (_super) {\n __extends$1w(ColumnHoverService, _super);\n function ColumnHoverService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnHoverService.prototype.setMouseOver = function (columns) {\n this.selectedColumns = columns;\n var event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.clearMouseOver = function () {\n this.selectedColumns = null;\n var event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.isHovered = function (column) {\n return !!this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;\n };\n __decorate$1p([\n Autowired('columnApi')\n ], ColumnHoverService.prototype, \"columnApi\", void 0);\n __decorate$1p([\n Autowired('gridApi')\n ], ColumnHoverService.prototype, \"gridApi\", void 0);\n ColumnHoverService = __decorate$1p([\n Bean('columnHoverService')\n ], ColumnHoverService);\n return ColumnHoverService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1x = (undefined && undefined.__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$1q = (undefined && undefined.__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 ColumnAnimationService = /** @class */ (function (_super) {\n __extends$1x(ColumnAnimationService, _super);\n function ColumnAnimationService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.executeNextFuncs = [];\n _this.executeLaterFuncs = [];\n _this.active = false;\n _this.animationThreadCount = 0;\n return _this;\n }\n ColumnAnimationService.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function (p) { return _this.gridBodyCon = p.gridBodyCon; });\n };\n ColumnAnimationService.prototype.isActive = function () {\n return this.active;\n };\n ColumnAnimationService.prototype.start = function () {\n if (this.active) {\n return;\n }\n if (this.gridOptionsWrapper.isSuppressColumnMoveAnimation()) {\n return;\n }\n // if doing RTL, we don't animate open / close as due to how the pixels are inverted,\n // the animation moves all the row the the right rather than to the left (ie it's the static\n // columns that actually get their coordinates updated)\n if (this.gridOptionsWrapper.isEnableRtl()) {\n return;\n }\n this.ensureAnimationCssClassPresent();\n this.active = true;\n };\n ColumnAnimationService.prototype.finish = function () {\n if (!this.active) {\n return;\n }\n this.flush();\n this.active = false;\n };\n ColumnAnimationService.prototype.executeNextVMTurn = function (func) {\n if (this.active) {\n this.executeNextFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.executeLaterVMTurn = function (func) {\n if (this.active) {\n this.executeLaterFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.ensureAnimationCssClassPresent = function () {\n var _this = this;\n // up the count, so we can tell if someone else has updated the count\n // by the time the 'wait' func executes\n this.animationThreadCount++;\n var animationThreadCountCopy = this.animationThreadCount;\n this.gridBodyCon.setColumnMovingCss(true);\n this.executeLaterFuncs.push(function () {\n // only remove the class if this thread was the last one to update it\n if (_this.animationThreadCount === animationThreadCountCopy) {\n _this.gridBodyCon.setColumnMovingCss(false);\n }\n });\n };\n ColumnAnimationService.prototype.flush = function () {\n var nowFuncs = this.executeNextFuncs;\n this.executeNextFuncs = [];\n var waitFuncs = this.executeLaterFuncs;\n this.executeLaterFuncs = [];\n if (nowFuncs.length === 0 && waitFuncs.length === 0) {\n return;\n }\n window.setTimeout(function () { return nowFuncs.forEach(function (func) { return func(); }); }, 0);\n window.setTimeout(function () { return waitFuncs.forEach(function (func) { return func(); }); }, 300);\n };\n __decorate$1q([\n Autowired('controllersService')\n ], ColumnAnimationService.prototype, \"controllersService\", void 0);\n __decorate$1q([\n PostConstruct\n ], ColumnAnimationService.prototype, \"postConstruct\", null);\n ColumnAnimationService = __decorate$1q([\n Bean('columnAnimationService')\n ], ColumnAnimationService);\n return ColumnAnimationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1y = (undefined && undefined.__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$1r = (undefined && undefined.__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 AutoGroupColService = /** @class */ (function (_super) {\n __extends$1y(AutoGroupColService, _super);\n function AutoGroupColService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoGroupColService_1 = AutoGroupColService;\n AutoGroupColService.prototype.createAutoGroupColumns = function (rowGroupColumns) {\n var _this = this;\n var groupAutoColumns = [];\n var doingTreeData = this.gridOptionsWrapper.isTreeData();\n var doingMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();\n if (doingTreeData && doingMultiAutoColumn) {\n console.warn('AG Grid: you cannot mix groupMultiAutoColumn with treeData, only one column can be used to display groups when doing tree data');\n doingMultiAutoColumn = false;\n }\n // if doing groupMultiAutoColumn, then we call the method multiple times, once\n // for each column we are grouping by\n if (doingMultiAutoColumn) {\n rowGroupColumns.forEach(function (rowGroupCol, index) {\n groupAutoColumns.push(_this.createOneAutoGroupColumn(rowGroupCol, index));\n });\n }\n else {\n groupAutoColumns.push(this.createOneAutoGroupColumn());\n }\n return groupAutoColumns;\n };\n // rowGroupCol and index are missing if groupMultiAutoColumn=false\n AutoGroupColService.prototype.createOneAutoGroupColumn = function (rowGroupCol, index) {\n // if one provided by user, use it, otherwise create one\n var defaultAutoColDef = this.generateDefaultColDef(rowGroupCol);\n // if doing multi, set the field\n var colId;\n if (rowGroupCol) {\n colId = Constants.GROUP_AUTO_COLUMN_ID + \"-\" + rowGroupCol.getId();\n }\n else {\n colId = AutoGroupColService_1.GROUP_AUTO_COLUMN_BUNDLE_ID;\n }\n var userAutoColDef = this.gridOptionsWrapper.getAutoGroupColumnDef();\n mergeDeep(defaultAutoColDef, userAutoColDef);\n defaultAutoColDef = this.columnFactory.mergeColDefs(defaultAutoColDef);\n defaultAutoColDef.colId = colId;\n // For tree data the filter is always allowed\n if (!this.gridOptionsWrapper.isTreeData()) {\n // we would only allow filter if the user has provided field or value getter. otherwise the filter\n // would not be able to work.\n var noFieldOrValueGetter = missing(defaultAutoColDef.field) && missing(defaultAutoColDef.valueGetter) && missing(defaultAutoColDef.filterValueGetter);\n if (noFieldOrValueGetter) {\n defaultAutoColDef.filter = false;\n }\n }\n // if showing many cols, we don't want to show more than one with a checkbox for selection\n if (index && index > 0) {\n defaultAutoColDef.headerCheckboxSelection = false;\n }\n var newCol = new Column(defaultAutoColDef, null, colId, true);\n this.context.createBean(newCol);\n return newCol;\n };\n AutoGroupColService.prototype.generateDefaultColDef = function (rowGroupCol) {\n var userDef = this.gridOptionsWrapper.getAutoGroupColumnDef();\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var res = {\n headerName: localeTextFunc('group', 'Group')\n };\n var userHasProvidedGroupCellRenderer = userDef &&\n (userDef.cellRenderer || userDef.cellRendererFramework || userDef.cellRendererSelector);\n // only add the default group cell renderer if user hasn't provided one\n if (!userHasProvidedGroupCellRenderer) {\n res.cellRenderer = 'agGroupCellRenderer';\n }\n // we never allow moving the group column\n // defaultAutoColDef.suppressMovable = true;\n if (rowGroupCol) {\n var colDef = rowGroupCol.getColDef();\n assign(res, {\n // cellRendererParams.groupKey: colDefToCopy.field;\n headerName: this.columnController.getDisplayNameForColumn(rowGroupCol, 'header'),\n headerValueGetter: colDef.headerValueGetter\n });\n if (colDef.cellRenderer) {\n assign(res, {\n cellRendererParams: {\n innerRenderer: colDef.cellRenderer,\n innerRendererParams: colDef.cellRendererParams\n }\n });\n }\n res.showRowGroup = rowGroupCol.getColId();\n }\n else {\n res.showRowGroup = true;\n }\n return res;\n };\n var AutoGroupColService_1;\n AutoGroupColService.GROUP_AUTO_COLUMN_BUNDLE_ID = Constants.GROUP_AUTO_COLUMN_ID;\n __decorate$1r([\n Autowired('columnController')\n ], AutoGroupColService.prototype, \"columnController\", void 0);\n __decorate$1r([\n Autowired('columnFactory')\n ], AutoGroupColService.prototype, \"columnFactory\", void 0);\n AutoGroupColService = AutoGroupColService_1 = __decorate$1r([\n Bean('autoGroupColService')\n ], AutoGroupColService);\n return AutoGroupColService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1z = (undefined && undefined.__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$1s = (undefined && undefined.__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 PaginationProxy = /** @class */ (function (_super) {\n __extends$1z(PaginationProxy, _super);\n function PaginationProxy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.currentPage = 0;\n _this.topDisplayedRowIndex = 0;\n _this.bottomDisplayedRowIndex = 0;\n _this.pixelOffset = 0;\n _this.masterRowCount = 0;\n return _this;\n }\n PaginationProxy.prototype.postConstruct = function () {\n this.active = this.gridOptionsWrapper.isPagination();\n this.paginateChildRows = this.gridOptionsWrapper.isPaginateChildRows();\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedListener(this.gridOptionsWrapper, 'paginationPageSize', this.onPaginationPageSizeChanged.bind(this));\n this.onModelUpdated();\n };\n PaginationProxy.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n var res = this.rowModel.ensureRowHeightsValid(startPixel, endPixel, this.getPageFirstRow(), this.getPageLastRow());\n if (res) {\n this.calculatePages();\n }\n return res;\n };\n PaginationProxy.prototype.onModelUpdated = function (modelUpdatedEvent) {\n this.calculatePages();\n var paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: modelUpdatedEvent ? modelUpdatedEvent.animate : false,\n newData: modelUpdatedEvent ? modelUpdatedEvent.newData : false,\n newPage: modelUpdatedEvent ? modelUpdatedEvent.newPage : false,\n keepRenderedRows: modelUpdatedEvent ? modelUpdatedEvent.keepRenderedRows : false,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n };\n PaginationProxy.prototype.onPaginationPageSizeChanged = function () {\n this.calculatePages();\n var paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: false,\n newData: false,\n newPage: false,\n // important to keep rendered rows, otherwise every time grid is resized,\n // we would destroy all the rows.\n keepRenderedRows: true,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n };\n PaginationProxy.prototype.goToPage = function (page) {\n if (!this.active || this.currentPage === page) {\n return;\n }\n this.currentPage = page;\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: false,\n keepRenderedRows: false,\n newData: false,\n newPage: true,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.onModelUpdated(event);\n };\n PaginationProxy.prototype.getPixelOffset = function () {\n return this.pixelOffset;\n };\n PaginationProxy.prototype.getRow = function (index) {\n return this.rowModel.getRow(index);\n };\n PaginationProxy.prototype.getRowNode = function (id) {\n return this.rowModel.getRowNode(id);\n };\n PaginationProxy.prototype.getRowIndexAtPixel = function (pixel) {\n return this.rowModel.getRowIndexAtPixel(pixel);\n };\n PaginationProxy.prototype.getCurrentPageHeight = function () {\n if (missing(this.topRowBounds) || missing(this.bottomRowBounds)) {\n return 0;\n }\n return Math.max(this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight - this.topRowBounds.rowTop, 0);\n };\n PaginationProxy.prototype.getCurrentPagePixelRange = function () {\n var pageFirstPixel = this.topRowBounds ? this.topRowBounds.rowTop : 0;\n var pageLastPixel = this.bottomRowBounds ? this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight : 0;\n return { pageFirstPixel: pageFirstPixel, pageLastPixel: pageLastPixel };\n };\n PaginationProxy.prototype.isRowPresent = function (rowNode) {\n if (!this.rowModel.isRowPresent(rowNode)) {\n return false;\n }\n var nodeIsInPage = rowNode.rowIndex >= this.topDisplayedRowIndex && rowNode.rowIndex <= this.bottomDisplayedRowIndex;\n return nodeIsInPage;\n };\n PaginationProxy.prototype.isEmpty = function () {\n return this.rowModel.isEmpty();\n };\n PaginationProxy.prototype.isRowsToRender = function () {\n return this.rowModel.isRowsToRender();\n };\n PaginationProxy.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n return this.rowModel.getNodesInRangeForSelection(firstInRange, lastInRange);\n };\n PaginationProxy.prototype.forEachNode = function (callback) {\n return this.rowModel.forEachNode(callback);\n };\n PaginationProxy.prototype.getType = function () {\n return this.rowModel.getType();\n };\n PaginationProxy.prototype.getRowBounds = function (index) {\n var res = this.rowModel.getRowBounds(index);\n res.rowIndex = index;\n return res;\n };\n PaginationProxy.prototype.getPageFirstRow = function () {\n return this.topRowBounds ? this.topRowBounds.rowIndex : -1;\n };\n PaginationProxy.prototype.getPageLastRow = function () {\n return this.bottomRowBounds ? this.bottomRowBounds.rowIndex : -1;\n };\n PaginationProxy.prototype.getRowCount = function () {\n return this.rowModel.getRowCount();\n };\n PaginationProxy.prototype.getPageForIndex = function (index) {\n return Math.floor(index / this.pageSize);\n };\n PaginationProxy.prototype.goToPageWithIndex = function (index) {\n if (!this.active) {\n return;\n }\n var pageNumber = this.getPageForIndex(index);\n this.goToPage(pageNumber);\n };\n PaginationProxy.prototype.isRowInPage = function (row) {\n if (!this.active) {\n return true;\n }\n var rowPage = this.getPageForIndex(row.rowIndex);\n return rowPage === this.currentPage;\n };\n PaginationProxy.prototype.isLastPageFound = function () {\n return this.rowModel.isLastRowIndexKnown();\n };\n PaginationProxy.prototype.getCurrentPage = function () {\n return this.currentPage;\n };\n PaginationProxy.prototype.goToNextPage = function () {\n this.goToPage(this.currentPage + 1);\n };\n PaginationProxy.prototype.goToPreviousPage = function () {\n this.goToPage(this.currentPage - 1);\n };\n PaginationProxy.prototype.goToFirstPage = function () {\n this.goToPage(0);\n };\n PaginationProxy.prototype.goToLastPage = function () {\n var rowCount = this.rowModel.getRowCount();\n var lastPage = Math.floor(rowCount / this.pageSize);\n this.goToPage(lastPage);\n };\n PaginationProxy.prototype.getPageSize = function () {\n return this.pageSize;\n };\n PaginationProxy.prototype.getTotalPages = function () {\n return this.totalPages;\n };\n PaginationProxy.prototype.setPageSize = function () {\n // show put this into super class\n this.pageSize = this.gridOptionsWrapper.getPaginationPageSize();\n if (this.pageSize == null || this.pageSize < 1) {\n this.pageSize = 100;\n }\n };\n PaginationProxy.prototype.calculatePages = function () {\n if (this.active) {\n this.setPageSize();\n if (this.paginateChildRows) {\n this.calculatePagesAllRows();\n }\n else {\n this.calculatePagesMasterRowsOnly();\n }\n }\n else {\n this.calculatedPagesNotActive();\n }\n this.topRowBounds = this.rowModel.getRowBounds(this.topDisplayedRowIndex);\n if (this.topRowBounds) {\n this.topRowBounds.rowIndex = this.topDisplayedRowIndex;\n }\n this.bottomRowBounds = this.rowModel.getRowBounds(this.bottomDisplayedRowIndex);\n if (this.bottomRowBounds) {\n this.bottomRowBounds.rowIndex = this.bottomDisplayedRowIndex;\n }\n this.setPixelOffset(exists(this.topRowBounds) ? this.topRowBounds.rowTop : 0);\n };\n PaginationProxy.prototype.setPixelOffset = function (value) {\n if (this.pixelOffset === value) {\n return;\n }\n this.pixelOffset = value;\n this.eventService.dispatchEvent({ type: Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED });\n };\n PaginationProxy.prototype.setZeroRows = function () {\n this.masterRowCount = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = -1;\n this.currentPage = 0;\n this.totalPages = 0;\n };\n PaginationProxy.prototype.calculatePagesMasterRowsOnly = function () {\n // const csrm = this.rowModel;\n // const rootNode = csrm.getRootNode();\n // const masterRows = rootNode.childrenAfterSort;\n this.masterRowCount = this.rowModel.getTopLevelRowCount();\n // we say <=0 (rather than =0) as viewport returns -1 when no rows\n if (this.masterRowCount <= 0) {\n this.setZeroRows();\n return;\n }\n var masterLastRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((masterLastRowIndex) / this.pageSize) + 1;\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isNumeric(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\n var masterPageStartIndex = this.pageSize * this.currentPage;\n var masterPageEndIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (masterPageEndIndex > masterLastRowIndex) {\n masterPageEndIndex = masterLastRowIndex;\n }\n this.topDisplayedRowIndex = this.rowModel.getTopLevelRowDisplayedIndex(masterPageStartIndex);\n // masterRows[masterPageStartIndex].rowIndex;\n if (masterPageEndIndex === masterLastRowIndex) {\n // if showing the last master row, then we want to show the very last row of the model\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n }\n else {\n var firstIndexNotToShow = this.rowModel.getTopLevelRowDisplayedIndex(masterPageEndIndex + 1);\n //masterRows[masterPageEndIndex + 1].rowIndex;\n // this gets the index of the last child - eg current row is open, we want to display all children,\n // the index of the last child is one less than the index of the next parent row.\n this.bottomDisplayedRowIndex = firstIndexNotToShow - 1;\n }\n };\n PaginationProxy.prototype.getMasterRowCount = function () {\n return this.masterRowCount;\n };\n PaginationProxy.prototype.calculatePagesAllRows = function () {\n this.masterRowCount = this.rowModel.getRowCount();\n if (this.masterRowCount === 0) {\n this.setZeroRows();\n return;\n }\n var maxRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((maxRowIndex) / this.pageSize) + 1;\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isNumeric(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\n this.topDisplayedRowIndex = this.pageSize * this.currentPage;\n this.bottomDisplayedRowIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (this.bottomDisplayedRowIndex > maxRowIndex) {\n this.bottomDisplayedRowIndex = maxRowIndex;\n }\n };\n PaginationProxy.prototype.calculatedPagesNotActive = function () {\n this.pageSize = this.rowModel.getRowCount();\n this.totalPages = 1;\n this.currentPage = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n };\n __decorate$1s([\n Autowired('rowModel')\n ], PaginationProxy.prototype, \"rowModel\", void 0);\n __decorate$1s([\n Autowired('columnApi')\n ], PaginationProxy.prototype, \"columnApi\", void 0);\n __decorate$1s([\n Autowired('gridApi')\n ], PaginationProxy.prototype, \"gridApi\", void 0);\n __decorate$1s([\n PostConstruct\n ], PaginationProxy.prototype, \"postConstruct\", null);\n PaginationProxy = __decorate$1s([\n Bean('paginationProxy')\n ], PaginationProxy);\n return PaginationProxy;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1A = (undefined && undefined.__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$1t = (undefined && undefined.__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 PaginationAutoPageSizeService = /** @class */ (function (_super) {\n __extends$1A(PaginationAutoPageSizeService, _super);\n function PaginationAutoPageSizeService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PaginationAutoPageSizeService.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function (p) {\n _this.centerRowContainerCon = p.centerRowContainerCon;\n _this.addManagedListener(_this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, _this.onBodyHeightChanged.bind(_this));\n _this.addManagedListener(_this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, _this.onScrollVisibilityChanged.bind(_this));\n _this.checkPageSize();\n });\n };\n PaginationAutoPageSizeService.prototype.notActive = function () {\n return !this.gridOptionsWrapper.isPaginationAutoPageSize();\n };\n PaginationAutoPageSizeService.prototype.onScrollVisibilityChanged = function () {\n this.checkPageSize();\n };\n PaginationAutoPageSizeService.prototype.onBodyHeightChanged = function () {\n this.checkPageSize();\n };\n PaginationAutoPageSizeService.prototype.checkPageSize = function () {\n if (this.notActive()) {\n return;\n }\n var rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n var bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();\n if (bodyHeight > 0) {\n var newPageSize = Math.floor(bodyHeight / rowHeight);\n this.gridOptionsWrapper.setProperty('paginationPageSize', newPageSize);\n }\n };\n __decorate$1t([\n Autowired('controllersService')\n ], PaginationAutoPageSizeService.prototype, \"controllersService\", void 0);\n __decorate$1t([\n PostConstruct\n ], PaginationAutoPageSizeService.prototype, \"postConstruct\", null);\n PaginationAutoPageSizeService = __decorate$1t([\n Bean('paginationAutoPageSizeService')\n ], PaginationAutoPageSizeService);\n return PaginationAutoPageSizeService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1B = (undefined && undefined.__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$1u = (undefined && undefined.__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 ValueCache = /** @class */ (function (_super) {\n __extends$1B(ValueCache, _super);\n function ValueCache() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cacheVersion = 0;\n return _this;\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 if (!this.active || rowNode.__cacheVersion !== this.cacheVersion) {\n return undefined;\n }\n return rowNode.__cacheData[colId];\n };\n __decorate$1u([\n PostConstruct\n ], ValueCache.prototype, \"init\", null);\n ValueCache = __decorate$1u([\n Bean('valueCache')\n ], ValueCache);\n return ValueCache;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1C = (undefined && undefined.__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$1v = (undefined && undefined.__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 ChangeDetectionService = /** @class */ (function (_super) {\n __extends$1C(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.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));\n };\n ChangeDetectionService.prototype.onCellValueChanged = function (event) {\n // Clipboard service manages its own change detection, so no need to do it here.\n // The clipboard manages its own as otherwise this would happen once for every cell\n // that got updated as part of a paste operation, so e.g. 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 (event.source === Constants.SOURCE_PASTE) {\n return;\n }\n this.doChangeDetection(event.node, event.column);\n };\n ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {\n if (this.gridOptionsWrapper.isSuppressChangeDetection()) {\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(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$1v([\n Autowired('rowModel')\n ], ChangeDetectionService.prototype, \"rowModel\", void 0);\n __decorate$1v([\n Autowired('rowRenderer')\n ], ChangeDetectionService.prototype, \"rowRenderer\", void 0);\n __decorate$1v([\n PostConstruct\n ], ChangeDetectionService.prototype, \"init\", null);\n ChangeDetectionService = __decorate$1v([\n Bean('changeDetectionService')\n ], ChangeDetectionService);\n return ChangeDetectionService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1D = (undefined && undefined.__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$1w = (undefined && undefined.__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 __param$8 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AlignedGridsService = /** @class */ (function (_super) {\n __extends$1D(AlignedGridsService, _super);\n function AlignedGridsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // flag to mark if we are consuming. to avoid cyclic events (ie other grid firing back to master\n // while processing a master event) we mark this if consuming an event, and if we are, then\n // we don't fire back any events.\n _this.consuming = false;\n return _this;\n }\n AlignedGridsService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('AlignedGridsService');\n };\n AlignedGridsService.prototype.init = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.fireScrollEvent.bind(this));\n };\n // common logic across all the fire methods\n AlignedGridsService.prototype.fireEvent = function (callback) {\n // if we are already consuming, then we are acting on an event from a master,\n // so we don't cause a cyclic firing of events\n if (this.consuming) {\n return;\n }\n // iterate through the aligned grids, and pass each aligned grid service to the callback\n var otherGrids = this.gridOptionsWrapper.getAlignedGrids();\n if (otherGrids) {\n otherGrids.forEach(function (otherGridOptions) {\n if (otherGridOptions.api) {\n var alignedGridService = otherGridOptions.api.__getAlignedGridService();\n callback(alignedGridService);\n }\n });\n }\n };\n // common logic across all consume methods. very little common logic, however extracting\n // guarantees consistency across the methods.\n AlignedGridsService.prototype.onEvent = function (callback) {\n this.consuming = true;\n callback();\n this.consuming = false;\n };\n AlignedGridsService.prototype.fireColumnEvent = function (event) {\n this.fireEvent(function (alignedGridsService) {\n alignedGridsService.onColumnEvent(event);\n });\n };\n AlignedGridsService.prototype.fireScrollEvent = function (event) {\n if (event.direction !== 'horizontal') {\n return;\n }\n this.fireEvent(function (alignedGridsService) {\n alignedGridsService.onScrollEvent(event);\n });\n };\n AlignedGridsService.prototype.onScrollEvent = function (event) {\n var _this = this;\n this.onEvent(function () {\n var gridBodyCon = _this.controllersService.getGridBodyController();\n gridBodyCon.getScrollFeature().setHorizontalScrollPosition(event.left);\n });\n };\n AlignedGridsService.prototype.getMasterColumns = function (event) {\n var result = [];\n if (event.columns) {\n event.columns.forEach(function (column) {\n result.push(column);\n });\n }\n else if (event.column) {\n result.push(event.column);\n }\n return result;\n };\n AlignedGridsService.prototype.getColumnIds = function (event) {\n var result = [];\n if (event.columns) {\n event.columns.forEach(function (column) {\n result.push(column.getColId());\n });\n }\n else if (event.column) {\n result.push(event.column.getColId());\n }\n return result;\n };\n AlignedGridsService.prototype.onColumnEvent = function (event) {\n var _this = this;\n this.onEvent(function () {\n switch (event.type) {\n case Events.EVENT_COLUMN_MOVED:\n case Events.EVENT_COLUMN_VISIBLE:\n case Events.EVENT_COLUMN_PINNED:\n case Events.EVENT_COLUMN_RESIZED:\n var colEvent = event;\n _this.processColumnEvent(colEvent);\n break;\n case Events.EVENT_COLUMN_GROUP_OPENED:\n var groupOpenedEvent = event;\n _this.processGroupOpenedEvent(groupOpenedEvent);\n break;\n case Events.EVENT_COLUMN_PIVOT_CHANGED:\n // we cannot support pivoting with aligned grids as the columns will be out of sync as the\n // grids will have columns created based on the row data of the grid.\n console.warn('AG Grid: pivoting is not supported with aligned grids. ' +\n 'You can only use one of these features at a time in a grid.');\n break;\n }\n });\n };\n AlignedGridsService.prototype.processGroupOpenedEvent = function (groupOpenedEvent) {\n // likewise for column group\n var masterColumnGroup = groupOpenedEvent.columnGroup;\n var otherColumnGroup = null;\n if (masterColumnGroup) {\n var groupId = masterColumnGroup.getGroupId();\n otherColumnGroup = this.columnController.getOriginalColumnGroup(groupId);\n }\n if (masterColumnGroup && !otherColumnGroup) {\n return;\n }\n this.logger.log('onColumnEvent-> processing ' + groupOpenedEvent + ' expanded = ' + masterColumnGroup.isExpanded());\n this.columnController.setColumnGroupOpened(otherColumnGroup, masterColumnGroup.isExpanded(), \"alignedGridChanged\");\n };\n AlignedGridsService.prototype.processColumnEvent = function (colEvent) {\n var _this = this;\n // the column in the event is from the master grid. need to\n // look up the equivalent from this (other) grid\n var masterColumn = colEvent.column;\n var otherColumn = null;\n if (masterColumn) {\n otherColumn = this.columnController.getPrimaryColumn(masterColumn.getColId());\n }\n // if event was with respect to a master column, that is not present in this\n // grid, then we ignore the event\n if (masterColumn && !otherColumn) {\n return;\n }\n // in time, all the methods below should use the column ids, it's a more generic way\n // of handling columns, and also allows for single or multi column events\n var masterColumns = this.getMasterColumns(colEvent);\n switch (colEvent.type) {\n case Events.EVENT_COLUMN_MOVED:\n // when the user moves columns via setColumnState, we can't depend on moving specific columns\n // to an index, as there maybe be many indexes columns moved to (as wasn't result of a mouse drag).\n // so only way to be sure is match the order of all columns using Column State.\n {\n var movedEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId }); });\n this.columnController.applyColumnState({ state: destColState, applyOrder: true }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" toIndex = \" + movedEvent.toIndex);\n }\n break;\n case Events.EVENT_COLUMN_VISIBLE:\n // when the user changes visibility via setColumnState, we can't depend on visibility flag in event\n // as there maybe be mix of true/false (as wasn't result of a mouse click to set visiblity).\n // so only way to be sure is match the visibility of all columns using Column State.\n {\n var visibleEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId, hide: s.hide }); });\n this.columnController.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" visible = \" + visibleEvent.visible);\n }\n break;\n case Events.EVENT_COLUMN_PINNED:\n {\n var pinnedEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId, pinned: s.pinned }); });\n this.columnController.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" pinned = \" + pinnedEvent.pinned);\n }\n break;\n case Events.EVENT_COLUMN_RESIZED:\n var resizedEvent_1 = colEvent;\n masterColumns.forEach(function (column) {\n _this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" actualWidth = \" + column.getActualWidth());\n var columnWidths = [{ key: column.getColId(), newWidth: column.getActualWidth() }];\n _this.columnController.setColumnWidths(columnWidths, false, resizedEvent_1.finished, \"alignedGridChanged\");\n });\n break;\n }\n var gridBodyCon = this.controllersService.getGridBodyController();\n var isVerticalScrollShowing = gridBodyCon.isVerticalScrollShowing();\n var alignedGrids = this.gridOptionsWrapper.getAlignedGrids();\n if (alignedGrids) {\n alignedGrids.forEach(function (grid) {\n if (grid.api) {\n grid.api.setAlwaysShowVerticalScroll(isVerticalScrollShowing);\n }\n });\n }\n };\n __decorate$1w([\n Autowired('columnController')\n ], AlignedGridsService.prototype, \"columnController\", void 0);\n __decorate$1w([\n Autowired('controllersService')\n ], AlignedGridsService.prototype, \"controllersService\", void 0);\n __decorate$1w([\n __param$8(0, Qualifier('loggerFactory'))\n ], AlignedGridsService.prototype, \"setBeans\", null);\n __decorate$1w([\n PostConstruct\n ], AlignedGridsService.prototype, \"init\", null);\n AlignedGridsService = __decorate$1w([\n Bean('alignedGridsService')\n ], AlignedGridsService);\n return AlignedGridsService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1E = (undefined && undefined.__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$1x = (undefined && undefined.__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 AgComponentUtils = /** @class */ (function (_super) {\n __extends$1E(AgComponentUtils, _super);\n function AgComponentUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AgComponentUtils.prototype.adaptFunction = function (propertyName, hardcodedJsFunction, componentFromFramework, source) {\n if (hardcodedJsFunction == null) {\n return {\n component: null,\n componentFromFramework: componentFromFramework,\n source: source,\n paramsFromSelector: null\n };\n }\n var metadata = this.componentMetadataProvider.retrieve(propertyName);\n if (metadata && metadata.functionAdapter) {\n return {\n componentFromFramework: componentFromFramework,\n component: metadata.functionAdapter(hardcodedJsFunction),\n source: source,\n paramsFromSelector: null\n };\n }\n return null;\n };\n AgComponentUtils.prototype.adaptCellRendererFunction = function (callback) {\n var Adapter = /** @class */ (function () {\n function Adapter() {\n }\n Adapter.prototype.refresh = function (params) {\n return false;\n };\n Adapter.prototype.getGui = function () {\n var callbackResult = callback(this.params);\n var type = typeof callbackResult;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n return loadTemplate('' + callbackResult + '');\n }\n return callbackResult;\n };\n Adapter.prototype.init = function (params) {\n this.params = params;\n };\n return Adapter;\n }());\n return Adapter;\n };\n AgComponentUtils.prototype.doesImplementIComponent = function (candidate) {\n if (!candidate) {\n return false;\n }\n return candidate.prototype && 'getGui' in candidate.prototype;\n };\n __decorate$1x([\n Autowired(\"componentMetadataProvider\")\n ], AgComponentUtils.prototype, \"componentMetadataProvider\", void 0);\n AgComponentUtils = __decorate$1x([\n Bean(\"agComponentUtils\")\n ], AgComponentUtils);\n return AgComponentUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1F = (undefined && undefined.__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$1y = (undefined && undefined.__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 ComponentMetadataProvider = /** @class */ (function (_super) {\n __extends$1F(ComponentMetadataProvider, _super);\n function ComponentMetadataProvider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComponentMetadataProvider.prototype.postConstruct = function () {\n this.componentMetaData = {\n dateComponent: {\n mandatoryMethodList: ['getDate', 'setDate'],\n optionalMethodList: ['afterGuiAttached', 'setInputPlaceholder', 'setInputAriaLabel']\n },\n detailCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh']\n },\n headerComponent: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh']\n },\n headerGroupComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n noRowsOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n floatingFilterComponent: {\n mandatoryMethodList: ['onParentModelChanged'],\n optionalMethodList: ['afterGuiAttached']\n },\n floatingFilterWrapperComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n cellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n cellEditor: {\n mandatoryMethodList: ['getValue'],\n optionalMethodList: ['isPopup', 'isCancelBeforeStart', 'isCancelAfterEnd', 'getPopupPosition', 'focusIn', 'focusOut', 'afterGuiAttached']\n },\n innerRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n fullWidthCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n pinnedRowCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n groupRowRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n filter: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged']\n },\n filterComponent: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged']\n },\n statusPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n },\n toolPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached']\n },\n tooltipComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n }\n };\n };\n ComponentMetadataProvider.prototype.retrieve = function (name) {\n return this.componentMetaData[name];\n };\n __decorate$1y([\n Autowired(\"agComponentUtils\")\n ], ComponentMetadataProvider.prototype, \"agComponentUtils\", void 0);\n __decorate$1y([\n PostConstruct\n ], ComponentMetadataProvider.prototype, \"postConstruct\", null);\n ComponentMetadataProvider = __decorate$1y([\n Bean(\"componentMetadataProvider\")\n ], ComponentMetadataProvider);\n return ComponentMetadataProvider;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1z = (undefined && undefined.__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};\n/** Using the IoC has a slight performance consideration, which is no problem most of the\n * time, unless we are trashing objects - which is the case when scrolling and rowComp\n * and cellComp. So for performance reasons, RowComp and CellComp do not get autowired\n * with the IoC. Instead they get passed this object which is all the beans the RowComp\n * and CellComp need. Not autowiring all the cells gives performance improvement. */\nvar Beans = /** @class */ (function () {\n function Beans() {\n }\n Beans.prototype.registerGridComp = function (gridBodyComp) {\n this.gridBodyComp = gridBodyComp;\n };\n Beans.prototype.postConstruct = function () {\n this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();\n if (this.gridOptionsWrapper.isRowModelDefault()) {\n this.clientSideRowModel = this.rowModel;\n }\n if (this.gridOptionsWrapper.isRowModelServerSide()) {\n this.serverSideRowModel = this.rowModel;\n }\n };\n __decorate$1z([\n Autowired('resizeObserverService')\n ], Beans.prototype, \"resizeObserverService\", void 0);\n __decorate$1z([\n Autowired('paginationProxy')\n ], Beans.prototype, \"paginationProxy\", void 0);\n __decorate$1z([\n Autowired('context')\n ], Beans.prototype, \"context\", void 0);\n __decorate$1z([\n Autowired('columnApi')\n ], Beans.prototype, \"columnApi\", void 0);\n __decorate$1z([\n Autowired('gridApi')\n ], Beans.prototype, \"gridApi\", void 0);\n __decorate$1z([\n Autowired('gridOptionsWrapper')\n ], Beans.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$1z([\n Autowired('expressionService')\n ], Beans.prototype, \"expressionService\", void 0);\n __decorate$1z([\n Autowired('rowRenderer')\n ], Beans.prototype, \"rowRenderer\", void 0);\n __decorate$1z([\n Autowired('$compile')\n ], Beans.prototype, \"$compile\", void 0);\n __decorate$1z([\n Autowired('templateService')\n ], Beans.prototype, \"templateService\", void 0);\n __decorate$1z([\n Autowired('valueService')\n ], Beans.prototype, \"valueService\", void 0);\n __decorate$1z([\n Autowired('eventService')\n ], Beans.prototype, \"eventService\", void 0);\n __decorate$1z([\n Autowired('columnController')\n ], Beans.prototype, \"columnController\", void 0);\n __decorate$1z([\n Autowired('headerNavigationService')\n ], Beans.prototype, \"headerNavigationService\", void 0);\n __decorate$1z([\n Autowired('columnAnimationService')\n ], Beans.prototype, \"columnAnimationService\", void 0);\n __decorate$1z([\n Optional('rangeController')\n ], Beans.prototype, \"rangeController\", void 0);\n __decorate$1z([\n Autowired('focusController')\n ], Beans.prototype, \"focusController\", void 0);\n __decorate$1z([\n Optional('contextMenuFactory')\n ], Beans.prototype, \"contextMenuFactory\", void 0);\n __decorate$1z([\n Autowired('popupService')\n ], Beans.prototype, \"popupService\", void 0);\n __decorate$1z([\n Autowired('valueFormatterService')\n ], Beans.prototype, \"valueFormatterService\", void 0);\n __decorate$1z([\n Autowired('stylingService')\n ], Beans.prototype, \"stylingService\", void 0);\n __decorate$1z([\n Autowired('columnHoverService')\n ], Beans.prototype, \"columnHoverService\", void 0);\n __decorate$1z([\n Autowired('userComponentFactory')\n ], Beans.prototype, \"userComponentFactory\", void 0);\n __decorate$1z([\n Autowired('animationFrameService')\n ], Beans.prototype, \"taskQueue\", void 0);\n __decorate$1z([\n Autowired('dragAndDropService')\n ], Beans.prototype, \"dragAndDropService\", void 0);\n __decorate$1z([\n Autowired('sortController')\n ], Beans.prototype, \"sortController\", void 0);\n __decorate$1z([\n Autowired('filterManager')\n ], Beans.prototype, \"filterManager\", void 0);\n __decorate$1z([\n Autowired('rowContainerHeightService')\n ], Beans.prototype, \"rowContainerHeightService\", void 0);\n __decorate$1z([\n Autowired('frameworkOverrides')\n ], Beans.prototype, \"frameworkOverrides\", void 0);\n __decorate$1z([\n Autowired('detailRowCompCache')\n ], Beans.prototype, \"detailRowCompCache\", void 0);\n __decorate$1z([\n Autowired('cellPositionUtils')\n ], Beans.prototype, \"cellPositionUtils\", void 0);\n __decorate$1z([\n Autowired('rowPositionUtils')\n ], Beans.prototype, \"rowPositionUtils\", void 0);\n __decorate$1z([\n Autowired('selectionController')\n ], Beans.prototype, \"selectionController\", void 0);\n __decorate$1z([\n Optional('selectionHandleFactory')\n ], Beans.prototype, \"selectionHandleFactory\", void 0);\n __decorate$1z([\n Autowired('rowCssClassCalculator')\n ], Beans.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$1z([\n Autowired('rowModel')\n ], Beans.prototype, \"rowModel\", void 0);\n __decorate$1z([\n Autowired('controllersService')\n ], Beans.prototype, \"controllersService\", void 0);\n __decorate$1z([\n PostConstruct\n ], Beans.prototype, \"postConstruct\", null);\n Beans = __decorate$1z([\n Bean('beans')\n ], Beans);\n return Beans;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1G = (undefined && undefined.__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$1A = (undefined && undefined.__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 MAT_GRID_SIZE = 8;\nvar BASE_GRID_SIZE = 4;\nvar BALHAM_GRID_SIZE = 4;\nvar ALPINE_GRID_SIZE = 6;\nvar HARD_CODED_SIZES = {\n // this item is required for custom themes\n 'ag-theme-custom': {\n headerHeight: 25,\n headerCellMinWidth: 24,\n listItemHeight: BASE_GRID_SIZE * 5,\n rowHeight: 25,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-material': {\n headerHeight: MAT_GRID_SIZE * 7,\n headerCellMinWidth: 48,\n listItemHeight: MAT_GRID_SIZE * 4,\n rowHeight: MAT_GRID_SIZE * 6,\n chartMenuPanelWidth: 240\n },\n 'ag-theme-balham': {\n headerHeight: BALHAM_GRID_SIZE * 8,\n headerCellMinWidth: 24,\n listItemHeight: BALHAM_GRID_SIZE * 6,\n rowHeight: BALHAM_GRID_SIZE * 7,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-alpine': {\n headerHeight: ALPINE_GRID_SIZE * 8,\n headerCellMinWidth: 36,\n listItemHeight: ALPINE_GRID_SIZE * 4,\n rowHeight: ALPINE_GRID_SIZE * 7,\n chartMenuPanelWidth: 240\n }\n};\n/**\n * this object contains a list of Sass variables and an array\n * of CSS styles required to get the correct value.\n * eg. $virtual-item-height requires a structure, so we can get its height.\n *
\n *
\n *
\n *
\n *
\n */\nvar SASS_PROPERTY_BUILDER = {\n headerHeight: ['ag-header-row'],\n headerCellMinWidth: ['ag-header-cell'],\n listItemHeight: ['ag-virtual-list-item'],\n rowHeight: ['ag-row'],\n chartMenuPanelWidth: ['ag-chart-docked-container']\n};\nvar CALCULATED_SIZES = {};\nvar Environment = /** @class */ (function (_super) {\n __extends$1G(Environment, _super);\n function Environment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Environment.prototype.getSassVariable = function (theme, key) {\n var useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : theme.match('balham') ? 'balham' : theme.match('alpine') ? 'alpine' : 'custom');\n var defaultValue = HARD_CODED_SIZES[useTheme][key];\n var calculatedValue = 0;\n if (!CALCULATED_SIZES[theme]) {\n CALCULATED_SIZES[theme] = {};\n }\n var size = CALCULATED_SIZES[theme][key];\n if (size != null) {\n return size;\n }\n if (SASS_PROPERTY_BUILDER[key]) {\n var classList = SASS_PROPERTY_BUILDER[key];\n var div = document.createElement('div');\n addCssClass(div, theme);\n div.style.position = 'absolute';\n var el = classList.reduce(function (prevEl, currentClass) {\n var currentDiv = document.createElement('div');\n currentDiv.style.position = 'static';\n addCssClass(currentDiv, currentClass);\n prevEl.appendChild(currentDiv);\n return currentDiv;\n }, div);\n if (document.body) {\n document.body.appendChild(div);\n var sizeName = key.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';\n calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);\n document.body.removeChild(div);\n }\n }\n CALCULATED_SIZES[theme][key] = calculatedValue || defaultValue;\n return CALCULATED_SIZES[theme][key];\n };\n Environment.prototype.isThemeDark = function () {\n var theme = this.getTheme().theme;\n return !!theme && theme.indexOf('dark') >= 0;\n };\n Environment.prototype.chartMenuPanelWidth = function () {\n var theme = this.getTheme().themeFamily;\n return this.getSassVariable(theme, 'chartMenuPanelWidth');\n };\n Environment.prototype.getTheme = function () {\n var reg = /\\bag-(material|(?:theme-([\\w\\-]*)))\\b/;\n var el = this.eGridDiv;\n var themeMatch = null;\n while (el) {\n themeMatch = reg.exec(el.className);\n if (!themeMatch) {\n el = el.parentElement || undefined;\n }\n else {\n break;\n }\n }\n if (!themeMatch) {\n return {};\n }\n var theme = themeMatch[0];\n var usingOldTheme = themeMatch[2] === undefined;\n if (usingOldTheme) {\n var newTheme_1 = theme.replace('ag-', 'ag-theme-');\n doOnce(function () { return console.warn(\"AG Grid: As of v19 old theme are no longer provided. Please replace \" + theme + \" with \" + newTheme_1 + \".\"); }, 'using-old-theme');\n }\n return { theme: theme, el: el, themeFamily: theme.replace(/-dark$/, '') };\n };\n __decorate$1A([\n Autowired('eGridDiv')\n ], Environment.prototype, \"eGridDiv\", void 0);\n Environment = __decorate$1A([\n Bean('environment')\n ], Environment);\n return Environment;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1H = (undefined && undefined.__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$1B = (undefined && undefined.__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 AnimationFrameService = /** @class */ (function (_super) {\n __extends$1H(AnimationFrameService, _super);\n function AnimationFrameService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // p1 and p2 are create tasks are to do with row and cell creation.\n // for them we want to execute according to row order, so we use\n // TaskItem so we know what index the item is for.\n _this.createTasksP1 = { list: [], sorted: false }; // eg drawing back-ground of rows\n _this.createTasksP2 = { list: [], sorted: false }; // eg cell renderers, adding hover functionality\n // destroy tasks are to do with row removal. they are done after row creation as the user will need to see new\n // rows first (as blank is scrolled into view), when we remove the old rows (no longer in view) is not as\n // important.\n _this.destroyTasks = [];\n _this.ticking = false;\n // we need to know direction of scroll, to build up rows in the direction of\n // the scroll. eg if user scrolls down, we extend the rows by building down.\n _this.scrollGoingDown = true;\n _this.lastScrollTop = 0;\n _this.taskCount = 0;\n _this.cancelledTasks = new Set();\n return _this;\n }\n AnimationFrameService.prototype.setScrollTop = function (scrollTop) {\n this.scrollGoingDown = scrollTop > this.lastScrollTop;\n this.lastScrollTop = scrollTop;\n };\n AnimationFrameService.prototype.init = function () {\n this.useAnimationFrame = !this.gridOptionsWrapper.isSuppressAnimationFrame();\n };\n // this method is for our AG Grid sanity only - if animation frames are turned off,\n // then no place in the code should be looking to add any work to be done in animation\n // frames. this stops bugs - where some code is asking for a frame to be executed\n // when it should not.\n AnimationFrameService.prototype.verifyAnimationFrameOn = function (methodName) {\n if (this.useAnimationFrame === false) {\n console.warn(\"AG Grid: AnimationFrameService.\" + methodName + \" called but animation frames are off\");\n }\n };\n AnimationFrameService.prototype.createTask = function (task, index, list) {\n this.verifyAnimationFrameOn(list);\n var taskItem = { task: task, index: index, createOrder: ++this.taskCount };\n this.addTaskToList(this[list], taskItem);\n this.schedule();\n };\n AnimationFrameService.prototype.cancelTask = function (task) {\n this.cancelledTasks.add(task);\n };\n AnimationFrameService.prototype.addTaskToList = function (taskList, task) {\n taskList.list.push(task);\n taskList.sorted = false;\n };\n AnimationFrameService.prototype.sortTaskList = function (taskList) {\n if (taskList.sorted) {\n return;\n }\n var sortDirection = this.scrollGoingDown ? 1 : -1;\n // sort first by row index (taking into account scroll direction), then by\n // order of task creation (always ascending, so cells will render left-to-right)\n taskList.list.sort(function (a, b) { return a.index !== b.index ? sortDirection * (b.index - a.index) : b.createOrder - a.createOrder; });\n taskList.sorted = true;\n };\n AnimationFrameService.prototype.addDestroyTask = function (task) {\n this.verifyAnimationFrameOn('createTasksP3');\n this.destroyTasks.push(task);\n this.schedule();\n };\n AnimationFrameService.prototype.executeFrame = function (millis) {\n this.verifyAnimationFrameOn('executeFrame');\n var p1TaskList = this.createTasksP1;\n var p1Tasks = p1TaskList.list;\n var p2TaskList = this.createTasksP2;\n var p2Tasks = p2TaskList.list;\n var destroyTasks = this.destroyTasks;\n var frameStart = new Date().getTime();\n var duration = (new Date().getTime()) - frameStart;\n // 16ms is 60 fps\n var noMaxMillis = millis <= 0;\n var gridBodyCon = this.controllersService.getGridBodyController();\n while (noMaxMillis || duration < millis) {\n var gridBodyDidSomething = gridBodyCon.getScrollFeature().executeAnimationFrameScroll();\n if (!gridBodyDidSomething) {\n var task = void 0;\n if (p1Tasks.length) {\n this.sortTaskList(p1TaskList);\n task = p1Tasks.pop().task;\n }\n else if (p2Tasks.length) {\n this.sortTaskList(p2TaskList);\n task = p2Tasks.pop().task;\n }\n else if (destroyTasks.length) {\n task = destroyTasks.pop();\n }\n else {\n this.cancelledTasks.clear();\n break;\n }\n if (!this.cancelledTasks.has(task)) {\n task();\n }\n }\n duration = (new Date().getTime()) - frameStart;\n }\n if (p1Tasks.length || p2Tasks.length || destroyTasks.length) {\n this.requestFrame();\n }\n else {\n this.stopTicking();\n }\n };\n AnimationFrameService.prototype.stopTicking = function () {\n this.ticking = false;\n var event = {\n type: Events.EVENT_ANIMATION_QUEUE_EMPTY,\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n api: this.gridOptionsWrapper.getApi()\n };\n this.eventService.dispatchEvent(event);\n };\n AnimationFrameService.prototype.flushAllFrames = function () {\n if (!this.useAnimationFrame) {\n return;\n }\n this.executeFrame(-1);\n };\n AnimationFrameService.prototype.schedule = function () {\n if (!this.useAnimationFrame) {\n return;\n }\n if (!this.ticking) {\n this.ticking = true;\n this.requestFrame();\n }\n };\n AnimationFrameService.prototype.requestFrame = function () {\n // check for the existence of requestAnimationFrame, and if\n // it's missing, then we polyfill it with setTimeout()\n var callback = this.executeFrame.bind(this, 60);\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(callback);\n }\n else if (window.webkitRequestAnimationFrame) {\n window.webkitRequestAnimationFrame(callback);\n }\n else {\n window.setTimeout(callback, 0);\n }\n };\n AnimationFrameService.prototype.isQueueEmpty = function () {\n return !this.ticking;\n };\n __decorate$1B([\n Autowired('controllersService')\n ], AnimationFrameService.prototype, \"controllersService\", void 0);\n __decorate$1B([\n PostConstruct\n ], AnimationFrameService.prototype, \"init\", null);\n AnimationFrameService = __decorate$1B([\n Bean('animationFrameService')\n ], AnimationFrameService);\n return AnimationFrameService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1I = (undefined && undefined.__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$1C = (undefined && undefined.__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 NavigationService = /** @class */ (function (_super) {\n __extends$1I(NavigationService, _super);\n function NavigationService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.timeLastPageEventProcessed = 0;\n return _this;\n }\n NavigationService.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function (p) {\n _this.gridBodyCon = p.gridBodyCon;\n });\n };\n NavigationService.prototype.handlePageScrollingKey = function (event) {\n var key = event.which || event.keyCode;\n var alt = event.altKey;\n var ctrl = event.ctrlKey || event.metaKey;\n var currentCell = this.mouseEventService.getCellPositionForEvent(event);\n if (!currentCell) {\n return false;\n }\n var processed = false;\n switch (key) {\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n // handle home and end when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onHomeOrEndKey(key);\n processed = true;\n }\n break;\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n // handle left and right when ctrl is pressed only\n if (ctrl && !alt) {\n this.onCtrlLeftOrRight(key, currentCell);\n processed = true;\n }\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n // handle up and down when ctrl is pressed only\n if (ctrl && !alt) {\n this.onCtrlUpOrDown(key, currentCell);\n processed = true;\n }\n break;\n case KeyCode.PAGE_DOWN:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onPageDown(currentCell);\n processed = true;\n }\n break;\n case KeyCode.PAGE_UP:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onPageUp(currentCell);\n processed = true;\n }\n break;\n }\n if (processed) {\n event.preventDefault();\n }\n return processed;\n };\n // the page up/down keys caused a problem, in that if the user\n // held the page up/down key down, lots of events got generated,\n // which clogged up the event queue (as they take time to process)\n // which in turn froze the grid. Logic below makes sure we wait 100ms\n // between processing the page up/down events, so when user has finger\n // held down on key, we ignore page up/down events until 100ms has passed,\n // which effectively empties the queue of page up/down events.\n NavigationService.prototype.isTimeSinceLastPageEventToRecent = function () {\n var now = new Date().getTime();\n var diff = now - this.timeLastPageEventProcessed;\n return (diff < 100);\n };\n NavigationService.prototype.setTimeLastPageEventProcessed = function () {\n this.timeLastPageEventProcessed = new Date().getTime();\n };\n NavigationService.prototype.navigateTo = function (navigateParams) {\n var scrollIndex = navigateParams.scrollIndex, scrollType = navigateParams.scrollType, scrollColumn = navigateParams.scrollColumn, focusIndex = navigateParams.focusIndex, focusColumn = navigateParams.focusColumn;\n if (exists(scrollColumn)) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(scrollColumn);\n }\n if (exists(scrollIndex)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(scrollIndex, scrollType);\n }\n // make sure the cell is rendered, needed if we are to focus\n this.animationFrameService.flushAllFrames();\n // if we don't do this, the range will be left on the last cell, which will leave the last focused cell\n // highlighted.\n this.focusController.setFocusedCell(focusIndex, focusColumn, null, true);\n if (this.rangeController) {\n var cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };\n this.rangeController.setRangeToCell(cellPosition);\n }\n };\n NavigationService.prototype.onPageDown = function (gridCell) {\n if (this.isTimeSinceLastPageEventToRecent()) {\n return;\n }\n var gridBodyCon = this.controllersService.getGridBodyController();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;\n if (this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing()) {\n pixelsInOnePage -= scrollbarWidth;\n }\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;\n var currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);\n var scrollIndex = currentPageBottomRow;\n var currentCellPixel = this.paginationProxy.getRow(gridCell.rowIndex).rowTop;\n var nextCellPixel = currentCellPixel + pixelsInOnePage - pagingPixelOffset;\n var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);\n var pageLastRow = this.paginationProxy.getPageLastRow();\n if (focusIndex > pageLastRow) {\n focusIndex = pageLastRow;\n }\n if (scrollIndex > pageLastRow) {\n scrollIndex = pageLastRow;\n }\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: 'top',\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column\n });\n this.setTimeLastPageEventProcessed();\n };\n NavigationService.prototype.onPageUp = function (gridCell) {\n if (this.isTimeSinceLastPageEventToRecent()) {\n return;\n }\n var gridBodyCon = this.controllersService.getGridBodyController();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;\n if (this.controllersService.getCenterRowContainerCon().isHorizontalScrollShowing()) {\n pixelsInOnePage -= scrollbarWidth;\n }\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageTopPixel = scrollPosition.top;\n var currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);\n var scrollIndex = currentPageTopRow;\n var currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);\n var nextCellPixel = currentRowNode.rowTop + currentRowNode.rowHeight - pixelsInOnePage - pagingPixelOffset;\n var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);\n var firstRow = this.paginationProxy.getPageFirstRow();\n if (focusIndex < firstRow) {\n focusIndex = firstRow;\n }\n if (scrollIndex < firstRow) {\n scrollIndex = firstRow;\n }\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: 'bottom',\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column\n });\n this.setTimeLastPageEventProcessed();\n };\n NavigationService.prototype.getIndexToFocus = function (indexToScrollTo, isDown) {\n var indexToFocus = indexToScrollTo;\n // for SSRM, when user hits ctrl+down, we can end up trying to focus the loading row.\n // instead we focus the last row with data instead.\n if (isDown) {\n var node = this.paginationProxy.getRow(indexToScrollTo);\n if (node && node.stub) {\n indexToFocus -= 1;\n }\n }\n return indexToFocus;\n };\n // ctrl + up/down will bring focus to same column, first/last row. no horizontal scrolling.\n NavigationService.prototype.onCtrlUpOrDown = function (key, gridCell) {\n var upKey = key === KeyCode.UP;\n var rowIndexToScrollTo = upKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n this.navigateTo({\n scrollIndex: rowIndexToScrollTo,\n scrollType: null,\n scrollColumn: gridCell.column,\n focusIndex: this.getIndexToFocus(rowIndexToScrollTo, !upKey),\n focusColumn: gridCell.column\n });\n };\n // ctrl + left/right will bring focus to same row, first/last cell. no vertical scrolling.\n NavigationService.prototype.onCtrlLeftOrRight = function (key, gridCell) {\n var leftKey = key === KeyCode.LEFT;\n var allColumns = this.columnController.getAllDisplayedColumns();\n var columnToSelect = leftKey ? allColumns[0] : last(allColumns);\n this.navigateTo({\n scrollIndex: gridCell.rowIndex,\n scrollType: null,\n scrollColumn: columnToSelect,\n focusIndex: gridCell.rowIndex,\n focusColumn: columnToSelect\n });\n };\n // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring\n // same cell into view (which means either scroll all the way up, or all the way down).\n NavigationService.prototype.onHomeOrEndKey = function (key) {\n var homeKey = key === KeyCode.PAGE_HOME;\n var allColumns = this.columnController.getAllDisplayedColumns();\n var columnToSelect = homeKey ? allColumns[0] : last(allColumns);\n var scrollIndex = homeKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: null,\n scrollColumn: columnToSelect,\n focusIndex: this.getIndexToFocus(scrollIndex, !homeKey),\n focusColumn: columnToSelect\n });\n };\n __decorate$1C([\n Autowired('mouseEventService')\n ], NavigationService.prototype, \"mouseEventService\", void 0);\n __decorate$1C([\n Autowired('paginationProxy')\n ], NavigationService.prototype, \"paginationProxy\", void 0);\n __decorate$1C([\n Autowired('focusController')\n ], NavigationService.prototype, \"focusController\", void 0);\n __decorate$1C([\n Autowired('animationFrameService')\n ], NavigationService.prototype, \"animationFrameService\", void 0);\n __decorate$1C([\n Optional('rangeController')\n ], NavigationService.prototype, \"rangeController\", void 0);\n __decorate$1C([\n Autowired('columnController')\n ], NavigationService.prototype, \"columnController\", void 0);\n __decorate$1C([\n Autowired('controllersService')\n ], NavigationService.prototype, \"controllersService\", void 0);\n __decorate$1C([\n PostConstruct\n ], NavigationService.prototype, \"postConstruct\", null);\n NavigationService = __decorate$1C([\n Bean('navigationService')\n ], NavigationService);\n return NavigationService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1J = (undefined && undefined.__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$1D = (undefined && undefined.__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 __param$9 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n/**\n * This class solves the 'max height' problem, where the user might want to show more data than\n * the max div height actually allows.\n */\nvar RowContainerHeightService = /** @class */ (function (_super) {\n __extends$1J(RowContainerHeightService, _super);\n function RowContainerHeightService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // the scrollY position\n _this.scrollY = 0;\n // how tall the body is\n _this.uiBodyHeight = 0;\n return _this;\n }\n RowContainerHeightService.prototype.agWire = function (loggerFactory) {\n this.logger = loggerFactory.create(\"RowContainerHeightService\");\n };\n RowContainerHeightService.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));\n this.maxDivHeight = getMaxDivHeight();\n this.logger.log('maxDivHeight = ' + this.maxDivHeight);\n };\n RowContainerHeightService.prototype.isStretching = function () {\n return this.stretching;\n };\n RowContainerHeightService.prototype.getDivStretchOffset = function () {\n return this.divStretchOffset;\n };\n RowContainerHeightService.prototype.updateOffset = function () {\n if (!this.stretching) {\n return;\n }\n var gridBodyCon = this.controllersService.getGridBodyController();\n var newScrollY = gridBodyCon.getScrollFeature().getVScrollPosition().top;\n var newBodyHeight = this.getUiBodyHeight();\n var atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;\n if (atLeastOneChanged) {\n this.scrollY = newScrollY;\n this.uiBodyHeight = newBodyHeight;\n this.calculateOffset();\n }\n };\n RowContainerHeightService.prototype.calculateOffset = function () {\n this.setUiContainerHeight(this.maxDivHeight);\n this.pixelsToShave = this.modelHeight - this.uiContainerHeight;\n this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;\n var scrollPercent = this.scrollY / this.maxScrollY;\n var divStretchOffset = scrollPercent * this.pixelsToShave;\n this.logger.log(\"Div Stretch Offset = \" + divStretchOffset + \" (\" + this.pixelsToShave + \" * \" + scrollPercent + \")\");\n this.setDivStretchOffset(divStretchOffset);\n };\n RowContainerHeightService.prototype.setUiContainerHeight = function (height) {\n if (height !== this.uiContainerHeight) {\n this.uiContainerHeight = height;\n this.eventService.dispatchEvent({ type: Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED });\n }\n };\n RowContainerHeightService.prototype.clearOffset = function () {\n this.setUiContainerHeight(this.modelHeight);\n this.pixelsToShave = 0;\n this.setDivStretchOffset(0);\n };\n RowContainerHeightService.prototype.setDivStretchOffset = function (newOffset) {\n // because we are talking pixels, no point in confusing things with half numbers\n var newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;\n if (this.divStretchOffset === newOffsetFloor) {\n return;\n }\n this.divStretchOffset = newOffsetFloor;\n this.eventService.dispatchEvent({ type: Events.EVENT_HEIGHT_SCALE_CHANGED });\n };\n RowContainerHeightService.prototype.setModelHeight = function (modelHeight) {\n this.modelHeight = modelHeight;\n this.stretching = modelHeight != null // null happens when in print layout\n && this.maxDivHeight > 0\n && modelHeight > this.maxDivHeight;\n if (this.stretching) {\n this.calculateOffset();\n }\n else {\n this.clearOffset();\n }\n };\n RowContainerHeightService.prototype.getUiContainerHeight = function () {\n return this.uiContainerHeight;\n };\n RowContainerHeightService.prototype.getRealPixelPosition = function (modelPixel) {\n return modelPixel - this.divStretchOffset;\n };\n RowContainerHeightService.prototype.getUiBodyHeight = function () {\n var gridBodyCon = this.controllersService.getGridBodyController();\n var pos = gridBodyCon.getScrollFeature().getVScrollPosition();\n return pos.bottom - pos.top;\n };\n RowContainerHeightService.prototype.getScrollPositionForPixel = function (rowTop) {\n if (this.pixelsToShave <= 0) {\n return rowTop;\n }\n var modelMaxScroll = this.modelHeight - this.getUiBodyHeight();\n var scrollPercent = rowTop / modelMaxScroll;\n var scrollPixel = this.maxScrollY * scrollPercent;\n return scrollPixel;\n };\n __decorate$1D([\n Autowired('controllersService')\n ], RowContainerHeightService.prototype, \"controllersService\", void 0);\n __decorate$1D([\n __param$9(0, Qualifier(\"loggerFactory\"))\n ], RowContainerHeightService.prototype, \"agWire\", null);\n __decorate$1D([\n PostConstruct\n ], RowContainerHeightService.prototype, \"postConstruct\", null);\n RowContainerHeightService = __decorate$1D([\n Bean('rowContainerHeightService')\n ], RowContainerHeightService);\n return RowContainerHeightService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1K = (undefined && undefined.__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$1E = (undefined && undefined.__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 SelectableService = /** @class */ (function (_super) {\n __extends$1K(SelectableService, _super);\n function SelectableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectableService.prototype.init = function () {\n this.groupSelectsChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.isRowSelectableFunc = this.gridOptionsWrapper.getIsRowSelectableFunc();\n };\n SelectableService.prototype.updateSelectableAfterGrouping = function (rowNode) {\n if (this.isRowSelectableFunc) {\n var nextChildrenFunc = function (node) { return node.childrenAfterGroup; };\n this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);\n }\n };\n SelectableService.prototype.updateSelectableAfterFiltering = function (rowNode) {\n if (this.isRowSelectableFunc) {\n var nextChildrenFunc = function (node) { return node.childrenAfterFilter; };\n this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);\n }\n };\n SelectableService.prototype.recurseDown = function (children, nextChildrenFunc) {\n var _this = this;\n if (!children) {\n return;\n }\n children.forEach(function (child) {\n if (!child.group) {\n return;\n } // only interested in groups\n if (child.hasChildren()) {\n _this.recurseDown(nextChildrenFunc(child), nextChildrenFunc);\n }\n var rowSelectable;\n if (_this.groupSelectsChildren) {\n // have this group selectable if at least one direct child is selectable\n var firstSelectable = find(nextChildrenFunc(child), 'selectable', true);\n rowSelectable = exists(firstSelectable);\n }\n else {\n // directly retrieve selectable value from user callback\n rowSelectable = _this.isRowSelectableFunc ? _this.isRowSelectableFunc(child) : false;\n }\n child.setRowSelectable(rowSelectable);\n });\n };\n __decorate$1E([\n PostConstruct\n ], SelectableService.prototype, \"init\", null);\n SelectableService = __decorate$1E([\n Bean('selectableService')\n ], SelectableService);\n return SelectableService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1L = (undefined && undefined.__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$1F = (undefined && undefined.__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 AutoHeightCalculator = /** @class */ (function (_super) {\n __extends$1L(AutoHeightCalculator, _super);\n function AutoHeightCalculator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoHeightCalculator.prototype.postConstruct = function () {\n var _this = this;\n this.controllersService.whenReady(function (p) {\n _this.centerRowContainerCon = p.centerRowContainerCon;\n });\n };\n AutoHeightCalculator.prototype.getPreferredHeightForRow = function (rowNode) {\n var _this = this;\n var eDummyContainer = document.createElement('div');\n this.addInRowCssClasses(rowNode, eDummyContainer);\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n var eBodyContainer = this.centerRowContainerCon.getContainerElement();\n eBodyContainer.appendChild(eDummyContainer);\n var scopeResult = AngularRowUtils.createChildScopeOrNull(rowNode, this.$scope, this.beans.gridOptionsWrapper);\n var scope = scopeResult ? scopeResult.scope : undefined;\n var scopeDestroyFunc = scopeResult ? scopeResult.scopeDestroyFunc : undefined;\n var cellComps = [];\n var autoRowHeightCols = this.columnController.getAllAutoRowHeightCols();\n var displayedCols = this.columnController.getAllDisplayedColumns();\n var visibleAutoRowHeightCols = autoRowHeightCols.filter(function (col) { return displayedCols.indexOf(col) >= 0; });\n visibleAutoRowHeightCols.forEach(function (col) {\n var cellComp = new CellComp(scope, _this.beans, col, rowNode, null, true, false, eDummyContainer, false);\n cellComps.push(cellComp);\n });\n cellComps.forEach(function (cellComp) { return eDummyContainer.appendChild(cellComp.getGui()); });\n if (scope) {\n this.$compile(eDummyContainer)(scope);\n }\n // we should be able to just take the height of the row at this point, however\n // the row isn't expanding to cover the cell heights, i don't know why, i couldn't\n // figure it out so instead looking at the individual cells instead\n var maxCellHeight = 0;\n for (var i = 0; i < eDummyContainer.children.length; i++) {\n var child = eDummyContainer.children[i];\n if (child.offsetHeight > maxCellHeight) {\n maxCellHeight = child.offsetHeight;\n }\n }\n // we are finished with the dummy container, so get rid of it\n eBodyContainer.removeChild(eDummyContainer);\n cellComps.forEach(function (cellComp) {\n // dunno why we need to detach first, doing it here to be consistent with code in RowComp\n cellComp.detach();\n cellComp.destroy();\n });\n if (scopeDestroyFunc) {\n scopeDestroyFunc();\n }\n return maxCellHeight;\n };\n AutoHeightCalculator.prototype.addInRowCssClasses = function (rowNode, eDummyContainer) {\n // so any styles on row also get applied in dummy, otherwise\n // the content in dummy may differ to the real\n var rowIndex = rowNode.rowIndex;\n var params = {\n rowNode: rowNode,\n rowIsEven: rowIndex % 2 === 0,\n rowLevel: this.rowCssClassCalculator.calculateRowLevel(rowNode),\n firstRowOnPage: rowIndex === this.beans.paginationProxy.getPageFirstRow(),\n lastRowOnPage: rowIndex === this.beans.paginationProxy.getPageLastRow(),\n printLayout: false,\n expandable: rowNode.isExpandable()\n };\n var classes = this.rowCssClassCalculator.getInitialRowClasses(params);\n addCssClass(eDummyContainer, classes.join(' '));\n };\n __decorate$1F([\n Autowired('beans')\n ], AutoHeightCalculator.prototype, \"beans\", void 0);\n __decorate$1F([\n Autowired(\"$scope\")\n ], AutoHeightCalculator.prototype, \"$scope\", void 0);\n __decorate$1F([\n Autowired(\"columnController\")\n ], AutoHeightCalculator.prototype, \"columnController\", void 0);\n __decorate$1F([\n Autowired(\"rowCssClassCalculator\")\n ], AutoHeightCalculator.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$1F([\n Autowired('$compile')\n ], AutoHeightCalculator.prototype, \"$compile\", void 0);\n __decorate$1F([\n Autowired('controllersService')\n ], AutoHeightCalculator.prototype, \"controllersService\", void 0);\n __decorate$1F([\n PostConstruct\n ], AutoHeightCalculator.prototype, \"postConstruct\", null);\n AutoHeightCalculator = __decorate$1F([\n Bean('autoHeightCalculator')\n ], AutoHeightCalculator);\n return AutoHeightCalculator;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1M = (undefined && undefined.__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$1G = (undefined && undefined.__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 PaginationComp = /** @class */ (function (_super) {\n __extends$1M(PaginationComp, _super);\n function PaginationComp() {\n var _this = _super.call(this) || this;\n _this.previousAndFirstButtonsDisabled = false;\n _this.nextButtonDisabled = false;\n _this.lastButtonDisabled = false;\n return _this;\n }\n PaginationComp.prototype.postConstruct = function () {\n var _this = this;\n var isRtl = this.gridOptionsWrapper.isEnableRtl();\n this.setTemplate(this.getTemplate());\n this.btFirst.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'last' : 'first', this.gridOptionsWrapper));\n this.btPrevious.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'next' : 'previous', this.gridOptionsWrapper));\n this.btNext.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'previous' : 'next', this.gridOptionsWrapper));\n this.btLast.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'first' : 'last', this.gridOptionsWrapper));\n var isPaging = this.gridOptionsWrapper.isPagination();\n var paginationPanelEnabled = isPaging && !this.gridOptionsWrapper.isSuppressPaginationPanel();\n if (!paginationPanelEnabled) {\n this.setDisplayed(false);\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n [\n { el: this.btFirst, fn: this.onBtFirst.bind(this) },\n { el: this.btPrevious, fn: this.onBtPrevious.bind(this) },\n { el: this.btNext, fn: this.onBtNext.bind(this) },\n { el: this.btLast, fn: this.onBtLast.bind(this) }\n ].forEach(function (item) {\n var el = item.el, fn = item.fn;\n _this.addManagedListener(el, 'click', fn);\n _this.addManagedListener(el, 'keydown', function (e) {\n if (e.keyCode === KeyCode.ENTER || e.keyCode === KeyCode.SPACE) {\n e.preventDefault();\n fn();\n }\n });\n });\n this.onPaginationChanged();\n };\n PaginationComp.prototype.onPaginationChanged = function () {\n this.enableOrDisableButtons();\n this.updateRowLabels();\n this.setCurrentPageLabel();\n this.setTotalLabels();\n };\n PaginationComp.prototype.onBtFirst = function () {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToFirstPage();\n }\n };\n PaginationComp.prototype.setCurrentPageLabel = function () {\n var pagesExist = this.paginationProxy.getTotalPages() > 0;\n var currentPage = this.paginationProxy.getCurrentPage();\n var toDisplay = pagesExist ? currentPage + 1 : 0;\n this.lbCurrent.innerHTML = this.formatNumber(toDisplay);\n };\n PaginationComp.prototype.formatNumber = function (value) {\n var userFunc = this.gridOptionsWrapper.getPaginationNumberFormatterFunc();\n if (userFunc) {\n return userFunc({ value: value });\n }\n return formatNumberCommas(value);\n };\n PaginationComp.prototype.getTemplate = function () {\n var localeTextFunc = this.gridOptionsWrapper.getLocaleTextFunc();\n var strPage = localeTextFunc('page', 'Page');\n var strTo = localeTextFunc('to', 'to');\n var strOf = localeTextFunc('of', 'of');\n var strFirst = localeTextFunc('firstPage', 'First Page');\n var strPrevious = localeTextFunc('previousPage', 'Previous Page');\n var strNext = localeTextFunc('nextPage', 'Next Page');\n var strLast = localeTextFunc('lastPage', 'Last Page');\n var compId = this.getCompId();\n var summaryDescribedBy = \"ag-\" + compId + \"-first-row ag-\" + compId + \"-to ag-\" + compId + \"-last-row ag-\" + compId + \"-of ag-\" + compId + \"-row-count\";\n var descriptionDescribedBy = \"ag-\" + compId + \"-start-page ag-\" + compId + \"-start-page-number ag-\" + compId + \"-of-page ag-\" + compId + \"-of-page-number\";\n return /* html */ \"
\\n \\n \\n \" + strTo + \"\\n \\n \" + strOf + \"\\n \\n \\n \\n
\\n
\\n \\n \" + strPage + \"\\n \\n \" + strOf + \"\\n \\n \\n
\\n
\\n
\\n
\";\n };\n PaginationComp.prototype.onBtNext = function () {\n if (!this.nextButtonDisabled) {\n this.paginationProxy.goToNextPage();\n }\n };\n PaginationComp.prototype.onBtPrevious = function () {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToPreviousPage();\n }\n };\n PaginationComp.prototype.onBtLast = function () {\n if (!this.lastButtonDisabled) {\n this.paginationProxy.goToLastPage();\n }\n };\n PaginationComp.prototype.enableOrDisableButtons = function () {\n var currentPage = this.paginationProxy.getCurrentPage();\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n this.previousAndFirstButtonsDisabled = currentPage === 0;\n addOrRemoveCssClass(this.btFirst, 'ag-disabled', this.previousAndFirstButtonsDisabled);\n setAriaDisabled(this.btFirst, this.previousAndFirstButtonsDisabled);\n addOrRemoveCssClass(this.btPrevious, 'ag-disabled', this.previousAndFirstButtonsDisabled);\n setAriaDisabled(this.btPrevious, this.previousAndFirstButtonsDisabled);\n var zeroPagesToDisplay = this.isZeroPagesToDisplay();\n var onLastPage = maxRowFound && currentPage === (totalPages - 1);\n this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;\n addOrRemoveCssClass(this.btNext, 'ag-disabled', this.nextButtonDisabled);\n setAriaDisabled(this.btNext, this.nextButtonDisabled);\n this.lastButtonDisabled = !maxRowFound || zeroPagesToDisplay || currentPage === (totalPages - 1);\n addOrRemoveCssClass(this.btLast, 'ag-disabled', this.lastButtonDisabled);\n setAriaDisabled(this.btLast, this.lastButtonDisabled);\n };\n PaginationComp.prototype.updateRowLabels = function () {\n var currentPage = this.paginationProxy.getCurrentPage();\n var pageSize = this.paginationProxy.getPageSize();\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var rowCount = this.paginationProxy.isLastPageFound() ?\n this.paginationProxy.getMasterRowCount() : null;\n var startRow;\n var endRow;\n if (this.isZeroPagesToDisplay()) {\n startRow = endRow = 0;\n }\n else {\n startRow = (pageSize * currentPage) + 1;\n endRow = startRow + pageSize - 1;\n if (maxRowFound && endRow > rowCount) {\n endRow = rowCount;\n }\n }\n this.lbFirstRowOnPage.innerHTML = this.formatNumber(startRow);\n if (this.rowNodeBlockLoader.isLoading()) {\n this.lbLastRowOnPage.innerHTML = '?';\n }\n else {\n this.lbLastRowOnPage.innerHTML = this.formatNumber(endRow);\n }\n };\n PaginationComp.prototype.isZeroPagesToDisplay = function () {\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n return maxRowFound && totalPages === 0;\n };\n PaginationComp.prototype.setTotalLabels = function () {\n var lastPageFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n var rowCount = lastPageFound ?\n this.paginationProxy.getMasterRowCount() : null;\n if (lastPageFound) {\n this.lbTotal.innerHTML = this.formatNumber(totalPages);\n this.lbRecordCount.innerHTML = this.formatNumber(rowCount);\n }\n else {\n var moreText = this.gridOptionsWrapper.getLocaleTextFunc()('more', 'more');\n this.lbTotal.innerHTML = moreText;\n this.lbRecordCount.innerHTML = moreText;\n }\n };\n __decorate$1G([\n Autowired('paginationProxy')\n ], PaginationComp.prototype, \"paginationProxy\", void 0);\n __decorate$1G([\n Autowired('rowNodeBlockLoader')\n ], PaginationComp.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$1G([\n RefSelector('btFirst')\n ], PaginationComp.prototype, \"btFirst\", void 0);\n __decorate$1G([\n RefSelector('btPrevious')\n ], PaginationComp.prototype, \"btPrevious\", void 0);\n __decorate$1G([\n RefSelector('btNext')\n ], PaginationComp.prototype, \"btNext\", void 0);\n __decorate$1G([\n RefSelector('btLast')\n ], PaginationComp.prototype, \"btLast\", void 0);\n __decorate$1G([\n RefSelector('lbRecordCount')\n ], PaginationComp.prototype, \"lbRecordCount\", void 0);\n __decorate$1G([\n RefSelector('lbFirstRowOnPage')\n ], PaginationComp.prototype, \"lbFirstRowOnPage\", void 0);\n __decorate$1G([\n RefSelector('lbLastRowOnPage')\n ], PaginationComp.prototype, \"lbLastRowOnPage\", void 0);\n __decorate$1G([\n RefSelector('lbCurrent')\n ], PaginationComp.prototype, \"lbCurrent\", void 0);\n __decorate$1G([\n RefSelector('lbTotal')\n ], PaginationComp.prototype, \"lbTotal\", void 0);\n __decorate$1G([\n PostConstruct\n ], PaginationComp.prototype, \"postConstruct\", null);\n return PaginationComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1N = (undefined && undefined.__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$1H = (undefined && undefined.__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 ResizeObserverService = /** @class */ (function (_super) {\n __extends$1N(ResizeObserverService, _super);\n function ResizeObserverService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ResizeObserverService.prototype.observeResize = function (element, callback, debounceDelay) {\n if (debounceDelay === void 0) { debounceDelay = 50; }\n // put in variable, so available to usePolyfill() function below\n var frameworkFactory = this.getFrameworkOverrides();\n // this gets fired too often and might cause some relayout issues\n // so we add a debounce to the callback here to avoid the flashing effect.\n var debouncedCallback = debounce(callback, debounceDelay);\n var useBrowserResizeObserver = function () {\n var resizeObserver = new window.ResizeObserver(debouncedCallback);\n resizeObserver.observe(element);\n return function () { return resizeObserver.disconnect(); };\n };\n var usePolyfill = function () {\n // initialise to the current width and height, so first call will have no changes\n var widthLastTime = offsetWidth(element);\n var heightLastTime = offsetHeight(element);\n // when finished, this gets turned to false.\n var running = true;\n var periodicallyCheckWidthAndHeight = function () {\n if (running) {\n var newWidth = offsetWidth(element);\n var newHeight = offsetHeight(element);\n var changed = newWidth !== widthLastTime || newHeight !== heightLastTime;\n if (changed) {\n widthLastTime = newWidth;\n heightLastTime = newHeight;\n callback();\n }\n frameworkFactory.setTimeout(periodicallyCheckWidthAndHeight, debounceDelay);\n }\n };\n periodicallyCheckWidthAndHeight();\n // the callback function we return sets running to false\n return function () { return running = false; };\n };\n var suppressResize = this.gridOptionsWrapper.isSuppressBrowserResizeObserver();\n var resizeObserverExists = !!window.ResizeObserver;\n if (resizeObserverExists && !suppressResize) {\n return useBrowserResizeObserver();\n }\n else {\n return usePolyfill();\n }\n };\n ResizeObserverService = __decorate$1H([\n Bean('resizeObserverService')\n ], ResizeObserverService);\n return ResizeObserverService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1O = (undefined && undefined.__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$1I = (undefined && undefined.__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 LoadingType;\n(function (LoadingType) {\n LoadingType[LoadingType[\"Loading\"] = 0] = \"Loading\";\n LoadingType[LoadingType[\"NoRows\"] = 1] = \"NoRows\";\n})(LoadingType || (LoadingType = {}));\nvar OverlayWrapperComponent = /** @class */ (function (_super) {\n __extends$1O(OverlayWrapperComponent, _super);\n function OverlayWrapperComponent() {\n var _this = _super.call(this, OverlayWrapperComponent.TEMPLATE) || this;\n _this.inProgress = false;\n _this.destroyRequested = false;\n return _this;\n }\n OverlayWrapperComponent.prototype.updateLayoutClasses = function (params) {\n addOrRemoveCssClass(this.eOverlayWrapper, exports.LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n addOrRemoveCssClass(this.eOverlayWrapper, exports.LayoutCssClasses.NORMAL, params.normal);\n addOrRemoveCssClass(this.eOverlayWrapper, exports.LayoutCssClasses.PRINT, params.print);\n };\n OverlayWrapperComponent.prototype.postConstruct = function () {\n this.createManagedBean(new LayoutFeature(this));\n this.setDisplayed(false);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_CHANGED, this.onRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATED, this.onRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n if (this.gridOptionsWrapper.isRowModelDefault() && !this.gridOptionsWrapper.getRowData()) {\n this.showLoadingOverlay();\n }\n this.gridApi.registerOverlayWrapperComp(this);\n };\n OverlayWrapperComponent.prototype.setWrapperTypeClass = function (loadingType) {\n addOrRemoveCssClass(this.eOverlayWrapper, 'ag-overlay-loading-wrapper', loadingType === LoadingType.Loading);\n addOrRemoveCssClass(this.eOverlayWrapper, 'ag-overlay-no-rows-wrapper', loadingType === LoadingType.NoRows);\n };\n OverlayWrapperComponent.prototype.showLoadingOverlay = function () {\n if (this.gridOptionsWrapper.isSuppressLoadingOverlay()) {\n return;\n }\n var workItem = this.userComponentFactory.newLoadingOverlayComponent({\n api: this.gridOptionsWrapper.getApi()\n });\n this.showOverlay(workItem, LoadingType.Loading);\n };\n OverlayWrapperComponent.prototype.showNoRowsOverlay = function () {\n if (this.gridOptionsWrapper.isSuppressNoRowsOverlay()) {\n return;\n }\n var workItem = this.userComponentFactory.newNoRowsOverlayComponent({\n api: this.gridOptionsWrapper.getApi()\n });\n this.showOverlay(workItem, LoadingType.NoRows);\n };\n OverlayWrapperComponent.prototype.showOverlay = function (workItem, type) {\n var _this = this;\n if (this.inProgress) {\n return;\n }\n this.setWrapperTypeClass(type);\n this.destroyActiveOverlay();\n this.inProgress = true;\n if (workItem) {\n workItem.then(function (comp) {\n _this.inProgress = false;\n _this.eOverlayWrapper.appendChild(comp.getGui());\n _this.activeOverlay = comp;\n if (_this.destroyRequested) {\n _this.destroyRequested = false;\n _this.destroyActiveOverlay();\n }\n });\n }\n this.setDisplayed(true);\n };\n OverlayWrapperComponent.prototype.destroyActiveOverlay = function () {\n if (this.inProgress) {\n this.destroyRequested = true;\n return;\n }\n if (!this.activeOverlay) {\n return;\n }\n this.activeOverlay = this.getContext().destroyBean(this.activeOverlay);\n clearElement(this.eOverlayWrapper);\n };\n OverlayWrapperComponent.prototype.hideOverlay = function () {\n this.destroyActiveOverlay();\n this.setDisplayed(false);\n };\n OverlayWrapperComponent.prototype.destroy = function () {\n this.destroyActiveOverlay();\n _super.prototype.destroy.call(this);\n };\n OverlayWrapperComponent.prototype.showOrHideOverlay = function () {\n var isEmpty = this.paginationProxy.isEmpty();\n var isSuppressNoRowsOverlay = this.gridOptionsWrapper.isSuppressNoRowsOverlay();\n if (isEmpty && !isSuppressNoRowsOverlay) {\n this.showNoRowsOverlay();\n }\n else {\n this.hideOverlay();\n }\n };\n OverlayWrapperComponent.prototype.onRowDataChanged = function () {\n this.showOrHideOverlay();\n };\n OverlayWrapperComponent.prototype.onNewColumnsLoaded = function () {\n // hide overlay if columns and rows exist, this can happen if columns are loaded after data.\n // this problem exists before of the race condition between the services (column controller in this case)\n // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,\n // this race condition would not happen.\n if (this.columnController.isReady() && !this.paginationProxy.isEmpty()) {\n this.hideOverlay();\n }\n };\n // wrapping in outer div, and wrapper, is needed to center the loading icon\n // The idea for centering came from here: http://www.vanseodesign.com/css/vertical-centering/\n OverlayWrapperComponent.TEMPLATE = \"\\n
\\n
\\n
\\n
\\n
\";\n __decorate$1I([\n Autowired('userComponentFactory')\n ], OverlayWrapperComponent.prototype, \"userComponentFactory\", void 0);\n __decorate$1I([\n Autowired('paginationProxy')\n ], OverlayWrapperComponent.prototype, \"paginationProxy\", void 0);\n __decorate$1I([\n Autowired('gridApi')\n ], OverlayWrapperComponent.prototype, \"gridApi\", void 0);\n __decorate$1I([\n Autowired('columnController')\n ], OverlayWrapperComponent.prototype, \"columnController\", void 0);\n __decorate$1I([\n RefSelector('eOverlayWrapper')\n ], OverlayWrapperComponent.prototype, \"eOverlayWrapper\", void 0);\n __decorate$1I([\n PostConstruct\n ], OverlayWrapperComponent.prototype, \"postConstruct\", null);\n return OverlayWrapperComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1P = (undefined && undefined.__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$1J = (undefined && undefined.__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 AgGroupComponent = /** @class */ (function (_super) {\n __extends$1P(AgGroupComponent, _super);\n function AgGroupComponent(params) {\n if (params === void 0) { params = {}; }\n var _this = _super.call(this, AgGroupComponent.getTemplate(params)) || this;\n _this.suppressEnabledCheckbox = true;\n _this.suppressOpenCloseIcons = false;\n var title = params.title, enabled = params.enabled, items = params.items, suppressEnabledCheckbox = params.suppressEnabledCheckbox, suppressOpenCloseIcons = params.suppressOpenCloseIcons;\n _this.title = title;\n _this.cssIdentifier = params.cssIdentifier || 'default';\n _this.enabled = enabled != null ? enabled : true;\n _this.items = items || [];\n _this.alignItems = params.alignItems || 'center';\n if (suppressEnabledCheckbox != null) {\n _this.suppressEnabledCheckbox = suppressEnabledCheckbox;\n }\n if (suppressOpenCloseIcons != null) {\n _this.suppressOpenCloseIcons = suppressOpenCloseIcons;\n }\n return _this;\n }\n AgGroupComponent.getTemplate = function (params) {\n var cssIdentifier = params.cssIdentifier || 'default';\n var direction = params.direction || 'vertical';\n return /* html */ \"
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\";\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.setAlignItems(this.alignItems);\n this.hideEnabledCheckbox(this.suppressEnabledCheckbox);\n this.hideOpenCloseIcons(this.suppressOpenCloseIcons);\n this.setupExpandContract();\n this.refreshChildDisplay();\n };\n AgGroupComponent.prototype.setupExpandContract = function () {\n var _this = this;\n this.eGroupClosedIcon.appendChild(createIcon('columnSelectClosed', this.gridOptionsWrapper, null));\n this.eGroupOpenedIcon.appendChild(createIcon('columnSelectOpen', this.gridOptionsWrapper, null));\n this.addManagedListener(this.eTitleBar, 'click', function () { return _this.toggleGroupExpand(); });\n this.addManagedListener(this.eTitleBar, 'keydown', function (e) {\n switch (e.keyCode) {\n case KeyCode.ENTER:\n _this.toggleGroupExpand();\n break;\n case KeyCode.RIGHT:\n _this.toggleGroupExpand(true);\n break;\n case KeyCode.LEFT:\n _this.toggleGroupExpand(false);\n break;\n }\n });\n };\n AgGroupComponent.prototype.refreshChildDisplay = function () {\n var showIcon = !this.suppressOpenCloseIcons;\n setDisplayed(this.eToolbar, this.expanded && !this.suppressEnabledCheckbox);\n setDisplayed(this.eGroupOpenedIcon, showIcon && this.expanded);\n setDisplayed(this.eGroupClosedIcon, showIcon && !this.expanded);\n };\n AgGroupComponent.prototype.isExpanded = function () {\n return this.expanded;\n };\n AgGroupComponent.prototype.setAlignItems = function (alignment) {\n var eGui = this.getGui();\n if (this.alignItems !== alignment) {\n removeCssClass(eGui, \"ag-group-item-alignment-\" + this.alignItems);\n }\n this.alignItems = alignment;\n var newCls = \"ag-group-item-alignment-\" + this.alignItems;\n addCssClass(eGui, newCls);\n return this;\n };\n AgGroupComponent.prototype.toggleGroupExpand = function (expanded) {\n if (this.suppressOpenCloseIcons) {\n this.expanded = true;\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, true);\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.refreshChildDisplay();\n setDisplayed(this.eContainer, expanded);\n this.dispatchEvent({ type: this.expanded ? AgGroupComponent.EVENT_EXPANDED : AgGroupComponent.EVENT_COLLAPSED });\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.eContainer;\n var el = item instanceof Component ? item.getGui() : item;\n addCssClass(el, 'ag-group-item');\n addCssClass(el, \"ag-\" + this.cssIdentifier + \"-group-item\");\n container.appendChild(el);\n this.items.push(el);\n };\n AgGroupComponent.prototype.hideItem = function (hide, index) {\n var itemToHide = this.items[index];\n addOrRemoveCssClass(itemToHide, 'ag-hidden', hide);\n };\n AgGroupComponent.prototype.setTitle = function (title) {\n this.eTitle.innerText = title;\n return this;\n };\n AgGroupComponent.prototype.addCssClassToTitleBar = function (cssClass) {\n addCssClass(this.eTitleBar, cssClass);\n };\n AgGroupComponent.prototype.setEnabled = function (enabled, skipToggle) {\n this.enabled = enabled;\n this.refreshDisabledStyles();\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 this.suppressEnabledCheckbox = hide;\n this.refreshChildDisplay();\n this.refreshDisabledStyles();\n return this;\n };\n AgGroupComponent.prototype.hideOpenCloseIcons = function (hide) {\n this.suppressOpenCloseIcons = hide;\n if (hide) {\n this.toggleGroupExpand(true);\n }\n return this;\n };\n AgGroupComponent.prototype.refreshDisabledStyles = function () {\n addOrRemoveCssClass(this.getGui(), 'ag-disabled', !this.enabled);\n if (this.suppressEnabledCheckbox && !this.enabled) {\n addCssClass(this.eTitleBar, 'ag-disabled-group-title-bar');\n this.eTitleBar.removeAttribute('tabindex');\n }\n else {\n removeCssClass(this.eTitleBar, 'ag-disabled-group-title-bar');\n this.eTitleBar.setAttribute('tabindex', '0');\n }\n addOrRemoveCssClass(this.eContainer, 'ag-disabled-group-container', !this.enabled);\n };\n AgGroupComponent.EVENT_EXPANDED = 'expanded';\n AgGroupComponent.EVENT_COLLAPSED = 'collapsed';\n __decorate$1J([\n RefSelector('eTitleBar')\n ], AgGroupComponent.prototype, \"eTitleBar\", void 0);\n __decorate$1J([\n RefSelector('eGroupOpenedIcon')\n ], AgGroupComponent.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$1J([\n RefSelector('eGroupClosedIcon')\n ], AgGroupComponent.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$1J([\n RefSelector('eToolbar')\n ], AgGroupComponent.prototype, \"eToolbar\", void 0);\n __decorate$1J([\n RefSelector('cbGroupEnabled')\n ], AgGroupComponent.prototype, \"cbGroupEnabled\", void 0);\n __decorate$1J([\n RefSelector('eTitle')\n ], AgGroupComponent.prototype, \"eTitle\", void 0);\n __decorate$1J([\n RefSelector('eContainer')\n ], AgGroupComponent.prototype, \"eContainer\", void 0);\n __decorate$1J([\n PostConstruct\n ], AgGroupComponent.prototype, \"postConstruct\", null);\n return AgGroupComponent;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Q = (undefined && undefined.__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$1K = (undefined && undefined.__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 AgPanel = /** @class */ (function (_super) {\n __extends$1Q(AgPanel, _super);\n function AgPanel(config) {\n var _this = _super.call(this, AgPanel.getTemplate(config)) || 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.getTemplate = function (config) {\n var cssIdentifier = (config && config.cssIdentifier) || 'default';\n return /* html */ \"
\\n
\\n \\n
\\n
\\n
\\n
\";\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 addCssClass(this.eTitleBar, 'ag-hidden');\n }\n this.addManagedListener(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 setFixedHeight(eGui, height);\n height = 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 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 setFixedWidth(eGui, width);\n width = 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 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(AgPanel.CLOSE_BTN_TEMPLATE);\n this.getContext().createBean(closeButtonComp);\n var eGui = closeButtonComp.getGui();\n eGui.appendChild(addCssClass(createIconNoSpan('close', this.gridOptionsWrapper), 'ag-panel-title-bar-button-icon'));\n this.addTitleBarButton(closeButtonComp);\n closeButtonComp.addManagedListener(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 = this.destroyBean(this.closeButtonComp);\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 addCssClass(eGui, 'ag-panel-title-bar-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 getInnerHeight(this.eContentWrapper);\n };\n AgPanel.prototype.getBodyWidth = function () {\n return 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 if (this.closeButtonComp) {\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n var eGui = this.getGui();\n if (eGui && eGui.offsetParent) {\n this.close();\n }\n _super.prototype.destroy.call(this);\n };\n AgPanel.CLOSE_BTN_TEMPLATE = \"
\";\n __decorate$1K([\n Autowired('popupService')\n ], AgPanel.prototype, \"popupService\", void 0);\n __decorate$1K([\n RefSelector('eContentWrapper')\n ], AgPanel.prototype, \"eContentWrapper\", void 0);\n __decorate$1K([\n RefSelector('eTitleBar')\n ], AgPanel.prototype, \"eTitleBar\", void 0);\n __decorate$1K([\n RefSelector('eTitleBarButtons')\n ], AgPanel.prototype, \"eTitleBarButtons\", void 0);\n __decorate$1K([\n RefSelector('eTitle')\n ], AgPanel.prototype, \"eTitle\", void 0);\n __decorate$1K([\n PostConstruct\n ], AgPanel.prototype, \"postConstruct\", null);\n return AgPanel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1R = (undefined && undefined.__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$1L = (undefined && undefined.__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 AgDialog = /** @class */ (function (_super) {\n __extends$1R(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 _this.resizable = {};\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 addCssClass(eGui, 'ag-dialog');\n this.moveElement = this.eTitleBar;\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(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 var addPopupRes = this.popupService.addPopup({\n modal: modal,\n eChild: eGui,\n closeOnEsc: true,\n closedCallback: this.destroy.bind(this),\n alwaysOnTop: alwaysOnTop\n });\n if (addPopupRes) {\n this.close = addPopupRes.hideFunc;\n }\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 this.dispatchEvent(params);\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 setDisplayed(this.maximizeIcon, !this.isMaximized);\n setDisplayed(this.minimizeIcon, 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 this.setResizable(false);\n this.setMovable(false);\n this.maximizeButtonComp = this.destroyBean(this.maximizeButtonComp);\n this.clearMaximizebleListeners();\n _super.prototype.destroy.call(this);\n };\n AgDialog.prototype.setResizable = function (resizable) {\n var _this = this;\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 }\n else {\n _this.dragService.removeDragSource(params);\n el.style.pointerEvents = 'none';\n }\n _this.resizerMap[s].dragSource = val ? params : undefined;\n }\n });\n };\n AgDialog.prototype.setMovable = function (movable) {\n if (movable === this.movable) {\n return;\n }\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 AgDialog.prototype.setMaximizable = function (maximizable) {\n var _this = this;\n if (!maximizable) {\n this.clearMaximizebleListeners();\n if (this.maximizeButtonComp) {\n this.destroyBean(this.maximizeButtonComp);\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 =\n this.createBean(new Component(/* html */ \"
\"));\n var eGui = maximizeButtonComp.getGui();\n eGui.appendChild(this.maximizeIcon = createIconNoSpan('maximize', this.gridOptionsWrapper));\n addCssClass(this.maximizeIcon, 'ag-panel-title-bar-button-icon');\n eGui.appendChild(this.minimizeIcon = createIconNoSpan('minimize', this.gridOptionsWrapper));\n addCssClass(this.minimizeIcon, 'ag-panel-title-bar-button-icon');\n addCssClass(this.minimizeIcon, 'ag-hidden');\n maximizeButtonComp.addManagedListener(eGui, 'click', this.toggleMaximize.bind(this));\n this.addTitleBarButton(maximizeButtonComp, 0);\n this.maximizeListeners.push(this.addManagedListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));\n this.resizeListenerDestroy = this.addManagedListener(this, 'resize', function () {\n _this.isMaximized = false;\n _this.refreshMaximizeIcon();\n });\n };\n __decorate$1L([\n Autowired('dragService')\n ], AgDialog.prototype, \"dragService\", void 0);\n return AgDialog;\n}(AgPanel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1S = (undefined && undefined.__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 AgInputTextField = /** @class */ (function (_super) {\n __extends$1S(AgInputTextField, _super);\n function AgInputTextField(config, className, inputType) {\n if (className === void 0) { className = 'ag-text-field'; }\n if (inputType === void 0) { inputType = 'text'; }\n return _super.call(this, config, className, inputType) || this;\n }\n AgInputTextField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.config.allowedCharPattern) {\n this.preventDisallowedCharacters();\n }\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 = exists(value) ? value : '';\n }\n return ret;\n };\n AgInputTextField.prototype.preventDisallowedCharacters = function () {\n var pattern = new RegExp(\"[\" + this.config.allowedCharPattern + \"]\");\n var preventDisallowedCharacters = function (event) {\n if (event.key && !pattern.test(event.key)) {\n event.preventDefault();\n }\n };\n this.addManagedListener(this.eInput, 'keypress', preventDisallowedCharacters);\n this.addManagedListener(this.eInput, 'paste', function (e) {\n var text = e.clipboardData.getData('text');\n if (some(text, function (c) { return !pattern.test(c); })) {\n e.preventDefault();\n }\n });\n };\n return AgInputTextField;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1T = (undefined && undefined.__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 AgInputTextArea = /** @class */ (function (_super) {\n __extends$1T(AgInputTextArea, _super);\n function AgInputTextArea(config) {\n return _super.call(this, config, 'ag-text-area', null, 'textarea') || 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 AgInputTextArea.prototype.setCols = function (cols) {\n this.eInput.cols = cols;\n return this;\n };\n AgInputTextArea.prototype.setRows = function (rows) {\n this.eInput.rows = rows;\n return this;\n };\n return AgInputTextArea;\n}(AgAbstractInputField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1U = (undefined && undefined.__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$1M = (undefined && undefined.__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 AgSlider = /** @class */ (function (_super) {\n __extends$1U(AgSlider, _super);\n function AgSlider(config) {\n var _this = _super.call(this, config, AgSlider.TEMPLATE) || this;\n _this.labelAlignment = 'top';\n return _this;\n }\n AgSlider.prototype.init = function () {\n addCssClass(this.eSlider.getGui(), 'ag-slider-field');\n };\n AgSlider.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n var eventChanged = AgAbstractField.EVENT_CHANGED;\n this.addManagedListener(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.addManagedListener(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.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$1M([\n RefSelector('eLabel')\n ], AgSlider.prototype, \"eLabel\", void 0);\n __decorate$1M([\n RefSelector('eSlider')\n ], AgSlider.prototype, \"eSlider\", void 0);\n __decorate$1M([\n RefSelector('eText')\n ], AgSlider.prototype, \"eText\", void 0);\n __decorate$1M([\n PostConstruct\n ], AgSlider.prototype, \"init\", null);\n return AgSlider;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1V = (undefined && undefined.__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$1N = (undefined && undefined.__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 AgColorPanel = /** @class */ (function (_super) {\n __extends$1V(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.addManagedListener(this.spectrumVal, 'mousedown', this.onSpectrumDraggerDown.bind(this));\n this.addManagedListener(eGui, 'mousemove', this.onSpectrumDraggerMove.bind(this));\n this.addManagedListener(this.spectrumHue, 'mousedown', this.onSpectrumHueDown.bind(this));\n this.addManagedListener(eGui, 'mousemove', this.onSpectrumHueMove.bind(this));\n this.addManagedListener(this.spectrumAlpha, 'mousedown', this.onSpectrumAlphaDown.bind(this));\n this.addManagedListener(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.addManagedListener(document, 'mouseup', this.onMouseUp.bind(this));\n this.addManagedListener(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 = Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var spectrumColor = 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 = 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 = 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 (!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 = 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 (currentColor) { return currentColor != 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 this.addRecentColor();\n _super.prototype.destroy.call(this);\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$1N([\n RefSelector('spectrumColor')\n ], AgColorPanel.prototype, \"spectrumColor\", void 0);\n __decorate$1N([\n RefSelector('spectrumVal')\n ], AgColorPanel.prototype, \"spectrumVal\", void 0);\n __decorate$1N([\n RefSelector('spectrumDragger')\n ], AgColorPanel.prototype, \"spectrumDragger\", void 0);\n __decorate$1N([\n RefSelector('spectrumHue')\n ], AgColorPanel.prototype, \"spectrumHue\", void 0);\n __decorate$1N([\n RefSelector('spectrumHueSlider')\n ], AgColorPanel.prototype, \"spectrumHueSlider\", void 0);\n __decorate$1N([\n RefSelector('spectrumAlpha')\n ], AgColorPanel.prototype, \"spectrumAlpha\", void 0);\n __decorate$1N([\n RefSelector('spectrumAlphaSlider')\n ], AgColorPanel.prototype, \"spectrumAlphaSlider\", void 0);\n __decorate$1N([\n RefSelector('recentColors')\n ], AgColorPanel.prototype, \"recentColors\", void 0);\n __decorate$1N([\n PostConstruct\n ], AgColorPanel.prototype, \"postConstruct\", null);\n return AgColorPanel;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1W = (undefined && undefined.__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$1O = (undefined && undefined.__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 AgPickerField = /** @class */ (function (_super) {\n __extends$1W(AgPickerField, _super);\n function AgPickerField(config, className, pickerIcon, popupRole) {\n var _this = _super.call(this, config, \n /* html */ \"
\\n
\\n
\\n
\\n
\\n
\\n
\", className) || this;\n _this.pickerIcon = pickerIcon;\n _this.isPickerDisplayed = false;\n _this.isDestroyingPicker = false;\n _this.skipClick = false;\n return _this;\n }\n AgPickerField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n var displayId = this.getCompId() + \"-display\";\n this.eDisplayField.setAttribute('id', displayId);\n setAriaDescribedBy(this.eWrapper, displayId);\n var clickHandler = function () {\n if (_this.skipClick) {\n _this.skipClick = false;\n return;\n }\n if (_this.isDisabled()) {\n return;\n }\n _this.pickerComponent = _this.showPicker();\n };\n var eGui = this.getGui();\n this.addManagedListener(eGui, 'mousedown', function (e) {\n if (!_this.skipClick &&\n _this.pickerComponent &&\n _this.pickerComponent.isAlive() &&\n isVisible(_this.pickerComponent.getGui()) &&\n eGui.contains(e.target)) {\n _this.skipClick = true;\n }\n });\n this.addManagedListener(eGui, 'keydown', function (e) {\n switch (e.keyCode) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n clickHandler();\n case KeyCode.ESCAPE:\n if (_this.isPickerDisplayed) {\n e.preventDefault();\n }\n break;\n }\n });\n this.addManagedListener(this.eWrapper, 'click', clickHandler);\n this.addManagedListener(this.eLabel, 'click', clickHandler);\n if (this.pickerIcon) {\n var icon = createIconNoSpan(this.pickerIcon, this.gridOptionsWrapper);\n if (icon) {\n this.eIcon.appendChild(icon);\n }\n }\n };\n AgPickerField.prototype.refreshLabel = function () {\n if (exists(this.getLabel())) {\n setAriaLabelledBy(this.eWrapper, this.getLabelId());\n }\n else {\n this.eWrapper.removeAttribute('aria-labelledby');\n }\n _super.prototype.refreshLabel.call(this);\n };\n AgPickerField.prototype.setAriaLabel = function (label) {\n setAriaLabel(this.eWrapper, label);\n return this;\n };\n AgPickerField.prototype.setInputWidth = function (width) {\n setElementWidth(this.eWrapper, width);\n return this;\n };\n AgPickerField.prototype.getFocusableElement = function () {\n return this.eWrapper;\n };\n __decorate$1O([\n RefSelector('eLabel')\n ], AgPickerField.prototype, \"eLabel\", void 0);\n __decorate$1O([\n RefSelector('eWrapper')\n ], AgPickerField.prototype, \"eWrapper\", void 0);\n __decorate$1O([\n RefSelector('eDisplayField')\n ], AgPickerField.prototype, \"eDisplayField\", void 0);\n __decorate$1O([\n RefSelector('eIcon')\n ], AgPickerField.prototype, \"eIcon\", void 0);\n return AgPickerField;\n}(AgAbstractField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1X = (undefined && undefined.__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 AgColorPicker = /** @class */ (function (_super) {\n __extends$1X(AgColorPicker, _super);\n function AgColorPicker(config) {\n var _this = _super.call(this, config, 'ag-color-picker', 'colorPicker') || this;\n if (config && config.color) {\n _this.value = config.color;\n }\n return _this;\n }\n AgColorPicker.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.value) {\n this.setValue(this.value);\n }\n };\n AgColorPicker.prototype.showPicker = function () {\n var _this = this;\n var eGuiRect = this.getGui().getBoundingClientRect();\n var colorDialog = this.createBean(new 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.isPickerDisplayed = true;\n addCssClass(colorDialog.getGui(), 'ag-color-dialog');\n var colorPanel = this.createBean(new AgColorPanel({ picker: this }));\n colorPanel.addDestroyFunc(function () {\n if (colorDialog.isAlive()) {\n _this.destroyBean(colorDialog);\n }\n });\n colorDialog.setParentComponent(this);\n colorDialog.setBodyComponent(colorPanel);\n colorPanel.setValue(this.getValue());\n colorDialog.addDestroyFunc(function () {\n // here we check if the picker was already being\n // destroyed to avoid a stack overflow\n if (!_this.isDestroyingPicker) {\n _this.isDestroyingPicker = true;\n if (colorPanel.isAlive()) {\n _this.destroyBean(colorPanel);\n }\n }\n else {\n _this.isDestroyingPicker = false;\n }\n if (_this.isAlive()) {\n _this.getFocusableElement().focus();\n }\n _this.isPickerDisplayed = false;\n });\n return colorDialog;\n };\n AgColorPicker.prototype.setValue = function (color) {\n if (this.value === color) {\n return this;\n }\n this.eDisplayField.style.backgroundColor = color;\n return _super.prototype.setValue.call(this, color);\n };\n AgColorPicker.prototype.getValue = function () {\n return this.value;\n };\n return AgColorPicker;\n}(AgPickerField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Y = (undefined && undefined.__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 AgInputNumberField = /** @class */ (function (_super) {\n __extends$1Y(AgInputNumberField, _super);\n function AgInputNumberField(config) {\n return _super.call(this, config, 'ag-number-field', 'number') || this;\n }\n AgInputNumberField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(this.eInput, 'blur', function () {\n var floatedValue = parseFloat(_this.eInput.value);\n var value = isNaN(floatedValue) ? '' : _this.normalizeValue(floatedValue.toString());\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 addOrRemoveAttribute(this.eInput, 'min', min);\n return this;\n };\n AgInputNumberField.prototype.setMax = function (max) {\n if (this.max === max) {\n return this;\n }\n this.max = max;\n addOrRemoveAttribute(this.eInput, 'max', max);\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 addOrRemoveAttribute(this.eInput, 'step', step);\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));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1Z = (undefined && undefined.__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 AgInputRange = /** @class */ (function (_super) {\n __extends$1Z(AgInputRange, _super);\n function AgInputRange(config) {\n return _super.call(this, config, 'ag-range-field', 'range') || 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 = isBrowserIE();\n var eventName = isIE ? 'change' : 'input';\n this.addManagedListener(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.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));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1_ = (undefined && undefined.__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$1P = (undefined && undefined.__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 AgList = /** @class */ (function (_super) {\n __extends$1_(AgList, _super);\n function AgList(cssIdentifier) {\n if (cssIdentifier === void 0) { cssIdentifier = 'default'; }\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.cssIdentifier = cssIdentifier;\n _this.options = [];\n _this.itemEls = [];\n return _this;\n }\n AgList.prototype.init = function () {\n this.addManagedListener(this.getGui(), 'keydown', this.handleKeyDown.bind(this));\n };\n AgList.prototype.handleKeyDown = function (e) {\n var key = e.keyCode;\n switch (key) {\n case KeyCode.ENTER:\n if (!this.highlightedEl) {\n this.setValue(this.getValue());\n }\n else {\n var pos = this.itemEls.indexOf(this.highlightedEl);\n this.setValueByIndex(pos);\n }\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n var isDown = key === KeyCode.DOWN;\n var itemToHighlight = void 0;\n e.preventDefault();\n if (!this.highlightedEl) {\n itemToHighlight = this.itemEls[isDown ? 0 : this.itemEls.length - 1];\n }\n else {\n var currentIdx = this.itemEls.indexOf(this.highlightedEl);\n var nextPos = currentIdx + (isDown ? 1 : -1);\n nextPos = Math.min(Math.max(nextPos, 0), this.itemEls.length - 1);\n itemToHighlight = this.itemEls[nextPos];\n }\n this.highlightItem(itemToHighlight);\n break;\n }\n };\n AgList.prototype.addOptions = function (listOptions) {\n var _this = this;\n listOptions.forEach(function (listOption) { return _this.addOption(listOption); });\n return this;\n };\n AgList.prototype.addOption = function (listOption) {\n var value = listOption.value, text = listOption.text;\n var sanitisedText = escapeString(text || value);\n this.options.push({ value: value, text: sanitisedText });\n this.renderOption(value, sanitisedText);\n return this;\n };\n AgList.prototype.renderOption = function (value, text) {\n var _this = this;\n var itemEl = document.createElement('div');\n itemEl.setAttribute('role', 'option');\n addCssClass(itemEl, 'ag-list-item');\n addCssClass(itemEl, \"ag-\" + this.cssIdentifier + \"-list-item\");\n itemEl.innerHTML = \"\" + text + \"\";\n itemEl.tabIndex = -1;\n this.itemEls.push(itemEl);\n this.addManagedListener(itemEl, 'mouseover', function () { return _this.highlightItem(itemEl); });\n this.addManagedListener(itemEl, 'mouseleave', function () { return _this.clearHighlighted(); });\n this.addManagedListener(itemEl, 'click', function () { return _this.setValue(value); });\n this.getGui().appendChild(itemEl);\n };\n AgList.prototype.setValue = function (value, silent) {\n if (this.value === value) {\n this.fireItemSelected();\n return this;\n }\n if (value == null) {\n this.reset();\n return this;\n }\n var idx = findIndex(this.options, function (option) { return option.value === value; });\n if (idx !== -1) {\n var option = this.options[idx];\n this.value = option.value;\n this.displayValue = option.text != null ? option.text : option.value;\n this.highlightItem(this.itemEls[idx]);\n if (!silent) {\n this.fireChangeEvent();\n }\n }\n return this;\n };\n AgList.prototype.setValueByIndex = function (idx) {\n return this.setValue(this.options[idx].value);\n };\n AgList.prototype.getValue = function () {\n return this.value;\n };\n AgList.prototype.getDisplayValue = function () {\n return this.displayValue;\n };\n AgList.prototype.refreshHighlighted = function () {\n var _this = this;\n this.clearHighlighted();\n var idx = findIndex(this.options, function (option) { return option.value === _this.value; });\n if (idx !== -1) {\n this.highlightItem(this.itemEls[idx]);\n }\n };\n AgList.prototype.reset = function () {\n this.value = null;\n this.displayValue = null;\n this.clearHighlighted();\n this.fireChangeEvent();\n };\n AgList.prototype.highlightItem = function (el) {\n if (!el.offsetParent) {\n return;\n }\n this.clearHighlighted();\n this.highlightedEl = el;\n addCssClass(this.highlightedEl, AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, true);\n this.highlightedEl.focus();\n };\n AgList.prototype.clearHighlighted = function () {\n if (!this.highlightedEl || !this.highlightedEl.offsetParent) {\n return;\n }\n removeCssClass(this.highlightedEl, AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, false);\n this.highlightedEl = null;\n };\n AgList.prototype.fireChangeEvent = function () {\n this.dispatchEvent({ type: AgAbstractField.EVENT_CHANGED });\n this.fireItemSelected();\n };\n AgList.prototype.fireItemSelected = function () {\n this.dispatchEvent({ type: AgList.EVENT_ITEM_SELECTED });\n };\n AgList.EVENT_ITEM_SELECTED = 'selectedItem';\n AgList.ACTIVE_CLASS = 'ag-active-item';\n __decorate$1P([\n PostConstruct\n ], AgList.prototype, \"init\", null);\n return AgList;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$1$ = (undefined && undefined.__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$1Q = (undefined && undefined.__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 AgSelect = /** @class */ (function (_super) {\n __extends$1$(AgSelect, _super);\n function AgSelect(config) {\n return _super.call(this, config, 'ag-select', 'smallDown', 'listbox') || this;\n }\n AgSelect.prototype.init = function () {\n var _this = this;\n this.listComponent = this.createBean(new AgList('select'));\n this.listComponent.setParentComponent(this);\n this.eWrapper.tabIndex = 0;\n this.listComponent.addManagedListener(this.listComponent, AgList.EVENT_ITEM_SELECTED, function () { if (_this.hideList) {\n _this.hideList();\n } });\n this.listComponent.addManagedListener(this.listComponent, AgAbstractField.EVENT_CHANGED, function () {\n _this.setValue(_this.listComponent.getValue(), false, true);\n if (_this.hideList) {\n _this.hideList();\n }\n });\n };\n AgSelect.prototype.showPicker = function () {\n var _this = this;\n var listGui = this.listComponent.getGui();\n var destroyMouseWheelFunc = this.addManagedListener(document.body, 'wheel', function (e) {\n if (!listGui.contains(e.target) && _this.hideList) {\n _this.hideList();\n }\n });\n var destroyFocusOutFunc = this.addManagedListener(listGui, 'focusout', function (e) {\n if (!listGui.contains(e.relatedTarget) && _this.hideList) {\n _this.hideList();\n }\n });\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: listGui,\n closeOnEsc: true,\n closedCallback: function () {\n _this.hideList = null;\n _this.isPickerDisplayed = false;\n destroyFocusOutFunc();\n destroyMouseWheelFunc();\n if (_this.isAlive()) {\n _this.getFocusableElement().focus();\n }\n }\n });\n if (addPopupRes) {\n this.hideList = addPopupRes.hideFunc;\n }\n this.isPickerDisplayed = true;\n setElementWidth(listGui, getAbsoluteWidth(this.eWrapper));\n listGui.style.maxHeight = getInnerHeight(this.popupService.getPopupParent()) + 'px';\n listGui.style.position = 'absolute';\n this.popupService.positionPopupUnderComponent({\n type: 'ag-list',\n eventSource: this.eWrapper,\n ePopup: listGui,\n keepWithinBounds: true\n });\n this.listComponent.refreshHighlighted();\n return this.listComponent;\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 this.listComponent.addOption(option);\n return this;\n };\n AgSelect.prototype.setValue = function (value, silent, fromPicker) {\n if (this.value === value) {\n return this;\n }\n if (!fromPicker) {\n this.listComponent.setValue(value, true);\n }\n var newValue = this.listComponent.getValue();\n if (newValue === this.getValue()) {\n return this;\n }\n this.eDisplayField.innerHTML = this.listComponent.getDisplayValue();\n return _super.prototype.setValue.call(this, value, silent);\n };\n AgSelect.prototype.destroy = function () {\n if (this.hideList) {\n this.hideList();\n }\n this.destroyBean(this.listComponent);\n _super.prototype.destroy.call(this);\n };\n __decorate$1Q([\n Autowired('popupService')\n ], AgSelect.prototype, \"popupService\", void 0);\n __decorate$1Q([\n PostConstruct\n ], AgSelect.prototype, \"init\", null);\n return AgSelect;\n}(AgPickerField));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$20 = (undefined && undefined.__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$1R = (undefined && undefined.__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 AgAngleSelect = /** @class */ (function (_super) {\n __extends$20(AgAngleSelect, _super);\n function AgAngleSelect(config) {\n var _this = _super.call(this, config, 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 (exists(this.getValue())) {\n this.eAngleValue.setValue(this.normalizeNegativeValue(this.getValue()).toString());\n }\n this.addManagedListener(this, 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.addManagedListener(this, 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.EVENT_CHANGED });\n }\n return this;\n };\n AgAngleSelect.prototype.setWidth = function (width) {\n setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAngleSelect.prototype.destroy = function () {\n this.dragService.removeDragSource(this.dragListener);\n _super.prototype.destroy.call(this);\n };\n AgAngleSelect.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\";\n __decorate$1R([\n RefSelector('eLabel')\n ], AgAngleSelect.prototype, \"eLabel\", void 0);\n __decorate$1R([\n RefSelector('eParentCircle')\n ], AgAngleSelect.prototype, \"eParentCircle\", void 0);\n __decorate$1R([\n RefSelector('eChildCircle')\n ], AgAngleSelect.prototype, \"eChildCircle\", void 0);\n __decorate$1R([\n RefSelector('eAngleValue')\n ], AgAngleSelect.prototype, \"eAngleValue\", void 0);\n __decorate$1R([\n Autowired('dragService')\n ], AgAngleSelect.prototype, \"dragService\", void 0);\n return AgAngleSelect;\n}(AgAbstractLabel));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$21 = (undefined && undefined.__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 AgToggleButton = /** @class */ (function (_super) {\n __extends$21(AgToggleButton, _super);\n function AgToggleButton(config) {\n return _super.call(this, config, 'ag-toggle-button') || this;\n }\n AgToggleButton.prototype.setValue = function (value, silent) {\n _super.prototype.setValue.call(this, value, silent);\n addOrRemoveCssClass(this.getGui(), 'ag-selected', this.getValue());\n return this;\n };\n return AgToggleButton;\n}(AgCheckbox));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$22 = (undefined && undefined.__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$1S = (undefined && undefined.__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};\n/**\n * For Master Detail, it is required to keep components between expanding & collapsing parents.\n * For example a user expands row A (and shows a detail grid for this row), then when row A\n * is closed, we want to keep the detail grid, so next time row A is expanded the detail grid\n * is showed with it's context intact, eg if user sorted in the detail grid, that sort should\n * still be applied after the detail grid is shown for the second time.\n */\nvar DetailRowCompCache = /** @class */ (function (_super) {\n __extends$22(DetailRowCompCache, _super);\n function DetailRowCompCache() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cacheItems = [];\n return _this;\n }\n DetailRowCompCache.prototype.postConstruct = function () {\n this.active = this.gridOptionsWrapper.isKeepDetailRows();\n this.maxCacheSize = this.gridOptionsWrapper.getKeepDetailRowsCount();\n };\n DetailRowCompCache.prototype.addOrDestroy = function (rowNode, pinned, comp) {\n // only accept detail rows\n var doNotUseCache = !this.active || !rowNode.detail;\n if (doNotUseCache) {\n this.destroyFullWidthRow(comp);\n return;\n }\n var item = this.getCacheItem(rowNode, true);\n // put the comp in the right location of the item.\n // we also destroy any previous comp - this should never happen\n // as the logic outside of this class shouldn't be adding same item to the\n // cache twice, however we cater for it in case in future releases code\n // outside of this class is changed and this could happen.\n switch (pinned) {\n case Constants.PINNED_LEFT:\n this.destroyFullWidthRow(item.left);\n item.left = comp;\n break;\n case Constants.PINNED_RIGHT:\n this.destroyFullWidthRow(item.right);\n item.right = comp;\n break;\n default:\n this.destroyFullWidthRow(item.center);\n item.center = comp;\n break;\n }\n this.cacheItems.sort(function (a, b) {\n return b.lastAccessedTime - a.lastAccessedTime;\n });\n this.purgeCache(this.maxCacheSize);\n };\n DetailRowCompCache.prototype.getCacheItem = function (rowNode, autoCreate) {\n if (autoCreate === void 0) { autoCreate = false; }\n var res = null;\n for (var i = 0; i < this.cacheItems.length; i++) {\n var item = this.cacheItems[i];\n if (item.rowNode === rowNode) {\n res = item;\n break;\n }\n }\n if (!res && autoCreate) {\n res = {\n rowNode: rowNode\n };\n this.cacheItems.push(res);\n }\n if (res) {\n this.stampCacheItem(res);\n }\n return res;\n };\n DetailRowCompCache.prototype.stampCacheItem = function (item) {\n item.lastAccessedTime = new Date().getTime();\n };\n DetailRowCompCache.prototype.destroyFullWidthRow = function (comp) {\n this.getContext().destroyBean(comp);\n };\n DetailRowCompCache.prototype.purgeCache = function (startIndex) {\n // delete all rows past the index of interest\n for (var i = startIndex; i < this.cacheItems.length; i++) {\n var item = this.cacheItems[i];\n this.destroyFullWidthRow(item.center);\n this.destroyFullWidthRow(item.left);\n this.destroyFullWidthRow(item.right);\n }\n // change the length of the array so it no longer contains the deleted items\n if (this.cacheItems.length > startIndex) {\n this.cacheItems.length = startIndex;\n }\n };\n DetailRowCompCache.prototype.get = function (rowNode, pinned) {\n if (!rowNode.detail) {\n return;\n }\n var item = this.getCacheItem(rowNode);\n var res;\n if (item) {\n switch (pinned) {\n case Constants.PINNED_LEFT:\n if (item.left) {\n res = item.left;\n item.left = undefined;\n }\n break;\n case Constants.PINNED_RIGHT:\n if (item.right) {\n res = item.right;\n item.right = undefined;\n }\n break;\n default:\n if (item.center) {\n res = item.center;\n item.center = undefined;\n }\n break;\n }\n }\n return res;\n };\n DetailRowCompCache.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.purgeCache(0);\n };\n __decorate$1S([\n PostConstruct\n ], DetailRowCompCache.prototype, \"postConstruct\", null);\n __decorate$1S([\n PreDestroy\n ], DetailRowCompCache.prototype, \"destroy\", null);\n DetailRowCompCache = __decorate$1S([\n Bean('detailRowCompCache')\n ], DetailRowCompCache);\n return DetailRowCompCache;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$23 = (undefined && undefined.__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$1T = (undefined && undefined.__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 RowPositionUtils = /** @class */ (function (_super) {\n __extends$23(RowPositionUtils, _super);\n function RowPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RowPositionUtils.prototype.getFirstRow = function () {\n var rowIndex = 0;\n var rowPinned;\n if (this.pinnedRowModel.getPinnedTopRowCount()) {\n rowPinned = Constants.PINNED_TOP;\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageFirstRow();\n }\n else if (this.pinnedRowModel.getPinnedBottomRowCount()) {\n rowPinned = Constants.PINNED_BOTTOM;\n }\n return rowPinned === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };\n };\n RowPositionUtils.prototype.getLastRow = function () {\n var rowIndex;\n var rowPinned = null;\n var pinnedBottomCount = this.pinnedRowModel.getPinnedBottomRowCount();\n var pinnedTopCount = this.pinnedRowModel.getPinnedTopRowCount();\n if (pinnedBottomCount) {\n rowPinned = Constants.PINNED_BOTTOM;\n rowIndex = pinnedBottomCount - 1;\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageLastRow();\n }\n else if (pinnedTopCount) {\n rowPinned = Constants.PINNED_TOP;\n rowIndex = pinnedTopCount - 1;\n }\n return rowIndex === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };\n };\n RowPositionUtils.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n RowPositionUtils.prototype.sameRow = function (rowA, rowB) {\n // if both missing\n if (!rowA && !rowB) {\n return true;\n }\n // if only one missing\n if ((rowA && !rowB) || (!rowA && rowB)) {\n return false;\n }\n // otherwise compare (use == to compare rowPinned because it can be null or undefined)\n return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;\n };\n // tests if this row selection is before the other row selection\n RowPositionUtils.prototype.before = function (rowA, rowB) {\n switch (rowA.rowPinned) {\n case Constants.PINNED_TOP:\n // we we are floating top, and other isn't, then we are always before\n if (rowB.rowPinned !== Constants.PINNED_TOP) {\n return true;\n }\n break;\n case Constants.PINNED_BOTTOM:\n // if we are floating bottom, and the other isn't, then we are never before\n if (rowB.rowPinned !== Constants.PINNED_BOTTOM) {\n return false;\n }\n break;\n default:\n // if we are not floating, but the other one is floating...\n if (exists(rowB.rowPinned)) {\n return rowB.rowPinned !== Constants.PINNED_TOP;\n }\n break;\n }\n return rowA.rowIndex < rowB.rowIndex;\n };\n __decorate$1T([\n Autowired('rowModel')\n ], RowPositionUtils.prototype, \"rowModel\", void 0);\n __decorate$1T([\n Autowired('pinnedRowModel')\n ], RowPositionUtils.prototype, \"pinnedRowModel\", void 0);\n __decorate$1T([\n Autowired('paginationProxy')\n ], RowPositionUtils.prototype, \"paginationProxy\", void 0);\n RowPositionUtils = __decorate$1T([\n Bean('rowPositionUtils')\n ], RowPositionUtils);\n return RowPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$24 = (undefined && undefined.__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$1U = (undefined && undefined.__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 CellPositionUtils = /** @class */ (function (_super) {\n __extends$24(CellPositionUtils, _super);\n function CellPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CellPositionUtils.prototype.createId = function (cellPosition) {\n var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;\n return this.createIdFromValues(rowIndex, column, rowPinned);\n };\n CellPositionUtils.prototype.createIdFromValues = function (rowIndex, column, rowPinned) {\n return rowIndex + \".\" + (rowPinned == null ? 'null' : rowPinned) + \".\" + column.getId();\n };\n CellPositionUtils.prototype.equals = function (cellA, cellB) {\n var colsMatch = cellA.column === cellB.column;\n var floatingMatch = cellA.rowPinned === cellB.rowPinned;\n var indexMatch = cellA.rowIndex === cellB.rowIndex;\n return colsMatch && floatingMatch && indexMatch;\n };\n CellPositionUtils = __decorate$1U([\n Bean('cellPositionUtils')\n ], CellPositionUtils);\n return CellPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$25 = (undefined && undefined.__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$1V = (undefined && undefined.__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 PinnedRowModel = /** @class */ (function (_super) {\n __extends$25(PinnedRowModel, _super);\n function PinnedRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedRowModel.prototype.init = function () {\n this.setPinnedTopRowData(this.gridOptionsWrapper.getPinnedTopRowData());\n this.setPinnedBottomRowData(this.gridOptionsWrapper.getPinnedBottomRowData());\n };\n PinnedRowModel.prototype.isEmpty = function (floating) {\n var rows = floating === Constants.PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;\n return missingOrEmpty(rows);\n };\n PinnedRowModel.prototype.isRowsToRender = function (floating) {\n return !this.isEmpty(floating);\n };\n PinnedRowModel.prototype.getRowAtPixel = function (pixel, floating) {\n var rows = floating === Constants.PINNED_TOP ? this.pinnedTopRows : this.pinnedBottomRows;\n if (missingOrEmpty(rows)) {\n return 0; // this should never happen, just in case, 0 is graceful failure\n }\n for (var i = 0; i < rows.length; i++) {\n var rowNode = rows[i];\n var rowTopPixel = rowNode.rowTop + rowNode.rowHeight - 1;\n // only need to range check against the top pixel, as we are going through the list\n // in order, first row to hit the pixel wins\n if (rowTopPixel >= pixel) {\n return i;\n }\n }\n return rows.length - 1;\n };\n PinnedRowModel.prototype.setPinnedTopRowData = function (rowData) {\n this.pinnedTopRows = this.createNodesFromData(rowData, true);\n var event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n PinnedRowModel.prototype.setPinnedBottomRowData = function (rowData) {\n this.pinnedBottomRows = this.createNodesFromData(rowData, false);\n var event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n PinnedRowModel.prototype.createNodesFromData = function (allData, isTop) {\n var _this = this;\n var rowNodes = [];\n if (allData) {\n var nextRowTop_1 = 0;\n allData.forEach(function (dataItem, index) {\n var rowNode = new RowNode();\n _this.context.createBean(rowNode);\n rowNode.data = dataItem;\n var idPrefix = isTop ? RowNode.ID_PREFIX_TOP_PINNED : RowNode.ID_PREFIX_BOTTOM_PINNED;\n rowNode.id = idPrefix + index;\n rowNode.rowPinned = isTop ? Constants.PINNED_TOP : Constants.PINNED_BOTTOM;\n rowNode.setRowTop(nextRowTop_1);\n rowNode.setRowHeight(_this.gridOptionsWrapper.getRowHeightForNode(rowNode).height);\n rowNode.setRowIndex(index);\n nextRowTop_1 += rowNode.rowHeight;\n rowNodes.push(rowNode);\n });\n }\n return rowNodes;\n };\n PinnedRowModel.prototype.getPinnedTopRowData = function () {\n return this.pinnedTopRows;\n };\n PinnedRowModel.prototype.getPinnedBottomRowData = function () {\n return this.pinnedBottomRows;\n };\n PinnedRowModel.prototype.getPinnedTopTotalHeight = function () {\n return this.getTotalHeight(this.pinnedTopRows);\n };\n PinnedRowModel.prototype.getPinnedTopRowCount = function () {\n return this.pinnedTopRows ? this.pinnedTopRows.length : 0;\n };\n PinnedRowModel.prototype.getPinnedBottomRowCount = function () {\n return this.pinnedBottomRows ? this.pinnedBottomRows.length : 0;\n };\n PinnedRowModel.prototype.getPinnedTopRow = function (index) {\n return this.pinnedTopRows[index];\n };\n PinnedRowModel.prototype.getPinnedBottomRow = function (index) {\n return this.pinnedBottomRows[index];\n };\n PinnedRowModel.prototype.forEachPinnedTopRow = function (callback) {\n if (missingOrEmpty(this.pinnedTopRows)) {\n return;\n }\n this.pinnedTopRows.forEach(callback);\n };\n PinnedRowModel.prototype.forEachPinnedBottomRow = function (callback) {\n if (missingOrEmpty(this.pinnedBottomRows)) {\n return;\n }\n this.pinnedBottomRows.forEach(callback);\n };\n PinnedRowModel.prototype.getPinnedBottomTotalHeight = function () {\n return this.getTotalHeight(this.pinnedBottomRows);\n };\n PinnedRowModel.prototype.getTotalHeight = function (rowNodes) {\n if (!rowNodes || rowNodes.length === 0) {\n return 0;\n }\n var lastNode = last(rowNodes);\n return lastNode.rowTop + lastNode.rowHeight;\n };\n __decorate$1V([\n Autowired('columnApi')\n ], PinnedRowModel.prototype, \"columnApi\", void 0);\n __decorate$1V([\n Autowired('gridApi')\n ], PinnedRowModel.prototype, \"gridApi\", void 0);\n __decorate$1V([\n PostConstruct\n ], PinnedRowModel.prototype, \"init\", null);\n PinnedRowModel = __decorate$1V([\n Bean('pinnedRowModel')\n ], PinnedRowModel);\n return PinnedRowModel;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$26 = (undefined && undefined.__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 UndoRedoAction = /** @class */ (function () {\n function UndoRedoAction(cellValueChanges) {\n this.cellValueChanges = cellValueChanges;\n }\n return UndoRedoAction;\n}());\nvar FillUndoRedoAction = /** @class */ (function (_super) {\n __extends$26(FillUndoRedoAction, _super);\n function FillUndoRedoAction(cellValueChanges, initialRange, finalRange) {\n var _this = _super.call(this, cellValueChanges) || this;\n _this.initialRange = initialRange;\n _this.finalRange = finalRange;\n return _this;\n }\n return FillUndoRedoAction;\n}(UndoRedoAction));\nvar UndoRedoStack = /** @class */ (function () {\n function UndoRedoStack(maxStackSize) {\n this.actionStack = [];\n this.maxStackSize = maxStackSize ? maxStackSize : UndoRedoStack.DEFAULT_STACK_SIZE;\n this.actionStack = new Array(this.maxStackSize);\n }\n UndoRedoStack.prototype.pop = function () {\n return this.actionStack.pop();\n };\n UndoRedoStack.prototype.push = function (item) {\n var shouldAddActions = item.cellValueChanges && item.cellValueChanges.length > 0;\n if (!shouldAddActions) {\n return;\n }\n if (this.actionStack.length === this.maxStackSize) {\n this.actionStack.shift();\n }\n this.actionStack.push(item);\n };\n UndoRedoStack.prototype.clear = function () {\n this.actionStack = [];\n };\n UndoRedoStack.prototype.getCurrentStackSize = function () {\n return this.actionStack.length;\n };\n UndoRedoStack.DEFAULT_STACK_SIZE = 10;\n return UndoRedoStack;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$27 = (undefined && undefined.__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$1W = (undefined && undefined.__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 UndoRedoService = /** @class */ (function (_super) {\n __extends$27(UndoRedoService, _super);\n function UndoRedoService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellValueChanges = [];\n _this.isCellEditing = false;\n _this.isRowEditing = false;\n _this.isPasting = false;\n _this.isFilling = false;\n _this.onCellValueChanged = function (event) {\n var shouldCaptureAction = _this.isCellEditing || _this.isRowEditing || _this.isPasting || _this.isFilling;\n if (!shouldCaptureAction) {\n return;\n }\n var rowPinned = event.rowPinned, rowIndex = event.rowIndex, column = event.column, oldValue = event.oldValue, value = event.value;\n var cellValueChange = {\n rowPinned: rowPinned,\n rowIndex: rowIndex,\n columnId: column.getColId(),\n newValue: value,\n oldValue: oldValue\n };\n _this.cellValueChanges.push(cellValueChange);\n };\n _this.clearStacks = function () {\n _this.undoStack.clear();\n _this.redoStack.clear();\n };\n return _this;\n }\n UndoRedoService.prototype.init = function () {\n if (!this.gridOptionsWrapper.isUndoRedoCellEditing()) {\n return;\n }\n var undoRedoLimit = this.gridOptionsWrapper.getUndoRedoCellEditingLimit();\n if (undoRedoLimit <= 0) {\n return;\n }\n this.undoStack = new UndoRedoStack(undoRedoLimit);\n this.redoStack = new UndoRedoStack(undoRedoLimit);\n this.addRowEditingListeners();\n this.addCellEditingListeners();\n this.addPasteListeners();\n this.addFillListeners();\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged);\n // undo / redo is restricted to actual editing so we clear the stacks when other operations are\n // performed that change the order of the row / cols.\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DRAG_END, this.clearStacks);\n };\n UndoRedoService.prototype.getCurrentUndoStackSize = function () {\n return this.undoStack ? this.undoStack.getCurrentStackSize() : 0;\n };\n UndoRedoService.prototype.getCurrentRedoStackSize = function () {\n return this.redoStack ? this.redoStack.getCurrentStackSize() : 0;\n };\n UndoRedoService.prototype.undo = function () {\n if (!this.undoStack) {\n return;\n }\n var undoAction = this.undoStack.pop();\n if (!undoAction || !undoAction.cellValueChanges) {\n return;\n }\n this.processAction(undoAction, function (cellValueChange) { return cellValueChange.oldValue; });\n if (undoAction instanceof FillUndoRedoAction) {\n this.processRangeAndCellFocus(undoAction.cellValueChanges, undoAction.initialRange);\n }\n else {\n this.processRangeAndCellFocus(undoAction.cellValueChanges);\n }\n this.redoStack.push(undoAction);\n };\n UndoRedoService.prototype.redo = function () {\n if (!this.redoStack) {\n return;\n }\n var redoAction = this.redoStack.pop();\n if (!redoAction || !redoAction.cellValueChanges) {\n return;\n }\n this.processAction(redoAction, function (cellValueChange) { return cellValueChange.newValue; });\n if (redoAction instanceof FillUndoRedoAction) {\n this.processRangeAndCellFocus(redoAction.cellValueChanges, redoAction.finalRange);\n }\n else {\n this.processRangeAndCellFocus(redoAction.cellValueChanges);\n }\n this.undoStack.push(redoAction);\n };\n UndoRedoService.prototype.processAction = function (action, valueExtractor) {\n var _this = this;\n action.cellValueChanges.forEach(function (cellValueChange) {\n var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned, columnId = cellValueChange.columnId;\n var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };\n var currentRow = _this.getRowNode(rowPosition);\n // checks if the row has been filtered out\n if (!currentRow.displayed) {\n return;\n }\n currentRow.setDataValue(columnId, valueExtractor(cellValueChange));\n });\n };\n UndoRedoService.prototype.processRangeAndCellFocus = function (cellValueChanges, range) {\n var lastFocusedCell;\n if (range) {\n var startRow = range.startRow;\n var endRow = range.endRow;\n lastFocusedCell = {\n rowPinned: startRow.rowPinned,\n rowIndex: startRow.rowIndex,\n columnId: range.startColumn.getColId()\n };\n this.setLastFocusedCell(lastFocusedCell);\n var cellRangeParams = {\n rowStartIndex: startRow.rowIndex,\n rowStartPinned: startRow.rowPinned,\n rowEndIndex: endRow.rowIndex,\n rowEndPinned: endRow.rowPinned,\n columnStart: range.startColumn,\n columns: range.columns\n };\n this.gridApi.addCellRange(cellRangeParams);\n return;\n }\n var cellValueChange = cellValueChanges[0];\n var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned;\n var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };\n var row = this.getRowNode(rowPosition);\n lastFocusedCell = {\n rowPinned: cellValueChange.rowPinned,\n rowIndex: row.rowIndex,\n columnId: cellValueChange.columnId\n };\n this.setLastFocusedCell(lastFocusedCell);\n };\n UndoRedoService.prototype.setLastFocusedCell = function (lastFocusedCell) {\n var rowIndex = lastFocusedCell.rowIndex, columnId = lastFocusedCell.columnId, rowPinned = lastFocusedCell.rowPinned;\n this.gridApi.ensureIndexVisible(rowIndex);\n this.gridApi.ensureColumnVisible(columnId);\n if (ModuleRegistry.isRegistered(exports.ModuleNames.RangeSelectionModule)) {\n this.gridApi.clearRangeSelection();\n }\n this.focusController.setFocusedCell(rowIndex, columnId, rowPinned, true);\n };\n UndoRedoService.prototype.addRowEditingListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STARTED, function () {\n _this.isRowEditing = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STOPPED, function () {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n _this.isRowEditing = false;\n });\n };\n UndoRedoService.prototype.addCellEditingListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STARTED, function () {\n _this.isCellEditing = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STOPPED, function () {\n _this.isCellEditing = false;\n var shouldPushAction = !_this.isRowEditing && !_this.isPasting && !_this.isFilling;\n if (shouldPushAction) {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n }\n });\n };\n UndoRedoService.prototype.addPasteListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_START, function () {\n _this.isPasting = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_END, function () {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n _this.isPasting = false;\n });\n };\n UndoRedoService.prototype.addFillListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_FILL_START, function () {\n _this.isFilling = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_FILL_END, function (event) {\n var action = new FillUndoRedoAction(_this.cellValueChanges, event.initialRange, event.finalRange);\n _this.pushActionsToUndoStack(action);\n _this.isFilling = false;\n });\n };\n UndoRedoService.prototype.pushActionsToUndoStack = function (action) {\n this.undoStack.push(action);\n this.cellValueChanges = [];\n this.redoStack.clear();\n };\n UndoRedoService.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case Constants.PINNED_TOP:\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case Constants.PINNED_BOTTOM:\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n __decorate$1W([\n Autowired('focusController')\n ], UndoRedoService.prototype, \"focusController\", void 0);\n __decorate$1W([\n Autowired('gridApi')\n ], UndoRedoService.prototype, \"gridApi\", void 0);\n __decorate$1W([\n Autowired('rowModel')\n ], UndoRedoService.prototype, \"rowModel\", void 0);\n __decorate$1W([\n Autowired('pinnedRowModel')\n ], UndoRedoService.prototype, \"pinnedRowModel\", void 0);\n __decorate$1W([\n PostConstruct\n ], UndoRedoService.prototype, \"init\", null);\n UndoRedoService = __decorate$1W([\n Bean('undoRedoService')\n ], UndoRedoService);\n return UndoRedoService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$28 = (undefined && undefined.__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$1X = (undefined && undefined.__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 AgStackComponentsRegistry = /** @class */ (function (_super) {\n __extends$28(AgStackComponentsRegistry, _super);\n function AgStackComponentsRegistry() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.componentsMappedByName = {};\n return _this;\n }\n AgStackComponentsRegistry.prototype.setupComponents = function (components) {\n var _this = this;\n if (components) {\n components.forEach(function (componentMeta) { return _this.addComponent(componentMeta); });\n }\n };\n AgStackComponentsRegistry.prototype.addComponent = function (componentMeta) {\n // get name of the class as a string\n // let className = getNameOfClass(ComponentClass);\n // insert a dash after every capital letter\n // let classEscaped = className.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n var classEscaped = componentMeta.componentName.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n // put all to upper case\n var classUpperCase = classEscaped.toUpperCase();\n // finally store\n this.componentsMappedByName[classUpperCase] = componentMeta.componentClass;\n };\n AgStackComponentsRegistry.prototype.getComponentClass = function (htmlTag) {\n return this.componentsMappedByName[htmlTag];\n };\n AgStackComponentsRegistry = __decorate$1X([\n Bean('agStackComponentsRegistry')\n ], AgStackComponentsRegistry);\n return AgStackComponentsRegistry;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$29 = (undefined && undefined.__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$1Y = (undefined && undefined.__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 HeaderPositionUtils = /** @class */ (function (_super) {\n __extends$29(HeaderPositionUtils, _super);\n function HeaderPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderPositionUtils.prototype.findHeader = function (focusedHeader, direction) {\n var nextColumn;\n var getGroupMethod;\n var getColMethod;\n if (focusedHeader.column instanceof ColumnGroup) {\n getGroupMethod = \"getDisplayedGroup\" + direction;\n nextColumn = this.columnController[getGroupMethod](focusedHeader.column);\n }\n else {\n getColMethod = \"getDisplayedCol\" + direction;\n nextColumn = this.columnController[getColMethod](focusedHeader.column);\n }\n if (nextColumn) {\n return {\n column: nextColumn,\n headerRowIndex: focusedHeader.headerRowIndex\n };\n }\n };\n HeaderPositionUtils.prototype.findColAtEdgeForHeaderRow = function (level, position) {\n var displayedColumns = this.columnController.getAllDisplayedColumns();\n var column = displayedColumns[position === 'start' ? 0 : displayedColumns.length - 1];\n if (!column) {\n return;\n }\n var childContainer = this.headerNavigationService.getHeaderContainer(column.getPinned());\n var headerRowComp = childContainer.getRowComps()[level];\n var type = headerRowComp && headerRowComp.getType();\n if (type == HeaderRowType.COLUMN_GROUP) {\n var columnGroup = this.columnController.getColumnGroupAtLevel(column, level);\n return {\n headerRowIndex: level,\n column: columnGroup\n };\n }\n return {\n headerRowIndex: !headerRowComp ? -1 : level,\n column: column\n };\n };\n __decorate$1Y([\n Autowired('columnController')\n ], HeaderPositionUtils.prototype, \"columnController\", void 0);\n __decorate$1Y([\n Autowired('headerNavigationService')\n ], HeaderPositionUtils.prototype, \"headerNavigationService\", void 0);\n HeaderPositionUtils = __decorate$1Y([\n Bean('headerPositionUtils')\n ], HeaderPositionUtils);\n return HeaderPositionUtils;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1Z = (undefined && undefined.__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 ColumnDefFactory = /** @class */ (function () {\n function ColumnDefFactory() {\n }\n ColumnDefFactory.prototype.buildColumnDefs = function (cols, rowGroupColumns, pivotColumns) {\n var _this = this;\n var res = [];\n var colGroupDefs = {};\n cols.forEach(function (col) {\n var colDef = _this.createDefFromColumn(col, rowGroupColumns, pivotColumns);\n var addToResult = true;\n var childDef = colDef;\n var pointer = col.getOriginalParent();\n while (pointer) {\n var parentDef = null;\n // we don't include padding groups, as the column groups provided\n // by application didn't have these. the whole point of padding groups\n // is to balance the column tree that the user provided.\n if (pointer.isPadding()) {\n pointer = pointer.getOriginalParent();\n continue;\n }\n // if colDef for this group already exists, use it\n var existingParentDef = colGroupDefs[pointer.getGroupId()];\n if (existingParentDef) {\n existingParentDef.children.push(childDef);\n // if we added to result, it would be the second time we did it\n addToResult = false;\n // we don't want to continue up the tree, as it has already been\n // done for this group\n break;\n }\n parentDef = _this.createDefFromGroup(pointer);\n if (parentDef) {\n parentDef.children = [childDef];\n colGroupDefs[parentDef.groupId] = parentDef;\n childDef = parentDef;\n pointer = pointer.getOriginalParent();\n }\n }\n if (addToResult) {\n res.push(childDef);\n }\n });\n return res;\n };\n ColumnDefFactory.prototype.createDefFromGroup = function (group) {\n var defCloned = deepCloneDefinition(group.getColGroupDef(), ['children']);\n if (defCloned) {\n defCloned.groupId = group.getGroupId();\n }\n return defCloned;\n };\n ColumnDefFactory.prototype.createDefFromColumn = function (col, rowGroupColumns, pivotColumns) {\n var colDefCloned = deepCloneDefinition(col.getColDef());\n colDefCloned.colId = col.getColId();\n colDefCloned.width = col.getActualWidth();\n colDefCloned.rowGroup = col.isRowGroupActive();\n colDefCloned.rowGroupIndex = col.isRowGroupActive() ? rowGroupColumns.indexOf(col) : null;\n colDefCloned.pivot = col.isPivotActive();\n colDefCloned.pivotIndex = col.isPivotActive() ? pivotColumns.indexOf(col) : null;\n colDefCloned.aggFunc = col.isValueActive() ? col.getAggFunc() : null;\n colDefCloned.hide = col.isVisible() ? undefined : true;\n colDefCloned.pinned = col.isPinned() ? col.getPinned() : null;\n colDefCloned.sort = col.getSort() ? col.getSort() : null;\n colDefCloned.sortIndex = col.getSortIndex() != null ? col.getSortIndex() : null;\n return colDefCloned;\n };\n ColumnDefFactory = __decorate$1Z([\n Bean('columnDefFactory')\n ], ColumnDefFactory);\n return ColumnDefFactory;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$1_ = (undefined && undefined.__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};\n/**\n * Common logic for RowComp and AutoHeightCalculator\n */\nvar RowCssClassCalculator = /** @class */ (function () {\n function RowCssClassCalculator() {\n }\n RowCssClassCalculator.prototype.getInitialRowClasses = function (params) {\n var classes = [];\n if (exists(params.extraCssClass)) {\n classes.push(params.extraCssClass);\n }\n classes.push('ag-row');\n classes.push(params.rowFocused ? 'ag-row-focus' : 'ag-row-no-focus');\n if (params.fadeRowIn) {\n classes.push('ag-opacity-zero');\n }\n classes.push(params.rowIsEven ? 'ag-row-even' : 'ag-row-odd');\n if (params.rowNode.isRowPinned()) {\n classes.push('ag-row-pinned');\n }\n if (params.rowNode.isSelected()) {\n classes.push('ag-row-selected');\n }\n if (params.rowNode.footer) {\n classes.push('ag-row-footer');\n }\n classes.push('ag-row-level-' + params.rowLevel);\n if (params.rowNode.stub) {\n classes.push('ag-row-loading');\n }\n if (params.fullWidthRow) {\n classes.push('ag-full-width-row');\n }\n if (params.expandable) {\n classes.push('ag-row-group');\n classes.push(params.rowNode.expanded ? 'ag-row-group-expanded' : 'ag-row-group-contracted');\n }\n if (params.rowNode.dragging) {\n classes.push('ag-row-dragging');\n }\n pushAll(classes, this.processClassesFromGridOptions(params.rowNode, params.scope));\n pushAll(classes, this.preProcessRowClassRules(params.rowNode, params.scope));\n // we use absolute position unless we are doing print layout\n classes.push(params.printLayout ? 'ag-row-position-relative' : 'ag-row-position-absolute');\n if (params.firstRowOnPage) {\n classes.push('ag-row-first');\n }\n if (params.lastRowOnPage) {\n classes.push('ag-row-last');\n }\n if (params.fullWidthRow) {\n if (params.pinned === Constants.PINNED_LEFT) {\n classes.push('ag-cell-last-left-pinned');\n }\n if (params.pinned === Constants.PINNED_RIGHT) {\n classes.push('ag-cell-first-right-pinned');\n }\n }\n return classes;\n };\n RowCssClassCalculator.prototype.processClassesFromGridOptions = function (rowNode, scope) {\n var res = [];\n var process = function (rowCls) {\n if (typeof rowCls === 'string') {\n res.push(rowCls);\n }\n else if (Array.isArray(rowCls)) {\n rowCls.forEach(function (e) { return res.push(e); });\n }\n };\n // part 1 - rowClass\n var rowClass = this.gridOptionsWrapper.getRowClass();\n if (rowClass) {\n if (typeof rowClass === 'function') {\n console.warn('AG Grid: rowClass should not be a function, please use getRowClass instead');\n return [];\n }\n process(rowClass);\n }\n // part 2 - rowClassFunc\n var rowClassFunc = this.gridOptionsWrapper.getRowClassFunc();\n if (rowClassFunc) {\n var params = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex,\n $scope: scope,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n };\n var rowClassFuncResult = rowClassFunc(params);\n process(rowClassFuncResult);\n }\n return res;\n };\n RowCssClassCalculator.prototype.preProcessRowClassRules = function (rowNode, scope) {\n var res = [];\n this.processRowClassRules(rowNode, scope, function (className) {\n res.push(className);\n }, function (className) {\n // not catered for, if creating, no need\n // to remove class as it was never there\n });\n return res;\n };\n RowCssClassCalculator.prototype.processRowClassRules = function (rowNode, scope, onApplicableClass, onNotApplicableClass) {\n var rowClassParams = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n $scope: scope,\n context: this.gridOptionsWrapper.getContext()\n };\n this.stylingService.processClassRules(this.gridOptionsWrapper.rowClassRules(), rowClassParams, onApplicableClass, onNotApplicableClass);\n };\n RowCssClassCalculator.prototype.calculateRowLevel = function (rowNode) {\n if (rowNode.group) {\n return rowNode.level;\n }\n // if a leaf, and a parent exists, put a level of the parent, else put level of 0 for top level item\n return rowNode.parent ? (rowNode.parent.level + 1) : 0;\n };\n __decorate$1_([\n Autowired('stylingService')\n ], RowCssClassCalculator.prototype, \"stylingService\", void 0);\n __decorate$1_([\n Autowired('gridOptionsWrapper')\n ], RowCssClassCalculator.prototype, \"gridOptionsWrapper\", void 0);\n RowCssClassCalculator = __decorate$1_([\n Bean('rowCssClassCalculator')\n ], RowCssClassCalculator);\n return RowCssClassCalculator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2a = (undefined && undefined.__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 RowNodeBlock = /** @class */ (function (_super) {\n __extends$2a(RowNodeBlock, _super);\n function RowNodeBlock(id) {\n var _this = _super.call(this) || this;\n _this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n _this.version = 0;\n _this.id = id;\n return _this;\n }\n RowNodeBlock.prototype.getId = function () {\n return this.id;\n };\n RowNodeBlock.prototype.load = function () {\n this.state = RowNodeBlock.STATE_LOADING;\n this.loadFromDatasource();\n };\n RowNodeBlock.prototype.getVersion = function () {\n return this.version;\n };\n RowNodeBlock.prototype.setStateWaitingToLoad = function () {\n // in case any current loads in progress, this will have their results ignored\n this.version++;\n this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n };\n RowNodeBlock.prototype.getState = function () {\n return this.state;\n };\n RowNodeBlock.prototype.pageLoadFailed = function (version) {\n var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_FAILED;\n this.processServerFail();\n }\n this.dispatchLoadCompleted(false);\n };\n RowNodeBlock.prototype.success = function (version, params) {\n this.successCommon(version, params);\n };\n RowNodeBlock.prototype.pageLoaded = function (version, rows, lastRow) {\n this.successCommon(version, { rowData: rows, rowCount: lastRow });\n };\n RowNodeBlock.prototype.isRequestMostRecentAndLive = function (version) {\n // thisIsMostRecentRequest - if block was refreshed, then another request\n // could of been sent after this one.\n var thisIsMostRecentRequest = version === this.version;\n // weAreNotDestroyed - if InfiniteStore is purged, then blocks are destroyed\n // and new blocks created. so data loads of old blocks are discarded.\n var weAreNotDestroyed = this.isAlive();\n return thisIsMostRecentRequest && weAreNotDestroyed;\n };\n RowNodeBlock.prototype.successCommon = function (version, params) {\n // need to dispatch load complete before processing the data, as PaginationComp checks\n // RowNodeBlockLoader to see if it is still loading, so the RowNodeBlockLoader needs to\n // be updated first (via LoadComplete event) before PaginationComp updates (via processServerResult method)\n this.dispatchLoadCompleted();\n var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_LOADED;\n this.processServerResult(params);\n }\n };\n RowNodeBlock.prototype.dispatchLoadCompleted = function (success) {\n if (success === void 0) { success = true; }\n // we fire event regardless of processing data or now, as we want\n // the concurrentLoadRequests count to be reduced in BlockLoader\n var event = {\n type: RowNodeBlock.EVENT_LOAD_COMPLETE,\n success: success,\n block: this\n };\n this.dispatchEvent(event);\n };\n RowNodeBlock.EVENT_LOAD_COMPLETE = 'loadComplete';\n RowNodeBlock.STATE_WAITING_TO_LOAD = 'needsLoading';\n RowNodeBlock.STATE_LOADING = 'loading';\n RowNodeBlock.STATE_LOADED = 'loaded';\n RowNodeBlock.STATE_FAILED = 'failed';\n return RowNodeBlock;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2b = (undefined && undefined.__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$1$ = (undefined && undefined.__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 __param$a = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RowNodeBlockLoader = /** @class */ (function (_super) {\n __extends$2b(RowNodeBlockLoader, _super);\n function RowNodeBlockLoader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.activeBlockLoadsCount = 0;\n _this.blocks = [];\n _this.active = true;\n return _this;\n }\n RowNodeBlockLoader_1 = RowNodeBlockLoader;\n RowNodeBlockLoader.prototype.postConstruct = function () {\n this.maxConcurrentRequests = this.gridOptionsWrapper.getMaxConcurrentDatasourceRequests();\n var blockLoadDebounceMillis = this.gridOptionsWrapper.getBlockLoadDebounceMillis();\n if (blockLoadDebounceMillis && blockLoadDebounceMillis > 0) {\n this.checkBlockToLoadDebounce = _.debounce(this.performCheckBlocksToLoad.bind(this), blockLoadDebounceMillis);\n }\n };\n RowNodeBlockLoader.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('RowNodeBlockLoader');\n };\n RowNodeBlockLoader.prototype.addBlock = function (block) {\n this.blocks.push(block);\n // note that we do not remove this listener when removing the block. this is because the\n // cache can get destroyed (and containing blocks) when a block is loading. however the loading block\n // is still counted as an active loading block and we must decrement activeBlockLoadsCount when it finishes.\n block.addEventListener(RowNodeBlock.EVENT_LOAD_COMPLETE, this.loadComplete.bind(this));\n this.checkBlockToLoad();\n };\n RowNodeBlockLoader.prototype.removeBlock = function (block) {\n _.removeFromArray(this.blocks, block);\n };\n RowNodeBlockLoader.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.active = false;\n };\n RowNodeBlockLoader.prototype.loadComplete = function () {\n this.activeBlockLoadsCount--;\n this.checkBlockToLoad();\n if (this.activeBlockLoadsCount == 0) {\n this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADER_FINISHED_EVENT });\n }\n };\n RowNodeBlockLoader.prototype.checkBlockToLoad = function () {\n if (this.checkBlockToLoadDebounce) {\n this.checkBlockToLoadDebounce();\n }\n else {\n this.performCheckBlocksToLoad();\n }\n };\n RowNodeBlockLoader.prototype.performCheckBlocksToLoad = function () {\n if (!this.active) {\n return;\n }\n this.printCacheStatus();\n if (this.maxConcurrentRequests != null && this.activeBlockLoadsCount >= this.maxConcurrentRequests) {\n this.logger.log(\"checkBlockToLoad: max loads exceeded\");\n return;\n }\n var blockToLoad = null;\n this.blocks.forEach(function (block) {\n if (block.getState() === RowNodeBlock.STATE_WAITING_TO_LOAD) {\n blockToLoad = block;\n }\n });\n if (blockToLoad) {\n blockToLoad.load();\n this.activeBlockLoadsCount++;\n this.printCacheStatus();\n }\n };\n RowNodeBlockLoader.prototype.getBlockState = function () {\n var result = {};\n this.blocks.forEach(function (block) {\n var _a = block.getBlockStateJson(), id = _a.id, state = _a.state;\n result[id] = state;\n });\n return result;\n };\n RowNodeBlockLoader.prototype.printCacheStatus = function () {\n if (this.logger.isLogging()) {\n this.logger.log(\"printCacheStatus: activePageLoadsCount = \" + this.activeBlockLoadsCount + \",\"\n + (\" blocks = \" + JSON.stringify(this.getBlockState())));\n }\n };\n RowNodeBlockLoader.prototype.isLoading = function () {\n return this.activeBlockLoadsCount > 0;\n };\n var RowNodeBlockLoader_1;\n RowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';\n __decorate$1$([\n PostConstruct\n ], RowNodeBlockLoader.prototype, \"postConstruct\", null);\n __decorate$1$([\n __param$a(0, Qualifier('loggerFactory'))\n ], RowNodeBlockLoader.prototype, \"setBeans\", null);\n RowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate$1$([\n Bean('rowNodeBlockLoader')\n ], RowNodeBlockLoader);\n return RowNodeBlockLoader;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __decorate$20 = (undefined && undefined.__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};\n// this logic is used by both SSRM and CSRM\nvar RowNodeSorter = /** @class */ (function () {\n function RowNodeSorter() {\n }\n RowNodeSorter.prototype.doFullSort = function (rowNodes, sortOptions) {\n var mapper = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };\n var sortedRowNodes = rowNodes.map(mapper);\n sortedRowNodes.sort(this.compareRowNodes.bind(this, sortOptions));\n return sortedRowNodes.map(function (item) { return item.rowNode; });\n };\n RowNodeSorter.prototype.compareRowNodes = function (sortOptions, sortedNodeA, sortedNodeB) {\n var nodeA = sortedNodeA.rowNode;\n var nodeB = sortedNodeB.rowNode;\n // Iterate columns, return the first that doesn't match\n for (var i = 0, len = sortOptions.length; i < len; i++) {\n var sortOption = sortOptions[i];\n // let compared = compare(nodeA, nodeB, sortOption.column, sortOption.inverter === -1);\n var isInverted = sortOption.sort === Constants.SORT_DESC;\n var valueA = this.getValue(nodeA, sortOption.column);\n var valueB = this.getValue(nodeB, sortOption.column);\n var comparatorResult = void 0;\n var providedComparator = sortOption.column.getColDef().comparator;\n if (providedComparator) {\n //if comparator provided, use it\n comparatorResult = providedComparator(valueA, valueB, nodeA, nodeB, isInverted);\n }\n else {\n //otherwise do our own comparison\n comparatorResult = _.defaultComparator(valueA, valueB, this.gridOptionsWrapper.isAccentedSort());\n }\n if (comparatorResult !== 0) {\n return sortOption.sort === Constants.SORT_ASC ? comparatorResult : comparatorResult * -1;\n }\n }\n // All matched, we make is so that the original sort order is kept:\n return sortedNodeA.currentPos - sortedNodeB.currentPos;\n };\n RowNodeSorter.prototype.getValue = function (nodeA, column) {\n return this.valueService.getValue(column, nodeA);\n };\n __decorate$20([\n Autowired('gridOptionsWrapper')\n ], RowNodeSorter.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$20([\n Autowired('valueService')\n ], RowNodeSorter.prototype, \"valueService\", void 0);\n RowNodeSorter = __decorate$20([\n Bean('rowNodeSorter')\n ], RowNodeSorter);\n return RowNodeSorter;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2c = (undefined && undefined.__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$21 = (undefined && undefined.__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 ControllersService = /** @class */ (function (_super) {\n __extends$2c(ControllersService, _super);\n function ControllersService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ready = false;\n _this.readyCallbacks = [];\n return _this;\n }\n ControllersService.prototype.checkReady = function () {\n this.ready =\n this.gridCompCon != null\n && this.gridBodyCon != null\n && this.centerRowContainerCon != null\n && this.leftRowContainerCon != null\n && this.rightRowContainerCon != null\n && this.bottomCenterRowContainerCon != null\n && this.bottomLeftRowContainerCon != null\n && this.bottomRightRowContainerCon != null\n && this.topCenterRowContainerCon != null\n && this.topLeftRowContainerCon != null\n && this.topRightRowContainerCon != null\n && this.fakeHScrollCon != null\n && this.headerRootComp != null;\n if (this.ready) {\n var p_1 = this.createReadyParams();\n this.readyCallbacks.forEach(function (c) { return c(p_1); });\n this.readyCallbacks.length = 0;\n }\n };\n ControllersService.prototype.whenReady = function (callback) {\n if (this.ready) {\n callback(this.createReadyParams());\n }\n else {\n this.readyCallbacks.push(callback);\n }\n };\n ControllersService.prototype.createReadyParams = function () {\n return {\n centerRowContainerCon: this.centerRowContainerCon,\n leftRowContainerCon: this.leftRowContainerCon,\n rightRowContainerCon: this.rightRowContainerCon,\n bottomCenterRowContainerCon: this.bottomCenterRowContainerCon,\n bottomLeftRowContainerCon: this.bottomLeftRowContainerCon,\n bottomRightRowContainerCon: this.bottomRightRowContainerCon,\n topCenterRowContainerCon: this.topCenterRowContainerCon,\n topLeftRowContainerCon: this.topLeftRowContainerCon,\n topRightRowContainerCon: this.topRightRowContainerCon,\n fakeHScrollCon: this.fakeHScrollCon,\n gridBodyCon: this.gridBodyCon,\n gridCompCon: this.gridCompCon,\n headerRootComp: this.headerRootComp,\n };\n };\n ControllersService.prototype.registerFakeHScrollCon = function (con) {\n this.fakeHScrollCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerHeaderRootComp = function (headerRootComp) {\n this.headerRootComp = headerRootComp;\n this.checkReady();\n };\n ControllersService.prototype.registerCenterRowContainerCon = function (con) {\n this.centerRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerLeftRowContainerCon = function (con) {\n this.leftRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerRightRowContainerCon = function (con) {\n this.rightRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerTopCenterRowContainerCon = function (con) {\n this.topCenterRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerTopLeftRowContainerCon = function (con) {\n this.topLeftRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerTopRightRowContainerCon = function (con) {\n this.topRightRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerBottomCenterRowContainerCon = function (con) {\n this.bottomCenterRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerBottomLeftRowContainerCon = function (con) {\n this.bottomLeftRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerBottomRightRowContainerCon = function (con) {\n this.bottomRightRowContainerCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerGridBodyController = function (con) {\n this.gridBodyCon = con;\n this.checkReady();\n };\n ControllersService.prototype.registerGridCompController = function (con) {\n this.gridCompCon = con;\n this.checkReady();\n };\n ControllersService.prototype.getFakeHScrollCon = function () {\n return this.fakeHScrollCon;\n };\n ControllersService.prototype.getHeaderRootComp = function () {\n return this.headerRootComp;\n };\n ControllersService.prototype.getGridCompController = function () {\n return this.gridCompCon;\n };\n ControllersService.prototype.getCenterRowContainerCon = function () {\n return this.centerRowContainerCon;\n };\n ControllersService.prototype.getTopCenterRowContainerCon = function () {\n return this.topCenterRowContainerCon;\n };\n ControllersService.prototype.getBottomCenterRowContainerCon = function () {\n return this.bottomCenterRowContainerCon;\n };\n ControllersService.prototype.getGridBodyController = function () {\n return this.gridBodyCon;\n };\n ControllersService = __decorate$21([\n Bean('controllersService')\n ], ControllersService);\n return ControllersService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2d = (undefined && undefined.__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$22 = (undefined && undefined.__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 FakeHorizontalScrollController = /** @class */ (function (_super) {\n __extends$2d(FakeHorizontalScrollController, _super);\n function FakeHorizontalScrollController() {\n return _super.call(this) || this;\n }\n FakeHorizontalScrollController.prototype.setView = function (view, eViewport, eContainer) {\n this.view = view;\n this.eViewport = eViewport;\n this.eContainer = eContainer;\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.onScrollVisibilityChanged();\n // When doing printing, this changes whether cols are pinned or not\n var spacerWidthsListener = this.setFakeHScrollSpacerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, spacerWidthsListener);\n this.setFakeHScrollSpacerWidths();\n this.controllersService.registerFakeHScrollCon(this);\n };\n FakeHorizontalScrollController.prototype.postConstruct = function () {\n this.enableRtl = this.gridOptionsWrapper.isEnableRtl();\n };\n FakeHorizontalScrollController.prototype.onScrollVisibilityChanged = function () {\n this.setScrollVisible();\n this.setFakeHScrollSpacerWidths();\n };\n FakeHorizontalScrollController.prototype.setFakeHScrollSpacerWidths = function () {\n var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();\n // we pad the right based on a) if cols are pinned to the right and\n // b) if v scroll is showing on the right (normal position of scroll)\n var rightSpacing = this.columnController.getDisplayedColumnsRightWidth();\n var scrollOnRight = !this.enableRtl && vScrollShowing;\n var scrollbarWidth = this.gridOptionsWrapper.getScrollbarWidth();\n if (scrollOnRight) {\n rightSpacing += scrollbarWidth;\n }\n this.view.setRightSpacerFixedWidth(rightSpacing);\n this.view.includeRightSpacerScrollerCss('ag-scroller-corner', rightSpacing <= scrollbarWidth);\n // we pad the left based on a) if cols are pinned to the left and\n // b) if v scroll is showing on the left (happens in LTR layout only)\n var leftSpacing = this.columnController.getDisplayedColumnsLeftWidth();\n var scrollOnLeft = this.enableRtl && vScrollShowing;\n if (scrollOnLeft) {\n leftSpacing += scrollbarWidth;\n }\n this.view.setLeftSpacerFixedWidth(leftSpacing);\n this.view.includeLeftSpacerScrollerCss('ag-scroller-corner', leftSpacing <= scrollbarWidth);\n };\n FakeHorizontalScrollController.prototype.setScrollVisible = function () {\n var hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();\n var scrollbarInvisible = isInvisibleScrollbar();\n var isSuppressHorizontalScroll = this.gridOptionsWrapper.isSuppressHorizontalScroll();\n var scrollbarWidth = hScrollShowing ? (this.gridOptionsWrapper.getScrollbarWidth() || 0) : 0;\n var adjustedScrollbarWidth = (scrollbarWidth === 0 && scrollbarInvisible) ? 15 : scrollbarWidth;\n var scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;\n var addIEPadding = isBrowserIE() && hScrollShowing;\n this.view.setInvisibleStyles(scrollbarInvisible);\n this.view.setHeight(scrollContainerSize);\n // we have to add an extra pixel to the scroller viewport on IE because\n // if the container has the same size as the scrollbar, the scroll button won't work\n this.view.setViewportHeight(scrollContainerSize + (addIEPadding ? 1 : 0));\n this.view.setContainerHeight(scrollContainerSize);\n };\n FakeHorizontalScrollController.prototype.getViewport = function () {\n return this.eViewport;\n };\n FakeHorizontalScrollController.prototype.getContainer = function () {\n return this.eContainer;\n };\n __decorate$22([\n Autowired('scrollVisibleService')\n ], FakeHorizontalScrollController.prototype, \"scrollVisibleService\", void 0);\n __decorate$22([\n Autowired('columnController')\n ], FakeHorizontalScrollController.prototype, \"columnController\", void 0);\n __decorate$22([\n Autowired('controllersService')\n ], FakeHorizontalScrollController.prototype, \"controllersService\", void 0);\n __decorate$22([\n PostConstruct\n ], FakeHorizontalScrollController.prototype, \"postConstruct\", null);\n return FakeHorizontalScrollController;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2e = (undefined && undefined.__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$23 = (undefined && undefined.__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 FakeHorizontalScrollComp = /** @class */ (function (_super) {\n __extends$2e(FakeHorizontalScrollComp, _super);\n function FakeHorizontalScrollComp() {\n return _super.call(this, FakeHorizontalScrollComp.TEMPLATE) || this;\n }\n FakeHorizontalScrollComp.prototype.postConstruct = function () {\n var _this = this;\n var view = {\n setHeight: function (height) { return setFixedHeight(_this.getGui(), height); },\n setContainerHeight: function (height) { return setFixedHeight(_this.eContainer, height); },\n setViewportHeight: function (height) { return setFixedHeight(_this.eViewport, height); },\n setRightSpacerFixedWidth: function (width) { return setFixedWidth(_this.eRightSpacer, width); },\n setLeftSpacerFixedWidth: function (width) { return setFixedWidth(_this.eLeftSpacer, width); },\n setInvisibleStyles: function (isInvisible) { return addOrRemoveCssClass(_this.getGui(), 'ag-invisible-scrollbar', isInvisible); },\n includeLeftSpacerScrollerCss: function (cssClass, include) {\n return addOrRemoveCssClass(_this.eLeftSpacer, cssClass, include);\n },\n includeRightSpacerScrollerCss: function (cssClass, include) {\n return addOrRemoveCssClass(_this.eRightSpacer, cssClass, include);\n },\n };\n this.controller = this.createManagedBean(new FakeHorizontalScrollController());\n this.controller.setView(view, this.eViewport, this.eContainer);\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.eContainer.style.width = width + \"px\"; }));\n };\n FakeHorizontalScrollComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$23([\n RefSelector('eLeftSpacer')\n ], FakeHorizontalScrollComp.prototype, \"eLeftSpacer\", void 0);\n __decorate$23([\n RefSelector('eRightSpacer')\n ], FakeHorizontalScrollComp.prototype, \"eRightSpacer\", void 0);\n __decorate$23([\n RefSelector('eViewport')\n ], FakeHorizontalScrollComp.prototype, \"eViewport\", void 0);\n __decorate$23([\n RefSelector('eContainer')\n ], FakeHorizontalScrollComp.prototype, \"eContainer\", void 0);\n __decorate$23([\n PostConstruct\n ], FakeHorizontalScrollComp.prototype, \"postConstruct\", null);\n return FakeHorizontalScrollComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2f = (undefined && undefined.__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$24 = (undefined && undefined.__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 PinnedWidthService = /** @class */ (function (_super) {\n __extends$2f(PinnedWidthService, _super);\n function PinnedWidthService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedWidthService.prototype.postConstruct = function () {\n var listener = this.checkContainerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n };\n PinnedWidthService.prototype.checkContainerWidths = function () {\n var printLayout = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var newLeftWidth = printLayout ? 0 : this.columnController.getDisplayedColumnsLeftWidth();\n var newRightWidth = printLayout ? 0 : this.columnController.getDisplayedColumnsRightWidth();\n if (newLeftWidth != this.leftWidth) {\n this.leftWidth = newLeftWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_LEFT_PINNED_WIDTH_CHANGED });\n }\n if (newRightWidth != this.rightWidth) {\n this.rightWidth = newRightWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED });\n }\n };\n PinnedWidthService.prototype.getPinnedRightWidth = function () {\n return this.rightWidth;\n };\n PinnedWidthService.prototype.getPinnedLeftWidth = function () {\n return this.leftWidth;\n };\n __decorate$24([\n Autowired('columnController')\n ], PinnedWidthService.prototype, \"columnController\", void 0);\n __decorate$24([\n PostConstruct\n ], PinnedWidthService.prototype, \"postConstruct\", null);\n PinnedWidthService = __decorate$24([\n Bean('pinnedWidthService')\n ], PinnedWidthService);\n return PinnedWidthService;\n}(BeanStub));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2g = (undefined && undefined.__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 RowComp = /** @class */ (function (_super) {\n __extends$2g(RowComp, _super);\n function RowComp(controller, container, beans, pinned) {\n var _this = _super.call(this) || this;\n _this.cellComps = {};\n _this.container = container;\n _this.beans = beans;\n _this.rowNode = controller.getRowNode();\n _this.pinned = pinned;\n _this.controller = controller;\n var template = _this.createTemplate();\n _this.setTemplate(template);\n _this.afterRowAttached();\n switch (pinned) {\n case Constants.PINNED_LEFT:\n controller.setLeftRowComp(_this);\n break;\n case Constants.PINNED_RIGHT:\n controller.setRightRowComp(_this);\n break;\n default:\n if (controller.isFullWidth() && !beans.gridOptionsWrapper.isEmbedFullWidthRows()) {\n controller.setFullWidthRowComp(_this);\n }\n else {\n controller.setCenterRowComp(_this);\n }\n break;\n }\n if (controller.isFullWidth()) {\n _this.createFullWidthRowCell();\n }\n else {\n _this.onColumnChanged();\n _this.controller.refreshAriaLabel(_this.getGui(), !!_this.rowNode.isSelected());\n }\n return _this;\n }\n RowComp.prototype.createFullWidthRowCell = function () {\n var _this = this;\n var params = this.controller.createFullWidthParams(this.getGui(), this.pinned);\n var callback = function (cellRenderer) {\n if (_this.isAlive()) {\n var eGui = cellRenderer.getGui();\n _this.getGui().appendChild(eGui);\n if (_this.controller.getRowType() === RowType.FullWidthDetail) {\n _this.controller.setupDetailRowAutoHeight(eGui);\n }\n _this.setFullWidthRowComp(cellRenderer);\n }\n else {\n _this.beans.context.destroyBean(cellRenderer);\n }\n };\n // if doing master detail, it's possible we have a cached row comp from last time detail was displayed\n var cachedDetailComp = this.beans.detailRowCompCache.get(this.rowNode, this.pinned);\n if (cachedDetailComp) {\n callback(cachedDetailComp);\n }\n else {\n var cellRendererType = FullWidthKeys.get(this.controller.getRowType());\n var cellRendererName = FullWidthRenderers.get(this.controller.getRowType());\n var res = this.beans.userComponentFactory.newFullWidthCellRenderer(params, cellRendererType, cellRendererName);\n if (res) {\n res.then(callback);\n }\n else {\n var masterDetailModuleLoaded = ModuleRegistry.isRegistered(exports.ModuleNames.MasterDetailModule);\n if (cellRendererName === 'agDetailCellRenderer' && !masterDetailModuleLoaded) {\n console.warn(\"AG Grid: cell renderer agDetailCellRenderer (for master detail) not found. Did you forget to include the master detail module?\");\n }\n else {\n console.error(\"AG Grid: fullWidthCellRenderer \" + cellRendererName + \" not found\");\n }\n }\n }\n // fixme - what to do here?\n // this.angular1Compile(eRow);\n };\n RowComp.prototype.onColumnChanged = function () {\n var _this = this;\n var cols = this.controller.getColsForRowComp(this.pinned);\n var cellsToRemove = assign({}, this.cellComps);\n cols.forEach(function (col) {\n var colId = col.getId();\n var existingCellComp = _this.cellComps[colId];\n // it's possible there is a Cell Comp with correct Id, but it's referring to\n // a different column instance. Happens a lot with pivot, as pivot col id's are\n // reused eg pivot_0, pivot_1 etc\n if (existingCellComp && existingCellComp.getColumn() !== col) {\n _this.destroyCells([existingCellComp]);\n existingCellComp = null;\n }\n if (existingCellComp == null) {\n _this.newCellComp(col);\n }\n else {\n cellsToRemove[colId] = null;\n }\n });\n var cellCompsToRemove = getAllValuesInObject(cellsToRemove)\n .filter(function (cellComp) { return cellComp ? _this.isCellEligibleToBeRemoved(cellComp) : false; });\n this.destroyCells(cellCompsToRemove);\n this.ensureDomOrder(cols);\n };\n RowComp.prototype.ensureDomOrder = function (cols) {\n var _this = this;\n if (!this.beans.gridOptionsWrapper.isEnsureDomOrder()) {\n return;\n }\n var elementsInOrder = [];\n cols.forEach(function (col) {\n var cellComp = _this.cellComps[col.getColId()];\n if (cellComp) {\n elementsInOrder.push(cellComp.getGui());\n }\n });\n setDomChildOrder(this.getGui(), elementsInOrder);\n };\n RowComp.prototype.isCellEligibleToBeRemoved = function (cellComp) {\n var REMOVE_CELL = true;\n var KEEP_CELL = false;\n // always remove the cell if it's not rendered or if it's in the wrong pinned location\n var column = cellComp.getColumn();\n if (column.getPinned() != this.pinned) {\n return REMOVE_CELL;\n }\n // we want to try and keep editing and focused cells\n var editing = cellComp.isEditing();\n var focused = this.beans.focusController.isCellFocused(cellComp.getCellPosition());\n var mightWantToKeepCell = editing || focused;\n if (mightWantToKeepCell) {\n var column_1 = cellComp.getColumn();\n var displayedColumns = this.beans.columnController.getAllDisplayedColumns();\n var cellStillDisplayed = displayedColumns.indexOf(column_1) >= 0;\n return cellStillDisplayed ? KEEP_CELL : REMOVE_CELL;\n }\n return REMOVE_CELL;\n };\n RowComp.prototype.newCellComp = function (col) {\n var cellComp = new CellComp(this.controller.getScope(), this.beans, col, this.rowNode, this.controller, false, this.controller.isPrintLayout(), this.getGui(), this.controller.isEditing());\n this.cellComps[col.getId()] = cellComp;\n this.getGui().appendChild(cellComp.getGui());\n };\n RowComp.prototype.getCellComp = function (id) {\n return this.cellComps[id];\n };\n RowComp.prototype.getCellCompSpanned = function (column) {\n var _this = this;\n var spanList = Object.keys(this.cellComps)\n .map(function (name) { return _this.cellComps[name]; })\n .filter(function (cmp) { return cmp && cmp.getColSpanningList().indexOf(column) !== -1; });\n return spanList.length ? spanList[0] : null;\n };\n RowComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.destroyAllCells();\n };\n RowComp.prototype.destroyAllCells = function () {\n var cellsToDestroy = getAllValuesInObject(this.cellComps).filter(function (cp) { return cp != null; });\n this.destroyCells(cellsToDestroy);\n };\n RowComp.prototype.getContainer = function () {\n return this.container;\n };\n RowComp.prototype.setFullWidthRowComp = function (fullWidthRowComponent) {\n var _this = this;\n if (this.fullWidthRowComponent) {\n console.error('AG Grid - should not be setting fullWidthRowComponent twice');\n }\n this.fullWidthRowComponent = fullWidthRowComponent;\n this.addDestroyFunc(function () {\n _this.beans.detailRowCompCache.addOrDestroy(_this.rowNode, _this.pinned, fullWidthRowComponent);\n _this.fullWidthRowComponent = null;\n });\n };\n RowComp.prototype.getFullWidthRowComp = function () {\n return this.fullWidthRowComponent;\n };\n RowComp.prototype.createTemplate = function () {\n var con = this.controller;\n var templateParts = [];\n var rowHeight = this.rowNode.rowHeight;\n var rowClasses = con.getInitialRowClasses(this.pinned).join(' ');\n var rowIdSanitised = escapeString(this.rowNode.id);\n var userRowStyles = con.preProcessStylesFromGridOptions();\n var businessKey = con.getRowBusinessKey();\n var businessKeySanitised = escapeString(businessKey);\n var rowTopStyle = con.getInitialRowTopStyle();\n var rowIdx = this.rowNode.getRowIndexString();\n var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount();\n templateParts.push(\"\");\n // add in the template for the cells\n templateParts.push(\"
\");\n return templateParts.join('');\n };\n RowComp.prototype.afterRowAttached = function () {\n this.addDomData();\n var eRow = this.getGui();\n // adding hover functionality adds listener to this row, so we\n // do it lazily in an animation frame\n if (this.controller.isUseAnimationFrameForCreate()) {\n this.beans.taskQueue.createTask(this.controller.addHoverFunctionality.bind(this.controller, eRow), this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n this.controller.addHoverFunctionality(eRow);\n }\n this.controller.executeProcessRowPostCreateFunc();\n };\n RowComp.prototype.addDomData = function () {\n var _this = this;\n var gow = this.beans.gridOptionsWrapper;\n gow.setDomData(this.getGui(), RowController.DOM_DATA_KEY_RENDERED_ROW, this.controller);\n this.addDestroyFunc(function () { return gow.setDomData(_this.getGui(), RowController.DOM_DATA_KEY_RENDERED_ROW, null); });\n };\n RowComp.prototype.destroyCells = function (cellComps) {\n var _this = this;\n cellComps.forEach(function (cellComp) {\n // could be old reference, ie removed cell\n if (!cellComp) {\n return;\n }\n // check cellComp belongs in this container\n var id = cellComp.getColumn().getId();\n if (_this.cellComps[id] !== cellComp) {\n return;\n }\n cellComp.detach();\n cellComp.destroy();\n _this.cellComps[id] = null;\n });\n };\n RowComp.prototype.forEachCellComp = function (callback) {\n iterateObject(this.cellComps, function (key, cellComp) {\n if (!cellComp) {\n return;\n }\n callback(cellComp);\n });\n };\n return RowComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2h = (undefined && undefined.__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 __assign$8 = (undefined && undefined.__assign) || function () {\n __assign$8 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$8.apply(this, arguments);\n};\nvar __decorate$25 = (undefined && undefined.__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};\nfunction templateFactory() {\n var name = elementGettingCreated.getAttribute('name');\n var containerClass = ContainerCssClasses.get(name);\n var viewportClass = ViewportCssClasses.get(name);\n var wrapperClass = WrapperCssClasses.get(name);\n var res;\n switch (name) {\n case RowContainerNames.LEFT:\n case RowContainerNames.RIGHT:\n case RowContainerNames.FULL_WIDTH:\n case RowContainerNames.TOP_LEFT:\n case RowContainerNames.TOP_RIGHT:\n case RowContainerNames.TOP_FULL_WITH:\n case RowContainerNames.BOTTOM_LEFT:\n case RowContainerNames.BOTTOM_RIGHT:\n case RowContainerNames.BOTTOM_FULL_WITH:\n res = /* html */\n \"
\";\n break;\n case RowContainerNames.CENTER:\n res = /* html */\n \"
\\n
\\n
\\n
\\n
\";\n break;\n case RowContainerNames.TOP_CENTER:\n case RowContainerNames.BOTTOM_CENTER:\n res = /* html */\n \"
\\n
\\n
\";\n break;\n default: return '';\n }\n return res;\n}\nvar RowContainerComp = /** @class */ (function (_super) {\n __extends$2h(RowContainerComp, _super);\n function RowContainerComp() {\n var _this = _super.call(this, templateFactory()) || this;\n _this.renderedRows = {};\n _this.name = elementGettingCreated.getAttribute('name');\n return _this;\n }\n RowContainerComp.prototype.postConstruct = function () {\n var _this = this;\n this.embedFullWidthRows = this.gridOptionsWrapper.isEmbedFullWidthRows();\n var view = {\n setViewportHeight: function (height) { return _this.eViewport.style.height = height; },\n };\n var con = this.createManagedBean(new RowContainerController(this.name));\n con.setView(view, this.eContainer, this.eViewport, this.eWrapper);\n this.listenOnDomOrder();\n this.stopHScrollOnPinnedRows();\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_ROWS_CHANGED, this.onDisplayedRowsChanged.bind(this));\n };\n RowContainerComp.prototype.forContainers = function (names, callback) {\n if (names.indexOf(this.name) >= 0) {\n callback();\n }\n };\n // when editing a pinned row, if the cell is half outside the scrollable area, the browser can\n // scroll the column into view. we do not want this, the pinned sections should never scroll.\n // so we listen to scrolls on these containers and reset the scroll if we find one.\n RowContainerComp.prototype.stopHScrollOnPinnedRows = function () {\n var _this = this;\n this.forContainers([RowContainerNames.TOP_CENTER, RowContainerNames.BOTTOM_CENTER], function () {\n var resetScrollLeft = function () { return _this.eViewport.scrollLeft = 0; };\n _this.addManagedListener(_this.eViewport, 'scroll', resetScrollLeft);\n });\n };\n RowContainerComp.prototype.listenOnDomOrder = function () {\n var _this = this;\n var listener = function () { return _this.domOrder = _this.gridOptionsWrapper.isEnsureDomOrder(); };\n this.gridOptionsWrapper.addEventListener(GridOptionsWrapper.PROP_DOM_LAYOUT, listener);\n listener();\n };\n // this is repeated inside the controller, need to remove where this one is called from\n RowContainerComp.prototype.getViewportElement = function () {\n return this.eViewport;\n };\n RowContainerComp.prototype.clearLastPlacedElement = function () {\n this.lastPlacedElement = null;\n };\n RowContainerComp.prototype.appendRow = function (element) {\n if (this.domOrder) {\n insertWithDomOrder(this.eContainer, element, this.lastPlacedElement);\n }\n else {\n this.eContainer.appendChild(element);\n }\n this.lastPlacedElement = element;\n };\n RowContainerComp.prototype.ensureDomOrder = function (eRow) {\n if (this.domOrder) {\n ensureDomOrder(this.eContainer, eRow, this.lastPlacedElement);\n this.lastPlacedElement = eRow;\n }\n };\n RowContainerComp.prototype.removeRow = function (eRow) {\n this.eContainer.removeChild(eRow);\n };\n RowContainerComp.prototype.onDisplayedRowsChanged = function () {\n var _this = this;\n var fullWithContainer = this.name === RowContainerNames.TOP_FULL_WITH\n || this.name === RowContainerNames.BOTTOM_FULL_WITH\n || this.name === RowContainerNames.FULL_WIDTH;\n var oldRows = __assign$8({}, this.renderedRows);\n this.renderedRows = {};\n this.clearLastPlacedElement();\n var processRow = function (rowCon) {\n var instanceId = rowCon.getInstanceId();\n var existingRowComp = oldRows[instanceId];\n if (existingRowComp) {\n _this.renderedRows[instanceId] = existingRowComp;\n delete oldRows[instanceId];\n _this.ensureDomOrder(existingRowComp.getGui());\n }\n else {\n var rowComp = _this.newRowComp(rowCon);\n _this.renderedRows[instanceId] = rowComp;\n _this.appendRow(rowComp.getGui());\n }\n };\n var doesRowMatch = function (rowCon) {\n var fullWidthController = rowCon.isFullWidth();\n var printLayout = _this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_PRINT;\n var embedFW = _this.embedFullWidthRows || printLayout;\n var match = fullWithContainer ?\n !embedFW && fullWidthController\n : embedFW || !fullWidthController;\n return match;\n };\n var rowConsToRender = this.getRowCons();\n rowConsToRender.filter(doesRowMatch).forEach(processRow);\n getAllValuesInObject(oldRows).forEach(function (rowComp) { return _this.removeRow(rowComp.getGui()); });\n };\n RowContainerComp.prototype.getRowCons = function () {\n switch (this.name) {\n case RowContainerNames.TOP_CENTER:\n case RowContainerNames.TOP_LEFT:\n case RowContainerNames.TOP_RIGHT:\n case RowContainerNames.TOP_FULL_WITH:\n return this.rowRenderer.getTopRowCons();\n case RowContainerNames.BOTTOM_CENTER:\n case RowContainerNames.BOTTOM_LEFT:\n case RowContainerNames.BOTTOM_RIGHT:\n case RowContainerNames.BOTTOM_FULL_WITH:\n return this.rowRenderer.getBottomRowCons();\n default:\n return this.rowRenderer.getRowCons();\n }\n };\n RowContainerComp.prototype.newRowComp = function (rowCon) {\n var pinned;\n switch (this.name) {\n case RowContainerNames.BOTTOM_LEFT:\n case RowContainerNames.TOP_LEFT:\n case RowContainerNames.LEFT:\n pinned = Constants.PINNED_LEFT;\n break;\n case RowContainerNames.BOTTOM_RIGHT:\n case RowContainerNames.TOP_RIGHT:\n case RowContainerNames.RIGHT:\n pinned = Constants.PINNED_RIGHT;\n break;\n default:\n pinned = null;\n break;\n }\n var res = new RowComp(rowCon, this, this.beans, pinned);\n return res;\n };\n __decorate$25([\n Autowired('rowRenderer')\n ], RowContainerComp.prototype, \"rowRenderer\", void 0);\n __decorate$25([\n Autowired(\"beans\")\n ], RowContainerComp.prototype, \"beans\", void 0);\n __decorate$25([\n RefSelector('eViewport')\n ], RowContainerComp.prototype, \"eViewport\", void 0);\n __decorate$25([\n RefSelector('eContainer')\n ], RowContainerComp.prototype, \"eContainer\", void 0);\n __decorate$25([\n RefSelector('eWrapper')\n ], RowContainerComp.prototype, \"eWrapper\", void 0);\n __decorate$25([\n PostConstruct\n ], RowContainerComp.prototype, \"postConstruct\", null);\n return RowContainerComp;\n}(Component));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n// creates JavaScript vanilla Grid, including JavaScript (ag-stack) components, which can\n// be wrapped by the framework wrappers\nvar Grid = /** @class */ (function () {\n function Grid(eGridDiv, gridOptions, params) {\n if (!gridOptions) {\n console.error('AG Grid: no gridOptions provided to the grid');\n return;\n }\n this.gridOptions = gridOptions;\n new GridCoreCreator().create(eGridDiv, gridOptions, function (context) {\n var gridComp = new GridComp(eGridDiv);\n context.createBean(gridComp);\n }, params);\n }\n Grid.prototype.destroy = function () {\n if (this.gridOptions && this.gridOptions.api) {\n this.gridOptions.api.destroy();\n }\n };\n return Grid;\n}());\n// created services of grid only, no UI, so frameworks can use this if providing\n// their own UI\nvar GridCoreCreator = /** @class */ (function () {\n function GridCoreCreator() {\n }\n GridCoreCreator.prototype.create = function (eGridDiv, gridOptions, uiCallback, params) {\n var debug = !!gridOptions.debug;\n var registeredModules = this.getRegisteredModules(params);\n var beanClasses = this.createBeansList(gridOptions.rowModelType, registeredModules);\n var providedBeanInstances = this.createProvidedBeans(eGridDiv, gridOptions, params);\n if (!beanClasses) {\n return;\n } // happens when no row model found\n var contextParams = {\n providedBeanInstances: providedBeanInstances,\n beanClasses: beanClasses,\n debug: debug\n };\n var logger = new Logger('AG Grid', function () { return gridOptions.debug; });\n var contextLogger = new Logger('Context', function () { return contextParams.debug; });\n var context = new Context(contextParams, contextLogger);\n this.registerModuleUserComponents(context, registeredModules);\n this.registerStackComponents(context, registeredModules);\n uiCallback(context);\n this.setColumnsAndData(context);\n this.dispatchGridReadyEvent(context, gridOptions);\n var isEnterprise = ModuleRegistry.isRegistered(exports.ModuleNames.EnterpriseCoreModule);\n logger.log(\"initialised successfully, enterprise = \" + isEnterprise);\n };\n GridCoreCreator.prototype.registerStackComponents = function (context, registeredModules) {\n var agStackComponents = this.createAgStackComponentsList(registeredModules);\n var agStackComponentsRegistry = context.getBean('agStackComponentsRegistry');\n agStackComponentsRegistry.setupComponents(agStackComponents);\n };\n GridCoreCreator.prototype.getRegisteredModules = function (params) {\n var passedViaConstructor = params ? params.modules : null;\n var registered = ModuleRegistry.getRegisteredModules();\n var allModules = [];\n var mapNames = {};\n // adds to list and removes duplicates\n function addModule(moduleBased, mod) {\n function addIndividualModule(currentModule) {\n if (!mapNames[currentModule.moduleName]) {\n mapNames[currentModule.moduleName] = true;\n allModules.push(currentModule);\n ModuleRegistry.register(currentModule, moduleBased);\n }\n }\n addIndividualModule(mod);\n if (mod.dependantModules) {\n mod.dependantModules.forEach(addModule.bind(null, moduleBased));\n }\n }\n if (passedViaConstructor) {\n passedViaConstructor.forEach(addModule.bind(null, true));\n }\n if (registered) {\n registered.forEach(addModule.bind(null, !ModuleRegistry.isPackageBased()));\n }\n return allModules;\n };\n GridCoreCreator.prototype.registerModuleUserComponents = function (context, registeredModules) {\n var userComponentRegistry = context.getBean('userComponentRegistry');\n var moduleUserComps = this.extractModuleEntity(registeredModules, function (module) { return module.userComponents ? module.userComponents : []; });\n moduleUserComps.forEach(function (compMeta) {\n userComponentRegistry.registerDefaultComponent(compMeta.componentName, compMeta.componentClass);\n });\n };\n GridCoreCreator.prototype.createProvidedBeans = function (eGridDiv, gridOptions, params) {\n var frameworkOverrides = params ? params.frameworkOverrides : null;\n if (missing(frameworkOverrides)) {\n frameworkOverrides = new VanillaFrameworkOverrides();\n }\n var seed = {\n gridOptions: gridOptions,\n eGridDiv: eGridDiv,\n $scope: params ? params.$scope : null,\n $compile: params ? params.$compile : null,\n globalEventListener: params ? params.globalEventListener : null,\n frameworkOverrides: frameworkOverrides\n };\n if (params && params.providedBeanInstances) {\n assign(seed, params.providedBeanInstances);\n }\n return seed;\n };\n GridCoreCreator.prototype.createAgStackComponentsList = function (registeredModules) {\n var components = [\n { componentName: 'AgCheckbox', componentClass: AgCheckbox },\n { componentName: 'AgRadioButton', componentClass: AgRadioButton },\n { componentName: 'AgToggleButton', componentClass: AgToggleButton },\n { componentName: 'AgInputTextField', componentClass: AgInputTextField },\n { componentName: 'AgInputTextArea', componentClass: AgInputTextArea },\n { componentName: 'AgInputNumberField', componentClass: AgInputNumberField },\n { componentName: 'AgInputRange', componentClass: AgInputRange },\n { componentName: 'AgSelect', componentClass: AgSelect },\n { componentName: 'AgSlider', componentClass: AgSlider },\n { componentName: 'AgAngleSelect', componentClass: AgAngleSelect },\n { componentName: 'AgColorPicker', componentClass: AgColorPicker },\n { componentName: 'AgGridBody', componentClass: GridBodyComp },\n { componentName: 'AgHeaderRoot', componentClass: HeaderRootComp },\n { componentName: 'AgPagination', componentClass: PaginationComp },\n { componentName: 'AgOverlayWrapper', componentClass: OverlayWrapperComponent },\n { componentName: 'AgGroupComponent', componentClass: AgGroupComponent },\n { componentName: 'AgPanel', componentClass: AgPanel },\n { componentName: 'AgDialog', componentClass: AgDialog },\n { componentName: 'AgRowContainer', componentClass: RowContainerComp },\n { componentName: 'AgFakeHorizontalScroll', componentClass: FakeHorizontalScrollComp }\n ];\n var moduleAgStackComps = this.extractModuleEntity(registeredModules, function (module) { return module.agStackComponents ? module.agStackComponents : []; });\n components = components.concat(moduleAgStackComps);\n return components;\n };\n GridCoreCreator.prototype.createBeansList = function (rowModelType, registeredModules) {\n var rowModelClass = this.getRowModelClass(rowModelType, registeredModules);\n if (!rowModelClass) {\n return;\n }\n // beans should only contain SERVICES, it should NEVER contain COMPONENTS\n var beans = [\n rowModelClass, Beans, RowPositionUtils, CellPositionUtils, HeaderPositionUtils,\n PaginationAutoPageSizeService, GridApi, UserComponentRegistry, AgComponentUtils,\n ComponentMetadataProvider, ResizeObserverService, UserComponentFactory,\n RowContainerHeightService, AutoHeightCalculator, HorizontalResizeService,\n PinnedRowModel, DragService, DisplayedGroupCreator, EventService, GridOptionsWrapper,\n PopupService, SelectionController, FilterManager, ColumnController, HeaderNavigationService,\n PaginationProxy, RowRenderer, ExpressionService, ColumnFactory, TemplateService,\n AlignedGridsService, NavigationService, ValueCache, ValueService, LoggerFactory,\n ColumnUtils, AutoWidthCalculator, StandardMenuFactory, DragAndDropService, ColumnApi,\n FocusController, MouseEventService, Environment, CellNavigationService, ValueFormatterService,\n StylingService, ScrollVisibleService, SortController, ColumnHoverService, ColumnAnimationService,\n SelectableService, AutoGroupColService, ChangeDetectionService, AnimationFrameService,\n DetailRowCompCache, UndoRedoService, AgStackComponentsRegistry, ColumnDefFactory,\n RowCssClassCalculator, RowNodeBlockLoader, RowNodeSorter, ControllersService,\n PinnedWidthService\n ];\n var moduleBeans = this.extractModuleEntity(registeredModules, function (module) { return module.beans ? module.beans : []; });\n beans.push.apply(beans, moduleBeans);\n // check for duplicates, as different modules could include the same beans that\n // they depend on, eg ClientSideRowModel in enterprise, and ClientSideRowModel in community\n var beansNoDuplicates = [];\n beans.forEach(function (bean) {\n if (beansNoDuplicates.indexOf(bean) < 0) {\n beansNoDuplicates.push(bean);\n }\n });\n return beansNoDuplicates;\n };\n GridCoreCreator.prototype.extractModuleEntity = function (moduleEntities, extractor) {\n return [].concat.apply([], moduleEntities.map(extractor));\n };\n GridCoreCreator.prototype.setColumnsAndData = function (context) {\n var gridOptionsWrapper = context.getBean('gridOptionsWrapper');\n var columnController = context.getBean('columnController');\n var columnDefs = gridOptionsWrapper.getColumnDefs();\n columnController.setColumnDefs(columnDefs || [], \"gridInitializing\");\n var rowModel = context.getBean('rowModel');\n rowModel.start();\n };\n GridCoreCreator.prototype.dispatchGridReadyEvent = function (context, gridOptions) {\n var eventService = context.getBean('eventService');\n var readyEvent = {\n type: Events.EVENT_GRID_READY,\n api: gridOptions.api,\n columnApi: gridOptions.columnApi\n };\n eventService.dispatchEvent(readyEvent);\n };\n GridCoreCreator.prototype.getRowModelClass = function (rowModelType, registeredModules) {\n // default to client side\n if (!rowModelType) {\n rowModelType = Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n }\n var rowModelClasses = {};\n registeredModules.forEach(function (module) {\n iterateObject(module.rowModels, function (key, value) {\n rowModelClasses[key] = value;\n });\n });\n var rowModelClass = rowModelClasses[rowModelType];\n if (exists(rowModelClass)) {\n return rowModelClass;\n }\n if (rowModelType === Constants.ROW_MODEL_TYPE_INFINITE) {\n console.error(\"AG Grid: Row Model \\\"Infinite\\\" not found. Please ensure the \" + exports.ModuleNames.InfiniteRowModelModule + \" is registered.';\");\n }\n console.error('AG Grid: could not find matching row model for rowModelType ' + rowModelType);\n if (rowModelType === Constants.ROW_MODEL_TYPE_VIEWPORT) {\n console.error(\"AG Grid: Row Model \\\"Viewport\\\" not found. Please ensure the AG Grid Enterprise Module \" + exports.ModuleNames.ViewportRowModelModule + \" is registered.';\");\n }\n if (rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE) {\n console.error(\"AG Grid: Row Model \\\"Server Side\\\" not found. Please ensure the AG Grid Enterprise Module \" + exports.ModuleNames.ServerSideRowModelModule + \" is registered.';\");\n }\n if (rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n console.error(\"AG Grid: Row Model \\\"Client Side\\\" not found. Please ensure the \" + exports.ModuleNames.ClientSideRowModelModule + \" is registered.';\");\n }\n };\n return GridCoreCreator;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction initialiseAgGridWithAngular1(angular) {\n var angularModule = angular.module(\"agGrid\", []);\n angularModule.directive(\"agGrid\", function () {\n return {\n restrict: \"A\",\n controller: ['$element', '$scope', '$compile', '$attrs', AngularDirectiveController],\n scope: true\n };\n });\n}\nfunction AngularDirectiveController($element, $scope, $compile, $attrs) {\n var gridOptions;\n var keyOfGridInScope = $attrs.agGrid;\n gridOptions = $scope.$eval(keyOfGridInScope);\n if (!gridOptions) {\n console.warn(\"WARNING - grid options for AG Grid not found. Please ensure the attribute ag-grid points to a valid object on the scope\");\n return;\n }\n var eGridDiv = $element[0];\n var gridParams = {\n $scope: $scope,\n $compile: $compile\n };\n var grid = new Grid(eGridDiv, gridOptions, gridParams);\n var quickFilterOnScope = keyOfGridInScope + '.quickFilterText';\n var quickFilterUnregisterFn = $scope.$watch(quickFilterOnScope, function (newFilter) {\n gridOptions.api.setQuickFilter(newFilter);\n });\n $scope.$on(\"$destroy\", function () {\n quickFilterUnregisterFn();\n if (grid) {\n grid.destroy();\n }\n grid = null;\n });\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar registered = false;\nfunction initialiseAgGridWithWebComponents() {\n console.warn('ag-grid: initialiseAgGridWithWebComponents is deprecated. Please use the ag-grid-webcomponent dependency instead. ');\n // only register to WebComponents once\n if (registered) {\n return;\n }\n registered = true;\n if (typeof document === 'undefined' || !document.registerElement) {\n console.error('AG Grid: unable to find document.registerElement() function, unable to initialise AG Grid as a Web Component');\n }\n // i don't think this type of extension is possible in TypeScript, so back to\n // plain Javascript to create this object\n var AgileGridProto = Object.create(HTMLElement.prototype);\n // wrap each property with a get and set method, so we can track when changes are done\n ComponentUtil.ALL_PROPERTIES.forEach(function (key) {\n Object.defineProperty(AgileGridProto, key, {\n set: function (v) {\n this.__agGridSetProperty(key, v);\n },\n get: function () {\n return this.__agGridGetProperty(key);\n },\n enumerable: true,\n configurable: true\n });\n });\n var agGridProtoNoType = AgileGridProto;\n agGridProtoNoType.__agGridSetProperty = function (key, value) {\n if (!this.__attributes) {\n this.__attributes = {};\n }\n this.__attributes[key] = value;\n // keeping this consistent with the ng2 onChange, so I can reuse the handling code\n var changeObject = {};\n changeObject[key] = { currentValue: value };\n this.onChange(changeObject);\n };\n agGridProtoNoType.onChange = function (changes) {\n if (this._initialised) {\n ComponentUtil.processOnChange(changes, this._gridOptions, this.api, this.columnApi);\n }\n };\n agGridProtoNoType.__agGridGetProperty = function (key) {\n if (!this.__attributes) {\n this.__attributes = {};\n }\n return this.__attributes[key];\n };\n agGridProtoNoType.setGridOptions = function (options) {\n var globalEventListener = this.globalEventListener.bind(this);\n this._gridOptions = ComponentUtil.copyAttributesToGridOptions(options, this);\n var gridParams = {\n globalEventListener: globalEventListener\n };\n this._agGrid = new Grid(this, this._gridOptions, gridParams);\n this.api = options.api;\n this.columnApi = options.columnApi;\n this._initialised = true;\n };\n // copies all the attributes into this object\n agGridProtoNoType.createdCallback = function () {\n for (var i = 0; i < this.attributes.length; i++) {\n var attribute = this.attributes[i];\n this.setPropertyFromAttribute(attribute);\n }\n };\n agGridProtoNoType.setPropertyFromAttribute = function (attribute) {\n var name = toCamelCase(attribute.nodeName);\n var value = attribute.nodeValue;\n if (ComponentUtil.ALL_PROPERTIES.indexOf(name) >= 0) {\n this[name] = value;\n }\n };\n agGridProtoNoType.attachedCallback = function (params) { };\n agGridProtoNoType.detachedCallback = function (params) { };\n agGridProtoNoType.attributeChangedCallback = function (attributeName) {\n var attribute = this.attributes[attributeName];\n this.setPropertyFromAttribute(attribute);\n };\n agGridProtoNoType.globalEventListener = function (eventType, event) {\n var eventLowerCase = eventType.toLowerCase();\n var browserEvent = new Event(eventLowerCase);\n var browserEventNoType = browserEvent;\n browserEventNoType.agGridDetails = event;\n this.dispatchEvent(browserEvent);\n var callbackMethod = 'on' + eventLowerCase;\n if (typeof this[callbackMethod] === 'function') {\n this[callbackMethod](browserEvent);\n }\n };\n // finally, register\n document.registerElement('ag-grid', { prototype: AgileGridProto });\n}\nfunction toCamelCase(myString) {\n if (typeof myString === 'string') {\n var result = myString.replace(/-([a-z])/g, function (g) {\n return g[1].toUpperCase();\n });\n return result;\n }\n else {\n return myString;\n }\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2i = (undefined && undefined.__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$26 = (undefined && undefined.__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 TabbedLayout = /** @class */ (function (_super) {\n __extends$2i(TabbedLayout, _super);\n function TabbedLayout(params) {\n var _this = _super.call(this, TabbedLayout.getTemplate(params.cssClass)) || this;\n _this.items = [];\n _this.params = params;\n if (params.items) {\n params.items.forEach(function (item) { return _this.addItem(item); });\n }\n return _this;\n }\n TabbedLayout.getTemplate = function (cssClass) {\n return /* html */ \"
\\n
\\n
\\n
\";\n };\n TabbedLayout.prototype.handleKeyDown = function (e) {\n switch (e.keyCode) {\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n if (!this.eHeader.contains(document.activeElement)) {\n return;\n }\n var currentPosition = this.items.indexOf(this.activeItem);\n var nextPosition = e.keyCode === KeyCode.RIGHT ? Math.min(currentPosition + 1, this.items.length - 1) : Math.max(currentPosition - 1, 0);\n if (currentPosition === nextPosition) {\n return;\n }\n e.preventDefault();\n var nextItem = this.items[nextPosition];\n this.showItemWrapper(nextItem);\n nextItem.eHeaderButton.focus();\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n e.stopPropagation();\n break;\n }\n };\n TabbedLayout.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var _a = this, focusController = _a.focusController, eHeader = _a.eHeader, eBody = _a.eBody, activeItem = _a.activeItem;\n var activeElement = document.activeElement;\n e.preventDefault();\n if (eHeader.contains(activeElement)) {\n // focus is in header, move into body of popup\n focusController.focusInto(eBody, e.shiftKey);\n }\n else {\n // focus is in body, establish if it should return to header\n if (focusController.isFocusUnderManagedComponent(eBody)) {\n // focus was in a managed focus component and has now left, so we can return to the header\n activeItem.eHeaderButton.focus();\n }\n else {\n var nextEl = focusController.findNextFocusableElement(eBody, false, e.shiftKey);\n if (nextEl) {\n // if another element exists in the body that can be focussed, go to that\n nextEl.focus();\n }\n else {\n // otherwise return to the header\n activeItem.eHeaderButton.focus();\n }\n }\n }\n };\n TabbedLayout.prototype.setAfterAttachedParams = function (params) {\n this.afterAttachedParams = params;\n };\n TabbedLayout.prototype.getMinDimensions = function () {\n var eDummyContainer = this.getGui().cloneNode(true);\n var eDummyBody = eDummyContainer.querySelector('[ref=\"eBody\"]');\n // position fixed, so it isn't restricted to the boundaries of the parent\n eDummyContainer.style.position = 'fixed';\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n this.getGui().appendChild(eDummyContainer);\n var minWidth = 0;\n var minHeight = 0;\n this.items.forEach(function (itemWrapper) {\n clearElement(eDummyBody);\n var eClone = itemWrapper.tabbedItem.bodyPromise.resolveNow(null, function (body) { return body.cloneNode(true); });\n if (eClone == null) {\n return;\n }\n eDummyBody.appendChild(eClone);\n if (minWidth < eDummyContainer.offsetWidth) {\n minWidth = eDummyContainer.offsetWidth;\n }\n if (minHeight < eDummyContainer.offsetHeight) {\n minHeight = eDummyContainer.offsetHeight;\n }\n });\n this.getGui().removeChild(eDummyContainer);\n return { height: minHeight, width: minWidth };\n };\n TabbedLayout.prototype.showFirstItem = function () {\n if (this.items.length > 0) {\n this.showItemWrapper(this.items[0]);\n }\n };\n TabbedLayout.prototype.addItem = function (item) {\n var eHeaderButton = document.createElement('span');\n eHeaderButton.setAttribute('tabIndex', '-1');\n eHeaderButton.setAttribute('role', 'menuitem');\n eHeaderButton.appendChild(item.title);\n addCssClass(eHeaderButton, 'ag-tab');\n this.eHeader.appendChild(eHeaderButton);\n setAriaLabel(eHeaderButton, item.titleLabel);\n var wrapper = {\n tabbedItem: item,\n eHeaderButton: eHeaderButton\n };\n this.items.push(wrapper);\n eHeaderButton.addEventListener('click', this.showItemWrapper.bind(this, wrapper));\n };\n TabbedLayout.prototype.showItem = function (tabbedItem) {\n var itemWrapper = find(this.items, function (wrapper) { return wrapper.tabbedItem === tabbedItem; });\n if (itemWrapper) {\n this.showItemWrapper(itemWrapper);\n }\n };\n TabbedLayout.prototype.showItemWrapper = function (wrapper) {\n var _this = this;\n if (this.params.onItemClicked) {\n this.params.onItemClicked({ item: wrapper.tabbedItem });\n }\n if (this.activeItem === wrapper) {\n callIfPresent(this.params.onActiveItemClicked);\n return;\n }\n clearElement(this.eBody);\n wrapper.tabbedItem.bodyPromise.then(function (body) {\n _this.eBody.appendChild(body);\n var onlyUnmanaged = !_this.focusController.isKeyboardMode();\n _this.focusController.focusInto(_this.eBody, false, onlyUnmanaged);\n if (wrapper.tabbedItem.afterAttachedCallback) {\n wrapper.tabbedItem.afterAttachedCallback(_this.afterAttachedParams);\n }\n });\n if (this.activeItem) {\n removeCssClass(this.activeItem.eHeaderButton, 'ag-tab-selected');\n }\n addCssClass(wrapper.eHeaderButton, 'ag-tab-selected');\n this.activeItem = wrapper;\n };\n __decorate$26([\n RefSelector('eHeader')\n ], TabbedLayout.prototype, \"eHeader\", void 0);\n __decorate$26([\n RefSelector('eBody')\n ], TabbedLayout.prototype, \"eBody\", void 0);\n return TabbedLayout;\n}(ManagedFocusComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction simpleHttpRequest(params) {\n return new AgPromise(function (resolve) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.open('GET', params.url);\n httpRequest.send();\n httpRequest.onreadystatechange = function () {\n if (httpRequest.readyState === 4 && httpRequest.status === 200) {\n resolve(JSON.parse(httpRequest.responseText));\n }\n };\n });\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n(function (ServerSideTransactionResultStatus) {\n ServerSideTransactionResultStatus[\"StoreNotFound\"] = \"StoreNotFound\";\n ServerSideTransactionResultStatus[\"StoreLoading\"] = \"StoreLoading\";\n ServerSideTransactionResultStatus[\"StoreWaitingToLoad\"] = \"StoreWaitingToLoad\";\n ServerSideTransactionResultStatus[\"StoreLoadingFailed\"] = \"StoreLoadingFailed\";\n ServerSideTransactionResultStatus[\"StoreWrongType\"] = \"StoreWrongType\";\n ServerSideTransactionResultStatus[\"Applied\"] = \"Applied\";\n ServerSideTransactionResultStatus[\"Cancelled\"] = \"Cancelled\";\n})(exports.ServerSideTransactionResultStatus || (exports.ServerSideTransactionResultStatus = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar __extends$2j = (undefined && undefined.__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$27 = (undefined && undefined.__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 VirtualList = /** @class */ (function (_super) {\n __extends$2j(VirtualList, _super);\n function VirtualList(cssIdentifier, ariaRole) {\n if (cssIdentifier === void 0) { cssIdentifier = 'default'; }\n if (ariaRole === void 0) { ariaRole = 'listbox'; }\n var _this = _super.call(this, VirtualList.getTemplate(cssIdentifier), true) || this;\n _this.cssIdentifier = cssIdentifier;\n _this.ariaRole = ariaRole;\n _this.renderedRows = new Map();\n _this.rowHeight = 20;\n _this.isDestroyed = false;\n return _this;\n }\n VirtualList.prototype.postConstruct = function () {\n this.addScrollListener();\n this.rowHeight = this.getItemHeight();\n this.addResizeObserver();\n _super.prototype.postConstruct.call(this);\n };\n VirtualList.prototype.addResizeObserver = function () {\n var listener = this.drawVirtualRows.bind(this);\n var destroyObserver = this.resizeObserverService.observeResize(this.getGui(), listener);\n this.addDestroyFunc(destroyObserver);\n };\n VirtualList.prototype.focusInnerElement = function (fromBottom) {\n this.focusRow(fromBottom ? this.model.getRowCount() - 1 : 0);\n };\n VirtualList.prototype.onFocusIn = function (e) {\n _super.prototype.onFocusIn.call(this, e);\n var target = e.target;\n if (containsClass(target, 'ag-virtual-list-item')) {\n this.lastFocusedRowIndex = getAriaPosInSet(target) - 1;\n }\n };\n VirtualList.prototype.onFocusOut = function (e) {\n _super.prototype.onFocusOut.call(this, e);\n if (!this.getFocusableElement().contains(e.relatedTarget)) {\n this.lastFocusedRowIndex = null;\n }\n };\n VirtualList.prototype.handleKeyDown = function (e) {\n switch (e.keyCode) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (this.navigate(e.keyCode === KeyCode.UP)) {\n e.preventDefault();\n }\n break;\n }\n };\n VirtualList.prototype.onTabKeyDown = function (e) {\n if (this.navigate(e.shiftKey)) {\n e.preventDefault();\n }\n else {\n // focus on the first or last focusable element to ensure that any other handlers start from there\n this.focusController.focusInto(this.getGui(), !e.shiftKey);\n }\n };\n VirtualList.prototype.navigate = function (up) {\n if (this.lastFocusedRowIndex == null) {\n return false;\n }\n var nextRow = this.lastFocusedRowIndex + (up ? -1 : 1);\n if (nextRow < 0 || nextRow >= this.model.getRowCount()) {\n return false;\n }\n this.focusRow(nextRow);\n return true;\n };\n VirtualList.prototype.getLastFocusedRow = function () {\n return this.lastFocusedRowIndex;\n };\n VirtualList.prototype.focusRow = function (rowNumber) {\n var _this = this;\n this.ensureIndexVisible(rowNumber);\n window.setTimeout(function () {\n var renderedRow = _this.renderedRows.get(rowNumber);\n if (renderedRow) {\n renderedRow.eDiv.focus();\n }\n }, 10);\n };\n VirtualList.prototype.getComponentAt = function (rowIndex) {\n var comp = this.renderedRows.get(rowIndex);\n return comp && comp.rowComponent;\n };\n VirtualList.getTemplate = function (cssIdentifier) {\n return /* html */ \"\\n
\\n
\\n
\";\n };\n VirtualList.prototype.getItemHeight = function () {\n return this.gridOptionsWrapper.getListItemHeight();\n };\n VirtualList.prototype.ensureIndexVisible = function (index) {\n var lastRow = this.model.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= lastRow) {\n console.warn('invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n var rowTopPixel = index * this.rowHeight;\n var rowBottomPixel = rowTopPixel + this.rowHeight;\n var eGui = this.getGui();\n var viewportTopPixel = eGui.scrollTop;\n var viewportHeight = eGui.offsetHeight;\n var viewportBottomPixel = viewportTopPixel + viewportHeight;\n var viewportScrolledPastRow = viewportTopPixel > rowTopPixel;\n var viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel;\n if (viewportScrolledPastRow) {\n // if row is before, scroll up with row at top\n eGui.scrollTop = rowTopPixel;\n }\n else if (viewportScrolledBeforeRow) {\n // if row is below, scroll down with row at bottom\n var newScrollPosition = rowBottomPixel - viewportHeight;\n eGui.scrollTop = newScrollPosition;\n }\n };\n VirtualList.prototype.setComponentCreator = function (componentCreator) {\n this.componentCreator = componentCreator;\n };\n VirtualList.prototype.getRowHeight = function () {\n return this.rowHeight;\n };\n VirtualList.prototype.getScrollTop = function () {\n return this.getGui().scrollTop;\n };\n VirtualList.prototype.setRowHeight = function (rowHeight) {\n this.rowHeight = rowHeight;\n this.refresh();\n };\n VirtualList.prototype.refresh = function () {\n var _this = this;\n if (this.model == null || this.isDestroyed) {\n return;\n }\n var rowCount = this.model.getRowCount();\n this.eContainer.style.height = rowCount * this.rowHeight + \"px\";\n // ensure height is applied before attempting to redraw rows\n waitUntil(function () { return _this.eContainer.clientHeight >= rowCount * _this.rowHeight; }, function () {\n if (_this.isDestroyed) {\n return;\n }\n _this.clearVirtualRows();\n _this.drawVirtualRows();\n });\n };\n VirtualList.prototype.clearVirtualRows = function () {\n var _this = this;\n this.renderedRows.forEach(function (_, rowIndex) { return _this.removeRow(rowIndex); });\n };\n VirtualList.prototype.drawVirtualRows = function () {\n var gui = this.getGui();\n var topPixel = gui.scrollTop;\n var bottomPixel = topPixel + gui.offsetHeight;\n var firstRow = Math.floor(topPixel / this.rowHeight);\n var lastRow = Math.floor(bottomPixel / this.rowHeight);\n this.ensureRowsRendered(firstRow, lastRow);\n };\n VirtualList.prototype.ensureRowsRendered = function (start, finish) {\n var _this = this;\n // remove any rows that are no longer required\n this.renderedRows.forEach(function (_, rowIndex) {\n if ((rowIndex < start || rowIndex > finish) && rowIndex !== _this.lastFocusedRowIndex) {\n _this.removeRow(rowIndex);\n }\n });\n // insert any required new rows\n for (var rowIndex = start; rowIndex <= finish; rowIndex++) {\n if (this.renderedRows.has(rowIndex)) {\n continue;\n }\n // check this row actually exists (in case overflow buffer window exceeds real data)\n if (rowIndex < this.model.getRowCount()) {\n this.insertRow(rowIndex);\n }\n }\n };\n VirtualList.prototype.insertRow = function (rowIndex) {\n var _this = this;\n var value = this.model.getRow(rowIndex);\n var eDiv = document.createElement('div');\n addCssClass(eDiv, 'ag-virtual-list-item');\n addCssClass(eDiv, \"ag-\" + this.cssIdentifier + \"-virtual-list-item\");\n eDiv.setAttribute('role', this.ariaRole === 'tree' ? 'treeitem' : 'option');\n setAriaSetSize(eDiv, this.model.getRowCount());\n setAriaPosInSet(eDiv, rowIndex + 1);\n eDiv.setAttribute('tabindex', '-1');\n if (typeof this.model.isRowSelected === 'function') {\n var isSelected = this.model.isRowSelected(rowIndex);\n setAriaSelected(eDiv, !!isSelected);\n setAriaChecked(eDiv, isSelected);\n }\n eDiv.style.height = this.rowHeight + \"px\";\n eDiv.style.top = this.rowHeight * rowIndex + \"px\";\n var rowComponent = this.componentCreator(value, eDiv);\n rowComponent.addGuiEventListener('focusin', function () { return _this.lastFocusedRowIndex = rowIndex; });\n eDiv.appendChild(rowComponent.getGui());\n // keep the DOM order consistent with the order of the rows\n if (this.renderedRows.has(rowIndex - 1)) {\n this.renderedRows.get(rowIndex - 1).eDiv.insertAdjacentElement('afterend', eDiv);\n }\n else if (this.renderedRows.has(rowIndex + 1)) {\n this.renderedRows.get(rowIndex + 1).eDiv.insertAdjacentElement('beforebegin', eDiv);\n }\n else {\n this.eContainer.appendChild(eDiv);\n }\n this.renderedRows.set(rowIndex, { rowComponent: rowComponent, eDiv: eDiv });\n };\n VirtualList.prototype.removeRow = function (rowIndex) {\n var component = this.renderedRows.get(rowIndex);\n this.eContainer.removeChild(component.eDiv);\n this.destroyBean(component.rowComponent);\n this.renderedRows.delete(rowIndex);\n };\n VirtualList.prototype.addScrollListener = function () {\n var _this = this;\n this.addGuiEventListener('scroll', function () { return _this.drawVirtualRows(); });\n };\n VirtualList.prototype.setModel = function (model) {\n this.model = model;\n };\n VirtualList.prototype.destroy = function () {\n if (this.isDestroyed) {\n return;\n }\n this.clearVirtualRows();\n this.isDestroyed = true;\n _super.prototype.destroy.call(this);\n };\n __decorate$27([\n Autowired('resizeObserverService')\n ], VirtualList.prototype, \"resizeObserverService\", void 0);\n __decorate$27([\n RefSelector('eContainer')\n ], VirtualList.prototype, \"eContainer\", void 0);\n return VirtualList;\n}(ManagedFocusComponent));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nfunction defaultGroupComparator(valueA, valueB, nodeA, nodeB, accentedCompare) {\n if (accentedCompare === void 0) { accentedCompare = false; }\n console.warn('AG Grid: Since ag-grid 11.0.0 defaultGroupComparator is not necessary. You can remove this from your colDef');\n var nodeAIsGroup = exists(nodeA) && nodeA.group;\n var nodeBIsGroup = exists(nodeB) && nodeB.group;\n var bothAreGroups = nodeAIsGroup && nodeBIsGroup;\n var bothAreNormal = !nodeAIsGroup && !nodeBIsGroup;\n if (bothAreGroups) {\n return defaultComparator(nodeA.key, nodeB.key, accentedCompare);\n }\n if (bothAreNormal) {\n return defaultComparator(valueA, valueB, accentedCompare);\n }\n if (nodeAIsGroup) {\n return 1;\n }\n return -1;\n}\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n(function (ServerSideStoreType) {\n ServerSideStoreType[\"Full\"] = \"full\";\n ServerSideStoreType[\"Partial\"] = \"partial\";\n})(exports.ServerSideStoreType || (exports.ServerSideStoreType = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar BaseComponentWrapper = /** @class */ (function () {\n function BaseComponentWrapper() {\n }\n BaseComponentWrapper.prototype.wrap = function (OriginalConstructor, mandatoryMethodList, optionalMethodList, componentType, componentName) {\n var _this = this;\n if (optionalMethodList === void 0) { optionalMethodList = []; }\n var wrapper = this.createWrapper(OriginalConstructor, componentType, componentName);\n mandatoryMethodList.forEach((function (methodName) {\n _this.createMethod(wrapper, methodName, true);\n }));\n optionalMethodList.forEach((function (methodName) {\n _this.createMethod(wrapper, methodName, false);\n }));\n return wrapper;\n };\n BaseComponentWrapper.prototype.createMethod = function (wrapper, methodName, mandatory) {\n wrapper.addMethod(methodName, this.createMethodProxy(wrapper, methodName, mandatory));\n };\n BaseComponentWrapper.prototype.createMethodProxy = function (wrapper, methodName, mandatory) {\n return function () {\n if (wrapper.hasMethod(methodName)) {\n return wrapper.callMethod(methodName, arguments);\n }\n if (mandatory) {\n console.warn('AG Grid: Framework component is missing the method ' + methodName + '()');\n }\n return null;\n };\n };\n return BaseComponentWrapper;\n}());\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\n(function (ChartType) {\n ChartType[\"Column\"] = \"column\";\n ChartType[\"GroupedColumn\"] = \"groupedColumn\";\n ChartType[\"StackedColumn\"] = \"stackedColumn\";\n ChartType[\"NormalizedColumn\"] = \"normalizedColumn\";\n ChartType[\"Bar\"] = \"bar\";\n ChartType[\"GroupedBar\"] = \"groupedBar\";\n ChartType[\"StackedBar\"] = \"stackedBar\";\n ChartType[\"NormalizedBar\"] = \"normalizedBar\";\n ChartType[\"Line\"] = \"line\";\n ChartType[\"Scatter\"] = \"scatter\";\n ChartType[\"Bubble\"] = \"bubble\";\n ChartType[\"Pie\"] = \"pie\";\n ChartType[\"Doughnut\"] = \"doughnut\";\n ChartType[\"Area\"] = \"area\";\n ChartType[\"StackedArea\"] = \"stackedArea\";\n ChartType[\"NormalizedArea\"] = \"normalizedArea\";\n ChartType[\"Histogram\"] = \"histogram\";\n})(exports.ChartType || (exports.ChartType = {}));\n(function (LegendPosition) {\n LegendPosition[\"Top\"] = \"top\";\n LegendPosition[\"Right\"] = \"right\";\n LegendPosition[\"Bottom\"] = \"bottom\";\n LegendPosition[\"Left\"] = \"left\";\n})(exports.LegendPosition || (exports.LegendPosition = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components\n * @version v25.3.0\n * @link http://www.ag-grid.com/\n * @license MIT\n */\nvar globalObj = typeof global === 'undefined' ? {} : global;\nglobalObj.HTMLElement = typeof HTMLElement === 'undefined' ? {} : HTMLElement;\nglobalObj.HTMLButtonElement = typeof HTMLButtonElement === 'undefined' ? {} : HTMLButtonElement;\nglobalObj.HTMLSelectElement = typeof HTMLSelectElement === 'undefined' ? {} : HTMLSelectElement;\nglobalObj.HTMLInputElement = typeof HTMLInputElement === 'undefined' ? {} : HTMLInputElement;\nglobalObj.Node = typeof Node === 'undefined' ? {} : Node;\nglobalObj.MouseEvent = typeof MouseEvent === 'undefined' ? {} : MouseEvent;\n\nvar __spreadArrays$8 = (undefined && undefined.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nvar ClientSideNodeManager = /** @class */ (function () {\n function ClientSideNodeManager(rootNode, gridOptionsWrapper, context, eventService, columnController, gridApi, columnApi, selectionController) {\n this.nextId = 0;\n // when user is provide the id's, we also keep a map of ids to row nodes for convenience\n this.allNodesMap = {};\n this.rootNode = rootNode;\n this.gridOptionsWrapper = gridOptionsWrapper;\n this.context = context;\n this.eventService = eventService;\n this.columnController = columnController;\n this.gridApi = gridApi;\n this.columnApi = columnApi;\n this.selectionController = selectionController;\n this.rootNode.group = true;\n this.rootNode.level = -1;\n this.rootNode.id = ClientSideNodeManager.ROOT_NODE_ID;\n this.rootNode.allLeafChildren = [];\n this.rootNode.childrenAfterGroup = [];\n this.rootNode.childrenAfterSort = [];\n this.rootNode.childrenAfterFilter = [];\n // if we make this class a bean, then can annotate postConstruct\n this.postConstruct();\n }\n // @PostConstruct - this is not a bean, so postConstruct called by constructor\n ClientSideNodeManager.prototype.postConstruct = function () {\n // func below doesn't have 'this' pointer, so need to pull out these bits\n this.suppressParentsInRowNodes = this.gridOptionsWrapper.isSuppressParentsInRowNodes();\n this.isRowMasterFunc = this.gridOptionsWrapper.getIsRowMasterFunc();\n this.doingTreeData = this.gridOptionsWrapper.isTreeData();\n this.doingMasterDetail = this.gridOptionsWrapper.isMasterDetail();\n };\n ClientSideNodeManager.prototype.getCopyOfNodesMap = function () {\n return _.cloneObject(this.allNodesMap);\n };\n ClientSideNodeManager.prototype.getRowNode = function (id) {\n return this.allNodesMap[id];\n };\n ClientSideNodeManager.prototype.setRowData = function (rowData) {\n this.rootNode.childrenAfterFilter = null;\n this.rootNode.childrenAfterGroup = null;\n this.rootNode.childrenAfterSort = null;\n this.rootNode.childrenMapped = null;\n this.rootNode.updateHasChildren();\n this.nextId = 0;\n this.allNodesMap = {};\n if (!rowData) {\n this.rootNode.allLeafChildren = [];\n this.rootNode.childrenAfterGroup = [];\n return;\n }\n // kick off recursion\n // we add rootNode as the parent, however if using ag-grid-enterprise, the grouping stage\n // sets the parent node on each row (even if we are not grouping). so setting parent node\n // here is for benefit of ag-grid-community users\n this.rootNode.allLeafChildren = this.recursiveFunction(rowData, this.rootNode, ClientSideNodeManager.TOP_LEVEL);\n };\n ClientSideNodeManager.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {\n var rowNodeTransaction = {\n remove: [],\n update: [],\n add: []\n };\n var nodesToUnselect = [];\n this.executeRemove(rowDataTran, rowNodeTransaction, nodesToUnselect);\n this.executeUpdate(rowDataTran, rowNodeTransaction, nodesToUnselect);\n this.executeAdd(rowDataTran, rowNodeTransaction);\n this.updateSelection(nodesToUnselect);\n if (rowNodeOrder) {\n _.sortRowNodesByOrder(this.rootNode.allLeafChildren, rowNodeOrder);\n }\n return rowNodeTransaction;\n };\n ClientSideNodeManager.prototype.updateSelection = function (nodesToUnselect) {\n var selectionChanged = nodesToUnselect.length > 0;\n if (selectionChanged) {\n nodesToUnselect.forEach(function (rowNode) {\n rowNode.setSelected(false, false, true);\n });\n }\n // we do this regardless of nodes to unselect or not, as it's possible\n // a new node was inserted, so a parent that was previously selected (as all\n // children were selected) should not be tri-state (as new one unselected against\n // all other selected children).\n this.selectionController.updateGroupsFromChildrenSelections();\n if (selectionChanged) {\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ClientSideNodeManager.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {\n var _this = this;\n var add = rowDataTran.add, addIndex = rowDataTran.addIndex;\n if (_.missingOrEmpty(add)) {\n return;\n }\n // create new row nodes for each data item\n var newNodes = add.map(function (item) { return _this.createNode(item, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });\n // add new row nodes to the root nodes 'allLeafChildren'\n var useIndex = typeof addIndex === 'number' && addIndex >= 0;\n if (useIndex) {\n // new rows are inserted in one go by concatenating them in between the existing rows at the desired index.\n // this is much faster than splicing them individually into 'allLeafChildren' when there are large inserts.\n var existingLeafChildren = this.rootNode.allLeafChildren;\n var nodesBeforeIndex = existingLeafChildren.slice(0, addIndex);\n var nodesAfterIndex = existingLeafChildren.slice(addIndex, existingLeafChildren.length);\n this.rootNode.allLeafChildren = __spreadArrays$8(nodesBeforeIndex, newNodes, nodesAfterIndex);\n }\n else {\n this.rootNode.allLeafChildren = __spreadArrays$8(this.rootNode.allLeafChildren, newNodes);\n }\n // add new row nodes to the transaction add items\n rowNodeTransaction.add = newNodes;\n };\n ClientSideNodeManager.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var remove = rowDataTran.remove;\n if (_.missingOrEmpty(remove)) {\n return;\n }\n var rowIdsRemoved = {};\n remove.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for\n // each row node updated, instead it is raised once by the calling code if any selected nodes exist.\n if (rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n // so row renderer knows to fade row out (and not reposition it)\n rowNode.clearRowTopAndRowIndex();\n // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially\n // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list\n rowIdsRemoved[rowNode.id] = true;\n // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);\n delete _this.allNodesMap[rowNode.id];\n rowNodeTransaction.remove.push(rowNode);\n });\n this.rootNode.allLeafChildren = this.rootNode.allLeafChildren.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });\n };\n ClientSideNodeManager.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var update = rowDataTran.update;\n if (_.missingOrEmpty(update)) {\n return;\n }\n update.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n rowNode.updateData(item);\n if (!rowNode.selectable && rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n _this.setMasterForRow(rowNode, item, ClientSideNodeManager.TOP_LEVEL, false);\n rowNodeTransaction.update.push(rowNode);\n });\n };\n ClientSideNodeManager.prototype.lookupRowNode = function (data) {\n var rowNodeIdFunc = this.gridOptionsWrapper.getRowNodeIdFunc();\n var rowNode;\n if (_.exists(rowNodeIdFunc)) {\n // find rowNode using id\n var id = rowNodeIdFunc(data);\n rowNode = this.allNodesMap[id];\n if (!rowNode) {\n console.error(\"AG Grid: could not find row id=\" + id + \", data item was not found for this id\");\n return null;\n }\n }\n else {\n // find rowNode using object references\n rowNode = _.find(this.rootNode.allLeafChildren, function (node) { return node.data === data; });\n if (!rowNode) {\n console.error(\"AG Grid: could not find data item as object was not found\", data);\n return null;\n }\n }\n return rowNode;\n };\n ClientSideNodeManager.prototype.recursiveFunction = function (rowData, parent, level) {\n var _this = this;\n // make sure the rowData is an array and not a string of json - this was a commonly reported problem on the forum\n if (typeof rowData === 'string') {\n console.warn('AG Grid: rowData must be an array, however you passed in a string. If you are loading JSON, make sure you convert the JSON string to JavaScript objects first');\n return;\n }\n var rowNodes = [];\n rowData.forEach(function (dataItem) {\n var node = _this.createNode(dataItem, parent, level);\n rowNodes.push(node);\n });\n return rowNodes;\n };\n ClientSideNodeManager.prototype.createNode = function (dataItem, parent, level) {\n var node = new RowNode();\n this.context.createBean(node);\n node.group = false;\n this.setMasterForRow(node, dataItem, level, true);\n if (parent && !this.suppressParentsInRowNodes) {\n node.parent = parent;\n }\n node.level = level;\n node.setDataAndId(dataItem, this.nextId.toString());\n if (this.allNodesMap[node.id]) {\n console.warn(\"ag-grid: duplicate node id '\" + node.id + \"' detected from getRowNodeId callback, this could cause issues in your grid.\");\n }\n this.allNodesMap[node.id] = node;\n this.nextId++;\n return node;\n };\n ClientSideNodeManager.prototype.setMasterForRow = function (rowNode, data, level, setExpanded) {\n if (this.doingTreeData) {\n rowNode.setMaster(false);\n if (setExpanded) {\n rowNode.expanded = false;\n }\n }\n else {\n // this is the default, for when doing grid data\n if (this.doingMasterDetail) {\n // if we are doing master detail, then the\n // default is that everything can be a Master Row.\n if (this.isRowMasterFunc) {\n rowNode.setMaster(this.isRowMasterFunc(data));\n }\n else {\n rowNode.setMaster(true);\n }\n }\n else {\n rowNode.setMaster(false);\n }\n if (setExpanded) {\n var rowGroupColumns = this.columnController.getRowGroupColumns();\n var numRowGroupColumns = rowGroupColumns ? rowGroupColumns.length : 0;\n // need to take row group into account when determining level\n var masterRowLevel = level + numRowGroupColumns;\n rowNode.expanded = rowNode.master ? this.isExpanded(masterRowLevel) : false;\n }\n }\n };\n ClientSideNodeManager.prototype.isExpanded = function (level) {\n var expandByDefault = this.gridOptionsWrapper.getGroupDefaultExpanded();\n if (expandByDefault === -1) {\n return true;\n }\n return level < expandByDefault;\n };\n ClientSideNodeManager.TOP_LEVEL = 0;\n ClientSideNodeManager.ROOT_NODE_ID = 'ROOT_NODE_ID';\n return ClientSideNodeManager;\n}());\n\nvar __extends$2k = (undefined && undefined.__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$28 = (undefined && undefined.__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 RecursionType;\n(function (RecursionType) {\n RecursionType[RecursionType[\"Normal\"] = 0] = \"Normal\";\n RecursionType[RecursionType[\"AfterFilter\"] = 1] = \"AfterFilter\";\n RecursionType[RecursionType[\"AfterFilterAndSort\"] = 2] = \"AfterFilterAndSort\";\n RecursionType[RecursionType[\"PivotNodes\"] = 3] = \"PivotNodes\";\n})(RecursionType || (RecursionType = {}));\nvar ClientSideRowModel = /** @class */ (function (_super) {\n __extends$2k(ClientSideRowModel, _super);\n function ClientSideRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onRowGroupOpenedPending = false;\n return _this;\n }\n ClientSideRowModel.prototype.init = function () {\n var refreshEverythingFunc = this.refreshModel.bind(this, { step: exports.ClientSideRowModelSteps.EVERYTHING });\n var refreshEverythingAfterColsChangedFunc = this.refreshModel.bind(this, {\n step: exports.ClientSideRowModelSteps.EVERYTHING,\n afterColumnsChanged: true,\n keepRenderedRows: true,\n animate: true\n });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refreshEverythingAfterColsChangedFunc);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, refreshEverythingFunc);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.refreshModel.bind(this, { step: exports.ClientSideRowModelSteps.PIVOT }));\n this.addManagedListener(this.eventService, Events.EVENT_ROW_GROUP_OPENED, this.onRowGroupOpened.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, refreshEverythingFunc);\n var refreshMapListener = this.refreshModel.bind(this, {\n step: exports.ClientSideRowModelSteps.MAP,\n keepRenderedRows: true,\n animate: true\n });\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_REMOVE_SINGLE_CHILDREN, refreshMapListener);\n this.addManagedListener(this.gridOptionsWrapper, GridOptionsWrapper.PROP_GROUP_REMOVE_LOWEST_SINGLE_CHILDREN, refreshMapListener);\n this.rootNode = new RowNode();\n this.nodeManager = new ClientSideNodeManager(this.rootNode, this.gridOptionsWrapper, this.getContext(), this.eventService, this.columnController, this.gridApi, this.columnApi, this.selectionController);\n this.createBean(this.rootNode);\n };\n ClientSideRowModel.prototype.start = function () {\n var rowData = this.gridOptionsWrapper.getRowData();\n if (rowData) {\n this.setRowData(rowData);\n }\n };\n ClientSideRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n var atLeastOneChange;\n var res = false;\n // we do this multiple times as changing the row heights can also change the first and last rows,\n // so the first pass can make lots of rows smaller, which means the second pass we end up changing\n // more rows.\n do {\n atLeastOneChange = false;\n var rowAtStartPixel = this.getRowIndexAtPixel(startPixel);\n var rowAtEndPixel = this.getRowIndexAtPixel(endPixel);\n // keep check to current page if doing pagination\n var firstRow = Math.max(rowAtStartPixel, startLimitIndex);\n var lastRow = Math.min(rowAtEndPixel, endLimitIndex);\n for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {\n var rowNode = this.getRow(rowIndex);\n if (rowNode.rowHeightEstimated) {\n var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode);\n rowNode.setRowHeight(rowHeight.height);\n atLeastOneChange = true;\n res = true;\n }\n }\n if (atLeastOneChange) {\n this.setRowTops();\n }\n } while (atLeastOneChange);\n return res;\n };\n ClientSideRowModel.prototype.setRowTops = function () {\n var nextRowTop = 0;\n for (var i = 0; i < this.rowsToDisplay.length; i++) {\n // we don't estimate if doing fullHeight or autoHeight, as all rows get rendered all the time\n // with these two layouts.\n var allowEstimate = this.gridOptionsWrapper.getDomLayout() === Constants.DOM_LAYOUT_NORMAL;\n var rowNode = this.rowsToDisplay[i];\n if (_.missing(rowNode.rowHeight)) {\n var rowHeight = this.gridOptionsWrapper.getRowHeightForNode(rowNode, allowEstimate);\n rowNode.setRowHeight(rowHeight.height, rowHeight.estimated);\n }\n rowNode.setRowTop(nextRowTop);\n rowNode.setRowIndex(i);\n nextRowTop += rowNode.rowHeight;\n }\n };\n ClientSideRowModel.prototype.resetRowTops = function (changedPath) {\n var displayedRowsMapped = {};\n this.rowsToDisplay.forEach(function (rowNode) {\n if (rowNode.id != null) {\n displayedRowsMapped[rowNode.id] = rowNode;\n }\n });\n var clearIfNotDisplayed = function (rowNode) {\n if (rowNode && rowNode.id != null && displayedRowsMapped[rowNode.id] == null) {\n rowNode.clearRowTopAndRowIndex();\n }\n };\n var recurse = function (rowNode) {\n clearIfNotDisplayed(rowNode);\n clearIfNotDisplayed(rowNode.detailNode);\n clearIfNotDisplayed(rowNode.sibling);\n if (rowNode.hasChildren()) {\n if (rowNode.childrenAfterGroup) {\n // if a changedPath is active, it means we are here because of a transaction update or\n // a change detection. neither of these impacts the open/closed state of groups. so if\n // a group is not open this time, it was not open last time. so we know all closed groups\n // already have their top positions cleared. so there is no need to traverse all the way\n // when changedPath is active and the rowNode is not expanded.\n var isRootNode = rowNode.level == -1; // we need to give special consideration for root node,\n // as expanded=undefined for root node\n var skipChildren = changedPath.isActive() && !isRootNode && !rowNode.expanded;\n if (!skipChildren) {\n rowNode.childrenAfterGroup.forEach(recurse);\n }\n }\n }\n };\n recurse(this.rootNode);\n };\n // returns false if row was moved, otherwise true\n ClientSideRowModel.prototype.ensureRowsAtPixel = function (rowNodes, pixel, increment) {\n var _this = this;\n if (increment === void 0) { increment = 0; }\n var indexAtPixelNow = this.getRowIndexAtPixel(pixel);\n var rowNodeAtPixelNow = this.getRow(indexAtPixelNow);\n if (rowNodeAtPixelNow === rowNodes[0]) {\n return false;\n }\n rowNodes.forEach(function (rowNode) {\n _.removeFromArray(_this.rootNode.allLeafChildren, rowNode);\n });\n rowNodes.forEach(function (rowNode, idx) {\n _.insertIntoArray(_this.rootNode.allLeafChildren, rowNode, Math.max(indexAtPixelNow + increment, 0) + idx);\n });\n this.refreshModel({\n step: exports.ClientSideRowModelSteps.EVERYTHING,\n keepRenderedRows: true,\n animate: true,\n keepEditingRows: true\n });\n return true;\n };\n ClientSideRowModel.prototype.highlightRowAtPixel = function (rowNode, pixel) {\n var indexAtPixelNow = pixel != null ? this.getRowIndexAtPixel(pixel) : null;\n var rowNodeAtPixelNow = indexAtPixelNow != null ? this.getRow(indexAtPixelNow) : null;\n if (!rowNodeAtPixelNow || !rowNode || rowNodeAtPixelNow === rowNode || pixel == null) {\n if (this.lastHighlightedRow) {\n this.lastHighlightedRow.setHighlighted(null);\n this.lastHighlightedRow = null;\n }\n return;\n }\n var highlight = this.getHighlightPosition(pixel, rowNodeAtPixelNow);\n if (this.lastHighlightedRow && this.lastHighlightedRow !== rowNodeAtPixelNow) {\n this.lastHighlightedRow.setHighlighted(null);\n this.lastHighlightedRow = null;\n }\n rowNodeAtPixelNow.setHighlighted(highlight);\n this.lastHighlightedRow = rowNodeAtPixelNow;\n };\n ClientSideRowModel.prototype.getHighlightPosition = function (pixel, rowNode) {\n if (!rowNode) {\n var index = this.getRowIndexAtPixel(pixel);\n rowNode = this.getRow(index || 0);\n if (!rowNode) {\n return 'below';\n }\n }\n var rowTop = rowNode.rowTop, rowHeight = rowNode.rowHeight;\n return pixel - rowTop < rowHeight / 2 ? 'above' : 'below';\n };\n ClientSideRowModel.prototype.getLastHighlightedRowNode = function () {\n return this.lastHighlightedRow;\n };\n ClientSideRowModel.prototype.isLastRowIndexKnown = function () {\n return true;\n };\n ClientSideRowModel.prototype.getRowCount = function () {\n if (this.rowsToDisplay) {\n return this.rowsToDisplay.length;\n }\n return 0;\n };\n ClientSideRowModel.prototype.getTopLevelRowCount = function () {\n var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;\n if (showingRootNode) {\n return 1;\n }\n return this.rootNode.childrenAfterFilter ? this.rootNode.childrenAfterFilter.length : 0;\n };\n ClientSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;\n if (showingRootNode) {\n return topLevelIndex;\n }\n var rowNode = this.rootNode.childrenAfterSort[topLevelIndex];\n if (this.gridOptionsWrapper.isGroupHideOpenParents()) {\n // if hideOpenParents, and this row open, then this row is now displayed at this index, first child is\n while (rowNode.expanded && rowNode.childrenAfterSort && rowNode.childrenAfterSort.length > 0) {\n rowNode = rowNode.childrenAfterSort[0];\n }\n }\n return rowNode.rowIndex;\n };\n ClientSideRowModel.prototype.getRowBounds = function (index) {\n if (_.missing(this.rowsToDisplay)) {\n return null;\n }\n var rowNode = this.rowsToDisplay[index];\n if (rowNode) {\n return {\n rowTop: rowNode.rowTop,\n rowHeight: rowNode.rowHeight\n };\n }\n return null;\n };\n ClientSideRowModel.prototype.onRowGroupOpened = function () {\n // because the user can call rowNode.setExpanded() many times in on VM turn,\n // we debounce the call using animationFrameService. we use animationFrameService\n // rather than _.debounce() so this will get done if anyone flushes the animationFrameService\n // (eg user calls api.ensureRowVisible(), which in turn flushes ).\n var _this = this;\n if (this.onRowGroupOpenedPending) {\n return;\n }\n this.onRowGroupOpenedPending = true;\n var action = function () {\n _this.onRowGroupOpenedPending = false;\n var animate = _this.gridOptionsWrapper.isAnimateRows();\n _this.refreshModel({ step: exports.ClientSideRowModelSteps.MAP, keepRenderedRows: true, animate: animate });\n };\n if (this.gridOptionsWrapper.isSuppressAnimationFrame()) {\n action();\n }\n else {\n this.animationFrameService.addDestroyTask(action);\n }\n };\n ClientSideRowModel.prototype.onFilterChanged = function (event) {\n if (event.afterDataChange) {\n return;\n }\n var animate = this.gridOptionsWrapper.isAnimateRows();\n this.refreshModel({ step: exports.ClientSideRowModelSteps.FILTER, keepRenderedRows: true, animate: animate });\n };\n ClientSideRowModel.prototype.onSortChanged = function () {\n var animate = this.gridOptionsWrapper.isAnimateRows();\n this.refreshModel({ step: exports.ClientSideRowModelSteps.SORT, keepRenderedRows: true, animate: animate, keepEditingRows: true });\n };\n ClientSideRowModel.prototype.getType = function () {\n return Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n };\n ClientSideRowModel.prototype.onValueChanged = function () {\n if (this.columnController.isPivotActive()) {\n this.refreshModel({ step: exports.ClientSideRowModelSteps.PIVOT });\n }\n else {\n this.refreshModel({ step: exports.ClientSideRowModelSteps.AGGREGATE });\n }\n };\n ClientSideRowModel.prototype.createChangePath = function (rowNodeTransactions) {\n // for updates, if the row is updated at all, then we re-calc all the values\n // in that row. we could compare each value to each old value, however if we\n // did this, we would be calling the valueService twice, once on the old value\n // and once on the new value. so it's less valueGetter calls if we just assume\n // each column is different. that way the changedPath is used so that only\n // the impacted parent rows are recalculated, parents who's children have\n // not changed are not impacted.\n var noTransactions = _.missingOrEmpty(rowNodeTransactions);\n var changedPath = new ChangedPath(false, this.rootNode);\n if (noTransactions || this.gridOptionsWrapper.isTreeData()) {\n changedPath.setInactive();\n }\n return changedPath;\n };\n ClientSideRowModel.prototype.isSuppressModelUpdateAfterUpdateTransaction = function (params) {\n if (!this.gridOptionsWrapper.isSuppressModelUpdateAfterUpdateTransaction()) {\n return false;\n }\n // return true if we are only doing update transactions\n if (params.rowNodeTransactions == null) {\n return false;\n }\n var transWithAddsOrDeletes = _.filter(params.rowNodeTransactions, function (tx) {\n return (tx.add != null && tx.add.length > 0) || (tx.remove != null && tx.remove.length > 0);\n });\n var transactionsContainUpdatesOnly = transWithAddsOrDeletes == null || transWithAddsOrDeletes.length == 0;\n return transactionsContainUpdatesOnly;\n };\n ClientSideRowModel.prototype.refreshModel = function (params) {\n var _this = this;\n if (this.isSuppressModelUpdateAfterUpdateTransaction(params)) {\n return;\n }\n // this goes through the pipeline of stages. what's in my head is similar\n // to the diagram on this page:\n // http://commons.apache.org/sandbox/commons-pipeline/pipeline_basics.html\n // however we want to keep the results of each stage, hence we manually call\n // each step rather than have them chain each other.\n // fallthrough in below switch is on purpose,\n // eg if STEP_FILTER, then all steps below this\n // step get done\n // let start: number;\n // console.log('======= start =======');\n var changedPath = this.createChangePath(params.rowNodeTransactions);\n switch (params.step) {\n case exports.ClientSideRowModelSteps.EVERYTHING:\n // start = new Date().getTime();\n this.doRowGrouping(params.groupState, params.rowNodeTransactions, params.rowNodeOrder, changedPath, !!params.afterColumnsChanged);\n // console.log('rowGrouping = ' + (new Date().getTime() - start));\n case exports.ClientSideRowModelSteps.FILTER:\n // start = new Date().getTime();\n this.doFilter(changedPath);\n // console.log('filter = ' + (new Date().getTime() - start));\n case exports.ClientSideRowModelSteps.PIVOT:\n this.doPivot(changedPath);\n case exports.ClientSideRowModelSteps.AGGREGATE: // depends on agg fields\n // start = new Date().getTime();\n this.doAggregate(changedPath);\n // console.log('aggregation = ' + (new Date().getTime() - start));\n case exports.ClientSideRowModelSteps.SORT:\n // start = new Date().getTime();\n this.doSort(params.rowNodeTransactions, changedPath);\n // console.log('sort = ' + (new Date().getTime() - start));\n case exports.ClientSideRowModelSteps.MAP:\n // start = new Date().getTime();\n this.doRowsToDisplay();\n // console.log('rowsToDisplay = ' + (new Date().getTime() - start));\n }\n // set all row tops to null, then set row tops on all visible rows. if we don't\n // do this, then the algorithm below only sets row tops, old row tops from old rows\n // will still lie around\n this.setRowTops();\n this.resetRowTops(changedPath);\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi,\n animate: params.animate,\n keepRenderedRows: params.keepRenderedRows,\n newData: params.newData,\n newPage: false\n };\n this.eventService.dispatchEvent(event);\n if (this.$scope) {\n window.setTimeout(function () {\n _this.$scope.$apply();\n }, 0);\n }\n };\n ClientSideRowModel.prototype.isEmpty = function () {\n var rowsMissing = _.missing(this.rootNode.allLeafChildren) || this.rootNode.allLeafChildren.length === 0;\n return _.missing(this.rootNode) || rowsMissing || !this.columnController.isReady();\n };\n ClientSideRowModel.prototype.isRowsToRender = function () {\n return _.exists(this.rowsToDisplay) && this.rowsToDisplay.length > 0;\n };\n ClientSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n // if lastSelectedNode is missing, we start at the first row\n var firstRowHit = !lastInRange;\n var lastRowHit = false;\n var lastRow;\n var result = [];\n var groupsSelectChildren = this.gridOptionsWrapper.isGroupSelectsChildren();\n this.forEachNodeAfterFilterAndSort(function (rowNode) {\n var lookingForLastRow = firstRowHit && !lastRowHit;\n // check if we need to flip the select switch\n if (!firstRowHit) {\n if (rowNode === lastInRange || rowNode === firstInRange) {\n firstRowHit = true;\n }\n }\n var skipThisGroupNode = rowNode.group && groupsSelectChildren;\n if (!skipThisGroupNode) {\n var inRange = firstRowHit && !lastRowHit;\n var childOfLastRow = rowNode.isParentOfNode(lastRow);\n if (inRange || childOfLastRow) {\n result.push(rowNode);\n }\n }\n if (lookingForLastRow) {\n if (rowNode === lastInRange || rowNode === firstInRange) {\n lastRowHit = true;\n if (rowNode === lastInRange) {\n lastRow = lastInRange;\n }\n else {\n lastRow = firstInRange;\n }\n }\n }\n });\n return result;\n };\n ClientSideRowModel.prototype.setDatasource = function (datasource) {\n console.error('AG Grid: should never call setDatasource on clientSideRowController');\n };\n ClientSideRowModel.prototype.getTopLevelNodes = function () {\n return this.rootNode ? this.rootNode.childrenAfterGroup : null;\n };\n ClientSideRowModel.prototype.getRootNode = function () {\n return this.rootNode;\n };\n ClientSideRowModel.prototype.getRow = function (index) {\n return this.rowsToDisplay[index];\n };\n ClientSideRowModel.prototype.isRowPresent = function (rowNode) {\n return this.rowsToDisplay.indexOf(rowNode) >= 0;\n };\n ClientSideRowModel.prototype.getRowIndexAtPixel = function (pixelToMatch) {\n if (this.isEmpty()) {\n return -1;\n }\n // do binary search of tree\n // http://oli.me.uk/2013/06/08/searching-javascript-arrays-with-a-binary-search/\n var bottomPointer = 0;\n var topPointer = this.rowsToDisplay.length - 1;\n // quick check, if the pixel is out of bounds, then return last row\n if (pixelToMatch <= 0) {\n // if pixel is less than or equal zero, it's always the first row\n return 0;\n }\n var lastNode = _.last(this.rowsToDisplay);\n if (lastNode.rowTop <= pixelToMatch) {\n return this.rowsToDisplay.length - 1;\n }\n while (true) {\n var midPointer = Math.floor((bottomPointer + topPointer) / 2);\n var currentRowNode = this.rowsToDisplay[midPointer];\n if (this.isRowInPixel(currentRowNode, pixelToMatch)) {\n return midPointer;\n }\n if (currentRowNode.rowTop < pixelToMatch) {\n bottomPointer = midPointer + 1;\n }\n else if (currentRowNode.rowTop > pixelToMatch) {\n topPointer = midPointer - 1;\n }\n }\n };\n ClientSideRowModel.prototype.isRowInPixel = function (rowNode, pixelToMatch) {\n var topPixel = rowNode.rowTop;\n var bottomPixel = rowNode.rowTop + rowNode.rowHeight;\n var pixelInRow = topPixel <= pixelToMatch && bottomPixel > pixelToMatch;\n return pixelInRow;\n };\n ClientSideRowModel.prototype.forEachLeafNode = function (callback) {\n if (this.rootNode.allLeafChildren) {\n this.rootNode.allLeafChildren.forEach(function (rowNode, index) { return callback(rowNode, index); });\n }\n };\n ClientSideRowModel.prototype.forEachNode = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterGroup, callback, RecursionType.Normal, 0);\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilter = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterFilter, callback, RecursionType.AfterFilter, 0);\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n this.recursivelyWalkNodesAndCallback(this.rootNode.childrenAfterSort, callback, RecursionType.AfterFilterAndSort, 0);\n };\n ClientSideRowModel.prototype.forEachPivotNode = function (callback) {\n this.recursivelyWalkNodesAndCallback([this.rootNode], callback, RecursionType.PivotNodes, 0);\n };\n // iterates through each item in memory, and calls the callback function\n // nodes - the rowNodes to traverse\n // callback - the user provided callback\n // recursion type - need this to know what child nodes to recurse, eg if looking at all nodes, or filtered notes etc\n // index - works similar to the index in forEach in javascript's array function\n ClientSideRowModel.prototype.recursivelyWalkNodesAndCallback = function (nodes, callback, recursionType, index) {\n if (!nodes) {\n return index;\n }\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n callback(node, index++);\n // go to the next level if it is a group\n if (node.hasChildren()) {\n // depending on the recursion type, we pick a difference set of children\n var nodeChildren = null;\n switch (recursionType) {\n case RecursionType.Normal:\n nodeChildren = node.childrenAfterGroup;\n break;\n case RecursionType.AfterFilter:\n nodeChildren = node.childrenAfterFilter;\n break;\n case RecursionType.AfterFilterAndSort:\n nodeChildren = node.childrenAfterSort;\n break;\n case RecursionType.PivotNodes:\n // for pivot, we don't go below leafGroup levels\n nodeChildren = !node.leafGroup ? node.childrenAfterSort : null;\n break;\n }\n if (nodeChildren) {\n index = this.recursivelyWalkNodesAndCallback(nodeChildren, callback, recursionType, index);\n }\n }\n }\n return index;\n };\n // it's possible to recompute the aggregate without doing the other parts\n // + gridApi.recomputeAggregates()\n ClientSideRowModel.prototype.doAggregate = function (changedPath) {\n if (this.aggregationStage) {\n this.aggregationStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n };\n // + gridApi.expandAll()\n // + gridApi.collapseAll()\n ClientSideRowModel.prototype.expandOrCollapseAll = function (expand) {\n var usingTreeData = this.gridOptionsWrapper.isTreeData();\n if (this.rootNode) {\n recursiveExpandOrCollapse(this.rootNode.childrenAfterGroup);\n }\n function recursiveExpandOrCollapse(rowNodes) {\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var shouldExpandOrCollapse = usingTreeData ? _.exists(rowNode.childrenAfterGroup) : rowNode.group;\n if (shouldExpandOrCollapse) {\n rowNode.expanded = expand;\n recursiveExpandOrCollapse(rowNode.childrenAfterGroup);\n }\n });\n }\n this.refreshModel({ step: exports.ClientSideRowModelSteps.MAP });\n var eventSource = expand ? 'expandAll' : 'collapseAll';\n var event = {\n api: this.gridApi,\n columnApi: this.columnApi,\n type: Events.EVENT_EXPAND_COLLAPSE_ALL,\n source: eventSource\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.doSort = function (rowNodeTransactions, changedPath) {\n this.sortStage.execute({\n rowNode: this.rootNode,\n rowNodeTransactions: rowNodeTransactions,\n changedPath: changedPath\n });\n };\n ClientSideRowModel.prototype.doRowGrouping = function (groupState, rowNodeTransactions, rowNodeOrder, changedPath, afterColumnsChanged) {\n if (this.groupStage) {\n if (rowNodeTransactions) {\n this.groupStage.execute({\n rowNode: this.rootNode,\n rowNodeTransactions: rowNodeTransactions,\n rowNodeOrder: rowNodeOrder,\n changedPath: changedPath\n });\n }\n else {\n // groups are about to get disposed, so need to deselect any that are selected\n this.selectionController.removeGroupsFromSelection();\n this.groupStage.execute({\n rowNode: this.rootNode,\n changedPath: changedPath,\n afterColumnsChanged: afterColumnsChanged\n });\n // set open/closed state on groups\n this.restoreGroupState(groupState);\n }\n if (this.gridOptionsWrapper.isGroupSelectsChildren()) {\n this.selectionController.updateGroupsFromChildrenSelections(changedPath);\n }\n }\n else {\n this.rootNode.childrenAfterGroup = this.rootNode.allLeafChildren;\n this.rootNode.updateHasChildren();\n }\n };\n ClientSideRowModel.prototype.restoreGroupState = function (groupState) {\n if (!groupState) {\n return;\n }\n _.traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) {\n // if the group was open last time, then open it this time. however\n // if was not open last time, then don't touch the group, so the 'groupDefaultExpanded'\n // setting will take effect.\n if (typeof groupState[key] === 'boolean') {\n node.expanded = groupState[key];\n }\n });\n };\n ClientSideRowModel.prototype.doFilter = function (changedPath) {\n this.filterStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n };\n ClientSideRowModel.prototype.doPivot = function (changedPath) {\n if (this.pivotStage) {\n this.pivotStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n };\n ClientSideRowModel.prototype.getGroupState = function () {\n if (!this.rootNode.childrenAfterGroup || !this.gridOptionsWrapper.isRememberGroupStateWhenNewData()) {\n return null;\n }\n var result = {};\n _.traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) { return result[key] = node.expanded; });\n return result;\n };\n ClientSideRowModel.prototype.getCopyOfNodesMap = function () {\n return this.nodeManager.getCopyOfNodesMap();\n };\n ClientSideRowModel.prototype.getRowNode = function (id) {\n // although id is typed a string, this could be called by the user, and they could have passed a number\n var idIsGroup = typeof id == 'string' && id.indexOf(RowNode.ID_PREFIX_ROW_GROUP) == 0;\n if (idIsGroup) {\n // only one users complained about getRowNode not working for groups, after years of\n // this working for normal rows. so have done quick implementation. if users complain\n // about performance, then GroupStage should store / manage created groups in a map,\n // which is a chunk of work.\n var res_1 = null;\n this.forEachNode(function (node) {\n if (node.id === id) {\n res_1 = node;\n }\n });\n return res_1;\n }\n else {\n return this.nodeManager.getRowNode(id);\n }\n };\n // rows: the rows to put into the model\n ClientSideRowModel.prototype.setRowData = function (rowData) {\n // no need to invalidate cache, as the cache is stored on the rowNode,\n // so new rowNodes means the cache is wiped anyway.\n // remember group state, so we can expand groups that should be expanded\n var groupState = this.getGroupState();\n this.nodeManager.setRowData(rowData);\n // this event kicks off:\n // - clears selection\n // - updates filters\n // - shows 'no rows' overlay if needed\n var rowDataChangedEvent = {\n type: Events.EVENT_ROW_DATA_CHANGED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(rowDataChangedEvent);\n this.refreshModel({\n step: exports.ClientSideRowModelSteps.EVERYTHING,\n groupState: groupState,\n newData: true\n });\n };\n ClientSideRowModel.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {\n var _this = this;\n if (this.applyAsyncTransactionsTimeout == null) {\n this.rowDataTransactionBatch = [];\n var waitMillis = this.gridOptionsWrapper.getAsyncTransactionWaitMillis();\n this.applyAsyncTransactionsTimeout = window.setTimeout(function () {\n _this.executeBatchUpdateRowData();\n }, waitMillis);\n }\n this.rowDataTransactionBatch.push({ rowDataTransaction: rowDataTransaction, callback: callback });\n };\n ClientSideRowModel.prototype.flushAsyncTransactions = function () {\n if (this.applyAsyncTransactionsTimeout != null) {\n clearTimeout(this.applyAsyncTransactionsTimeout);\n this.executeBatchUpdateRowData();\n }\n };\n ClientSideRowModel.prototype.executeBatchUpdateRowData = function () {\n var _this = this;\n this.valueCache.onDataChanged();\n var callbackFuncsBound = [];\n var rowNodeTrans = [];\n // The rowGroup stage uses rowNodeOrder if order was provided. if we didn't pass 'true' to\n // commonUpdateRowData, using addIndex would have no effect when grouping.\n var forceRowNodeOrder = false;\n if (this.rowDataTransactionBatch) {\n this.rowDataTransactionBatch.forEach(function (tranItem) {\n var rowNodeTran = _this.nodeManager.updateRowData(tranItem.rowDataTransaction, undefined);\n rowNodeTrans.push(rowNodeTran);\n if (tranItem.callback) {\n callbackFuncsBound.push(tranItem.callback.bind(null, rowNodeTran));\n }\n if (typeof tranItem.rowDataTransaction.addIndex === 'number') {\n forceRowNodeOrder = true;\n }\n });\n }\n this.commonUpdateRowData(rowNodeTrans, undefined, forceRowNodeOrder);\n // do callbacks in next VM turn so it's async\n if (callbackFuncsBound.length > 0) {\n window.setTimeout(function () {\n callbackFuncsBound.forEach(function (func) { return func(); });\n }, 0);\n }\n if (rowNodeTrans.length > 0) {\n var event_1 = {\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n type: Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,\n results: rowNodeTrans\n };\n this.eventService.dispatchEvent(event_1);\n }\n this.rowDataTransactionBatch = null;\n this.applyAsyncTransactionsTimeout = undefined;\n };\n ClientSideRowModel.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {\n this.valueCache.onDataChanged();\n var rowNodeTran = this.nodeManager.updateRowData(rowDataTran, rowNodeOrder);\n // if doing immutableData, addIndex is never present. however if doing standard transaction, and user\n // provided addIndex, then this is used in updateRowData. However if doing Enterprise, then the rowGroup\n // stage also uses the\n var forceRowNodeOrder = typeof rowDataTran.addIndex === 'number';\n this.commonUpdateRowData([rowNodeTran], rowNodeOrder, forceRowNodeOrder);\n return rowNodeTran;\n };\n ClientSideRowModel.prototype.createRowNodeOrder = function () {\n var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();\n if (suppressSortOrder) {\n return;\n }\n var orderMap = {};\n if (this.rootNode && this.rootNode.allLeafChildren) {\n for (var index = 0; index < this.rootNode.allLeafChildren.length; index++) {\n var node = this.rootNode.allLeafChildren[index];\n orderMap[node.id] = index;\n }\n }\n return orderMap;\n };\n // common to updateRowData and batchUpdateRowData\n ClientSideRowModel.prototype.commonUpdateRowData = function (rowNodeTrans, rowNodeOrder, forceRowNodeOrder) {\n if (forceRowNodeOrder) {\n rowNodeOrder = this.createRowNodeOrder();\n }\n this.refreshModel({\n step: exports.ClientSideRowModelSteps.EVERYTHING,\n rowNodeTransactions: rowNodeTrans,\n rowNodeOrder: rowNodeOrder,\n keepRenderedRows: true,\n animate: true,\n keepEditingRows: true\n });\n var event = {\n type: Events.EVENT_ROW_DATA_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.doRowsToDisplay = function () {\n this.rowsToDisplay = this.flattenStage.execute({ rowNode: this.rootNode });\n };\n ClientSideRowModel.prototype.onRowHeightChanged = function () {\n this.refreshModel({ step: exports.ClientSideRowModelSteps.MAP, keepRenderedRows: true, keepEditingRows: true });\n };\n ClientSideRowModel.prototype.resetRowHeights = function () {\n var atLeastOne = false;\n this.forEachNode(function (rowNode) {\n rowNode.setRowHeight(rowNode.rowHeight, true);\n // we keep the height each row is at, however we set estimated=true rather than clear the height.\n // this means the grid will not reset the row heights back to defaults, rather it will re-calc\n // the height for each row as the row is displayed. otherwise the scroll will jump when heights are reset.\n var detailNode = rowNode.detailNode;\n if (detailNode) {\n detailNode.setRowHeight(detailNode.rowHeight, true);\n }\n atLeastOne = true;\n });\n if (atLeastOne) {\n this.onRowHeightChanged();\n }\n };\n __decorate$28([\n Autowired('columnController')\n ], ClientSideRowModel.prototype, \"columnController\", void 0);\n __decorate$28([\n Autowired('$scope')\n ], ClientSideRowModel.prototype, \"$scope\", void 0);\n __decorate$28([\n Autowired('selectionController')\n ], ClientSideRowModel.prototype, \"selectionController\", void 0);\n __decorate$28([\n Autowired('valueCache')\n ], ClientSideRowModel.prototype, \"valueCache\", void 0);\n __decorate$28([\n Autowired('columnApi')\n ], ClientSideRowModel.prototype, \"columnApi\", void 0);\n __decorate$28([\n Autowired('gridApi')\n ], ClientSideRowModel.prototype, \"gridApi\", void 0);\n __decorate$28([\n Autowired('animationFrameService')\n ], ClientSideRowModel.prototype, \"animationFrameService\", void 0);\n __decorate$28([\n Autowired('filterStage')\n ], ClientSideRowModel.prototype, \"filterStage\", void 0);\n __decorate$28([\n Autowired('sortStage')\n ], ClientSideRowModel.prototype, \"sortStage\", void 0);\n __decorate$28([\n Autowired('flattenStage')\n ], ClientSideRowModel.prototype, \"flattenStage\", void 0);\n __decorate$28([\n Optional('groupStage')\n ], ClientSideRowModel.prototype, \"groupStage\", void 0);\n __decorate$28([\n Optional('aggregationStage')\n ], ClientSideRowModel.prototype, \"aggregationStage\", void 0);\n __decorate$28([\n Optional('pivotStage')\n ], ClientSideRowModel.prototype, \"pivotStage\", void 0);\n __decorate$28([\n PostConstruct\n ], ClientSideRowModel.prototype, \"init\", null);\n ClientSideRowModel = __decorate$28([\n Bean('rowModel')\n ], ClientSideRowModel);\n return ClientSideRowModel;\n}(BeanStub));\n\nvar __extends$2l = (undefined && undefined.__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$29 = (undefined && undefined.__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 FilterStage = /** @class */ (function (_super) {\n __extends$2l(FilterStage, _super);\n function FilterStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterStage.prototype.execute = function (params) {\n var rowNode = params.rowNode, changedPath = params.changedPath;\n this.filterService.filter(changedPath);\n this.selectableService.updateSelectableAfterFiltering(rowNode);\n };\n __decorate$29([\n Autowired('selectableService')\n ], FilterStage.prototype, \"selectableService\", void 0);\n __decorate$29([\n Autowired('filterService')\n ], FilterStage.prototype, \"filterService\", void 0);\n FilterStage = __decorate$29([\n Bean('filterStage')\n ], FilterStage);\n return FilterStage;\n}(BeanStub));\n\nvar __extends$2m = (undefined && undefined.__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$2a = (undefined && undefined.__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 SortStage = /** @class */ (function (_super) {\n __extends$2m(SortStage, _super);\n function SortStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortStage.prototype.execute = function (params) {\n var sortOptions = this.sortController.getSortOptions();\n var sortActive = _.exists(sortOptions) && sortOptions.length > 0;\n var deltaSort = sortActive\n && _.exists(params.rowNodeTransactions)\n // in time we can remove this check, so that delta sort is always\n // on if transactions are present. it's off for now so that we can\n // selectively turn it on and test it with some select users before\n // rolling out to everyone.\n && this.gridOptionsWrapper.isDeltaSort();\n // we only need dirty nodes if doing delta sort\n var dirtyLeafNodes = deltaSort ? this.calculateDirtyNodes(params.rowNodeTransactions) : null;\n var valueColumns = this.columnController.getValueColumns();\n var noAggregations = _.missingOrEmpty(valueColumns);\n this.sortService.sort(sortOptions, sortActive, deltaSort, dirtyLeafNodes, params.changedPath, noAggregations);\n };\n SortStage.prototype.calculateDirtyNodes = function (rowNodeTransactions) {\n var dirtyNodes = {};\n var addNodesFunc = function (rowNodes) {\n if (rowNodes) {\n rowNodes.forEach(function (rowNode) { return dirtyNodes[rowNode.id] = true; });\n }\n };\n // all leaf level nodes in the transaction were impacted\n if (rowNodeTransactions) {\n rowNodeTransactions.forEach(function (tran) {\n addNodesFunc(tran.add);\n addNodesFunc(tran.update);\n addNodesFunc(tran.remove);\n });\n }\n return dirtyNodes;\n };\n __decorate$2a([\n Autowired('sortService')\n ], SortStage.prototype, \"sortService\", void 0);\n __decorate$2a([\n Autowired('sortController')\n ], SortStage.prototype, \"sortController\", void 0);\n __decorate$2a([\n Autowired('columnController')\n ], SortStage.prototype, \"columnController\", void 0);\n SortStage = __decorate$2a([\n Bean('sortStage')\n ], SortStage);\n return SortStage;\n}(BeanStub));\n\nvar __extends$2n = (undefined && undefined.__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$2b = (undefined && undefined.__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 FlattenStage = /** @class */ (function (_super) {\n __extends$2n(FlattenStage, _super);\n function FlattenStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FlattenStage.prototype.execute = function (params) {\n var rootNode = params.rowNode;\n // even if not doing grouping, we do the mapping, as the client might\n // of passed in data that already has a grouping in it somewhere\n var result = [];\n // putting value into a wrapper so it's passed by reference\n var nextRowTop = { value: 0 };\n var skipLeafNodes = this.columnController.isPivotMode();\n // if we are reducing, and not grouping, then we want to show the root node, as that\n // is where the pivot values are\n var showRootNode = skipLeafNodes && rootNode.leafGroup;\n var topList = showRootNode ? [rootNode] : rootNode.childrenAfterSort;\n this.recursivelyAddToRowsToDisplay(topList, result, nextRowTop, skipLeafNodes, 0);\n // we do not want the footer total if the gris is empty\n var atLeastOneRowPresent = result.length > 0;\n var includeGroupTotalFooter = !showRootNode\n // don't show total footer when showRootNode is true (i.e. in pivot mode and no groups)\n && atLeastOneRowPresent\n && this.gridOptionsWrapper.isGroupIncludeTotalFooter();\n if (includeGroupTotalFooter) {\n this.ensureFooterNodeExists(rootNode);\n this.addRowNodeToRowsToDisplay(rootNode.sibling, result, nextRowTop, 0);\n }\n return result;\n };\n FlattenStage.prototype.recursivelyAddToRowsToDisplay = function (rowsToFlatten, result, nextRowTop, skipLeafNodes, uiLevel) {\n if (_.missingOrEmpty(rowsToFlatten)) {\n return;\n }\n var hideOpenParents = this.gridOptionsWrapper.isGroupHideOpenParents();\n // these two are mutually exclusive, so if first set, we don't set the second\n var groupRemoveSingleChildren = this.gridOptionsWrapper.isGroupRemoveSingleChildren();\n var groupRemoveLowestSingleChildren = !groupRemoveSingleChildren && this.gridOptionsWrapper.isGroupRemoveLowestSingleChildren();\n for (var i = 0; i < rowsToFlatten.length; i++) {\n var rowNode = rowsToFlatten[i];\n // check all these cases, for working out if this row should be included in the final mapped list\n var isParent = rowNode.hasChildren();\n var isSkippedLeafNode = skipLeafNodes && !isParent;\n var isRemovedSingleChildrenGroup = groupRemoveSingleChildren &&\n isParent &&\n rowNode.childrenAfterGroup.length === 1;\n var isRemovedLowestSingleChildrenGroup = groupRemoveLowestSingleChildren &&\n isParent &&\n rowNode.leafGroup &&\n rowNode.childrenAfterGroup.length === 1;\n // hide open parents means when group is open, we don't show it. we also need to make sure the\n // group is expandable in the first place (as leaf groups are not expandable if pivot mode is on).\n // the UI will never allow expanding leaf groups, however the user might via the API (or menu option 'expand all')\n var neverAllowToExpand = skipLeafNodes && rowNode.leafGroup;\n var isHiddenOpenParent = hideOpenParents && rowNode.expanded && (!neverAllowToExpand);\n var thisRowShouldBeRendered = !isSkippedLeafNode && !isHiddenOpenParent &&\n !isRemovedSingleChildrenGroup && !isRemovedLowestSingleChildrenGroup;\n if (thisRowShouldBeRendered) {\n this.addRowNodeToRowsToDisplay(rowNode, result, nextRowTop, uiLevel);\n }\n // if we are pivoting, we never map below the leaf group\n if (skipLeafNodes && rowNode.leafGroup) {\n continue;\n }\n if (isParent) {\n var excludedParent = isRemovedSingleChildrenGroup || isRemovedLowestSingleChildrenGroup;\n // we traverse the group if it is expended, however we always traverse if the parent node\n // was removed (as the group will never be opened if it is not displayed, we show the children instead)\n if (rowNode.expanded || excludedParent) {\n // if the parent was excluded, then ui level is that of the parent\n var uiLevelForChildren = excludedParent ? uiLevel : uiLevel + 1;\n this.recursivelyAddToRowsToDisplay(rowNode.childrenAfterSort, result, nextRowTop, skipLeafNodes, uiLevelForChildren);\n // put a footer in if user is looking for it\n if (this.gridOptionsWrapper.isGroupIncludeFooter()) {\n this.ensureFooterNodeExists(rowNode);\n this.addRowNodeToRowsToDisplay(rowNode.sibling, result, nextRowTop, uiLevel);\n }\n }\n }\n else if (rowNode.master && rowNode.expanded) {\n var detailNode = this.createDetailNode(rowNode);\n this.addRowNodeToRowsToDisplay(detailNode, result, nextRowTop, uiLevel);\n }\n }\n };\n // duplicated method, it's also in floatingRowModel\n FlattenStage.prototype.addRowNodeToRowsToDisplay = function (rowNode, result, nextRowTop, uiLevel) {\n var isGroupMultiAutoColumn = this.gridOptionsWrapper.isGroupMultiAutoColumn();\n result.push(rowNode);\n rowNode.setUiLevel(isGroupMultiAutoColumn ? 0 : uiLevel);\n };\n FlattenStage.prototype.ensureFooterNodeExists = function (groupNode) {\n // only create footer node once, otherwise we have daemons and\n // the animate screws up with the daemons hanging around\n if (_.exists(groupNode.sibling)) {\n return;\n }\n var footerNode = new RowNode();\n this.context.createBean(footerNode);\n Object.keys(groupNode).forEach(function (key) {\n footerNode[key] = groupNode[key];\n });\n footerNode.footer = true;\n footerNode.setRowTop(null);\n footerNode.setRowIndex(null);\n // manually set oldRowTop to null so we discard any\n // previous information about its position.\n footerNode.oldRowTop = null;\n if (_.exists(footerNode.id)) {\n footerNode.id = 'rowGroupFooter_' + footerNode.id;\n }\n // get both header and footer to reference each other as siblings. this is never undone,\n // only overwritten. so if a group is expanded, then contracted, it will have a ghost\n // sibling - but that's fine, as we can ignore this if the header is contracted.\n footerNode.sibling = groupNode;\n groupNode.sibling = footerNode;\n };\n FlattenStage.prototype.createDetailNode = function (masterNode) {\n if (_.exists(masterNode.detailNode)) {\n return masterNode.detailNode;\n }\n var detailNode = new RowNode();\n this.context.createBean(detailNode);\n detailNode.detail = true;\n detailNode.selectable = false;\n detailNode.parent = masterNode;\n if (_.exists(masterNode.id)) {\n detailNode.id = 'detail_' + masterNode.id;\n }\n detailNode.data = masterNode.data;\n detailNode.level = masterNode.level + 1;\n masterNode.detailNode = detailNode;\n return detailNode;\n };\n __decorate$2b([\n Autowired('columnController')\n ], FlattenStage.prototype, \"columnController\", void 0);\n FlattenStage = __decorate$2b([\n Bean('flattenStage')\n ], FlattenStage);\n return FlattenStage;\n}(BeanStub));\n\nvar __extends$2o = (undefined && undefined.__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$2c = (undefined && undefined.__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 SortService = /** @class */ (function (_super) {\n __extends$2o(SortService, _super);\n function SortService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortService.prototype.init = function () {\n this.postSortFunc = this.gridOptionsWrapper.getPostSortFunc();\n };\n SortService.prototype.sort = function (sortOptions, sortActive, deltaSort, dirtyLeafNodes, changedPath, noAggregations) {\n var _this = this;\n var callback = function (rowNode) {\n // we clear out the 'pull down open parents' first, as the values mix up the sorting\n _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterFilter, true);\n // Javascript sort is non deterministic when all the array items are equals, ie Comparator always returns 0,\n // so to ensure the array keeps its order, add an additional sorting condition manually, in this case we\n // are going to inspect the original array position. This is what sortedRowNodes is for.\n if (sortActive) {\n rowNode.childrenAfterSort = deltaSort ?\n _this.doDeltaSort(rowNode, sortOptions, dirtyLeafNodes, changedPath, noAggregations)\n : _this.rowNodeSorter.doFullSort(rowNode.childrenAfterFilter, sortOptions);\n }\n else {\n rowNode.childrenAfterSort = rowNode.childrenAfterFilter.slice(0);\n }\n _this.updateChildIndexes(rowNode);\n if (_this.postSortFunc) {\n _this.postSortFunc(rowNode.childrenAfterSort);\n }\n };\n if (changedPath) {\n changedPath.forEachChangedNodeDepthFirst(callback);\n }\n this.updateGroupDataForHiddenOpenParents(changedPath);\n };\n SortService.prototype.mapNodeToSortedNode = function (rowNode, pos) {\n return { currentPos: pos, rowNode: rowNode };\n };\n SortService.prototype.doDeltaSort = function (rowNode, sortOptions, dirtyLeafNodes, changedPath, noAggregations) {\n // clean nodes will be a list of all row nodes that remain in the set\n // and ordered. we start with the old sorted set and take out any nodes\n // that were removed or changed (but not added, added doesn't make sense,\n // if a node was added, there is no way it could be here from last time).\n var cleanNodes = rowNode.childrenAfterSort\n .filter(function (node) {\n // take out all nodes that were changed as part of the current transaction.\n // a changed node could a) be in a different sort position or b) may\n // no longer be in this set as the changed node may not pass filtering,\n // or be in a different group.\n var passesDirtyNodesCheck = !dirtyLeafNodes[node.id];\n // also remove group nodes in the changed path, as they can have different aggregate\n // values which could impact the sort order.\n // note: changed path is not active if a) no value columns or b) no transactions. it is never\n // (b) in deltaSort as we only do deltaSort for transactions. for (a) if no value columns, then\n // there is no value in the group that could of changed (ie no aggregate values)\n var passesChangedPathCheck = noAggregations || (changedPath && changedPath.canSkip(node));\n return passesDirtyNodesCheck && passesChangedPathCheck;\n })\n .map(this.mapNodeToSortedNode.bind(this));\n // for fast access below, we map them\n var cleanNodesMapped = {};\n cleanNodes.forEach(function (sortedRowNode) { return cleanNodesMapped[sortedRowNode.rowNode.id] = sortedRowNode.rowNode; });\n // these are all nodes that need to be placed\n var changedNodes = rowNode.childrenAfterFilter\n // ignore nodes in the clean list\n .filter(function (node) { return !cleanNodesMapped[node.id]; })\n .map(this.mapNodeToSortedNode.bind(this));\n // sort changed nodes. note that we don't need to sort cleanNodes as they are\n // already sorted from last time.\n changedNodes.sort(this.rowNodeSorter.compareRowNodes.bind(this, sortOptions));\n var result;\n if (changedNodes.length === 0) {\n result = cleanNodes;\n }\n else if (cleanNodes.length === 0) {\n result = changedNodes;\n }\n else {\n result = this.mergeSortedArrays(sortOptions, cleanNodes, changedNodes);\n }\n return result.map(function (item) { return item.rowNode; });\n };\n // Merge two sorted arrays into each other\n SortService.prototype.mergeSortedArrays = function (sortOptions, arr1, arr2) {\n var res = [];\n var i = 0;\n var j = 0;\n // Traverse both array, adding them in order\n while (i < arr1.length && j < arr2.length) {\n // Check if current element of first\n // array is smaller than current element\n // of second array. If yes, store first\n // array element and increment first array\n // index. Otherwise do same with second array\n var compareResult = this.rowNodeSorter.compareRowNodes(sortOptions, arr1[i], arr2[j]);\n if (compareResult < 0) {\n res.push(arr1[i++]);\n }\n else {\n res.push(arr2[j++]);\n }\n }\n // add remaining from arr1\n while (i < arr1.length) {\n res.push(arr1[i++]);\n }\n // add remaining from arr2\n while (j < arr2.length) {\n res.push(arr2[j++]);\n }\n return res;\n };\n SortService.prototype.updateChildIndexes = function (rowNode) {\n if (_.missing(rowNode.childrenAfterSort)) {\n return;\n }\n var listToSort = rowNode.childrenAfterSort;\n for (var i = 0; i < listToSort.length; i++) {\n var child = listToSort[i];\n var firstChild = i === 0;\n var lastChild = i === rowNode.childrenAfterSort.length - 1;\n child.setFirstChild(firstChild);\n child.setLastChild(lastChild);\n child.setChildIndex(i);\n }\n };\n SortService.prototype.updateGroupDataForHiddenOpenParents = function (changedPath) {\n var _this = this;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents()) {\n return;\n }\n // recurse breadth first over group nodes after sort to 'pull down' group data to child groups\n var callback = function (rowNode) {\n _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterSort, false);\n rowNode.childrenAfterSort.forEach(function (child) {\n if (child.hasChildren()) {\n callback(child);\n }\n });\n };\n if (changedPath) {\n changedPath.executeFromRootNode(function (rowNode) { return callback(rowNode); });\n }\n };\n SortService.prototype.pullDownGroupDataForHideOpenParents = function (rowNodes, clearOperation) {\n var _this = this;\n if (!this.gridOptionsWrapper.isGroupHideOpenParents() || _.missing(rowNodes)) {\n return;\n }\n rowNodes.forEach(function (childRowNode) {\n var groupDisplayCols = _this.columnController.getGroupDisplayColumns();\n groupDisplayCols.forEach(function (groupDisplayCol) {\n var showRowGroup = groupDisplayCol.getColDef().showRowGroup;\n if (typeof showRowGroup !== 'string') {\n console.error('AG Grid: groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup');\n return;\n }\n var displayingGroupKey = showRowGroup;\n var rowGroupColumn = _this.columnController.getPrimaryColumn(displayingGroupKey);\n var thisRowNodeMatches = rowGroupColumn === childRowNode.rowGroupColumn;\n if (thisRowNodeMatches) {\n return;\n }\n if (clearOperation) {\n // if doing a clear operation, we clear down the value for every possible group column\n childRowNode.setGroupValue(groupDisplayCol.getId(), null);\n }\n else {\n // if doing a set operation, we set only where the pull down is to occur\n var parentToStealFrom = childRowNode.getFirstChildOfFirstChild(rowGroupColumn);\n if (parentToStealFrom) {\n childRowNode.setGroupValue(groupDisplayCol.getId(), parentToStealFrom.key);\n }\n }\n });\n });\n };\n __decorate$2c([\n Autowired('columnController')\n ], SortService.prototype, \"columnController\", void 0);\n __decorate$2c([\n Autowired('rowNodeSorter')\n ], SortService.prototype, \"rowNodeSorter\", void 0);\n __decorate$2c([\n PostConstruct\n ], SortService.prototype, \"init\", null);\n SortService = __decorate$2c([\n Bean('sortService')\n ], SortService);\n return SortService;\n}(BeanStub));\n\nvar __extends$2p = (undefined && undefined.__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$2d = (undefined && undefined.__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 FilterService = /** @class */ (function (_super) {\n __extends$2p(FilterService, _super);\n function FilterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterService.prototype.postConstruct = function () {\n this.doingTreeData = this.gridOptionsWrapper.isTreeData();\n };\n FilterService.prototype.filter = function (changedPath) {\n var filterActive = this.filterManager.isAnyFilterPresent();\n this.filterNodes(filterActive, changedPath);\n };\n FilterService.prototype.filterNodes = function (filterActive, changedPath) {\n var _this = this;\n var filterCallback = function (rowNode, includeChildNodes) {\n // recursively get all children that are groups to also filter\n if (rowNode.hasChildren()) {\n // result of filter for this node. when filtering tree data, includeChildNodes = true when parent passes\n if (filterActive && !includeChildNodes) {\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup.filter(function (childNode) {\n // a group is included in the result if it has any children of it's own.\n // by this stage, the child groups are already filtered\n var passBecauseChildren = childNode.childrenAfterFilter && childNode.childrenAfterFilter.length > 0;\n // both leaf level nodes and tree data nodes have data. these get added if\n // the data passes the filter\n var passBecauseDataPasses = childNode.data\n && _this.filterManager.doesRowPassFilter({ rowNode: childNode });\n // note - tree data nodes pass either if a) they pass themselves or b) any children of that node pass\n return passBecauseChildren || passBecauseDataPasses;\n });\n }\n else {\n // if not filtering, the result is the original list\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;\n }\n _this.setAllChildrenCount(rowNode);\n }\n else {\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;\n rowNode.setAllChildrenCount(null);\n }\n };\n if (this.doingTreeDataFiltering()) {\n var treeDataDepthFirstFilter_1 = function (rowNode, alreadyFoundInParent) {\n // tree data filter traverses the hierarchy depth first and includes child nodes if parent passes\n // filter, and parent nodes will be include if any children exist.\n if (rowNode.childrenAfterGroup) {\n for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n var childNode = rowNode.childrenAfterGroup[i];\n // first check if current node passes filter before invoking child nodes\n var foundInParent = alreadyFoundInParent\n || _this.filterManager.doesRowPassFilter({ rowNode: childNode });\n if (childNode.childrenAfterGroup) {\n treeDataDepthFirstFilter_1(rowNode.childrenAfterGroup[i], foundInParent);\n }\n else {\n filterCallback(childNode, foundInParent);\n }\n }\n }\n filterCallback(rowNode, alreadyFoundInParent);\n };\n var treeDataFilterCallback = function (rowNode) { return treeDataDepthFirstFilter_1(rowNode, false); };\n changedPath.executeFromRootNode(treeDataFilterCallback);\n }\n else {\n var defaultFilterCallback = function (rowNode) { return filterCallback(rowNode, false); };\n changedPath.forEachChangedNodeDepthFirst(defaultFilterCallback, true);\n }\n };\n FilterService.prototype.setAllChildrenCountTreeData = function (rowNode) {\n // for tree data, we include all children, groups and leafs\n var allChildrenCount = 0;\n rowNode.childrenAfterFilter.forEach(function (child) {\n // include child itself\n allChildrenCount++;\n // include children of children\n allChildrenCount += child.allChildrenCount;\n });\n rowNode.setAllChildrenCount(allChildrenCount);\n };\n FilterService.prototype.setAllChildrenCountGridGrouping = function (rowNode) {\n // for grid data, we only count the leafs\n var allChildrenCount = 0;\n rowNode.childrenAfterFilter.forEach(function (child) {\n if (child.group) {\n allChildrenCount += child.allChildrenCount;\n }\n else {\n allChildrenCount++;\n }\n });\n rowNode.setAllChildrenCount(allChildrenCount);\n };\n FilterService.prototype.setAllChildrenCount = function (rowNode) {\n if (this.doingTreeData) {\n this.setAllChildrenCountTreeData(rowNode);\n }\n else {\n this.setAllChildrenCountGridGrouping(rowNode);\n }\n };\n FilterService.prototype.doingTreeDataFiltering = function () {\n return this.gridOptionsWrapper.isTreeData() && !this.gridOptionsWrapper.isExcludeChildrenWhenTreeDataFiltering();\n };\n __decorate$2d([\n Autowired('filterManager')\n ], FilterService.prototype, \"filterManager\", void 0);\n __decorate$2d([\n PostConstruct\n ], FilterService.prototype, \"postConstruct\", null);\n FilterService = __decorate$2d([\n Bean(\"filterService\")\n ], FilterService);\n return FilterService;\n}(BeanStub));\n\nvar __extends$2q = (undefined && undefined.__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$2e = (undefined && undefined.__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 ImmutableService = /** @class */ (function (_super) {\n __extends$2q(ImmutableService, _super);\n function ImmutableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ImmutableService.prototype.postConstruct = function () {\n if (this.rowModel.getType() === Constants.ROW_MODEL_TYPE_CLIENT_SIDE) {\n this.clientSideRowModel = this.rowModel;\n }\n };\n // converts the setRowData() command to a transaction\n ImmutableService.prototype.createTransactionForRowData = function (data) {\n if (_.missing(this.clientSideRowModel)) {\n console.error('AG Grid: ImmutableService only works with ClientSideRowModel');\n return;\n }\n var getRowNodeIdFunc = this.gridOptionsWrapper.getRowNodeIdFunc();\n if (!getRowNodeIdFunc || _.missing(getRowNodeIdFunc)) {\n console.error('AG Grid: ImmutableService requires getRowNodeId() callback to be implemented, your row data need IDs!');\n return;\n }\n // convert the data into a transaction object by working out adds, removes and updates\n var transaction = {\n remove: [],\n update: [],\n add: []\n };\n var existingNodesMap = this.clientSideRowModel.getCopyOfNodesMap();\n var suppressSortOrder = this.gridOptionsWrapper.isSuppressMaintainUnsortedOrder();\n var orderMap = suppressSortOrder ? null : {};\n if (_.exists(data)) {\n // split all the new data in the following:\n // if new, push to 'add'\n // if update, push to 'update'\n // if not changed, do not include in the transaction\n data.forEach(function (dataItem, index) {\n var id = getRowNodeIdFunc(dataItem);\n var existingNode = existingNodesMap[id];\n if (orderMap) {\n orderMap[id] = index;\n }\n if (existingNode) {\n var dataHasChanged = existingNode.data !== dataItem;\n if (dataHasChanged) {\n transaction.update.push(dataItem);\n }\n // otherwise, if data not changed, we just don't include it anywhere, as it's not a delta\n // remove from list, so we know the item is not to be removed\n existingNodesMap[id] = undefined;\n }\n else {\n transaction.add.push(dataItem);\n }\n });\n }\n // at this point, all rows that are left, should be removed\n _.iterateObject(existingNodesMap, function (id, rowNode) {\n if (rowNode) {\n transaction.remove.push(rowNode.data);\n }\n });\n return [transaction, orderMap];\n };\n __decorate$2e([\n Autowired('rowModel')\n ], ImmutableService.prototype, \"rowModel\", void 0);\n __decorate$2e([\n PostConstruct\n ], ImmutableService.prototype, \"postConstruct\", null);\n ImmutableService = __decorate$2e([\n Bean('immutableService')\n ], ImmutableService);\n return ImmutableService;\n}(BeanStub));\n\nvar ClientSideRowModelModule = {\n moduleName: exports.ModuleNames.ClientSideRowModelModule,\n beans: [FilterStage, SortStage, FlattenStage, SortService, FilterService, ImmutableService],\n rowModels: { clientSide: ClientSideRowModel }\n};\n\nvar __extends$2r = (undefined && undefined.__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$2f = (undefined && undefined.__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 InfiniteBlock = /** @class */ (function (_super) {\n __extends$2r(InfiniteBlock, _super);\n function InfiniteBlock(id, parentCache, params) {\n var _this = _super.call(this, id) || this;\n _this.parentCache = parentCache;\n _this.params = params;\n // we don't need to calculate these now, as the inputs don't change,\n // however it makes the code easier to read if we work them out up front\n _this.startRow = id * params.blockSize;\n _this.endRow = _this.startRow + params.blockSize;\n return _this;\n }\n InfiniteBlock.prototype.postConstruct = function () {\n this.createRowNodes();\n };\n InfiniteBlock.prototype.getBlockStateJson = function () {\n return {\n id: '' + this.getId(),\n state: {\n blockNumber: this.getId(),\n startRow: this.getStartRow(),\n endRow: this.getEndRow(),\n pageStatus: this.getState()\n }\n };\n };\n InfiniteBlock.prototype.setDataAndId = function (rowNode, data, index) {\n if (_.exists(data)) {\n // this means if the user is not providing id's we just use the\n // index for the row. this will allow selection to work (that is based\n // on index) as long user is not inserting or deleting rows,\n // or wanting to keep selection between server side sorting or filtering\n rowNode.setDataAndId(data, index.toString());\n }\n else {\n rowNode.setDataAndId(undefined, undefined);\n }\n };\n InfiniteBlock.prototype.loadFromDatasource = function () {\n var _this = this;\n var params = this.createLoadParams();\n if (_.missing(this.params.datasource.getRows)) {\n console.warn(\"AG Grid: datasource is missing getRows method\");\n return;\n }\n // put in timeout, to force result to be async\n window.setTimeout(function () {\n _this.params.datasource.getRows(params);\n }, 0);\n };\n InfiniteBlock.prototype.processServerFail = function () {\n // todo - this method has better handling in SSRM\n };\n InfiniteBlock.prototype.createLoadParams = function () {\n // PROBLEM . . . . when the user sets sort via colDef.sort, then this code\n // is executing before the sort is set up, so server is not getting the sort\n // model. need to change with regards order - so the server side request is\n // AFTER thus it gets the right sort model.\n var params = {\n startRow: this.getStartRow(),\n endRow: this.getEndRow(),\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n sortModel: this.params.sortModel,\n filterModel: this.params.filterModel,\n context: this.gridOptionsWrapper.getContext()\n };\n return params;\n };\n InfiniteBlock.prototype.forEachNode = function (callback, sequence, rowCount) {\n var _this = this;\n this.rowNodes.forEach(function (rowNode, index) {\n var rowIndex = _this.startRow + index;\n if (rowIndex < rowCount) {\n callback(rowNode, sequence.next());\n }\n });\n };\n InfiniteBlock.prototype.getLastAccessed = function () {\n return this.lastAccessed;\n };\n InfiniteBlock.prototype.getRow = function (rowIndex, dontTouchLastAccessed) {\n if (dontTouchLastAccessed === void 0) { dontTouchLastAccessed = false; }\n if (!dontTouchLastAccessed) {\n this.lastAccessed = this.params.lastAccessedSequence.next();\n }\n var localIndex = rowIndex - this.startRow;\n return this.rowNodes[localIndex];\n };\n InfiniteBlock.prototype.getStartRow = function () {\n return this.startRow;\n };\n InfiniteBlock.prototype.getEndRow = function () {\n return this.endRow;\n };\n // creates empty row nodes, data is missing as not loaded yet\n InfiniteBlock.prototype.createRowNodes = function () {\n this.rowNodes = [];\n for (var i = 0; i < this.params.blockSize; i++) {\n var rowIndex = this.startRow + i;\n var rowNode = this.getContext().createBean(new RowNode());\n rowNode.setRowHeight(this.params.rowHeight);\n rowNode.uiLevel = 0;\n rowNode.setRowIndex(rowIndex);\n rowNode.setRowTop(this.params.rowHeight * rowIndex);\n this.rowNodes.push(rowNode);\n }\n };\n InfiniteBlock.prototype.processServerResult = function (params) {\n var _this = this;\n this.rowNodes.forEach(function (rowNode, index) {\n var data = params.rowData ? params.rowData[index] : undefined;\n _this.setDataAndId(rowNode, data, _this.startRow + index);\n });\n var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;\n this.parentCache.pageLoaded(this, finalRowCount);\n };\n InfiniteBlock.prototype.destroyRowNodes = function () {\n this.rowNodes.forEach(function (rowNode) {\n // this is needed, so row render knows to fade out the row, otherwise it\n // sees row top is present, and thinks the row should be shown.\n rowNode.clearRowTopAndRowIndex();\n });\n };\n __decorate$2f([\n PostConstruct\n ], InfiniteBlock.prototype, \"postConstruct\", null);\n __decorate$2f([\n PreDestroy\n ], InfiniteBlock.prototype, \"destroyRowNodes\", null);\n return InfiniteBlock;\n}(RowNodeBlock));\n\nvar __extends$2s = (undefined && undefined.__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$2g = (undefined && undefined.__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 __param$b = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InfiniteCache = /** @class */ (function (_super) {\n __extends$2s(InfiniteCache, _super);\n function InfiniteCache(params) {\n var _this = _super.call(this) || this;\n _this.lastRowIndexKnown = false;\n _this.blocks = {};\n _this.blockCount = 0;\n _this.rowCount = params.initialRowCount;\n _this.params = params;\n return _this;\n }\n InfiniteCache.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('InfiniteCache');\n };\n // the rowRenderer will not pass dontCreatePage, meaning when rendering the grid,\n // it will want new pages in the cache as it asks for rows. only when we are inserting /\n // removing rows via the api is dontCreatePage set, where we move rows between the pages.\n InfiniteCache.prototype.getRow = function (rowIndex, dontCreatePage) {\n if (dontCreatePage === void 0) { dontCreatePage = false; }\n var blockId = Math.floor(rowIndex / this.params.blockSize);\n var block = this.blocks[blockId];\n if (!block) {\n if (dontCreatePage) {\n return null;\n }\n block = this.createBlock(blockId);\n }\n return block.getRow(rowIndex);\n };\n InfiniteCache.prototype.createBlock = function (blockNumber) {\n var newBlock = this.createBean(new InfiniteBlock(blockNumber, this, this.params));\n this.blocks[newBlock.getId()] = newBlock;\n this.blockCount++;\n this.purgeBlocksIfNeeded(newBlock);\n this.params.rowNodeBlockLoader.addBlock(newBlock);\n return newBlock;\n };\n // we have this on infinite row model only, not server side row model,\n // because for server side, it would leave the children in inconsistent\n // state - eg if a node had children, but after the refresh it had data\n // for a different row, then the children would be with the wrong row node.\n InfiniteCache.prototype.refreshCache = function () {\n var nothingToRefresh = this.blockCount == 0;\n if (nothingToRefresh) {\n this.purgeCache();\n return;\n }\n this.getBlocksInOrder().forEach(function (block) { return block.setStateWaitingToLoad(); });\n this.params.rowNodeBlockLoader.checkBlockToLoad();\n };\n InfiniteCache.prototype.destroyAllBlocks = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });\n };\n InfiniteCache.prototype.getRowCount = function () {\n return this.rowCount;\n };\n InfiniteCache.prototype.isLastRowIndexKnown = function () {\n return this.lastRowIndexKnown;\n };\n // block calls this, when page loaded\n InfiniteCache.prototype.pageLoaded = function (block, lastRow) {\n // if we are not active, then we ignore all events, otherwise we could end up getting the\n // grid to refresh even though we are no longer the active cache\n if (!this.isAlive()) {\n return;\n }\n this.logger.log(\"onPageLoaded: page = \" + block.getId() + \", lastRow = \" + lastRow);\n this.checkRowCount(block, lastRow);\n // we fire cacheUpdated even if the row count has not changed, as some items need updating even\n // if no new rows to render. for example the pagination panel has '?' as the total rows when loading\n // is underway, which would need to get updated when loading finishes.\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.purgeBlocksIfNeeded = function (blockToExclude) {\n var _this = this;\n // we exclude checking for the page just created, as this has yet to be accessed and hence\n // the lastAccessed stamp will not be updated for the first time yet\n var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });\n var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };\n blocksForPurging.sort(lastAccessedComparator);\n // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.\n // in other words, after the splice operation below, we have taken out the blocks\n // we want to keep, which means we are left with blocks that we can potentially purge\n var maxBlocksProvided = this.params.maxBlocksInCache > 0;\n var blocksToKeep = maxBlocksProvided ? this.params.maxBlocksInCache - 1 : null;\n var emptyBlocksToKeep = InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP - 1;\n blocksForPurging.forEach(function (block, index) {\n var purgeBecauseBlockEmpty = block.getState() === InfiniteBlock.STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;\n var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;\n if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {\n // if the block currently has rows been displayed, then don't remove it either.\n // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)\n // but the screen is showing 20 rows, so at least 4 blocks are needed.\n if (_this.isBlockCurrentlyDisplayed(block)) {\n return;\n }\n // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.\n if (_this.isBlockFocused(block)) {\n return;\n }\n // at this point, block is not needed, so burn baby burn\n _this.removeBlockFromCache(block);\n }\n });\n };\n InfiniteCache.prototype.isBlockFocused = function (block) {\n var focusedCell = this.focusController.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var blockIndexStart = block.getStartRow();\n var blockIndexEnd = block.getEndRow();\n var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;\n return hasFocus;\n };\n InfiniteCache.prototype.isBlockCurrentlyDisplayed = function (block) {\n var startIndex = block.getStartRow();\n var endIndex = block.getEndRow() - 1;\n return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);\n };\n InfiniteCache.prototype.removeBlockFromCache = function (blockToRemove) {\n if (!blockToRemove) {\n return;\n }\n this.destroyBlock(blockToRemove);\n // we do not want to remove the 'loaded' event listener, as the\n // concurrent loads count needs to be updated when the load is complete\n // if the purged page is in loading state\n };\n InfiniteCache.prototype.checkRowCount = function (block, lastRow) {\n // if client provided a last row, we always use it, as it could change between server calls\n // if user deleted data and then called refresh on the grid.\n if (typeof lastRow === 'number' && lastRow >= 0) {\n this.rowCount = lastRow;\n this.lastRowIndexKnown = true;\n }\n else if (!this.lastRowIndexKnown) {\n // otherwise, see if we need to add some virtual rows\n var lastRowIndex = (block.getId() + 1) * this.params.blockSize;\n var lastRowIndexPlusOverflow = lastRowIndex + this.params.overflowSize;\n if (this.rowCount < lastRowIndexPlusOverflow) {\n this.rowCount = lastRowIndexPlusOverflow;\n }\n }\n };\n InfiniteCache.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n this.rowCount = rowCount;\n // if undefined is passed, we do not set this value, if one of {true,false}\n // is passed, we do set the value.\n if (_.exists(lastRowIndexKnown)) {\n this.lastRowIndexKnown = lastRowIndexKnown;\n }\n // if we are still searching, then the row count must not end at the end\n // of a particular page, otherwise the searching will not pop into the\n // next page\n if (!this.lastRowIndexKnown) {\n if (this.rowCount % this.params.blockSize === 0) {\n this.rowCount++;\n }\n }\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.forEachNodeDeep = function (callback) {\n var _this = this;\n var sequence = new NumberSequence();\n this.getBlocksInOrder().forEach(function (block) { return block.forEachNode(callback, sequence, _this.rowCount); });\n };\n InfiniteCache.prototype.getBlocksInOrder = function () {\n // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order\n var blockComparator = function (a, b) { return a.getId() - b.getId(); };\n var blocks = _.getAllValuesInObject(this.blocks).sort(blockComparator);\n return blocks;\n };\n InfiniteCache.prototype.destroyBlock = function (block) {\n delete this.blocks[block.getId()];\n this.destroyBean(block);\n this.blockCount--;\n this.params.rowNodeBlockLoader.removeBlock(block);\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n InfiniteCache.prototype.onCacheUpdated = function () {\n if (this.isAlive()) {\n // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer\n // in the valid range. so we must remove these. this can happen if user explicitly sets\n // the virtual row count, or the datasource returns a result and sets lastRow to something\n // less than virtualRowCount (can happen if user scrolls down, server reduces dataset size).\n this.destroyAllBlocksPastVirtualRowCount();\n // this results in both row models (infinite and server side) firing ModelUpdated,\n // however server side row model also updates the row indexes first\n var event_1 = {\n type: Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n InfiniteCache.prototype.destroyAllBlocksPastVirtualRowCount = function () {\n var _this = this;\n var blocksToDestroy = [];\n this.getBlocksInOrder().forEach(function (block) {\n var startRow = block.getId() * _this.params.blockSize;\n if (startRow >= _this.rowCount) {\n blocksToDestroy.push(block);\n }\n });\n if (blocksToDestroy.length > 0) {\n blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });\n }\n };\n InfiniteCache.prototype.purgeCache = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.removeBlockFromCache(block); });\n this.lastRowIndexKnown = false;\n // if zero rows in the cache, we need to get the SSRM to start asking for rows again.\n // otherwise if set to zero rows last time, and we don't update the row count, then after\n // the purge there will still be zero rows, meaning the SSRM won't request any rows.\n // to kick things off, at least one row needs to be asked for.\n if (this.rowCount === 0) {\n this.rowCount = this.params.initialRowCount;\n }\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var _this = this;\n var result = [];\n var lastBlockId = -1;\n var inActiveRange = false;\n var numberSequence = new NumberSequence();\n // if only one node passed, we start the selection at the top\n if (_.missing(firstInRange)) {\n inActiveRange = true;\n }\n var foundGapInSelection = false;\n this.getBlocksInOrder().forEach(function (block) {\n if (foundGapInSelection) {\n return;\n }\n if (inActiveRange && (lastBlockId + 1 !== block.getId())) {\n foundGapInSelection = true;\n return;\n }\n lastBlockId = block.getId();\n block.forEachNode(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n }, numberSequence, _this.rowCount);\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = foundGapInSelection || inActiveRange;\n return invalidRange ? [] : result;\n };\n // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10\n // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly\n // scrolled over are not needed to be loaded.\n InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP = 2;\n __decorate$2g([\n Autowired('rowRenderer')\n ], InfiniteCache.prototype, \"rowRenderer\", void 0);\n __decorate$2g([\n Autowired(\"focusController\")\n ], InfiniteCache.prototype, \"focusController\", void 0);\n __decorate$2g([\n __param$b(0, Qualifier('loggerFactory'))\n ], InfiniteCache.prototype, \"setBeans\", null);\n __decorate$2g([\n PreDestroy\n ], InfiniteCache.prototype, \"destroyAllBlocks\", null);\n return InfiniteCache;\n}(BeanStub));\n\nvar __extends$2t = (undefined && undefined.__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$2h = (undefined && undefined.__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 InfiniteRowModel = /** @class */ (function (_super) {\n __extends$2t(InfiniteRowModel, _super);\n function InfiniteRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InfiniteRowModel.prototype.getRowBounds = function (index) {\n return {\n rowHeight: this.rowHeight,\n rowTop: this.rowHeight * index\n };\n };\n // we don't implement as lazy row heights is not supported in this row model\n InfiniteRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n return false;\n };\n InfiniteRowModel.prototype.init = function () {\n var _this = this;\n if (!this.gridOptionsWrapper.isRowModelInfinite()) {\n return;\n }\n this.rowHeight = this.gridOptionsWrapper.getRowHeightAsNumber();\n this.addEventListeners();\n this.addDestroyFunc(function () { return _this.destroyCache(); });\n this.verifyProps();\n };\n InfiniteRowModel.prototype.verifyProps = function () {\n if (this.gridOptionsWrapper.getDefaultGroupSortComparator() != null) {\n var message_1 = \"AG Grid: defaultGroupSortComparator cannot be used with Infinite Row Model. If using Infinite Row Model, then sorting is done on the server side, nothing to do with the client.\";\n _.doOnce(function () { return console.warn(message_1); }, 'IRM.DefaultGroupSortComparator');\n }\n };\n InfiniteRowModel.prototype.start = function () {\n this.setDatasource(this.gridOptionsWrapper.getDatasource());\n };\n InfiniteRowModel.prototype.destroyDatasource = function () {\n if (this.datasource) {\n this.getContext().destroyBean(this.datasource);\n this.rowRenderer.datasourceChanged();\n this.datasource = null;\n }\n };\n InfiniteRowModel.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_STORE_UPDATED, this.onCacheUpdated.bind(this));\n };\n InfiniteRowModel.prototype.onFilterChanged = function () {\n this.reset();\n };\n InfiniteRowModel.prototype.onSortChanged = function () {\n this.reset();\n };\n InfiniteRowModel.prototype.onColumnEverything = function () {\n var resetRequired;\n // if cache params, we require reset only if sort model has changed. we don't need to check\n // for filter model, as the filter manager will fire an event when columns change that result\n // in the filter changing.\n if (this.cacheParams) {\n resetRequired = this.isSortModelDifferent();\n }\n else {\n // if no cacheParams, means first time creating the cache, so always create one\n resetRequired = true;\n }\n if (resetRequired) {\n this.reset();\n }\n };\n InfiniteRowModel.prototype.isSortModelDifferent = function () {\n return !_.jsonEquals(this.cacheParams.sortModel, this.sortController.getSortModel());\n };\n InfiniteRowModel.prototype.getType = function () {\n return Constants.ROW_MODEL_TYPE_INFINITE;\n };\n InfiniteRowModel.prototype.setDatasource = function (datasource) {\n this.destroyDatasource();\n this.datasource = datasource;\n // only reset if we have a valid datasource to working with\n if (datasource) {\n this.reset();\n }\n };\n InfiniteRowModel.prototype.isEmpty = function () {\n return !this.infiniteCache;\n };\n InfiniteRowModel.prototype.isRowsToRender = function () {\n return !!this.infiniteCache;\n };\n InfiniteRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n return this.infiniteCache ? this.infiniteCache.getRowNodesInRange(firstInRange, lastInRange) : [];\n };\n InfiniteRowModel.prototype.reset = function () {\n // important to return here, as the user could be setting filter or sort before\n // data-source is set\n if (!this.datasource) {\n return;\n }\n // if user is providing id's, then this means we can keep the selection between datasource hits,\n // as the rows will keep their unique id's even if, for example, server side sorting or filtering\n // is done.\n var userGeneratingIds = _.exists(this.gridOptionsWrapper.getRowNodeIdFunc());\n if (!userGeneratingIds) {\n this.selectionController.reset();\n }\n this.resetCache();\n var event = this.createModelUpdatedEvent();\n this.eventService.dispatchEvent(event);\n };\n InfiniteRowModel.prototype.createModelUpdatedEvent = function () {\n return {\n type: Events.EVENT_MODEL_UPDATED,\n api: this.gridApi,\n columnApi: this.columnApi,\n // not sure if these should all be false - noticed if after implementing,\n // maybe they should be true?\n newPage: false,\n newData: false,\n keepRenderedRows: true,\n animate: false\n };\n };\n InfiniteRowModel.prototype.resetCache = function () {\n // if not first time creating a cache, need to destroy the old one\n this.destroyCache();\n var maxConcurrentRequests = this.gridOptionsWrapper.getMaxConcurrentDatasourceRequests();\n this.cacheParams = {\n // the user provided datasource\n datasource: this.datasource,\n // sort and filter model\n filterModel: this.filterManager.getFilterModel(),\n sortModel: this.sortController.getSortModel(),\n rowNodeBlockLoader: this.rowNodeBlockLoader,\n // properties - this way we take a snapshot of them, so if user changes any, they will be\n // used next time we create a new cache, which is generally after a filter or sort change,\n // or a new datasource is set\n maxConcurrentRequests: this.defaultIfInvalid(maxConcurrentRequests, 2),\n initialRowCount: this.defaultIfInvalid(this.gridOptionsWrapper.getInfiniteInitialRowCount(), 1),\n maxBlocksInCache: this.gridOptionsWrapper.getMaxBlocksInCache(),\n rowHeight: this.gridOptionsWrapper.getRowHeightAsNumber(),\n // if user doesn't provide overflow, we use default overflow of 1, so user can scroll past\n // the current page and request first row of next page\n overflowSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheOverflowSize(), 1),\n // page size needs to be 1 or greater. having it at 1 would be silly, as you would be hitting the\n // server for one page at a time. so the default if not specified is 100.\n blockSize: this.defaultIfInvalid(this.gridOptionsWrapper.getCacheBlockSize(), 100),\n // the cache could create this, however it is also used by the pages, so handy to create it\n // here as the settings are also passed to the pages\n lastAccessedSequence: new NumberSequence()\n };\n this.infiniteCache = this.createBean(new InfiniteCache(this.cacheParams));\n };\n InfiniteRowModel.prototype.defaultIfInvalid = function (value, defaultValue) {\n return value > 0 ? value : defaultValue;\n };\n InfiniteRowModel.prototype.destroyCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache = this.destroyBean(this.infiniteCache);\n }\n };\n InfiniteRowModel.prototype.onCacheUpdated = function () {\n var event = this.createModelUpdatedEvent();\n this.eventService.dispatchEvent(event);\n };\n InfiniteRowModel.prototype.getRow = function (rowIndex) {\n return this.infiniteCache ? this.infiniteCache.getRow(rowIndex) : null;\n };\n InfiniteRowModel.prototype.getRowNode = function (id) {\n var result = null;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n });\n return result;\n };\n InfiniteRowModel.prototype.forEachNode = function (callback) {\n if (this.infiniteCache) {\n this.infiniteCache.forEachNodeDeep(callback);\n }\n };\n InfiniteRowModel.prototype.getTopLevelRowCount = function () {\n return this.getRowCount();\n };\n InfiniteRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n return topLevelIndex;\n };\n InfiniteRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n if (this.rowHeight !== 0) { // avoid divide by zero error\n var rowIndexForPixel = Math.floor(pixel / this.rowHeight);\n var lastRowIndex = this.getRowCount() - 1;\n if (rowIndexForPixel > lastRowIndex) {\n return lastRowIndex;\n }\n else {\n return rowIndexForPixel;\n }\n }\n else {\n return 0;\n }\n };\n InfiniteRowModel.prototype.getRowCount = function () {\n return this.infiniteCache ? this.infiniteCache.getRowCount() : 0;\n };\n InfiniteRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n InfiniteRowModel.prototype.refreshCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache.refreshCache();\n }\n };\n InfiniteRowModel.prototype.purgeCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache.purgeCache();\n }\n };\n // for iRowModel\n InfiniteRowModel.prototype.isLastRowIndexKnown = function () {\n if (this.infiniteCache) {\n return this.infiniteCache.isLastRowIndexKnown();\n }\n else {\n return false;\n }\n };\n InfiniteRowModel.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n if (this.infiniteCache) {\n this.infiniteCache.setRowCount(rowCount, lastRowIndexKnown);\n }\n };\n __decorate$2h([\n Autowired('filterManager')\n ], InfiniteRowModel.prototype, \"filterManager\", void 0);\n __decorate$2h([\n Autowired('sortController')\n ], InfiniteRowModel.prototype, \"sortController\", void 0);\n __decorate$2h([\n Autowired('selectionController')\n ], InfiniteRowModel.prototype, \"selectionController\", void 0);\n __decorate$2h([\n Autowired('gridApi')\n ], InfiniteRowModel.prototype, \"gridApi\", void 0);\n __decorate$2h([\n Autowired('columnApi')\n ], InfiniteRowModel.prototype, \"columnApi\", void 0);\n __decorate$2h([\n Autowired('rowRenderer')\n ], InfiniteRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$2h([\n Autowired('rowNodeBlockLoader')\n ], InfiniteRowModel.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$2h([\n PostConstruct\n ], InfiniteRowModel.prototype, \"init\", null);\n __decorate$2h([\n PreDestroy\n ], InfiniteRowModel.prototype, \"destroyDatasource\", null);\n InfiniteRowModel = __decorate$2h([\n Bean('rowModel')\n ], InfiniteRowModel);\n return InfiniteRowModel;\n}(BeanStub));\n\nvar InfiniteRowModelModule = {\n moduleName: exports.ModuleNames.InfiniteRowModelModule,\n rowModels: { infinite: InfiniteRowModel }\n};\n\nvar BaseCreator = /** @class */ (function () {\n function BaseCreator() {\n }\n BaseCreator.prototype.setBeans = function (beans) {\n this.beans = beans;\n };\n BaseCreator.prototype.getFileName = function (fileName) {\n var extension = this.getDefaultFileExtension();\n if (fileName == null || !fileName.length) {\n fileName = this.getDefaultFileName();\n }\n return fileName.indexOf('.') === -1 ? fileName + \".\" + extension : fileName;\n };\n BaseCreator.prototype.getMergedParamsAndData = function (userParams) {\n var mergedParams = this.mergeDefaultParams(userParams);\n var data = this.beans.gridSerializer.serialize(this.createSerializingSession(mergedParams), mergedParams);\n return { mergedParams: mergedParams, data: data };\n };\n BaseCreator.prototype.mergeDefaultParams = function (userParams) {\n var baseParams = this.getDefaultExportParams();\n var params = {};\n _.assign(params, baseParams);\n _.assign(params, userParams);\n return params;\n };\n return BaseCreator;\n}());\n\nvar BaseGridSerializingSession = /** @class */ (function () {\n function BaseGridSerializingSession(config) {\n this.groupColumns = [];\n var columnController = config.columnController, valueService = config.valueService, gridOptionsWrapper = config.gridOptionsWrapper, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;\n this.columnController = columnController;\n this.valueService = valueService;\n this.gridOptionsWrapper = gridOptionsWrapper;\n this.processCellCallback = processCellCallback;\n this.processHeaderCallback = processHeaderCallback;\n this.processGroupHeaderCallback = processGroupHeaderCallback;\n this.processRowGroupCallback = processRowGroupCallback;\n }\n BaseGridSerializingSession.prototype.prepare = function (columnsToExport) {\n this.groupColumns = _.filter(columnsToExport, function (col) { return !!col.getColDef().showRowGroup; });\n };\n BaseGridSerializingSession.prototype.extractHeaderValue = function (column) {\n var value = this.getHeaderName(this.processHeaderCallback, column);\n return value != null ? value : '';\n };\n BaseGridSerializingSession.prototype.extractRowCellValue = function (column, index, accumulatedRowIndex, type, node) {\n // we render the group summary text e.g. \"-> Parent -> Child\"...\n var groupIndex = this.gridOptionsWrapper.isGroupMultiAutoColumn() ? node.rowGroupIndex : 0;\n var renderGroupSummaryCell = \n // on group rows\n node && node.group\n && (\n // in the group column if groups appear in regular grid cells\n index === groupIndex && this.groupColumns.indexOf(column) !== -1\n // or the first cell in the row, if we're doing full width rows\n || (index === 0 && this.gridOptionsWrapper.isGroupUseEntireRow(this.columnController.isPivotMode())));\n var valueForCell;\n if (renderGroupSummaryCell) {\n valueForCell = this.createValueForGroupNode(node);\n }\n else {\n valueForCell = this.valueService.getValue(column, node);\n }\n var value = this.processCell(accumulatedRowIndex, node, column, valueForCell, this.processCellCallback, type);\n return value != null ? value : '';\n };\n BaseGridSerializingSession.prototype.getHeaderName = function (callback, column) {\n if (callback) {\n return callback({\n column: column,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext()\n });\n }\n return this.columnController.getDisplayNameForColumn(column, 'csv', true);\n };\n BaseGridSerializingSession.prototype.createValueForGroupNode = function (node) {\n if (this.processRowGroupCallback) {\n return this.processRowGroupCallback({\n node: node,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n });\n }\n var keys = [node.key];\n if (!this.gridOptionsWrapper.isGroupMultiAutoColumn()) {\n while (node.parent) {\n node = node.parent;\n keys.push(node.key);\n }\n }\n return keys.reverse().join(' -> ');\n };\n BaseGridSerializingSession.prototype.processCell = function (accumulatedRowIndex, rowNode, column, value, processCellCallback, type) {\n if (processCellCallback) {\n return processCellCallback({\n accumulatedRowIndex: accumulatedRowIndex,\n column: column,\n node: rowNode,\n value: value,\n api: this.gridOptionsWrapper.getApi(),\n columnApi: this.gridOptionsWrapper.getColumnApi(),\n context: this.gridOptionsWrapper.getContext(),\n type: type\n });\n }\n return value != null ? value : '';\n };\n return BaseGridSerializingSession;\n}());\n\nvar Downloader = /** @class */ (function () {\n function Downloader() {\n }\n Downloader.download = function (fileName, content) {\n var win = document.defaultView || window;\n if (!win) {\n console.warn('AG Grid: There is no `window` associated with the current `document`');\n return;\n }\n // Internet Explorer\n if (win.navigator.msSaveOrOpenBlob) {\n win.navigator.msSaveOrOpenBlob(content, fileName);\n }\n else {\n // Other Browsers\n var element = document.createElement('a');\n // @ts-ignore\n var url_1 = win.URL.createObjectURL(content);\n element.setAttribute('href', url_1);\n element.setAttribute('download', fileName);\n element.style.display = 'none';\n document.body.appendChild(element);\n element.dispatchEvent(new MouseEvent('click', {\n bubbles: false,\n cancelable: true,\n view: win\n }));\n document.body.removeChild(element);\n win.setTimeout(function () {\n // @ts-ignore\n win.URL.revokeObjectURL(url_1);\n }, 0);\n }\n };\n return Downloader;\n}());\n\nvar __extends$2u = (undefined && undefined.__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 LINE_SEPARATOR = '\\r\\n';\nvar CsvSerializingSession = /** @class */ (function (_super) {\n __extends$2u(CsvSerializingSession, _super);\n function CsvSerializingSession(config) {\n var _this = _super.call(this, config) || this;\n _this.isFirstLine = true;\n _this.result = '';\n var suppressQuotes = config.suppressQuotes, columnSeparator = config.columnSeparator;\n _this.suppressQuotes = suppressQuotes;\n _this.columnSeparator = columnSeparator;\n return _this;\n }\n CsvSerializingSession.prototype.addCustomContent = function (content) {\n var _this = this;\n if (!content) {\n return;\n }\n if (typeof content === 'string') {\n if (!/^\\s*\\n/.test(content)) {\n this.beginNewLine();\n }\n // replace whatever newlines are supplied with the style we're using\n content = content.replace(/\\r?\\n/g, LINE_SEPARATOR);\n this.result += content;\n }\n else {\n content.forEach(function (row) {\n _this.beginNewLine();\n row.forEach(function (cell, index) {\n if (index !== 0) {\n _this.result += _this.columnSeparator;\n }\n _this.result += _this.putInQuotes(cell.data.value || '');\n if (cell.mergeAcross) {\n _this.appendEmptyCells(cell.mergeAcross);\n }\n });\n });\n }\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderGroupingRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRowColumn = function (header, index, span) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(header);\n this.appendEmptyCells(span);\n };\n CsvSerializingSession.prototype.appendEmptyCells = function (count) {\n for (var i = 1; i <= count; i++) {\n this.result += this.columnSeparator + this.putInQuotes(\"\");\n }\n };\n CsvSerializingSession.prototype.onNewHeaderRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderRowColumn = function (column, index) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractHeaderValue(column));\n };\n CsvSerializingSession.prototype.onNewBodyRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewBodyRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewBodyRowColumn = function (column, index, node) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractRowCellValue(column, index, index, Constants.EXPORT_TYPE_CSV, node));\n };\n CsvSerializingSession.prototype.putInQuotes = function (value) {\n if (this.suppressQuotes) {\n return value;\n }\n if (value === null || value === undefined) {\n return '\"\"';\n }\n var stringValue;\n if (typeof value === 'string') {\n stringValue = value;\n }\n else if (typeof value.toString === 'function') {\n stringValue = value.toString();\n }\n else {\n console.warn('unknown value type during csv conversion');\n stringValue = '';\n }\n // replace each \" with \"\" (ie two sets of double quotes is how to do double quotes in csv)\n var valueEscaped = stringValue.replace(/\"/g, \"\\\"\\\"\");\n return '\"' + valueEscaped + '\"';\n };\n CsvSerializingSession.prototype.parse = function () {\n return this.result;\n };\n CsvSerializingSession.prototype.beginNewLine = function () {\n if (!this.isFirstLine) {\n this.result += LINE_SEPARATOR;\n }\n this.isFirstLine = false;\n };\n return CsvSerializingSession;\n}(BaseGridSerializingSession));\n\nvar __extends$2v = (undefined && undefined.__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$2i = (undefined && undefined.__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 CsvCreator = /** @class */ (function (_super) {\n __extends$2v(CsvCreator, _super);\n function CsvCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CsvCreator.prototype.postConstruct = function () {\n this.setBeans({\n gridSerializer: this.gridSerializer,\n gridOptionsWrapper: this.gridOptionsWrapper\n });\n };\n CsvCreator.prototype.getDefaultExportParams = function () {\n return this.gridOptionsWrapper.getDefaultExportParams('csv');\n };\n CsvCreator.prototype.export = function (userParams) {\n if (this.isExportSuppressed()) {\n console.warn(\"ag-grid: Export cancelled. Export is not allowed as per your configuration.\");\n return '';\n }\n var _a = this.getMergedParamsAndData(userParams), mergedParams = _a.mergedParams, data = _a.data;\n var packagedFile = new Blob([\"\\ufeff\", data], {\n // @ts-ignore\n type: window.navigator.msSaveOrOpenBlob ? this.getMimeType() : 'octet/stream'\n });\n Downloader.download(this.getFileName(mergedParams.fileName), packagedFile);\n return data;\n };\n CsvCreator.prototype.exportDataAsCsv = function (params) {\n return this.export(params);\n };\n CsvCreator.prototype.getDataAsCsv = function (params) {\n return this.getMergedParamsAndData(params).data;\n };\n CsvCreator.prototype.getMimeType = function () {\n return 'text/csv;charset=utf-8;';\n };\n CsvCreator.prototype.getDefaultFileName = function () {\n return 'export.csv';\n };\n CsvCreator.prototype.getDefaultFileExtension = function () {\n return 'csv';\n };\n CsvCreator.prototype.createSerializingSession = function (params) {\n var _a = this, columnController = _a.columnController, valueService = _a.valueService, gridOptionsWrapper = _a.gridOptionsWrapper;\n var _b = params, processCellCallback = _b.processCellCallback, processHeaderCallback = _b.processHeaderCallback, processGroupHeaderCallback = _b.processGroupHeaderCallback, processRowGroupCallback = _b.processRowGroupCallback, suppressQuotes = _b.suppressQuotes, columnSeparator = _b.columnSeparator;\n return new CsvSerializingSession({\n columnController: columnController,\n valueService: valueService,\n gridOptionsWrapper: gridOptionsWrapper,\n processCellCallback: processCellCallback || undefined,\n processHeaderCallback: processHeaderCallback || undefined,\n processGroupHeaderCallback: processGroupHeaderCallback || undefined,\n processRowGroupCallback: processRowGroupCallback || undefined,\n suppressQuotes: suppressQuotes || false,\n columnSeparator: columnSeparator || ','\n });\n };\n CsvCreator.prototype.isExportSuppressed = function () {\n return this.gridOptionsWrapper.isSuppressCsvExport();\n };\n __decorate$2i([\n Autowired('columnController')\n ], CsvCreator.prototype, \"columnController\", void 0);\n __decorate$2i([\n Autowired('valueService')\n ], CsvCreator.prototype, \"valueService\", void 0);\n __decorate$2i([\n Autowired('gridSerializer')\n ], CsvCreator.prototype, \"gridSerializer\", void 0);\n __decorate$2i([\n Autowired('gridOptionsWrapper')\n ], CsvCreator.prototype, \"gridOptionsWrapper\", void 0);\n __decorate$2i([\n PostConstruct\n ], CsvCreator.prototype, \"postConstruct\", null);\n CsvCreator = __decorate$2i([\n Bean('csvCreator')\n ], CsvCreator);\n return CsvCreator;\n}(BaseCreator));\n\nvar __extends$2w = (undefined && undefined.__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$2j = (undefined && undefined.__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};\n(function (RowType) {\n RowType[RowType[\"HEADER_GROUPING\"] = 0] = \"HEADER_GROUPING\";\n RowType[RowType[\"HEADER\"] = 1] = \"HEADER\";\n RowType[RowType[\"BODY\"] = 2] = \"BODY\";\n})(exports.RowType || (exports.RowType = {}));\nvar GridSerializer = /** @class */ (function (_super) {\n __extends$2w(GridSerializer, _super);\n function GridSerializer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridSerializer.prototype.serialize = function (gridSerializingSession, params) {\n if (params === void 0) { params = {}; }\n var columnsToExport = this.getColumnsToExport(params.allColumns, params.columnKeys);\n var serializeChain = _.compose(\n // first pass, put in the header names of the cols\n this.prepareSession(columnsToExport), this.prependContent(params), this.exportColumnGroups(params, columnsToExport), this.exportHeaders(params, columnsToExport), this.processPinnedTopRows(params, columnsToExport), this.processRows(params, columnsToExport), this.processPinnedBottomRows(params, columnsToExport), this.appendContent(params));\n return serializeChain(gridSerializingSession).parse();\n };\n GridSerializer.prototype.processRow = function (gridSerializingSession, params, columnsToExport, node) {\n var rowSkipper = params.shouldRowBeSkipped || (function () { return false; });\n var gridOptionsWrapper = this.gridOptionsWrapper;\n var context = gridOptionsWrapper.getContext();\n var api = gridOptionsWrapper.getApi();\n var columnApi = gridOptionsWrapper.getColumnApi();\n var skipSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveSingleChildren();\n var hideOpenParents = gridOptionsWrapper.isGroupHideOpenParents();\n var skipLowestSingleChildrenGroup = gridOptionsWrapper.isGroupRemoveLowestSingleChildren();\n var isLeafNode = this.columnController.isPivotMode() ? node.leafGroup : !node.group;\n var skipRowGroups = params.skipGroups || params.skipRowGroups;\n var shouldSkipLowestGroup = skipLowestSingleChildrenGroup && node.leafGroup;\n var shouldSkipCurrentGroup = node.allChildrenCount === 1 && (skipSingleChildrenGroup || shouldSkipLowestGroup);\n if (skipRowGroups && params.skipGroups) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 `skipGroups` has been renamed to `skipRowGroups`.'); }, 'gridSerializer-skipGroups');\n }\n if ((!isLeafNode && (params.skipRowGroups || shouldSkipCurrentGroup || hideOpenParents)) ||\n (params.onlySelected && !node.isSelected()) ||\n (params.skipPinnedTop && node.rowPinned === 'top') ||\n (params.skipPinnedBottom && node.rowPinned === 'bottom')) {\n return;\n }\n // if we are in pivotMode, then the grid will show the root node only\n // if it's not a leaf group\n var nodeIsRootNode = node.level === -1;\n if (nodeIsRootNode && !node.leafGroup) {\n return;\n }\n var shouldRowBeSkipped = rowSkipper({ node: node, api: api, context: context });\n if (shouldRowBeSkipped) {\n return;\n }\n var rowAccumulator = gridSerializingSession.onNewBodyRow();\n columnsToExport.forEach(function (column, index) {\n rowAccumulator.onColumn(column, index, node);\n });\n if (params.getCustomContentBelowRow) {\n var content = params.getCustomContentBelowRow({ node: node, api: api, columnApi: columnApi, context: context });\n if (content) {\n gridSerializingSession.addCustomContent(content);\n }\n }\n };\n GridSerializer.prototype.appendContent = function (params) {\n return function (gridSerializingSession) {\n var appendContent = params.customFooter || params.appendContent;\n if (appendContent) {\n if (params.customFooter) {\n _.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customFooter` param has been deprecated. Use `appendContent` instead.'); }, 'gridSerializer-customFooter');\n }\n gridSerializingSession.addCustomContent(appendContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prependContent = function (params) {\n return function (gridSerializingSession) {\n var prependContent = params.customHeader || params.prependContent;\n if (prependContent) {\n if (params.customHeader) {\n _.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customHeader` param has been deprecated. Use `prependContent` instead.'); }, 'gridSerializer-customHeader');\n }\n gridSerializingSession.addCustomContent(prependContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prepareSession = function (columnsToExport) {\n return function (gridSerializingSession) {\n gridSerializingSession.prepare(columnsToExport);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportColumnGroups = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n if (!params.skipColumnGroupHeaders) {\n var groupInstanceIdCreator = new GroupInstanceIdCreator();\n var displayedGroups = _this.displayedGroupCreator.createDisplayedGroups(columnsToExport, _this.columnController.getGridBalancedTree(), groupInstanceIdCreator, null);\n _this.recursivelyAddHeaderGroups(displayedGroups, gridSerializingSession, params.processGroupHeaderCallback);\n }\n else if (params.columnGroups) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `columnGroups` param has deprecated, and groups are exported by default.'); }, 'gridSerializer-columnGroups');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportHeaders = function (params, columnsToExport) {\n return function (gridSerializingSession) {\n if (!params.skipHeader && !params.skipColumnHeaders) {\n var gridRowIterator_1 = gridSerializingSession.onNewHeaderRow();\n columnsToExport.forEach(function (column, index) {\n gridRowIterator_1.onColumn(column, index, undefined);\n });\n }\n else if (params.skipHeader) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `skipHeader` param has been renamed to `skipColumnHeaders`.'); }, 'gridSerializer-skipHeader');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedTopRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n _this.pinnedRowModel.forEachPinnedTopRow(processRow);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n // when in pivot mode, we always render cols on screen, never 'all columns'\n var rowModel = _this.rowModel;\n var rowModelType = rowModel.getType();\n var usingCsrm = rowModelType === Constants.ROW_MODEL_TYPE_CLIENT_SIDE;\n var usingSsrm = rowModelType === Constants.ROW_MODEL_TYPE_SERVER_SIDE;\n var onlySelectedNonStandardModel = !usingCsrm && params.onlySelected;\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n if (_this.columnController.isPivotMode()) {\n if (usingCsrm) {\n rowModel.forEachPivotNode(processRow);\n }\n else {\n // must be enterprise, so we can just loop through all the nodes\n rowModel.forEachNode(processRow);\n }\n }\n else {\n // onlySelectedAllPages: user doing pagination and wants selected items from\n // other pages, so cannot use the standard row model as it won't have rows from\n // other pages.\n // onlySelectedNonStandardModel: if user wants selected in non standard row model\n // (eg viewport) then again RowModel cannot be used, so need to use selected instead.\n if (params.onlySelectedAllPages || onlySelectedNonStandardModel) {\n var selectedNodes = _this.selectionController.getSelectedNodes();\n selectedNodes.forEach(processRow);\n }\n else {\n // here is everything else - including standard row model and selected. we don't use\n // the selection model even when just using selected, so that the result is the order\n // of the rows appearing on the screen.\n if (usingCsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow);\n }\n else if (usingSsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow);\n }\n else {\n rowModel.forEachNode(processRow);\n }\n }\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedBottomRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n _this.pinnedRowModel.forEachPinnedBottomRow(processRow);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.getColumnsToExport = function (allColumns, columnKeys) {\n if (allColumns === void 0) { allColumns = false; }\n var isPivotMode = this.columnController.isPivotMode();\n if (columnKeys && columnKeys.length) {\n return this.columnController.getGridColumns(columnKeys);\n }\n if (allColumns && !isPivotMode) {\n // add auto group column for tree data\n var columns = this.gridOptionsWrapper.isTreeData()\n ? this.columnController.getGridColumns([Constants.GROUP_AUTO_COLUMN_ID])\n : [];\n return columns.concat(this.columnController.getAllPrimaryColumns() || []);\n }\n return this.columnController.getAllDisplayedColumns();\n };\n GridSerializer.prototype.recursivelyAddHeaderGroups = function (displayedGroups, gridSerializingSession, processGroupHeaderCallback) {\n var directChildrenHeaderGroups = [];\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n if (!columnGroup.getChildren) {\n return;\n }\n columnGroup.getChildren().forEach(function (it) { return directChildrenHeaderGroups.push(it); });\n });\n if (displayedGroups.length > 0 && displayedGroups[0] instanceof ColumnGroup) {\n this.doAddHeaderHeader(gridSerializingSession, displayedGroups, processGroupHeaderCallback);\n }\n if (directChildrenHeaderGroups && directChildrenHeaderGroups.length > 0) {\n this.recursivelyAddHeaderGroups(directChildrenHeaderGroups, gridSerializingSession, processGroupHeaderCallback);\n }\n };\n GridSerializer.prototype.doAddHeaderHeader = function (gridSerializingSession, displayedGroups, processGroupHeaderCallback) {\n var _this = this;\n var gridRowIterator = gridSerializingSession.onNewHeaderGroupingRow();\n var columnIndex = 0;\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n var name;\n if (processGroupHeaderCallback) {\n name = processGroupHeaderCallback({\n columnGroup: columnGroup,\n api: _this.gridOptionsWrapper.getApi(),\n columnApi: _this.gridOptionsWrapper.getColumnApi(),\n context: _this.gridOptionsWrapper.getContext()\n });\n }\n else {\n name = _this.columnController.getDisplayNameForColumnGroup(columnGroup, 'header');\n }\n gridRowIterator.onColumn(name || '', columnIndex++, columnGroup.getLeafColumns().length - 1);\n });\n };\n __decorate$2j([\n Autowired('displayedGroupCreator')\n ], GridSerializer.prototype, \"displayedGroupCreator\", void 0);\n __decorate$2j([\n Autowired('columnController')\n ], GridSerializer.prototype, \"columnController\", void 0);\n __decorate$2j([\n Autowired('rowModel')\n ], GridSerializer.prototype, \"rowModel\", void 0);\n __decorate$2j([\n Autowired('pinnedRowModel')\n ], GridSerializer.prototype, \"pinnedRowModel\", void 0);\n __decorate$2j([\n Autowired('selectionController')\n ], GridSerializer.prototype, \"selectionController\", void 0);\n GridSerializer = __decorate$2j([\n Bean(\"gridSerializer\")\n ], GridSerializer);\n return GridSerializer;\n}(BeanStub));\n\nvar CsvExportModule = {\n moduleName: exports.ModuleNames.CsvExportModule,\n beans: [CsvCreator, GridSerializer]\n};\n\nvar LINE_SEPARATOR$1 = '\\r\\n';\nvar XmlFactory = /** @class */ (function () {\n function XmlFactory() {\n }\n XmlFactory.createHeader = function (headerElement) {\n if (headerElement === void 0) { headerElement = {}; }\n var headerStart = '';\n var keys = ['version'];\n if (!headerElement.version) {\n headerElement.version = \"1.0\";\n }\n if (headerElement.encoding) {\n keys.push('encoding');\n }\n if (headerElement.standalone) {\n keys.push('standalone');\n }\n var att = keys.map(function (key) { return key + \"=\\\"\" + headerElement[key] + \"\\\"\"; }).join(' ');\n return headerStart + \"xml \" + att + \" \" + headerEnd;\n };\n XmlFactory.createXml = function (xmlElement, booleanTransformer) {\n var _this = this;\n var props = '';\n if (xmlElement.properties) {\n if (xmlElement.properties.prefixedAttributes) {\n xmlElement.properties.prefixedAttributes.forEach(function (prefixedSet) {\n Object.keys(prefixedSet.map).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(prefixedSet.prefix + key, prefixedSet.map[key], booleanTransformer);\n });\n });\n }\n if (xmlElement.properties.rawMap) {\n Object.keys(xmlElement.properties.rawMap).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(key, xmlElement.properties.rawMap[key], booleanTransformer);\n });\n }\n }\n var result = '<' + xmlElement.name + props;\n if (!xmlElement.children && xmlElement.textNode == null) {\n return result + '/>' + LINE_SEPARATOR$1;\n }\n if (xmlElement.textNode != null) {\n return result + '>' + xmlElement.textNode + '' + LINE_SEPARATOR$1;\n }\n result += '>' + LINE_SEPARATOR$1;\n if (xmlElement.children) {\n xmlElement.children.forEach(function (it) {\n result += _this.createXml(it, booleanTransformer);\n });\n }\n return result + '' + LINE_SEPARATOR$1;\n };\n XmlFactory.returnAttributeIfPopulated = function (key, value, booleanTransformer) {\n if (!value && value !== '' && value !== 0) {\n return '';\n }\n var xmlValue = value;\n if ((typeof (value) === 'boolean')) {\n if (booleanTransformer) {\n xmlValue = booleanTransformer(value);\n }\n }\n return \" \" + key + \"=\\\"\" + xmlValue + \"\\\"\";\n };\n return XmlFactory;\n}());\n\n// table for crc calculation\n// from: https://referencesource.microsoft.com/#System/sys/System/IO/compression/Crc32Helper.cs,3b31978c7d7f7246,references\nvar crcTable = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n]);\nvar ZipContainer = /** @class */ (function () {\n function ZipContainer() {\n }\n ZipContainer.addFolders = function (paths) {\n paths.forEach(this.addFolder.bind(this));\n };\n ZipContainer.addFolder = function (path) {\n this.folders.push({\n path: path,\n created: new Date(),\n isBase64: false\n });\n };\n ZipContainer.addFile = function (path, content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n this.files.push({\n path: path,\n created: new Date(),\n content: content,\n isBase64: isBase64\n });\n };\n ZipContainer.getContent = function (mimeType) {\n if (mimeType === void 0) { mimeType = 'application/zip'; }\n var textOutput = this.buildFileStream();\n var uInt8Output = this.buildUint8Array(textOutput);\n this.clearStream();\n return new Blob([uInt8Output], { type: mimeType });\n };\n ZipContainer.clearStream = function () {\n this.folders = [];\n this.files = [];\n };\n ZipContainer.buildFileStream = function (fData) {\n if (fData === void 0) { fData = ''; }\n var totalFiles = this.folders.concat(this.files);\n var len = totalFiles.length;\n var foData = '';\n var lL = 0;\n var cL = 0;\n for (var _i = 0, totalFiles_1 = totalFiles; _i < totalFiles_1.length; _i++) {\n var currentFile = totalFiles_1[_i];\n var _a = this.getHeader(currentFile, lL), fileHeader = _a.fileHeader, folderHeader = _a.folderHeader, content = _a.content;\n lL += fileHeader.length + content.length;\n cL += folderHeader.length;\n fData += fileHeader + content;\n foData += folderHeader;\n }\n var foEnd = this.buildFolderEnd(len, cL, lL);\n return fData + foData + foEnd;\n };\n ZipContainer.getHeader = function (currentFile, offset) {\n var content = currentFile.content, path = currentFile.path, created = currentFile.created, isBase64 = currentFile.isBase64;\n var utf8_encode = _.utf8_encode, decToHex = _.decToHex;\n var utfPath = utf8_encode(path);\n var isUTF8 = utfPath !== path;\n var time = this.convertTime(created);\n var dt = this.convertDate(created);\n var extraFields = '';\n if (isUTF8) {\n var uExtraFieldPath = decToHex(1, 1) + decToHex(this.getFromCrc32Table(utfPath), 4) + utfPath;\n extraFields = \"\\x75\\x70\" + decToHex(uExtraFieldPath.length, 2) + uExtraFieldPath;\n }\n var _a = !content ? { size: 0, content: '' } : this.getConvertedContent(content, isBase64), size = _a.size, convertedContent = _a.content;\n var header = '\\x0A\\x00' +\n (isUTF8 ? '\\x00\\x08' : '\\x00\\x00') +\n '\\x00\\x00' +\n decToHex(time, 2) + // last modified time\n decToHex(dt, 2) + // last modified date\n decToHex(size ? this.getFromCrc32Table(convertedContent) : 0, 4) +\n decToHex(size, 4) + // compressed size\n decToHex(size, 4) + // uncompressed size\n decToHex(utfPath.length, 2) + // file name length\n decToHex(extraFields.length, 2); // extra field length\n var fileHeader = 'PK\\x03\\x04' + header + utfPath + extraFields;\n var folderHeader = 'PK\\x01\\x02' + // central header\n '\\x14\\x00' +\n header + // file header\n '\\x00\\x00' +\n '\\x00\\x00' +\n '\\x00\\x00' +\n (content ? '\\x00\\x00\\x00\\x00' : '\\x10\\x00\\x00\\x00') + // external file attributes\n decToHex(offset, 4) + // relative offset of local header\n utfPath + // file name\n extraFields; // extra field\n return { fileHeader: fileHeader, folderHeader: folderHeader, content: convertedContent || '' };\n };\n ZipContainer.getConvertedContent = function (content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n if (isBase64) {\n content = content.split(';base64,')[1];\n }\n content = isBase64 ? atob(content) : content;\n return {\n size: content.length,\n content: content\n };\n };\n ZipContainer.buildFolderEnd = function (tLen, cLen, lLen) {\n var decToHex = _.decToHex;\n return 'PK\\x05\\x06' + // central folder end\n '\\x00\\x00' +\n '\\x00\\x00' +\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(cLen, 4) + // size of the central folder\n decToHex(lLen, 4) + // central folder start offset\n '\\x00\\x00';\n };\n ZipContainer.buildUint8Array = function (content) {\n var uint8 = new Uint8Array(content.length);\n for (var i = 0; i < uint8.length; i++) {\n uint8[i] = content.charCodeAt(i);\n }\n return uint8;\n };\n ZipContainer.getFromCrc32Table = function (content) {\n if (!content.length) {\n return 0;\n }\n var size = content.length;\n var iterable = new Uint8Array(size);\n for (var i = 0; i < size; i++) {\n iterable[i] = content.charCodeAt(i);\n }\n var crc = 0 ^ (-1);\n var j = 0;\n var k = 0;\n var l = 0;\n for (var i = 0; i < size; i++) {\n j = iterable[i];\n k = (crc ^ j) & 0xFF;\n l = crcTable[k];\n crc = (crc >>> 8) ^ l;\n }\n return crc ^ (-1);\n };\n ZipContainer.convertTime = function (date) {\n var time = date.getHours();\n time <<= 6;\n time = time | date.getMinutes();\n time <<= 5;\n time = time | date.getSeconds() / 2;\n return time;\n };\n ZipContainer.convertDate = function (date) {\n var dt = date.getFullYear() - 1980;\n dt <<= 4;\n dt = dt | (date.getMonth() + 1);\n dt <<= 5;\n dt = dt | date.getDate();\n return dt;\n };\n ZipContainer.folders = [];\n ZipContainer.files = [];\n return ZipContainer;\n}());\n\nModuleRegistry.register(ClientSideRowModelModule, false);\r\nModuleRegistry.register(InfiniteRowModelModule, false);\r\nModuleRegistry.register(CsvExportModule, false);\n\nexports.AgAbstractField = AgAbstractField;\nexports.AgAngleSelect = AgAngleSelect;\nexports.AgCheckbox = AgCheckbox;\nexports.AgColorPicker = AgColorPicker;\nexports.AgDialog = AgDialog;\nexports.AgGroupComponent = AgGroupComponent;\nexports.AgInputNumberField = AgInputNumberField;\nexports.AgInputRange = AgInputRange;\nexports.AgInputTextArea = AgInputTextArea;\nexports.AgInputTextField = AgInputTextField;\nexports.AgPanel = AgPanel;\nexports.AgPromise = AgPromise;\nexports.AgRadioButton = AgRadioButton;\nexports.AgSelect = AgSelect;\nexports.AgSlider = AgSlider;\nexports.AgToggleButton = AgToggleButton;\nexports.AlignedGridsService = AlignedGridsService;\nexports.AnimateShowChangeCellRenderer = AnimateShowChangeCellRenderer;\nexports.AnimateSlideCellRenderer = AnimateSlideCellRenderer;\nexports.AnimationFrameService = AnimationFrameService;\nexports.AutoWidthCalculator = AutoWidthCalculator;\nexports.Autowired = Autowired;\nexports.BaseComponentWrapper = BaseComponentWrapper;\nexports.BaseCreator = BaseCreator;\nexports.BaseGridSerializingSession = BaseGridSerializingSession;\nexports.Bean = Bean;\nexports.BeanStub = BeanStub;\nexports.BodyDropPivotTarget = BodyDropPivotTarget;\nexports.BodyDropTarget = BodyDropTarget;\nexports.CellComp = CellComp;\nexports.CellNavigationService = CellNavigationService;\nexports.CellPositionUtils = CellPositionUtils;\nexports.ChangedPath = ChangedPath;\nexports.CheckboxSelectionComponent = CheckboxSelectionComponent;\nexports.ColDefUtil = ColDefUtil;\nexports.Color = Color;\nexports.Column = Column;\nexports.ColumnApi = ColumnApi;\nexports.ColumnController = ColumnController;\nexports.ColumnFactory = ColumnFactory;\nexports.ColumnGroup = ColumnGroup;\nexports.ColumnKeyCreator = ColumnKeyCreator;\nexports.ColumnUtils = ColumnUtils;\nexports.Component = Component;\nexports.ComponentUtil = ComponentUtil;\nexports.Constants = Constants;\nexports.Context = Context;\nexports.ControllersService = ControllersService;\nexports.CssClassApplier = CssClassApplier;\nexports.CsvCreator = CsvCreator;\nexports.CsvExportModule = CsvExportModule;\nexports.DateFilter = DateFilter;\nexports.DisplayedGroupCreator = DisplayedGroupCreator;\nexports.Downloader = Downloader;\nexports.DragAndDropService = DragAndDropService;\nexports.DragService = DragService;\nexports.Environment = Environment;\nexports.EventService = EventService;\nexports.Events = Events;\nexports.ExpressionService = ExpressionService;\nexports.FilterManager = FilterManager;\nexports.FloatingFilterMapper = FloatingFilterMapper;\nexports.FloatingFilterWrapper = FloatingFilterWrapper;\nexports.FocusController = FocusController;\nexports.Grid = Grid;\nexports.GridApi = GridApi;\nexports.GridBodyComp = GridBodyComp;\nexports.GridBodyController = GridBodyController;\nexports.GridComp = GridComp;\nexports.GridCompController = GridCompController;\nexports.GridCoreCreator = GridCoreCreator;\nexports.GridListener = GridListener;\nexports.GridOptionsWrapper = GridOptionsWrapper;\nexports.GridSerializer = GridSerializer;\nexports.GroupCellRenderer = GroupCellRenderer;\nexports.GroupInstanceIdCreator = GroupInstanceIdCreator;\nexports.GuiListener = GuiListener;\nexports.HeaderContainer = HeaderContainer;\nexports.HeaderNavigationService = HeaderNavigationService;\nexports.HeaderPositionUtils = HeaderPositionUtils;\nexports.HeaderRootComp = HeaderRootComp;\nexports.HeaderRowComp = HeaderRowComp;\nexports.HeadlessService = HeadlessService;\nexports.HorizontalResizeService = HorizontalResizeService;\nexports.KeyCode = KeyCode;\nexports.KeyName = KeyName;\nexports.LargeTextCellEditor = LargeTextCellEditor;\nexports.Logger = Logger;\nexports.LoggerFactory = LoggerFactory;\nexports.ManagedFocusComponent = ManagedFocusComponent;\nexports.ModuleRegistry = ModuleRegistry;\nexports.MouseEventService = MouseEventService;\nexports.MoveColumnController = MoveColumnController;\nexports.NumberFilter = NumberFilter;\nexports.NumberSequence = NumberSequence;\nexports.Optional = Optional;\nexports.OriginalColumnGroup = OriginalColumnGroup;\nexports.PaginationProxy = PaginationProxy;\nexports.PinnedRowModel = PinnedRowModel;\nexports.PopupComponent = PopupComponent;\nexports.PopupEditorWrapper = PopupEditorWrapper;\nexports.PopupSelectCellEditor = PopupSelectCellEditor;\nexports.PopupService = PopupService;\nexports.PopupTextCellEditor = PopupTextCellEditor;\nexports.PostConstruct = PostConstruct;\nexports.PreConstruct = PreConstruct;\nexports.PreDestroy = PreDestroy;\nexports.PropertyKeys = PropertyKeys;\nexports.ProvidedFilter = ProvidedFilter;\nexports.Qualifier = Qualifier;\nexports.QuerySelector = QuerySelector;\nexports.RefSelector = RefSelector;\nexports.ResizeObserverService = ResizeObserverService;\nexports.RowController = RowController;\nexports.RowNode = RowNode;\nexports.RowNodeBlock = RowNodeBlock;\nexports.RowNodeBlockLoader = RowNodeBlockLoader;\nexports.RowNodeSorter = RowNodeSorter;\nexports.RowPositionUtils = RowPositionUtils;\nexports.RowRenderer = RowRenderer;\nexports.ScalarFilter = ScalarFilter;\nexports.ScrollVisibleService = ScrollVisibleService;\nexports.SelectCellEditor = SelectCellEditor;\nexports.SelectableService = SelectableService;\nexports.SelectionController = SelectionController;\nexports.SetLeftFeature = SetLeftFeature;\nexports.SimpleFilter = SimpleFilter;\nexports.SortController = SortController;\nexports.StandardMenuFactory = StandardMenuFactory;\nexports.StylingService = StylingService;\nexports.TabbedLayout = TabbedLayout;\nexports.TemplateService = TemplateService;\nexports.TestHeadless = TestHeadless;\nexports.TextCellEditor = TextCellEditor;\nexports.TextFilter = TextFilter;\nexports.TextFloatingFilter = TextFloatingFilter;\nexports.Timer = Timer;\nexports.TooltipFeature = TooltipFeature;\nexports.TouchListener = TouchListener;\nexports.UserComponentFactory = UserComponentFactory;\nexports.UserComponentRegistry = UserComponentRegistry;\nexports.ValueCache = ValueCache;\nexports.ValueFormatterService = ValueFormatterService;\nexports.ValueService = ValueService;\nexports.VanillaFrameworkOverrides = VanillaFrameworkOverrides;\nexports.VirtualList = VirtualList;\nexports.XmlFactory = XmlFactory;\nexports.ZipContainer = ZipContainer;\nexports._ = _;\nexports.defaultGroupComparator = defaultGroupComparator;\nexports.initialiseAgGridWithAngular1 = initialiseAgGridWithAngular1;\nexports.initialiseAgGridWithWebComponents = initialiseAgGridWithWebComponents;\nexports.simpleHttpRequest = simpleHttpRequest;\nexports.stringToArray = stringToArray;\n","'use strict';\n\n/**\n * Module dependenices\n */\n\nconst clone = require('shallow-clone');\nconst typeOf = require('kind-of');\nconst isPlainObject = require('is-plain-object');\n\nfunction cloneDeep(val, instanceClone) {\n switch (typeOf(val)) {\n case 'object':\n return cloneObjectDeep(val, instanceClone);\n case 'array':\n return cloneArrayDeep(val, instanceClone);\n default: {\n return clone(val);\n }\n }\n}\n\nfunction cloneObjectDeep(val, instanceClone) {\n if (typeof instanceClone === 'function') {\n return instanceClone(val);\n }\n if (instanceClone || isPlainObject(val)) {\n const res = new val.constructor();\n for (let key in val) {\n res[key] = cloneDeep(val[key], instanceClone);\n }\n return res;\n }\n return val;\n}\n\nfunction cloneArrayDeep(val, instanceClone) {\n const res = new val.constructor(val.length);\n for (let i = 0; i < val.length; i++) {\n res[i] = cloneDeep(val[i], instanceClone);\n }\n return res;\n}\n\n/**\n * Expose `cloneDeep`\n */\n\nmodule.exports = cloneDeep;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move();\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default x => () => x;\n","export default function BrushEvent(type, {\n sourceEvent,\n target,\n selection,\n mode,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n selection: {value: selection, enumerable: true, configurable: true},\n mode: {value: mode, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var nodes = Array.from(data),\n n = nodes.length,\n d,\n i,\n root,\n parent,\n node,\n nodeId,\n nodeKey,\n nodeByKey = new Map;\n\n for (i = 0; i < n; ++i) {\n d = nodes[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = node.id = nodeId;\n nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);\n }\n if ((nodeId = parentId(d, i, data)) != null && (nodeId += \"\")) {\n node.parent = nodeId;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (nodeId = node.parent) {\n parent = nodeByKey.get(nodeId);\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n } else {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default x => () => x;\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","export default function number(x) {\n return +x;\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n return Array.from(this);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function() {}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n","/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n","var toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = typeof val;\n if (type === 'boolean') return 'boolean';\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'symbol') return 'symbol';\n if (type === 'function') {\n return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n }\n\n if (isArray(val)) return 'array';\n if (isBuffer(val)) return 'buffer';\n if (isArguments(val)) return 'arguments';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n if (isRegexp(val)) return 'regexp';\n\n switch (ctorName(val)) {\n case 'Symbol': return 'symbol';\n case 'Promise': return 'promise';\n\n // Set, Map, WeakSet, WeakMap\n case 'WeakMap': return 'weakmap';\n case 'WeakSet': return 'weakset';\n case 'Map': return 'map';\n case 'Set': return 'set';\n\n // 8-bit typed arrays\n case 'Int8Array': return 'int8array';\n case 'Uint8Array': return 'uint8array';\n case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n // 16-bit typed arrays\n case 'Int16Array': return 'int16array';\n case 'Uint16Array': return 'uint16array';\n\n // 32-bit typed arrays\n case 'Int32Array': return 'int32array';\n case 'Uint32Array': return 'uint32array';\n case 'Float32Array': return 'float32array';\n case 'Float64Array': return 'float64array';\n }\n\n if (isGeneratorObj(val)) {\n return 'generator';\n }\n\n // Non-plain objects\n type = toString.call(val);\n switch (type) {\n case '[object Object]': return 'object';\n // iterators\n case '[object Map Iterator]': return 'mapiterator';\n case '[object Set Iterator]': return 'setiterator';\n case '[object String Iterator]': return 'stringiterator';\n case '[object Array Iterator]': return 'arrayiterator';\n }\n\n // other\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n if (Array.isArray) return Array.isArray(val);\n return val instanceof Array;\n}\n\nfunction isError(val) {\n return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function'\n && typeof val.getDate === 'function'\n && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n if (val instanceof RegExp) return true;\n return typeof val.flags === 'string'\n && typeof val.ignoreCase === 'boolean'\n && typeof val.multiline === 'boolean'\n && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n return typeof val.throw === 'function'\n && typeof val.return === 'function'\n && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n try {\n if (typeof val.length === 'number' && typeof val.callee === 'function') {\n return true;\n }\n } catch (err) {\n if (err.message.indexOf('callee') !== -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n","/*!\n * shallow-clone \n *\n * Copyright (c) 2015-present, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nconst valueOf = Symbol.prototype.valueOf;\nconst typeOf = require('kind-of');\n\nfunction clone(val, deep) {\n switch (typeOf(val)) {\n case 'array':\n return val.slice();\n case 'object':\n return Object.assign({}, val);\n case 'date':\n return new val.constructor(Number(val));\n case 'map':\n return new Map(val);\n case 'set':\n return new Set(val);\n case 'buffer':\n return cloneBuffer(val);\n case 'symbol':\n return cloneSymbol(val);\n case 'arraybuffer':\n return cloneArrayBuffer(val);\n case 'float32array':\n case 'float64array':\n case 'int16array':\n case 'int32array':\n case 'int8array':\n case 'uint16array':\n case 'uint32array':\n case 'uint8clampedarray':\n case 'uint8array':\n return cloneTypedArray(val);\n case 'regexp':\n return cloneRegExp(val);\n case 'error':\n return Object.create(val);\n default: {\n return val;\n }\n }\n}\n\nfunction cloneRegExp(val) {\n const flags = val.flags !== void 0 ? val.flags : (/\\w+$/.exec(val) || void 0);\n const re = new val.constructor(val.source, flags);\n re.lastIndex = val.lastIndex;\n return re;\n}\n\nfunction cloneArrayBuffer(val) {\n const res = new val.constructor(val.byteLength);\n new Uint8Array(res).set(new Uint8Array(val));\n return res;\n}\n\nfunction cloneTypedArray(val, deep) {\n return new val.constructor(val.buffer, val.byteOffset, val.length);\n}\n\nfunction cloneBuffer(val) {\n const len = val.length;\n const buf = Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : Buffer.from(len);\n val.copy(buf);\n return buf;\n}\n\nfunction cloneSymbol(val) {\n return valueOf ? Object(valueOf.call(val)) : {};\n}\n\n/**\n * Expose `clone`\n */\n\nmodule.exports = clone;\n","import { __decorate, __metadata } from 'tslib';\nimport { Directive, ɵɵdefineInjectable, ɵɵinject, Injectable, TemplateRef, ContentChild, Input, Component, ViewEncapsulation, NgModule } from '@angular/core';\nimport { NavigationEnd, ActivatedRoute, Router, RouterModule } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter, distinctUntilChanged } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\n\n/**\n * This directive is used to customize the breadcrumb label behavior\n * *xngBreadcrumbItem directive can be used in the child element of xng-breadcrumb\n * Usage: refer to demo app.component.html\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/router';\nimport * as ɵngcc2 from '@angular/common';\n\nfunction BreadcrumbComponent_ng_container_2_a_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction BreadcrumbComponent_ng_container_2_a_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const breadcrumb_r1 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(breadcrumb_r1.label);\n} }\nconst _c0 = function (a0) { return [a0]; };\nconst _c1 = function (a0) { return { \"xng-breadcrumb-link-disabled\": a0 }; };\nconst _c2 = function (a0, a1, a2, a3) { return { $implicit: a0, info: a1, last: a2, first: a3 }; };\nfunction BreadcrumbComponent_ng_container_2_a_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"a\", 7);\n ɵngcc0.ɵɵtemplate(1, BreadcrumbComponent_ng_container_2_a_2_ng_container_1_Template, 1, 0, \"ng-container\", 8);\n ɵngcc0.ɵɵtemplate(2, BreadcrumbComponent_ng_container_2_a_2_ng_container_2_Template, 2, 1, \"ng-container\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext();\n const breadcrumb_r1 = ctx_r10.$implicit;\n const isLast_r2 = ctx_r10.last;\n const isFirst_r3 = ctx_r10.first;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"routerLink\", ɵngcc0.ɵɵpureFunction1(8, _c0, breadcrumb_r1.routeLink))(\"ngClass\", ɵngcc0.ɵɵpureFunction1(10, _c1, breadcrumb_r1.disable))(\"queryParams\", breadcrumb_r1.queryParams)(\"fragment\", breadcrumb_r1.fragment);\n ɵngcc0.ɵɵattribute(\"aria-disabled\", breadcrumb_r1.disable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r4.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction4(12, _c2, breadcrumb_r1.label, breadcrumb_r1.info, isLast_r2, isFirst_r3));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r4.itemTemplate);\n} }\nfunction BreadcrumbComponent_ng_container_2_label_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction BreadcrumbComponent_ng_container_2_label_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const breadcrumb_r1 = ɵngcc0.ɵɵnextContext(2).$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(breadcrumb_r1.label);\n} }\nfunction BreadcrumbComponent_ng_container_2_label_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"label\", 10);\n ɵngcc0.ɵɵtemplate(1, BreadcrumbComponent_ng_container_2_label_3_ng_container_1_Template, 1, 0, \"ng-container\", 8);\n ɵngcc0.ɵɵtemplate(2, BreadcrumbComponent_ng_container_2_label_3_ng_container_2_Template, 2, 1, \"ng-container\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext();\n const breadcrumb_r1 = ctx_r14.$implicit;\n const isLast_r2 = ctx_r14.last;\n const isFirst_r3 = ctx_r14.first;\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction4(3, _c2, breadcrumb_r1.label, breadcrumb_r1.info, isLast_r2, isFirst_r3));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r5.itemTemplate);\n} }\nfunction BreadcrumbComponent_ng_container_2_li_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction BreadcrumbComponent_ng_container_2_li_4_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r16.separator);\n} }\nfunction BreadcrumbComponent_ng_container_2_li_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 11);\n ɵngcc0.ɵɵtemplate(1, BreadcrumbComponent_ng_container_2_li_4_ng_container_1_Template, 1, 0, \"ng-container\", 12);\n ɵngcc0.ɵɵtemplate(2, BreadcrumbComponent_ng_container_2_li_4_ng_container_2_Template, 2, 1, \"ng-container\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r6.separatorTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r6.separatorTemplate);\n} }\nfunction BreadcrumbComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵelementStart(1, \"li\", 3);\n ɵngcc0.ɵɵtemplate(2, BreadcrumbComponent_ng_container_2_a_2_Template, 3, 17, \"a\", 4);\n ɵngcc0.ɵɵtemplate(3, BreadcrumbComponent_ng_container_2_label_3_Template, 3, 8, \"label\", 5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, BreadcrumbComponent_ng_container_2_li_4_Template, 3, 2, \"li\", 6);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const isLast_r2 = ctx.last;\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", !isLast_r2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", isLast_r2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !isLast_r2);\n} }\nlet BreadcrumbItemDirective = class BreadcrumbItemDirective {\n constructor() { }\n};\nBreadcrumbItemDirective.ɵfac = function BreadcrumbItemDirective_Factory(t) { return new (t || BreadcrumbItemDirective)(); };\nBreadcrumbItemDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: BreadcrumbItemDirective, selectors: [[\"\", \"xngBreadcrumbItem\", \"\"]] });\nBreadcrumbItemDirective = __decorate([ __metadata(\"design:paramtypes\", [])\n], BreadcrumbItemDirective);\n\nlet BreadcrumbService = class BreadcrumbService {\n constructor(activatedRoute, router) {\n this.activatedRoute = activatedRoute;\n this.router = router;\n this.baseHref = '/';\n /**\n * dynamicBreadcrumbStore holds information about dynamically updated breadcrumbs.\n * Breadcrumbs can be set from anywhere (component, service) in the app.\n * On every breadcrumb update check this store and use the info if available.\n */\n this.dynamicBreadcrumbStore = [];\n /**\n * breadcrumbList for the current route\n * When breadcrumb info is changed dynamically, check if the currentBreadcrumbs is effected\n * If effected, update the change and emit a new stream\n */\n this.currentBreadcrumbs = [];\n this.previousBreadcrumbs = [];\n /**\n * Breadcrumbs observable to be subscribed by BreadcrumbComponent\n * Emits on every route change OR dynamic update of breadcrumb\n */\n this.breadcrumbs = new BehaviorSubject([]);\n this.breadcrumbs$ = this.breadcrumbs.asObservable();\n this.pathParamPrefix = ':';\n this.pathParamRegexIdentifier = '/:[^/]+';\n this.pathParamRegexReplacer = '/[^/]+';\n this.setBaseBreadcrumb();\n this.detectRouteChanges();\n }\n /**\n * Update breadcrumb label or options for -\n *\n * route (complete route path). route can be passed the same way you define angular routes\n * 1) update label Ex: set('/mentor', 'Mentor'), set('/mentor/:id', 'Mentor Details')\n * 2) change visibility Ex: set('/mentor/:id/edit', { skip: true })\n * 3) add info Ex: set('/mentor/:id/edit', { info: { icon: 'edit', iconColor: 'blue' } })\n * ------------------------ OR -------------------------\n *\n * alias (prefixed with '@'). breadcrumb alias is unique for a route\n * 1) update label Ex: set('@mentor', 'Enabler')\n * 2) change visibility Ex: set('@mentorEdit', { skip: true })\n * 3) add info Ex: set('@mentorEdit', { info: { icon: 'edit', iconColor: 'blue' } })\n */\n set(pathOrAlias, breadcrumb) {\n if (!this.validateArguments(pathOrAlias, breadcrumb)) {\n return;\n }\n if (typeof breadcrumb === 'string') {\n breadcrumb = {\n label: breadcrumb\n };\n }\n if (pathOrAlias.startsWith('@')) {\n this.updateStore(Object.assign(Object.assign({}, breadcrumb), { alias: pathOrAlias.slice(1) }));\n }\n else {\n const breadcrumbExtraProps = this.buildRouteRegExp(pathOrAlias);\n this.updateStore(Object.assign(Object.assign({}, breadcrumb), breadcrumbExtraProps));\n }\n }\n setBaseBreadcrumb() {\n const baseConfig = this.router.config.find(pathConfig => pathConfig.path === '');\n if (baseConfig && baseConfig.data) {\n // tslint:disable-next-line: prefer-const\n let { label, alias, skip = false, info, disable = false } = this.getBreadcrumbOptions(baseConfig.data);\n let isAutoGeneratedLabel = false;\n if (typeof label !== 'string' && !label) {\n label = '';\n isAutoGeneratedLabel = true;\n }\n this.baseBreadcrumb = {\n label,\n alias,\n skip,\n disable,\n info,\n routeLink: this.baseHref,\n isAutoGeneratedLabel\n };\n }\n }\n /**\n * Whenever route changes build breadcrumb list again\n */\n detectRouteChanges() {\n this.router.events\n .pipe(filter(event => event instanceof NavigationEnd), distinctUntilChanged())\n .subscribe(event => {\n this.previousBreadcrumbs = this.currentBreadcrumbs;\n this.currentBreadcrumbs = this.baseBreadcrumb ? [this.baseBreadcrumb] : [];\n this.prepareBreadcrumbList(this.activatedRoute.root, this.baseHref);\n });\n }\n prepareBreadcrumbList(activatedRoute, routeLinkPrefix) {\n if (activatedRoute.routeConfig && activatedRoute.routeConfig.path) {\n const breadcrumbItem = this.prepareBreadcrumbItem(activatedRoute, routeLinkPrefix);\n this.currentBreadcrumbs.push(breadcrumbItem);\n if (activatedRoute.firstChild) {\n return this.prepareBreadcrumbList(activatedRoute.firstChild, breadcrumbItem.routeLink + '/');\n }\n }\n else if (activatedRoute.firstChild) {\n return this.prepareBreadcrumbList(activatedRoute.firstChild, routeLinkPrefix);\n }\n const lastCrumb = this.currentBreadcrumbs[this.currentBreadcrumbs.length - 1];\n this.resolveQueryParamForLastItem(lastCrumb, activatedRoute);\n // remove breadcrumb items that needs to be hidden or don't have a label\n const breadcrumbsToShow = this.currentBreadcrumbs.filter(item => !item.skip);\n this.breadcrumbs.next(breadcrumbsToShow);\n }\n prepareBreadcrumbItem(activatedRoute, routeLinkPrefix) {\n const { path, breadcrumb } = this.parseRouteData(activatedRoute.routeConfig);\n // in case of path param get the resolved for param\n const resolvedPath = this.resolvePathParam(path, activatedRoute);\n const routeLink = `${routeLinkPrefix}${resolvedPath}`;\n // tslint:disable-next-line: prefer-const\n let { label, alias, skip, disable, info } = this.getFromStore(breadcrumb.alias, routeLink);\n let isAutoGeneratedLabel = false;\n if (typeof label !== 'string') {\n if (typeof breadcrumb.label === 'string') {\n label = breadcrumb.label;\n }\n else {\n label = resolvedPath;\n isAutoGeneratedLabel = true;\n }\n }\n return Object.assign({ label, alias: alias || breadcrumb.alias, skip: skip || breadcrumb.skip, disable: disable || breadcrumb.disable, info: info || breadcrumb.info, routeLink,\n isAutoGeneratedLabel }, this.resolveQueryParam(routeLink));\n }\n /**\n * For a specific route, breadcrumb can be defined either on parent data OR it's child(which has empty path) data\n * When both are defined, child takes precedence\n *\n * Ex: Below we are setting breadcrumb on both parent and child.\n * So, child takes precedence and \"Defined On Child\" is displayed for the route 'home'\n * { path: 'home', loadChildren: './home/home.module#HomeModule' , data: {breadcrumb: \"Defined On Module\"}}\n * AND\n * children: [\n * { path: '', component: ShowUserComponent, data: {breadcrumb: \"Defined On Child\" }\n * ]\n */\n parseRouteData(routeConfig) {\n const { path, data = {} } = routeConfig;\n const breadcrumb = this.mergeWithBaseChildData(routeConfig, Object.assign({}, data));\n return { path, breadcrumb };\n }\n getFromStore(breadcrumbAlias, routeLink) {\n let matchingItem;\n if (breadcrumbAlias) {\n matchingItem = this.dynamicBreadcrumbStore.find(item => item.alias === breadcrumbAlias);\n }\n if (!matchingItem && routeLink) {\n matchingItem = this.dynamicBreadcrumbStore.find(item => {\n return (item.routeLink && item.routeLink === routeLink) || (item.routeRegex && new RegExp(item.routeRegex).test(routeLink + '/'));\n });\n }\n return matchingItem || {};\n }\n /**\n * To update breadcrumb label for a route with path param, we need regex that matches route.\n * Instead of user providing regex, we help in preparing regex dynamically\n *\n * Ex: route declaration - path: '/mentor/:id'\n * breadcrumbService.set('/mentor/:id', 'Uday');\n * '/mentor/2' OR 'mentor/ada' we should use 'Uday' as label\n *\n * regex string is built, if route has path params(contains with ':')\n */\n buildRouteRegExp(path) {\n // ensure leading slash is provided in the path\n if (!path.startsWith('/')) {\n path = '/' + path;\n }\n if (path.includes(this.pathParamPrefix)) {\n // replace mathing path param with a regex\n // '/mentor/:id' becomes '/mentor/[^/]', which further will be matched in updateStore\n const routeRegex = path.replace(new RegExp(this.pathParamRegexIdentifier, 'g'), this.pathParamRegexReplacer);\n return { routeRegex };\n }\n else {\n return { routeLink: path };\n }\n }\n /**\n * Update current breadcrumb definition and emit a new stream of breadcrumbs\n * Also update the store to reuse dynamic declarations\n */\n updateStore(breadcrumb) {\n const { breadcrumbItemIndex, storeItemIndex } = this.getBreadcrumbIndexes(breadcrumb);\n // if breadcrumb is present in current breadcrumbs update it and emit new stream\n if (breadcrumbItemIndex > -1) {\n this.currentBreadcrumbs[breadcrumbItemIndex] = Object.assign(Object.assign({}, this.currentBreadcrumbs[breadcrumbItemIndex]), breadcrumb);\n const breadcrumbsToShow = this.currentBreadcrumbs.filter(item => !item.skip);\n this.breadcrumbs.next([...breadcrumbsToShow]);\n }\n // If the store already has this route definition update it, else add\n if (storeItemIndex > -1) {\n this.dynamicBreadcrumbStore[storeItemIndex] = Object.assign(Object.assign({}, this.dynamicBreadcrumbStore[storeItemIndex]), breadcrumb);\n }\n else {\n this.dynamicBreadcrumbStore.push(breadcrumb);\n }\n }\n getBreadcrumbIndexes(breadcrumb) {\n const { alias, routeLink, routeRegex } = breadcrumb;\n let indexMap = {};\n // identify macthing breadcrumb and store item\n if (alias) {\n indexMap = this.getBreadcrumbIndexesByType('alias', alias);\n }\n else if (routeLink) {\n indexMap = this.getBreadcrumbIndexesByType('routeLink', routeLink);\n }\n else if (routeRegex) {\n indexMap = this.getBreadcrumbIndexesByType('routeRegex', routeRegex);\n }\n return indexMap;\n }\n getBreadcrumbIndexesByType(key, value) {\n let breadcrumbItemIndex;\n if (key !== 'routeRegex') {\n breadcrumbItemIndex = this.currentBreadcrumbs.findIndex(item => value === item[key]);\n }\n else {\n breadcrumbItemIndex = this.currentBreadcrumbs.findIndex(item => new RegExp(value).test(item.routeLink));\n }\n const storeItemIndex = this.dynamicBreadcrumbStore.findIndex(item => value === item[key]);\n return { breadcrumbItemIndex, storeItemIndex };\n }\n resolvePathParam(path, activatedRoute) {\n // if the path segment is a route param, read the param value from url\n if (path.includes(this.pathParamPrefix)) {\n Object.entries(activatedRoute.snapshot.params).forEach(([key, value]) => {\n path = path.replace(`:${key}`, `${value}`);\n });\n }\n return path;\n }\n resolveQueryParam(routeLink) {\n const previousBreadcrumb = this.previousBreadcrumbs.find(item => item.routeLink === routeLink) || {};\n return {\n queryParams: previousBreadcrumb.queryParams,\n fragment: previousBreadcrumb.fragment\n };\n }\n resolveQueryParamForLastItem(lastItem, activatedRoute) {\n const { queryParams, fragment } = activatedRoute.snapshot;\n // For last item in the crumbs set queryParams from activatedRoute\n if (lastItem) {\n lastItem.queryParams = Object.keys(queryParams).length > 0 ? Object.assign({}, queryParams) : undefined;\n lastItem.fragment = fragment;\n }\n }\n /**\n * get empty children of a module or Component. Empty child is the one with path: ''\n * When parent and it's children (that has empty route path) define data\n * merge them both with child taking precedence\n */\n mergeWithBaseChildData(routeConfig, data) {\n if (!routeConfig) {\n return this.getBreadcrumbOptions(data);\n }\n let baseChild;\n if (routeConfig.loadChildren) {\n // To handle a module with empty child route\n baseChild = routeConfig._loadedConfig.routes.find(route => route.path === '');\n }\n else if (routeConfig.children) {\n // To handle a component with empty child route\n baseChild = routeConfig.children.find(route => route.path === '');\n }\n return baseChild && baseChild.data\n ? this.mergeWithBaseChildData(baseChild, Object.assign(Object.assign({}, this.getBreadcrumbOptions(data)), this.getBreadcrumbOptions(baseChild.data)))\n : this.getBreadcrumbOptions(data);\n }\n validateArguments(pathOrAlias, breadcrumb) {\n if (pathOrAlias === null || pathOrAlias === undefined) {\n console.error('Invalid first argument. Please pass a route path or a breadcrumb alias.');\n return false;\n }\n else if (breadcrumb === null || breadcrumb === undefined) {\n console.error('Invalid second argument. Please pass a string or an Object with breadcrumb options.');\n return false;\n }\n return true;\n }\n /**\n * breadcrumb can be passed a label or an options object\n * If passed as a string convert to breadcrumb options object\n */\n getBreadcrumbOptions(data) {\n let { breadcrumb } = data;\n if (typeof breadcrumb === 'string' || !breadcrumb) {\n breadcrumb = {\n label: breadcrumb\n };\n }\n return breadcrumb;\n }\n};\nBreadcrumbService.ɵfac = function BreadcrumbService_Factory(t) { return new (t || BreadcrumbService)(ɵngcc0.ɵɵinject(ɵngcc1.ActivatedRoute), ɵngcc0.ɵɵinject(ɵngcc1.Router)); };\nBreadcrumbService.ctorParameters = () => [\n { type: ActivatedRoute },\n { type: Router }\n];\nBreadcrumbService.ɵprov = ɵɵdefineInjectable({ factory: function BreadcrumbService_Factory() { return new BreadcrumbService(ɵɵinject(ActivatedRoute), ɵɵinject(Router)); }, token: BreadcrumbService, providedIn: \"root\" });\nBreadcrumbService = __decorate([ __metadata(\"design:paramtypes\", [ActivatedRoute, Router])\n], BreadcrumbService);\n\nlet BreadcrumbComponent = class BreadcrumbComponent {\n constructor(breadcrumbService) {\n this.breadcrumbService = breadcrumbService;\n this._separator = '/';\n /**\n * If true, breadcrumb is auto generated even without any mapping label\n * Default label is same as route segment\n */\n this.autoGenerate = true;\n /**\n * By default query params will be preserved with breadcrumbs\n */\n this.preserveQueryParams = true;\n /**\n * custom class provided by consumer to increase specificity\n * This will benefit to override styles that are conflicting\n */\n this.class = '';\n }\n /**\n * separator between breadcrumbs, defaults to '/'.\n * User can customize separator either by passing a String or Template\n *\n * String --> Ex: \n *\n * Template --> Ex: \n * arrow_right\n */\n set separator(value) {\n if (value instanceof TemplateRef) {\n this.separatorTemplate = value;\n this._separator = undefined;\n }\n else {\n this.separatorTemplate = undefined;\n this._separator = value || '/';\n }\n }\n get separator() {\n return this._separator;\n }\n ngOnInit() {\n this.subscription = this.breadcrumbService.breadcrumbs$.subscribe(breadcrumbs => {\n this.breadcrumbs = breadcrumbs\n .map(breadcrumb => {\n if (!this.preserveQueryParams) {\n breadcrumb.routeLink = breadcrumb.routeLink.split('?')[0];\n }\n return breadcrumb;\n })\n .filter(breadcrumb => {\n // Usually, breadcrumb list can contain a combination of auto generated and user specified labels\n // this filters autogenerated labels in case of \"[autoGenerate]: false\"\n if (this.autoGenerate) {\n return true;\n }\n return !breadcrumb.isAutoGeneratedLabel;\n });\n });\n }\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n};\nBreadcrumbComponent.ɵfac = function BreadcrumbComponent_Factory(t) { return new (t || BreadcrumbComponent)(ɵngcc0.ɵɵdirectiveInject(BreadcrumbService)); };\nBreadcrumbComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: BreadcrumbComponent, selectors: [[\"xng-breadcrumb\"]], contentQueries: function BreadcrumbComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, BreadcrumbItemDirective, 5, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.itemTemplate = _t.first);\n } }, inputs: { autoGenerate: \"autoGenerate\", preserveQueryParams: \"preserveQueryParams\", class: \"class\", separator: \"separator\" }, decls: 3, vars: 2, consts: [[\"aria-label\", \"breadcrumb\", 1, \"xng-breadcrumb-root\", 3, \"ngClass\"], [1, \"xng-breadcrumb-list\"], [4, \"ngFor\", \"ngForOf\"], [1, \"xng-breadcrumb-item\"], [\"class\", \"xng-breadcrumb-link\", 3, \"routerLink\", \"ngClass\", \"queryParams\", \"fragment\", 4, \"ngIf\"], [\"class\", \"xng-breadcrumb-trail\", 4, \"ngIf\"], [\"class\", \"xng-breadcrumb-separator\", \"aria-hidden\", \"true\", \"role\", \"separator\", 4, \"ngIf\"], [1, \"xng-breadcrumb-link\", 3, \"routerLink\", \"ngClass\", \"queryParams\", \"fragment\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [4, \"ngIf\"], [1, \"xng-breadcrumb-trail\"], [\"aria-hidden\", \"true\", \"role\", \"separator\", 1, \"xng-breadcrumb-separator\"], [4, \"ngTemplateOutlet\"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"nav\", 0);\n ɵngcc0.ɵɵelementStart(1, \"ol\", 1);\n ɵngcc0.ɵɵtemplate(2, BreadcrumbComponent_ng_container_2_Template, 5, 3, \"ng-container\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx.class);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.breadcrumbs);\n } }, directives: [ɵngcc2.NgClass, ɵngcc2.NgForOf, ɵngcc2.NgIf, ɵngcc1.RouterLinkWithHref, ɵngcc2.NgTemplateOutlet], styles: [\".xng-breadcrumb-root{margin:0;color:rgba(0,0,0,.6)}.xng-breadcrumb-list{display:flex;align-items:center;flex-wrap:wrap;margin:0;padding:0}.xng-breadcrumb-item{list-style:none}.xng-breadcrumb-trail{display:flex;align-items:center;color:rgba(0,0,0,.9)}.xng-breadcrumb-link{display:flex;align-items:center;white-space:nowrap;color:inherit;text-decoration:none;transition:text-decoration .3s;transition:text-decoration .3s,-webkit-text-decoration .3s}.xng-breadcrumb-link:hover{text-decoration:underline}.xng-breadcrumb-link-disabled{pointer-events:none;cursor:disabled}.xng-breadcrumb-separator{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-left:8px;margin-right:8px}\"], encapsulation: 2 });\nBreadcrumbComponent.ctorParameters = () => [\n { type: BreadcrumbService }\n];\n__decorate([\n ContentChild(BreadcrumbItemDirective, { static: false, read: TemplateRef }),\n __metadata(\"design:type\", Object)\n], BreadcrumbComponent.prototype, \"itemTemplate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BreadcrumbComponent.prototype, \"autoGenerate\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BreadcrumbComponent.prototype, \"preserveQueryParams\", void 0);\n__decorate([\n Input(),\n __metadata(\"design:type\", Object)\n], BreadcrumbComponent.prototype, \"class\", void 0);\n__decorate([\n Input('separator'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n], BreadcrumbComponent.prototype, \"separator\", null);\nBreadcrumbComponent = __decorate([ __metadata(\"design:paramtypes\", [BreadcrumbService])\n], BreadcrumbComponent);\n\nlet BreadcrumbModule = class BreadcrumbModule {\n};\nBreadcrumbModule.ɵfac = function BreadcrumbModule_Factory(t) { return new (t || BreadcrumbModule)(); };\nBreadcrumbModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: BreadcrumbModule });\nBreadcrumbModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [[CommonModule, RouterModule]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadcrumbItemDirective, [{\n type: Directive,\n args: [{\n selector: '[xngBreadcrumbItem]'\n }]\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadcrumbService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return [{ type: ɵngcc1.ActivatedRoute }, { type: ɵngcc1.Router }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadcrumbComponent, [{\n type: Component,\n args: [{\n selector: 'xng-breadcrumb',\n template: \"\\n\",\n encapsulation: ViewEncapsulation.None,\n styles: [\".xng-breadcrumb-root{margin:0;color:rgba(0,0,0,.6)}.xng-breadcrumb-list{display:flex;align-items:center;flex-wrap:wrap;margin:0;padding:0}.xng-breadcrumb-item{list-style:none}.xng-breadcrumb-trail{display:flex;align-items:center;color:rgba(0,0,0,.9)}.xng-breadcrumb-link{display:flex;align-items:center;white-space:nowrap;color:inherit;text-decoration:none;transition:text-decoration .3s;transition:text-decoration .3s,-webkit-text-decoration .3s}.xng-breadcrumb-link:hover{text-decoration:underline}.xng-breadcrumb-link-disabled{pointer-events:none;cursor:disabled}.xng-breadcrumb-separator{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-left:8px;margin-right:8px}\"]\n }]\n }], function () { return [{ type: BreadcrumbService }]; }, { autoGenerate: [{\n type: Input\n }], preserveQueryParams: [{\n type: Input\n }], class: [{\n type: Input\n }], separator: [{\n type: Input,\n args: ['separator']\n }], itemTemplate: [{\n type: ContentChild,\n args: [BreadcrumbItemDirective, { static: false, read: TemplateRef }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(BreadcrumbModule, [{\n type: NgModule,\n args: [{\n declarations: [BreadcrumbComponent, BreadcrumbItemDirective],\n imports: [CommonModule, RouterModule],\n exports: [BreadcrumbComponent, BreadcrumbItemDirective]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(BreadcrumbModule, { declarations: function () { return [BreadcrumbComponent, BreadcrumbItemDirective]; }, imports: function () { return [CommonModule, RouterModule]; }, exports: function () { return [BreadcrumbComponent, BreadcrumbItemDirective]; } }); })();\n\n/*\n * Public API Surface of xng-breadcrumb\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BreadcrumbComponent, BreadcrumbItemDirective, BreadcrumbModule, BreadcrumbService };\n\n//# sourceMappingURL=xng-breadcrumb.js.map","import { Injectable } from '@angular/core';\r\nimport { AuthService } from 'src/app/core/auth.service';\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PortalPermission {\r\n modulePermissions: Object[] = [];\r\n\r\n constructor(private authService: AuthService) {\r\n if (!this.authService.user) return;\r\n\r\n this.authService.user.AccessRoles.forEach((item: any) => {\r\n this.modulePermissions.push({\r\n ModuleName: item.ModuleName,\r\n CanView: item.View,\r\n CanEdit: item.Edit,\r\n CanAdd: item.Add,\r\n CanDelete: item.Delete,\r\n });\r\n });\r\n }\r\n\r\n canView(module: string): boolean {\r\n return (\r\n this.modulePermissions.filter((item: any) => {\r\n return item.ModuleName === module && item.CanView === true;\r\n }).length > 0\r\n );\r\n }\r\n\r\n canAdd(module: string): boolean {\r\n return (\r\n this.modulePermissions.filter((item: any) => {\r\n return item.ModuleName === module && item.CanAdd === true;\r\n }).length > 0\r\n );\r\n }\r\n\r\n canEdit(module: string): boolean {\r\n return (\r\n this.modulePermissions.filter((item: any) => {\r\n return item.ModuleName === module && item.CanEdit === true;\r\n }).length > 0\r\n );\r\n }\r\n\r\n canDelete(module: string): boolean {\r\n return (\r\n this.modulePermissions.filter((item: any) => {\r\n return item.ModuleName === module && item.CanDelete === true;\r\n }).length > 0\r\n );\r\n }\r\n}\r\n","export class Customer {\r\n public Id: number;\r\n public MembershipNumber: string;\r\n public MembershipStartDate: Date;\r\n public Photo: string;\r\n public FirstName: string;\r\n public LastName: string;\r\n public EmailAddress: string;\r\n public Birthday: Date;\r\n public IsDeactivated: boolean;\r\n public CreatedBy: number;\r\n public CreatedDate: Date;\r\n public UpdatedBy: number;\r\n public UpdatedDate: Date;\r\n public IsDeleted: boolean;\r\n public CustomerTypeId: number;\r\n public BusinessName: string;\r\n public BusinessNature: string;\r\n public JobTitle: string;\r\n public About: string;\r\n public LocationId: number;\r\n public SalesTax: number;\r\n public LevelProcessing: number;\r\n public SalesTaxType: string;\r\n public SupplierReferenceNumber: string;\r\n public CustomerRefID: string;\r\n public hasUpdates: boolean;\r\n}\r\n\r\nexport class CustomerAddress {\r\n public Id: number;\r\n public CustomerId: number;\r\n public ContactPersonId: number;\r\n public AddressType: number;\r\n public StreetAddress: string;\r\n public Address2: string;\r\n public County: string;\r\n public City: string;\r\n public State: string;\r\n public ZipCode: string;\r\n public CountryId: number;\r\n public IsDefault: boolean;\r\n public CreatedBy: number;\r\n public UpdatedBy: number;\r\n public IsDeleted: boolean;\r\n public ZipCodeError: boolean;\r\n public CountryName: string;\r\n public CountryCode: string;\r\n}\r\n\r\nexport class CustomerPhone {\r\n public Id: number;\r\n public CustomerId: number;\r\n public ContactPersonId: number;\r\n public PhoneType: number;\r\n public PhoneNumber: string;\r\n public IsDefault: boolean;\r\n public CreatedBy: number;\r\n public UpdatedBy: number;\r\n public IsDeleted: boolean;\r\n}\r\n\r\nexport class IndividualCustomerPhone {\r\n public Id: number;\r\n public CustomerId: number;\r\n public PhoneType: number;\r\n public ContactNumber: string;\r\n public IsDefault: boolean;\r\n public creator: any;\r\n public created: any;\r\n public updater: any;\r\n public isDeleted: boolean;\r\n}\r\n\r\nexport class ContactPerson {\r\n public Id: number;\r\n public BusinessCustomerId: number;\r\n public FirstName: string;\r\n public LastName: string;\r\n public Department: string;\r\n public EmailAddress: string;\r\n public IsMainContact: boolean;\r\n public CreatedBy: number;\r\n public UpdatedBy: number;\r\n public IsDeleted: boolean;\r\n public PhoneType: number;\r\n public PhoneNumber: string;\r\n public AddressType: number;\r\n public FullName: string;\r\n public StreetAddress: string;\r\n public Address2: string;\r\n public City: string;\r\n public State: string;\r\n public CountryId: number;\r\n public ZipCode: number;\r\n}\r\n\r\nexport class ContactPersonComplete {\r\n public contactPerson: ContactPerson;\r\n public contactPhone: CustomerPhone;\r\n public contactAddress: CustomerAddress;\r\n}\r\n\r\nexport class CustomerCardNumber {\r\n public Id: number;\r\n public CustomerId: number;\r\n public CreatedBy: number;\r\n public CreatedDate: Date;\r\n public UpdatedBy: number;\r\n public UpdatedDate: Date;\r\n public IsDeleted: boolean;\r\n public IsDefault: boolean;\r\n public Token: string;\r\n public CardLast4Digits: string;\r\n public CardBrand: string;\r\n public ExpMonth: number;\r\n public ExpYear: number;\r\n public CVN: string;\r\n public CardBrandTransactionId: string;\r\n}\r\n\r\nexport class ServiceWorkCustomer {\r\n public Id: number;\r\n public FirstName: string;\r\n public LastName: string;\r\n public PhoneNumber1: string;\r\n public DefaultPhoneNumber: number;\r\n public EmailAddress: string;\r\n public StreetAddress: string;\r\n public County: string;\r\n public City: string;\r\n public State: string;\r\n public ZipCode: string;\r\n}\r\n\r\nexport class CustomerPhoto {\r\n public Id: number;\r\n public Image: string;\r\n}\r\n\r\nexport class CustomerNotes {\r\n Id: number;\r\n NoteContent: string;\r\n CreatedBy: number;\r\n UpdatedBy: number;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject, of } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n ContactPerson,\r\n CustomerPhone,\r\n CustomerAddress,\r\n CustomerNotes,\r\n} from '../models/customer.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CustomerManagementService {\r\n private baseRoute: string;\r\n private baseTarget: string;\r\n private headers: HttpHeaders;\r\n private mockCustomerAddresses: BehaviorSubject;\r\n states: Array = [\r\n {\r\n name: 'Alabama',\r\n abbreviation: 'AL',\r\n },\r\n {\r\n name: 'Alaska',\r\n abbreviation: 'AK',\r\n },\r\n {\r\n name: 'American Samoa',\r\n abbreviation: 'AS',\r\n },\r\n {\r\n name: 'Arizona',\r\n abbreviation: 'AZ',\r\n },\r\n {\r\n name: 'Arkansas',\r\n abbreviation: 'AR',\r\n },\r\n {\r\n name: 'California',\r\n abbreviation: 'CA',\r\n },\r\n {\r\n name: 'Colorado',\r\n abbreviation: 'CO',\r\n },\r\n {\r\n name: 'Connecticut',\r\n abbreviation: 'CT',\r\n },\r\n {\r\n name: 'Delaware',\r\n abbreviation: 'DE',\r\n },\r\n {\r\n name: 'District Of Columbia',\r\n abbreviation: 'DC',\r\n },\r\n {\r\n name: 'Federated States Of Micronesia',\r\n abbreviation: 'FM',\r\n },\r\n {\r\n name: 'Florida',\r\n abbreviation: 'FL',\r\n },\r\n {\r\n name: 'Georgia',\r\n abbreviation: 'GA',\r\n },\r\n {\r\n name: 'Guam',\r\n abbreviation: 'GU',\r\n },\r\n {\r\n name: 'Hawaii',\r\n abbreviation: 'HI',\r\n },\r\n {\r\n name: 'Idaho',\r\n abbreviation: 'ID',\r\n },\r\n {\r\n name: 'Illinois',\r\n abbreviation: 'IL',\r\n },\r\n {\r\n name: 'Indiana',\r\n abbreviation: 'IN',\r\n },\r\n {\r\n name: 'Iowa',\r\n abbreviation: 'IA',\r\n },\r\n {\r\n name: 'Kansas',\r\n abbreviation: 'KS',\r\n },\r\n {\r\n name: 'Kentucky',\r\n abbreviation: 'KY',\r\n },\r\n {\r\n name: 'Louisiana',\r\n abbreviation: 'LA',\r\n },\r\n {\r\n name: 'Maine',\r\n abbreviation: 'ME',\r\n },\r\n {\r\n name: 'Marshall Islands',\r\n abbreviation: 'MH',\r\n },\r\n {\r\n name: 'Maryland',\r\n abbreviation: 'MD',\r\n },\r\n {\r\n name: 'Massachusetts',\r\n abbreviation: 'MA',\r\n },\r\n {\r\n name: 'Michigan',\r\n abbreviation: 'MI',\r\n },\r\n {\r\n name: 'Minnesota',\r\n abbreviation: 'MN',\r\n },\r\n {\r\n name: 'Mississippi',\r\n abbreviation: 'MS',\r\n },\r\n {\r\n name: 'Missouri',\r\n abbreviation: 'MO',\r\n },\r\n {\r\n name: 'Montana',\r\n abbreviation: 'MT',\r\n },\r\n {\r\n name: 'Nebraska',\r\n abbreviation: 'NE',\r\n },\r\n {\r\n name: 'Nevada',\r\n abbreviation: 'NV',\r\n },\r\n {\r\n name: 'New Hampshire',\r\n abbreviation: 'NH',\r\n },\r\n {\r\n name: 'New Jersey',\r\n abbreviation: 'NJ',\r\n },\r\n {\r\n name: 'New Mexico',\r\n abbreviation: 'NM',\r\n },\r\n {\r\n name: 'New York',\r\n abbreviation: 'NY',\r\n },\r\n {\r\n name: 'North Carolina',\r\n abbreviation: 'NC',\r\n },\r\n {\r\n name: 'North Dakota',\r\n abbreviation: 'ND',\r\n },\r\n {\r\n name: 'Northern Mariana Islands',\r\n abbreviation: 'MP',\r\n },\r\n {\r\n name: 'Ohio',\r\n abbreviation: 'OH',\r\n },\r\n {\r\n name: 'Oklahoma',\r\n abbreviation: 'OK',\r\n },\r\n {\r\n name: 'Oregon',\r\n abbreviation: 'OR',\r\n },\r\n {\r\n name: 'Palau',\r\n abbreviation: 'PW',\r\n },\r\n {\r\n name: 'Pennsylvania',\r\n abbreviation: 'PA',\r\n },\r\n {\r\n name: 'Puerto Rico',\r\n abbreviation: 'PR',\r\n },\r\n {\r\n name: 'Rhode Island',\r\n abbreviation: 'RI',\r\n },\r\n {\r\n name: 'South Carolina',\r\n abbreviation: 'SC',\r\n },\r\n {\r\n name: 'South Dakota',\r\n abbreviation: 'SD',\r\n },\r\n {\r\n name: 'Tennessee',\r\n abbreviation: 'TN',\r\n },\r\n {\r\n name: 'Texas',\r\n abbreviation: 'TX',\r\n },\r\n {\r\n name: 'Utah',\r\n abbreviation: 'UT',\r\n },\r\n {\r\n name: 'Vermont',\r\n abbreviation: 'VT',\r\n },\r\n {\r\n name: 'Virgin Islands',\r\n abbreviation: 'VI',\r\n },\r\n {\r\n name: 'Virginia',\r\n abbreviation: 'VA',\r\n },\r\n {\r\n name: 'Washington',\r\n abbreviation: 'WA',\r\n },\r\n {\r\n name: 'West Virginia',\r\n abbreviation: 'WV',\r\n },\r\n {\r\n name: 'Wisconsin',\r\n abbreviation: 'WI',\r\n },\r\n {\r\n name: 'Wyoming',\r\n abbreviation: 'WY',\r\n },\r\n ];\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this.baseRoute = environment.customerAPIRoot;\r\n this.baseTarget = 'customer';\r\n this.headers = new HttpHeaders();\r\n this.mockCustomerAddresses = new BehaviorSubject([]);\r\n }\r\n\r\n addMockCustomerAddress(customerAddress: CustomerAddress) {\r\n let items = this.mockCustomerAddresses.getValue();\r\n items.push(customerAddress);\r\n this.mockCustomerAddresses.next(items);\r\n }\r\n\r\n getCustomer(id: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/get/${id}`\r\n );\r\n }\r\n\r\n getAllCustomers(): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/getall`\r\n );\r\n }\r\n\r\n getAllCustomersWAddressPhone(isShortAddress: boolean): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/addressphone/getall?isShortAddress=${isShortAddress}`\r\n );\r\n }\r\n\r\n getCustomerContactPersons(\r\n customerid: number\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/customercontactperson/get/${customerid}`\r\n );\r\n }\r\n\r\n getCustomerContactPersonById(id: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/customercontactperson/get/${id}`\r\n );\r\n }\r\n\r\n getCustomerPhones(customerid: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/phone/get/${customerid}`\r\n );\r\n }\r\n\r\n getContactPhones(contactid: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/customercontactperson/phone/get/${contactid}`\r\n );\r\n }\r\n\r\n getCustomerAddresses(customerid: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/address/get/${customerid}`\r\n );\r\n }\r\n\r\n getContactAddresses(contactid: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/customercontactperson/address/get/${contactid}`\r\n );\r\n }\r\n\r\n getCustomerCardNumber(id: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/customercardnumber/get/${id}`\r\n );\r\n }\r\n\r\n getCustomerCardNumbers(customerid: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/customercardnumber/get/${customerid}`\r\n );\r\n }\r\n\r\n getCustomerSubscription(id: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/customersubscription/get/${id}`\r\n );\r\n }\r\n\r\n getCustomerSubscriptions(customerid: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/customersubscription/get/${customerid}`\r\n );\r\n }\r\n\r\n addCustomer(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/${this.baseTarget}/add`,\r\n payload\r\n );\r\n }\r\n\r\n addContactPerson(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/customercontactperson/add`,\r\n payload\r\n );\r\n }\r\n\r\n updateContactPerson(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/customercontactperson/update`,\r\n payload\r\n );\r\n }\r\n\r\n addAddress(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/ecommerce/customer/address/addupdate`,\r\n payload\r\n );\r\n }\r\n\r\n addPhone(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/phone/addupdate`,\r\n payload\r\n );\r\n }\r\n\r\n addCustomerCardNumber(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/customercardnumber/add`,\r\n payload\r\n );\r\n }\r\n\r\n updateCustomer(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/${this.baseTarget}/update`,\r\n payload\r\n );\r\n }\r\n\r\n updateCustomerCardNumber(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/customercardnumber/update`,\r\n payload\r\n );\r\n }\r\n\r\n deactivateCustomer(id: number, updatedBy: number): Observable {\r\n //todo transfer updatedBy to backend\r\n return this.httpClient.post(\r\n `${this.baseRoute}/${this.baseTarget}/deactivate/${id}/${updatedBy}`,\r\n id\r\n );\r\n }\r\n\r\n deleteCustomer(id: number, updatedBy: number): Observable {\r\n //todo transfer updatedBy to backend\r\n return this.httpClient.delete(\r\n `${this.baseRoute}/${this.baseTarget}/delete/${id}/${updatedBy}`\r\n );\r\n }\r\n\r\n deleteCustomerCardNumber(id: number, updatedBy: number): Observable {\r\n //todo transfer updatedBy to backend\r\n return this.httpClient.delete(\r\n `${this.baseRoute}/customercardnumber/delete/${id}/${updatedBy}`\r\n );\r\n }\r\n\r\n deleteCustomerSubscription(id: number, updatedBy: number): Observable {\r\n //todo transfer updatedBy to backend\r\n return this.httpClient.delete(\r\n `${this.baseRoute}/customersubscription/delete/${id}/${updatedBy}`\r\n );\r\n }\r\n\r\n usaStates() {\r\n return of(this.states);\r\n }\r\n\r\n getAllCountries(): Observable {\r\n return this.httpClient.get(\r\n `${environment.locationAPIRoot}/getCountries`\r\n );\r\n }\r\n\r\n getCustomerCardsOnFile(customerId: number): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/customercardnumber/get/${customerId}`\r\n );\r\n }\r\n\r\n getCustomerLocation(): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/customer/getcustomerlocation`\r\n );\r\n }\r\n\r\n saveCustomer(payload: any): Observable {\r\n if (payload.Id) {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/${this.baseTarget}/update`,\r\n payload\r\n );\r\n } else {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/${this.baseTarget}/add`,\r\n payload\r\n );\r\n }\r\n }\r\n\r\n getCustomerTransactions(customerId: number, transactionType: string) {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/${this.baseTarget}/customertransactions/${customerId}/${transactionType}`\r\n );\r\n }\r\n\r\n saveCustomerContactWithAddress(payload: any): Observable {\r\n let endpoint =\r\n payload.Id != 0\r\n ? 'customercontactperson/update'\r\n : 'customer/customercontactpersonwithaddress/add';\r\n return this.httpClient.post(`${this.baseRoute}/` + endpoint, payload);\r\n }\r\n\r\n saveIndividualCustomerContact(payload: any): Observable {\r\n let endpoint =\r\n payload.Id != 0\r\n ? 'customer/customercontactnumber/update'\r\n : 'customer/customercontactnumber/add';\r\n return this.httpClient.post(`${this.baseRoute}/` + endpoint, payload);\r\n }\r\n\r\n getIndividualCustomerContact(customerId: number): Observable {\r\n let endpoint =\r\n 'customer/customercontactnumber/GetCustomerContact/' + customerId;\r\n return this.httpClient.get(`${this.baseRoute}/` + endpoint);\r\n }\r\n\r\n updateCustomerPhoto(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/ecommerce/customer/image/update`,\r\n payload\r\n );\r\n }\r\n\r\n deleteCustomerContactNumber(id: number): Observable {\r\n return this.httpClient.delete(\r\n `${this.baseRoute}/customer/customercontactnumber/deletecontact/${id}`\r\n );\r\n }\r\n\r\n deleteCustomerAddress(id: number, updatedBy: number): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/customer/deletecontactaddress/${id}/${updatedBy}`,\r\n {}\r\n );\r\n }\r\n\r\n deleteCustomerContactPerson(id: number, updatedBy: number): Observable {\r\n return this.httpClient.delete(\r\n `${this.baseRoute}/customer/businesscontactdelete/${id}`\r\n );\r\n }\r\n\r\n saveNote(payload: CustomerNotes): Observable {\r\n if (payload.Id) {\r\n return this.httpClient.post(\r\n `${environment.customerAPIRoot}/customernotes/update`,\r\n payload\r\n );\r\n } else {\r\n return this.httpClient.post(\r\n `${environment.customerAPIRoot}/customernotes/add`,\r\n payload\r\n );\r\n }\r\n }\r\n\r\n getCustomerNotes(customerId: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.customerAPIRoot}/customernotes/getbycustomerid/${customerId}`\r\n );\r\n }\r\n\r\n deleteCustomerNote(noteId: number): Observable {\r\n return this.httpClient.delete(\r\n `${environment.customerAPIRoot}/customernotes/delete/?id=${noteId}`\r\n );\r\n }\r\n}\r\n","import { KeyValue } from '@angular/common';\r\nimport { RepeatType } from '@syncfusion/ej2-angular-schedule';\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n FrequencyEndType,\r\n FrequencyRepeatTypes,\r\n RecurringFrequency,\r\n RecurringInvoiceConfig,\r\n SettingsRecurringInvoice,\r\n} from 'src/app/invoice/models/invoice.model';\r\nimport * as moment from 'moment';\r\nimport { RecurringInvoiceService } from 'src/app/invoice/services/recurring-invoice.service';\r\nimport { ControlContainer, NgModelGroup } from '@angular/forms';\r\nimport { mapFrequencyRule } from 'src/app/invoice/utilities';\r\n\r\n@Component({\r\n selector: 'app-payment-schedule',\r\n templateUrl: './payment-schedule.component.html',\r\n styleUrls: ['./payment-schedule.component.scss'],\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgModelGroup }],\r\n})\r\nexport class PaymentScheduleComponent implements OnInit {\r\n @Input() parent: any;\r\n loaded = false;\r\n constructor(public recurringInvoiceService: RecurringInvoiceService) {}\r\n\r\n daysInWeek = {\r\n SU: 'S',\r\n MO: 'M',\r\n TU: 'T',\r\n WE: 'W',\r\n TH: 'T',\r\n FR: 'F',\r\n SA: 'S',\r\n };\r\n\r\n repeatitionLabel = {\r\n 1: 'Day/s',\r\n 2: 'Week/s',\r\n 3: 'Month/s',\r\n 4: 'Year/s',\r\n };\r\n // Recurrence\r\n reccurenceEditorFrequencies: RepeatType[] = [\r\n 'daily',\r\n 'weekly',\r\n 'monthly',\r\n 'yearly',\r\n ];\r\n cardsOnFile: any = [];\r\n\r\n ngOnInit(): void {\r\n this.parent.recurringInvoiceConfig = new RecurringInvoiceConfig();\r\n this.parent.recurringInvoiceConfig.RecurringFrequency =\r\n new RecurringFrequency();\r\n \r\n this.setFrequencyDefaults();\r\n this.getRecurringInfo();\r\n\r\n if (!this.parent.recurring.data) {\r\n this.loadRecurringInvoiceSettings();\r\n } \r\n \r\n this.loaded = true;\r\n }\r\n\r\n setFrequencyDefaults() {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDay = moment()\r\n .format('dd')\r\n .toUpperCase();\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray = [\r\n moment().format('dd').toUpperCase(),\r\n ];\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByMonth =\r\n +moment().format('M');\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByMonthDay =\r\n +moment().format('D');\r\n }\r\n\r\n loadRecurringInvoiceSettings() {\r\n this.recurringInvoiceService\r\n .getSettings()\r\n .subscribe((res: SettingsRecurringInvoice) => {\r\n this.parent.settingsRecurringInvoice = res;\r\n\r\n if (this.parent.settingsRecurringInvoice.notificationSchedule) {\r\n this.parent.recurringInvoiceConfig.ReminderFrequencyType =\r\n res.notificationSchedule.frequencyType;\r\n this.parent.recurringInvoiceConfig.ReminderFrequencyValue =\r\n res.notificationSchedule.frequencyValue;\r\n }\r\n });\r\n }\r\n\r\n changeRecurringFrequencyType(event) {\r\n const dayOfTheWeek = moment().format('dd').toUpperCase();\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.FrequencyType =\r\n +event.target.value;\r\n\r\n if (event.target.value == 3) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDay =\r\n dayOfTheWeek;\r\n } else {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDay =\r\n dayOfTheWeek;\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray =\r\n [];\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray.push(\r\n dayOfTheWeek\r\n );\r\n }\r\n }\r\n\r\n changeStartDate(event: any) {\r\n this.parent.recurringInvoiceConfig.StartDate = event;\r\n\r\n if (!this.parent.isEditView) {\r\n this.parent.dtInvoiceDate = event;\r\n }\r\n }\r\n\r\n changeRecurringByDay(day: string, type: string) {\r\n if (type === 'multiple') {\r\n const isSelected =\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray.find(\r\n (e) => e === day\r\n );\r\n if (isSelected) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray =\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray.filter(\r\n (e) => e !== day\r\n );\r\n } else {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray.push(\r\n day\r\n );\r\n }\r\n\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDay =\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray.join(\r\n ','\r\n );\r\n } else {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDay = day;\r\n }\r\n }\r\n\r\n changeRecurringDayType(type: string) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.DayType = type;\r\n }\r\n\r\n changeRecurringBySetPos(event) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.BySetPos =\r\n +event.target.value;\r\n }\r\n\r\n changeRecurringByMonth(event) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByMonth =\r\n +event.target.value;\r\n }\r\n\r\n getRecurringInfo() {\r\n const schedule = mapFrequencyRule(this.parent.recurring.frequency);\r\n\r\n this.parent.recurringInvoiceConfig.RecurringPaymentId =\r\n this.parent.recurring.id;\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.FrequencyType =\r\n schedule.frequencyType;\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.Interval =\r\n parseInt(schedule.interval);\r\n\r\n if (this.parent.recurring.data) {\r\n this.parent.recurringInvoiceConfig.ReminderFrequencyType =\r\n this.parent.recurring.data.reminderFrequencyType;\r\n this.parent.recurringInvoiceConfig.ReminderFrequencyValue =\r\n parseInt(this.parent.recurring.data.reminderFrequencyValue)\r\n }\r\n\r\n switch (\r\n this.parent.recurringInvoiceConfig.RecurringFrequency\r\n .FrequencyType\r\n ) {\r\n case FrequencyRepeatTypes.Daily:\r\n break;\r\n case FrequencyRepeatTypes.Weekly:\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDay =\r\n schedule.byDay;\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray =\r\n schedule.byDay.split(',');\r\n break;\r\n case FrequencyRepeatTypes.Monthly:\r\n case FrequencyRepeatTypes.Yearly:\r\n if (parseInt(schedule.byMonthDay)) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.DayType =\r\n 'day';\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByMonthDay =\r\n parseInt(schedule.byMonthDay);\r\n } else {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.BySetPos =\r\n parseInt(schedule.bySetPos);\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDay =\r\n schedule.byDay;\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByDayArray =\r\n schedule.byDay.split(',');\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.DayType =\r\n 'month';\r\n }\r\n\r\n if (\r\n this.parent.recurringInvoiceConfig.RecurringFrequency\r\n .FrequencyType === FrequencyRepeatTypes.Yearly\r\n ) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.ByMonth =\r\n parseInt(schedule.byMonth);\r\n }\r\n break;\r\n }\r\n \r\n if (schedule.until) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.EndType =\r\n FrequencyEndType.Until;\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.Until =\r\n schedule.until;\r\n } else if (parseInt(schedule.count)) {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.EndType =\r\n FrequencyEndType.Count;\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.Count =\r\n parseInt(schedule.count);\r\n } else {\r\n this.parent.recurringInvoiceConfig.RecurringFrequency.EndType =\r\n FrequencyEndType.Never;\r\n }\r\n }\r\n\r\n originalOrder = (\r\n a: KeyValue,\r\n b: KeyValue\r\n ): number => {\r\n return 0;\r\n };\r\n}\r\n","
\r\n
\r\n
\r\n End\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n End Date\r\n \r\n \r\n \r\n Count\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n Repeat Option\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Repeat Every\r\n
\r\n \r\n {{\r\n repeatitionLabel[\r\n parent.recurringInvoiceConfig.RecurringFrequency.FrequencyType\r\n ]\r\n }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Day of the month\r\n \r\n \r\n Week of the month\r\n \r\n
\r\n \r\n
\r\n Repeat on\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Every\r\n \r\n of the month\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ day.value }}\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n Send email reminder before billing date\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit, OnDestroy, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { CurrencyPipe, DatePipe } from '@angular/common';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil, mergeMap, tap } from 'rxjs/operators';\r\n\r\nimport {\r\n Customer,\r\n CustomerAddress,\r\n CustomerPhone,\r\n} from 'src/app/shared/models/customer.model';\r\nimport {\r\n RecurringInvoice,\r\n RecurringInvoiceConfig,\r\n RecurringPayment,\r\n FrequencyRepeatTypes,\r\n FrequencyEndType,\r\n SettingsInvoice,\r\n} from 'src/app/invoice/models/invoice.model';\r\nimport { User } from 'src/app/core/models/user.model';\r\nimport { Settings } from 'src/app/shared/models/settings/settings.model';\r\nimport { LocationModel } from 'src/app/settings/models/location/location-details.model';\r\n\r\nimport { AuthService } from 'src/app/core/auth.service';\r\nimport { InvoiceService } from 'src/app/invoice/services/invoice-service.service';\r\nimport { UserService } from 'src/app/shared/services/user.service';\r\nimport { RecurringPaymentService } from 'src/app/invoice/services/recurring-payment.service';\r\nimport { CustomerManagementService } from 'src/app/shared/services/customer.service';\r\nimport { ServiceWorkOrderService } from 'src/app/shared/services/service-work-order.service';\r\nimport { RecurringInvoiceService } from 'src/app/invoice/services/recurring-invoice.service';\r\nimport { AlertService } from 'src/app/core/alert.service';\r\n\r\nimport { PaymentOptionsComponent } from 'src/app/shared/components/payment-options_revamp/payment-options.component';\r\nimport { PauseRecurringInvoiceDialogComponent } from 'src/app/invoice/invoice-detail-view/pause-recurring-invoice-dialog/pause-subscription-dialog.component';\r\nimport { RecurringInvoiceSuspensionFormComponent } from 'src/app/invoice/invoice-detail-view/recurring-invoice-suspension-form/subscription-suspension-form.component';\r\nimport { RecurringInvoiceCancellationComponent } from 'src/app/invoice/customer-invoice-details/recurring-invoice-cancellation/subscription-cancellation.component';\r\nimport { getFrequencyText, mapFrequencyRule } from 'src/app/invoice/utilities';\r\n\r\ninterface Response {\r\n [key: string]: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-recurring-payment-detail',\r\n templateUrl: './recurring-payment-detail.component.html',\r\n styleUrls: ['./recurring-payment-detail.component.scss']\r\n})\r\nexport class RecurringPaymentDetailComponent implements OnInit, OnDestroy {\r\n @ViewChild('recurringForm', { static: true }) recurringForm: NgForm;\r\n\r\n @Input() recurringId: number;\r\n @Input() invoiceNumber: string;\r\n @Input() status: string;\r\n\r\n isLoading: boolean = false;\r\n isSaving: boolean = false;\r\n isProcessing: boolean = false;\r\n statusChange: string;\r\n recurring: any;\r\n invoices: any[];\r\n customer: Customer;\r\n customerAddresses: CustomerAddress[];\r\n customerContacts: CustomerPhone[];\r\n customerBusinessContact: any;\r\n customerSignature: any;\r\n customerCards: any[] = [];\r\n selectedCard: any;\r\n recurringInvoiceConfig: RecurringInvoiceConfig;\r\n\r\n userInfo: User;\r\n invoice: any;\r\n recurringInvoice: any;\r\n workOrder: any;\r\n invoiceSettings: SettingsInvoice = new SettingsInvoice();\r\n businessInfo: Settings = new Settings();\r\n locationData: LocationModel;\r\n paymentConfig: any = {\r\n showCashPayment: true,\r\n hideManualPaymentOption: false,\r\n showACHPaymentOption: true,\r\n showCreditCardOption: true,\r\n };\r\n\r\n gridApi: any;\r\n gridColumnApi: any;\r\n gridColumns: any = [\r\n {\r\n headerName: 'Invoice Number',\r\n field: 'invoiceNumber',\r\n sortable: true,\r\n cellClass: 'tooltip-enabled',\r\n cellRenderer: this.gridInvoiceNumberRenderer.bind(this),\r\n },\r\n {\r\n headerName: 'Amount',\r\n field: 'amount',\r\n sortable: true,\r\n cellRenderer: (data) => {\r\n return data.value\r\n ? `${this.currencyPipe.transform(data.value, 'USD', '$ ')}`\r\n : '-';\r\n },\r\n },\r\n {\r\n headerName: 'Status',\r\n field: 'invoiceStatus',\r\n sortable: true,\r\n cellRenderer: this.gridStatusRenderer.bind(this),\r\n },\r\n {\r\n headerName: 'Retry',\r\n field: 'retryCount',\r\n width: 120,\r\n sortable: true,\r\n },\r\n {\r\n headerName: 'Payment Date',\r\n field: 'paymentDate',\r\n sortable: true,\r\n cellClass: 'tooltip-enabled',\r\n cellRenderer: (data) => {\r\n return data.value ? `${this.datePipe.transform(data.value, 'yyyy-MM-dd')} ${this.datePipe.transform(data.value, 'yyyy-MM-dd')}` : '-';\r\n },\r\n },\r\n {\r\n headerName: 'Actions',\r\n width: 275,\r\n resizable: true,\r\n cellRenderer: this.gridActionRenderer.bind(this),\r\n },\r\n ];\r\n\r\n readonly unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private modalService: NgbModal,\r\n private authService: AuthService,\r\n private userService: UserService,\r\n private invoiceService: InvoiceService,\r\n private recurringInvoiceService: RecurringInvoiceService,\r\n private customerService: CustomerManagementService,\r\n private workOrderService: ServiceWorkOrderService,\r\n private alertService: AlertService,\r\n private currencyPipe: CurrencyPipe,\r\n private datePipe: DatePipe,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.statusChange = this.status.toLowerCase();\r\n this.userInfo = JSON.parse(this.authService.getUserInfo());\r\n this.getRecurringDetails();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onClose(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n onGridReady(params): void {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.sizeColumnsToFit();\r\n this.gridApi.setDomLayout('autoHeight');\r\n }\r\n\r\n gridStatusRenderer(params): string {\r\n const status = params.data.invoiceStatus;\r\n return `${status}`;\r\n }\r\n\r\n gridInvoiceNumberRenderer(params): string {\r\n const invoiceNumber = params.data.invoiceNumber;\r\n return `${invoiceNumber} ${invoiceNumber}`;\r\n }\r\n\r\n private gridActionRenderer(params): HTMLElement {\r\n const self = this;\r\n const eDiv = document.createElement('div');\r\n\r\n let template = `\r\n
\r\n \r\n Process\r\n \r\n
\r\n `;\r\n\r\n if (!['Paid', 'Voided', 'Refunded'].includes(params.data.invoiceStatus)) {\r\n const classes = ['!bg-blue-10', '!text-blue-90', '!border-blue-10'];\r\n eDiv.innerHTML = template;\r\n\r\n let processBtn = eDiv.querySelector('.process') as HTMLElement;\r\n processBtn.addEventListener('click', () => {\r\n this.onProcessPayment(params.data.invoiceNumber);\r\n });\r\n\r\n if (this.isProcessing) {\r\n processBtn.style.opacity = '0.5';\r\n processBtn.style.pointerEvents = 'none';\r\n } else {\r\n processBtn.style.opacity = '1';\r\n processBtn.style.pointerEvents = 'all';\r\n }\r\n }\r\n\r\n return eDiv;\r\n }\r\n\r\n getRecurringDetails(): void {\r\n this.isLoading = true;\r\n\r\n this.recurringInvoiceService\r\n .getRecurringPaymentFormDetails(this.recurringId)\r\n .pipe(\r\n takeUntil(this.unsubscribe$),\r\n tap((recurring: any) => (this.recurring = recurring)),\r\n mergeMap(() => {\r\n let data: any = {\r\n invoices: this.recurringInvoiceService.getRecurringPaymentFormChildInvoices(this.recurringId),\r\n customer: this.customerService.getCustomer(this.recurring.customerId),\r\n customerAddresses: this.customerService.getCustomerAddresses(this.recurring.customerId),\r\n customerContacts: this.customerService.getCustomerContactPersons(this.recurring.customerId),\r\n customerCards: this.customerService.getCustomerCardsOnFile(this.recurring.customerId),\r\n };\r\n\r\n return forkJoin({ ...data });\r\n })\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n for (const [key, value] of Object.entries(data)) {\r\n this[key] = value;\r\n\r\n if (key === 'customerCards') {\r\n if (this.customerCards.length) {\r\n this.onSelectCard(this.recurring.customerCardNumberId);\r\n } else {\r\n this.selectedCard = null;\r\n }\r\n }\r\n }\r\n this.isLoading = false;\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.isLoading = false;\r\n },\r\n () => {\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n getStatus(isClass: boolean = false): string {\r\n let statusLabel: string = this.status;\r\n\r\n if (this.status === 'Active') {\r\n statusLabel = 'Recurring Active';\r\n }\r\n\r\n if (this.status === 'Inactive') {\r\n statusLabel = 'Cancelled';\r\n }\r\n\r\n if (isClass) {\r\n return this.status.replace(/\\s+/g, '-').toLowerCase();\r\n }\r\n\r\n return statusLabel;\r\n }\r\n\r\n getDefaultCustomerAddress(): string {\r\n if (this.customerAddresses) {\r\n const address = this.customerAddresses.find((e) => e.IsDefault);\r\n\r\n if (address) {\r\n const fullAddress = `${address.StreetAddress || ''} ${address.City || ''} ${address.State || ''} ${address.ZipCode || ''}`;\r\n return fullAddress.replace(/\\s/g, '') ? fullAddress : null;\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n getDefaultPhone(): string {\r\n if (this.customerContacts) {\r\n const phone = this.customerContacts.find((e) => e.IsDefault);\r\n\r\n if (phone) {\r\n return phone.PhoneNumber;\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n getFrequency(frequency: any): string {\r\n const rules = mapFrequencyRule(frequency);\r\n return getFrequencyText(rules);\r\n }\r\n\r\n canAccessMore(): boolean {\r\n return (\r\n (this.canCancel() ||\r\n this.canPause() ||\r\n this.canResume()\r\n // this.canSuspend()\r\n ));\r\n }\r\n\r\n canCancel(): boolean {\r\n return (\r\n ['Completed', 'Cancelled', 'Cancel Pending'].indexOf(\r\n this.status\r\n ) === -1\r\n );\r\n }\r\n\r\n canPause(): boolean {\r\n return (\r\n ['Completed', 'Paused', 'Cancelled'].indexOf(\r\n this.status\r\n ) === -1\r\n );\r\n }\r\n\r\n canResume(): boolean {\r\n return this.status === 'Paused';\r\n }\r\n\r\n canSuspend(): boolean {\r\n return (\r\n ['Suspended', 'Cancelled', 'Completed'].indexOf(\r\n this.status\r\n ) === -1\r\n );\r\n }\r\n\r\n onSelectCard(id: number): void {\r\n this.selectedCard = this.customerCards.find((e) => e.Id === id);\r\n }\r\n\r\n onSaveChanges(): void {\r\n this.isSaving = true;\r\n const recurringInvoice = new RecurringInvoice();\r\n recurringInvoice.Configuration = { ...this.recurringInvoiceConfig };\r\n recurringInvoice.Configuration.StartDate = this.datePipe.transform(this.recurring.startDate,'yyyy-MM-dd');\r\n recurringInvoice.Configuration.RecurringFrequency = { ...this.recurringInvoiceConfig.RecurringFrequency };\r\n recurringInvoice.Configuration.CustomerCardNumberId = this.selectedCard.Id;\r\n recurringInvoice.Configuration.RecurringInvoiceId = this.recurring.id;\r\n recurringInvoice.Id = this.recurring.id;\r\n recurringInvoice.ManualInvoiceId = this.recurring.manualInvoiceId;\r\n recurringInvoice.Status = this.status;\r\n\r\n const frequencyObject = recurringInvoice.Configuration.RecurringFrequency;\r\n switch (frequencyObject.FrequencyType) {\r\n case FrequencyRepeatTypes.Daily:\r\n delete frequencyObject['ByDay'];\r\n delete frequencyObject['ByMonth'];\r\n delete frequencyObject['ByMonthDay'];\r\n delete frequencyObject['BySetPos'];\r\n break;\r\n case FrequencyRepeatTypes.Weekly:\r\n delete frequencyObject['ByMonth'];\r\n delete frequencyObject['ByMonthDay'];\r\n delete frequencyObject['BySetPos'];\r\n break;\r\n case FrequencyRepeatTypes.Monthly:\r\n delete frequencyObject['ByMonth'];\r\n if (frequencyObject.DayType === 'day') {\r\n delete frequencyObject['ByDay'];\r\n delete frequencyObject['BySetPos'];\r\n } else {\r\n delete frequencyObject['ByMonthDay'];\r\n }\r\n break;\r\n case FrequencyRepeatTypes.Yearly:\r\n if (frequencyObject.DayType === 'day') {\r\n delete frequencyObject['ByDay'];\r\n delete frequencyObject['BySetPos'];\r\n } else {\r\n delete frequencyObject['ByMonthDay'];\r\n }\r\n break;\r\n }\r\n\r\n switch (+frequencyObject.EndType) {\r\n case FrequencyEndType.Never:\r\n delete frequencyObject['Count'];\r\n delete frequencyObject['Until'];\r\n break;\r\n case FrequencyEndType.Until:\r\n delete frequencyObject['Count'];\r\n break;\r\n case FrequencyEndType.Count:\r\n delete frequencyObject['Until'];\r\n break;\r\n }\r\n delete frequencyObject['ByDayArray'];\r\n delete frequencyObject['DayType'];\r\n delete frequencyObject['EndType'];\r\n\r\n this.recurringInvoiceService\r\n .saveRecurringInvoice(recurringInvoice)\r\n .subscribe({\r\n error: (error) => {\r\n this.isSaving = false;\r\n this.alertService.alertError({ title: 'Error', text: error.error });\r\n },\r\n complete: () => {\r\n this.isSaving = false;\r\n this.alertService.alertSuccess({\r\n title: 'Success',\r\n text: 'Recurring payment successfully saved!',\r\n });\r\n this.onClose();\r\n },\r\n });\r\n }\r\n\r\n onProcessPayment(invoiceNumber: string): void {\r\n this.isProcessing = true;\r\n this.gridApi.refreshCells();\r\n\r\n this.invoiceService\r\n .getManualInvoice(invoiceNumber)\r\n .pipe(\r\n takeUntil(this.unsubscribe$),\r\n tap((invoice: any) => (this.invoice = invoice)),\r\n mergeMap(() => {\r\n let summaryData: any = {\r\n businessInfo: this.userService.getMerchant('1'),\r\n invoiceSettings: this.invoiceService.getSettingsInvoice(),\r\n customerSignature:\r\n this.invoiceService.getCustomerSigByInvoiceNumber(\r\n invoiceNumber\r\n ),\r\n customerBusinessContact:\r\n this.customerService.getCustomerContactPersonById(\r\n this.invoice.businessCustomerContactPersonId\r\n ),\r\n workOrder: this.workOrderService.getWorkOrderByInvoice(\r\n invoiceNumber\r\n ),\r\n locationData: this.authService.getLocationById(\r\n this.invoice.locationId\r\n ),\r\n };\r\n\r\n return forkJoin({ ...summaryData });\r\n })\r\n )\r\n .subscribe({\r\n next: (data: Response) => {\r\n for (const [key, value] of Object.entries(data)) {\r\n if (key === 'locationData') {\r\n this.locationData = value.locationComplete;\r\n this.paymentConfig.showACHPaymentOption =\r\n this.locationData?.ACHEnabled;\r\n this.paymentConfig.showCreditCardOption =\r\n this.locationData?.CCEnabled;\r\n\r\n continue;\r\n }\r\n\r\n if (key === 'customerCards') {\r\n this.customerCards = value;\r\n\r\n if (this.customerCards.length) {\r\n this.onSelectCard(this.recurring.customerCardNumberId);\r\n } else {\r\n this.selectedCard = null;\r\n }\r\n continue;\r\n }\r\n this[key] = value;\r\n }\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n this.isProcessing = false;\r\n this.gridApi.refreshCells();\r\n },\r\n complete: () => {\r\n let paymentDiag = this.modalService.open(PaymentOptionsComponent, {\r\n backdrop: 'static',\r\n });\r\n\r\n paymentDiag.componentInstance.isRecurringPayment = true;\r\n paymentDiag.componentInstance.recurringPaymentDetails = {\r\n recurringId: this.recurringId,\r\n invoiceNumber: this.invoiceNumber,\r\n status: this.status,\r\n };\r\n\r\n paymentDiag.componentInstance.userInfo = this.userInfo;\r\n paymentDiag.componentInstance.invoice = this.invoice;\r\n paymentDiag.componentInstance.invoiceSettings = this.invoiceSettings;\r\n paymentDiag.componentInstance.customer = this.customer;\r\n paymentDiag.componentInstance.customerBusinessContact = this.customerBusinessContact;\r\n paymentDiag.componentInstance.customerAddresses = this.customerAddresses;\r\n paymentDiag.componentInstance.customerSignature = this.customerSignature;\r\n paymentDiag.componentInstance.businessInfo = this.businessInfo;\r\n paymentDiag.componentInstance.locationData = this.locationData;\r\n paymentDiag.componentInstance.workOrder = this.workOrder;\r\n paymentDiag.componentInstance.displayBalance = this.recurring.amount;\r\n paymentDiag.componentInstance.hideManualPaymentOption =\r\n this.paymentConfig.hideManualPaymentOption;\r\n paymentDiag.componentInstance.showACHPaymentOption =\r\n this.paymentConfig.showACHPaymentOption;\r\n paymentDiag.componentInstance.showCashPayment =\r\n this.paymentConfig.showCashPayment;\r\n paymentDiag.componentInstance.showCreditCardOption =\r\n this.paymentConfig.showCreditCardOption;\r\n\r\n this.isProcessing = false;\r\n this.gridApi.refreshCells();\r\n this.onClose();\r\n }\r\n });\r\n }\r\n\r\n onCancelRecurringPayment(): void {\r\n this.isSaving = true;\r\n\r\n let dialog = this.modalService.open(RecurringInvoiceCancellationComponent, {\r\n size: 'md',\r\n keyboard: false,\r\n backdrop: 'static',\r\n });\r\n\r\n dialog.componentInstance.recurringInvoiceModel = {\r\n id: this.recurring.id,\r\n createdBy: this.userInfo.UserId,\r\n status: this.status,\r\n };\r\n dialog.componentInstance.invoiceModel = { invoiceNumber: this.invoiceNumber };\r\n dialog.componentInstance.status = 'Approved';\r\n dialog.componentInstance.displayApprovalNotes = true;\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n this.onClose(true);\r\n }\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n onPauseResumeRecurringPayment(action: string): void {\r\n this.isSaving = true;\r\n\r\n let dialog = this.modalService.open(PauseRecurringInvoiceDialogComponent, {\r\n size: 'sm',\r\n keyboard: false,\r\n backdrop: 'static',\r\n });\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n this.recurringInvoiceService[action]({\r\n recurringInvoiceId: this.recurring.id,\r\n userId: this.userInfo.UserId,\r\n resumeDate: res,\r\n }).subscribe((res) => {\r\n if (res) {\r\n this.alertService.alertSuccess({\r\n title: 'Success',\r\n text: 'Recurring payment successfully updated!',\r\n });\r\n } else {\r\n this.alertService.alertError({\r\n title: 'Error!',\r\n text: 'Something went wrong, please contact administrator.',\r\n });\r\n }\r\n this.onClose(true);\r\n });\r\n }\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n onSuspendRecurringPayment(): void {\r\n this.isSaving = true;\r\n\r\n let dialog = this.modalService.open(\r\n RecurringInvoiceSuspensionFormComponent,\r\n {\r\n size: 'sm',\r\n backdrop: 'static',\r\n }\r\n );\r\n\r\n dialog.componentInstance.recurringInvoiceId = this.recurring.id;\r\n dialog.componentInstance.source = 'recurring_invoice';\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n this.onClose(true);\r\n }\r\n this.isSaving = false;\r\n });\r\n }\r\n\r\n onViewSuspendDetails(): void {\r\n let dialog = this.modalService.open(\r\n RecurringInvoiceSuspensionFormComponent,\r\n {\r\n size: 'sm',\r\n backdrop: 'static',\r\n }\r\n );\r\n\r\n dialog.componentInstance.recurringInvoiceId = this.recurring.id;\r\n dialog.componentInstance.viewOnly = true;\r\n dialog.componentInstance.source = 'recurring_invoice';\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n this.onClose(true);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n
\r\n
\r\n
Recurring Payment Details
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ invoiceNumber }}\r\n \r\n \r\n {{ getStatus() }}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Start Date\r\n \r\n \r\n {{ invoiceNumber ? (recurring.startDate | date: \"MM/dd/yyyy\") : '-' }}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n End Date\r\n \r\n \r\n {{ recurring.endDate ? (recurring.endDate | date: \"MM/dd/yyyy\") : '-' }}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Schedule\r\n \r\n \r\n {{ recurring.frequency ? getFrequency(recurring.frequency) : '-' }}\r\n
\r\n\r\n
\r\n \r\n \r\n Next Recurrence Date\r\n \r\n \r\n {{ recurring.nextRecurrenceDate | date: \"MM/dd/yyyy\" }}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Amount\r\n \r\n \r\n {{ recurring.amount | currency }}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n {{ recurring.customerName }}\r\n
\r\n
\r\n \r\n {{\r\n getDefaultCustomerAddress()\r\n }}\r\n
\r\n
\r\n \r\n {{ customer.EmailAddress }}\r\n
\r\n
\r\n \r\n {{ getDefaultPhone() }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ card.CardBrand | uppercase }} ****{{ card.CardLast4Digits }}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Created on\r\n {{\r\n recurring.data?.createdDate | date: \"MM/dd/yyyy, hh:mm:ss a\"\r\n }}\r\n \r\n
\r\n
\r\n \r\n Last update\r\n {{\r\n recurring.data?.updatedDate | date: \"MM/dd/yyyy, hh:mm:ss a\"\r\n }}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Save Changes\r\n \r\n\r\n \r\n \r\n \r\n More Action\r\n \r\n
\r\n Cancel\r\n Pause\r\n Resume\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { RecurringInvoiceCancellation } from \"../../models/invoice.model\";\r\nimport { AlertService } from \"../../../core/alert.service\";\r\nimport { InvoiceService } from \"../../services/invoice-service.service\";\r\n\r\n@Component({\r\n selector: 'app-subscription-cancellation',\r\n templateUrl: './subscription-cancellation.component.html',\r\n styleUrls: ['./subscription-cancellation.component.scss']\r\n})\r\nexport class RecurringInvoiceCancellationComponent implements OnInit {\r\n @Input() recurringInvoiceModel: any;\r\n @Input() invoiceModel: any;\r\n @Input() status: string = \"For Approval\";\r\n @Input() displayApprovalNotes: boolean = false;\r\n\r\n cancelModel : RecurringInvoiceCancellation;\r\n\r\n reasons: any[] = [];\r\n loadingcancellationReason: boolean;\r\n busy: boolean = false;\r\n\r\n constructor(private modalRef: NgbActiveModal,\r\n private alert: AlertService,\r\n private invoiceService: InvoiceService,) {\r\n this.cancelModel = new RecurringInvoiceCancellation();\r\n this.cancelModel.Id = 0;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.cancelModel.RecurringInvoiceId = this.recurringInvoiceModel.id;\r\n this.cancelModel.UpdatedBy = this.recurringInvoiceModel.createdBy;\r\n this.cancelModel.RecurringInvoiceStatus = this.recurringInvoiceModel.status;\r\n this.cancelModel.Status = this.status;\r\n\r\n this.loadRecurringInvoices();\r\n this.loadCancellationReasons();\r\n }\r\n\r\n cancelReasonChanged(id, description){\r\n this.cancelModel.Reason = description;\r\n }\r\n\r\n loadRecurringInvoices() {\r\n this.busy = true;\r\n this.invoiceService.getRecurringInvoicesByRecurringId(this.recurringInvoiceModel.id).subscribe((res: any) => {\r\n this.busy = false;\r\n this.cancelModel.NumberOfInvoices = res.length;\r\n });\r\n }\r\n\r\n loadCancellationReasons(){\r\n this.loadingcancellationReason = true;\r\n this.invoiceService.getRecurringInvoiceCancellationReasons().subscribe((res:any[])=>{\r\n this.reasons = res;\r\n this.loadingcancellationReason = false;\r\n },(error: any)=>{},()=>{\r\n this.loadingcancellationReason = false;\r\n })\r\n }\r\n\r\n isFormValid(){\r\n if(!this.cancelModel.CancellationReasonId)\r\n return false;\r\n if(!this.cancelModel.Reason)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n save(){\r\n if(this.isFormValid()){\r\n this.invoiceService.upsertRecurringInvoiceCancellation(this.cancelModel)\r\n .subscribe((res:any)=>{\r\n if(res){\r\n this.alert.alertSuccess({ title: 'Success', text: `Your cancellation request has been successfully saved!` });\r\n this.close(res);\r\n }\r\n });\r\n }\r\n }\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n

Cancel Recurring Invoice

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Invoice Number: \r\n {{ invoiceModel.invoiceNumber || invoiceModel.InvoiceNumber }}\r\n \r\n
\r\n
\r\n
\r\n Please provide reason for cancellation.\r\n \r\n
\r\n   
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Save\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { YesNoDialogComponent } from 'src/app/shared/dialogs/yes-no-dialog/yes-no-dialog.component';\r\nimport { AuthorizationBase } from 'src/app/shared/libraries/authorize-base';\r\nimport { ManualInvoiceAutoSendSchedule } from '../models/invoice.model';\r\nimport { AlertService } from '../../core/alert.service';\r\nimport { CustomerManagementService } from '../../shared/services/customer.service';\r\nimport { InvoiceService } from '../services/invoice-service.service';\r\n\r\n@Component({\r\n selector: 'app-invoice-auto-send-schedule',\r\n templateUrl: './invoice-auto-send-schedule.component.html',\r\n styleUrls: ['./invoice-auto-send-schedule.component.scss'],\r\n})\r\nexport class InvoiceAutoSendScheduleComponent\r\n extends AuthorizationBase\r\n implements OnInit\r\n{\r\n @Input() model: ManualInvoiceAutoSendSchedule;\r\n @Input() manualInvoiceModel: any;\r\n @Input() customerModel: any;\r\n @Input() isView: boolean;\r\n\r\n user: any;\r\n customerNameLoading: boolean;\r\n busy: boolean;\r\n saving: boolean;\r\n deleting: boolean;\r\n minDate = new Date();\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private alert: AlertService,\r\n private customerApiService: CustomerManagementService,\r\n private invoiceService: InvoiceService,\r\n private modalService: NgbModal\r\n ) {\r\n super();\r\n\r\n this.user = this.getCurrentLoginUser();\r\n this.model = new ManualInvoiceAutoSendSchedule();\r\n this.minDate.setDate(this.minDate.getDate() + 1);\r\n this.model.ScheduleDate = this.minDate;\r\n this.model.ScheduleStatus = 'Pending';\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.customerModel) {\r\n this.loadCustomerInformation();\r\n }\r\n console.log(this.model);\r\n }\r\n\r\n loadDetails() {}\r\n\r\n loadCustomerInformation() {\r\n this.customerNameLoading = true;\r\n this.customerApiService\r\n .getCustomer(this.manualInvoiceModel.customerId)\r\n .subscribe((res: any) => {\r\n this.customerModel = res;\r\n this.customerModel.CustomerName =\r\n this.customerModel.CustomerTypeId == 1\r\n ? this.customerModel.FirstName + ' ' + this.customerModel.LastName\r\n : this.customerModel.BusinessName;\r\n this.customerNameLoading = false;\r\n });\r\n }\r\n\r\n save() {\r\n this.saving = true;\r\n this.model.UserId = this.user.UserId;\r\n this.model.ManualInvoiceId = this.manualInvoiceModel.id;\r\n this.invoiceService\r\n .upsertManualInvoiceAutoSendSchedule(this.model)\r\n .subscribe(\r\n (res: any) => {\r\n this.saving = false;\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Invoice successfully updated!',\r\n });\r\n this.close(res);\r\n },\r\n (error: any) => {\r\n this.saving = false;\r\n },\r\n () => {\r\n this.saving = false;\r\n }\r\n );\r\n }\r\n\r\n deleteSchedule() {\r\n let yesNoDialog = this.modalService.open(YesNoDialogComponent, {\r\n size: 'sm',\r\n });\r\n yesNoDialog.componentInstance.content =\r\n 'Are you sure you want to delete this Schedule?';\r\n yesNoDialog.result.then((res) => {\r\n if (res) {\r\n this.deleting = true;\r\n this.invoiceService\r\n .deleteScheduledInvoice(this.model.Id, this.user.UserId)\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Invoice successfully deleted!',\r\n });\r\n this.deleting = false;\r\n this.close(true);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n}\r\n","
\r\n
\r\n
Send Schedule
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ manualInvoiceModel.invoiceNumber }}\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n {{\r\n customerModel.CustomerName ? customerModel.CustomerName : \"John Doe\"\r\n }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n 0 && !isView\"\r\n data-toggle=\"modal\"\r\n [disabled]=\"deleting || !model.ScheduleDate\"\r\n (click)=\"deleteSchedule()\"\r\n class=\"btn btn-outline invoice_deleteschedule_button\"\r\n >\r\n  Delete \r\n \r\n \r\n  Save \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-pause-subscription-dialog',\r\n templateUrl: './pause-subscription-dialog.component.html',\r\n styleUrls: ['./pause-subscription-dialog.component.scss']\r\n})\r\nexport class PauseRecurringInvoiceDialogComponent implements OnInit {\r\n\r\n resumeDate: Date = new Date();\r\n minDate: string = moment(new Date()).format('YYYY-MM-DD');\r\n\r\n constructor(private modalRef: NgbActiveModal,) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n ok(){\r\n this.modalRef.close(this.resumeDate);\r\n }\r\n\r\n forceMinDate(e) {\r\n if (e.target.value) {\r\n if (new Date(e.target.value) < new Date(e.target.min)) {\r\n e.target.value = e.target.min;\r\n }\r\n } else {\r\n e.target.value = e.target.min;\r\n }\r\n }\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n Pause Subscription\r\n
\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Ok\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AuthorizationBase } from 'src/app/shared/libraries/authorize-base';\r\nimport { RecurringInvoiceSuspension } from \"../../models/invoice.model\";\r\nimport { AlertService } from \"../../../core/alert.service\";\r\nimport { RecurringInvoiceService } from \"../../services/recurring-invoice.service\";\r\n\r\n@Component({\r\n selector: 'app-subscription-suspension-form',\r\n templateUrl: './subscription-suspension-form.component.html',\r\n styleUrls: ['./subscription-suspension-form.component.scss']\r\n})\r\nexport class RecurringInvoiceSuspensionFormComponent extends AuthorizationBase implements OnInit {\r\n @Input() subscriptionId: number;\r\n @Input() recurringInvoiceId: number;\r\n @Input() viewOnly: boolean;\r\n @Input() source: string = 'subscription';\r\n model: RecurringInvoiceSuspension;\r\n minDate:Date = new Date();\r\n user: any;\r\n saving: boolean;\r\n busy: boolean;\r\n\r\n constructor(private modalRef: NgbActiveModal,\r\n private alert: AlertService,\r\n private recurringInvoiceService: RecurringInvoiceService) {\r\n\r\n super();\r\n\r\n this.user = this.getCurrentLoginUser();\r\n\r\n this.model = new RecurringInvoiceSuspension();\r\n this.model.SuspendedDate = new Date();\r\n this.model.SuspensionEndDate = new Date();\r\n this.model.UpdatedBy = this.user.UserId;\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.model.RecurringInvoiceId = this.recurringInvoiceId;\r\n\r\n this.busy = true;\r\n this.loadRecurringInvoiceSuspension();\r\n }\r\n\r\n loadRecurringInvoiceSuspension() {\r\n this.recurringInvoiceService.getSuspensionsByRecurringId(this.recurringInvoiceId)\r\n .subscribe((res:RecurringInvoiceSuspension[])=>{\r\n this.busy = false;\r\n if (res && res.length && this.viewOnly) {\r\n const result: any = res[res.length-1];\r\n this.model.Id = result.id;\r\n this.model.RecurringInvoiceId = result.recurringInvoiceId;\r\n this.model.Reason = result.reason;\r\n this.model.CreatedByUserName = result.createdByUserName;\r\n this.model.CreatedDateTZBased = result.createdDateTZBased;\r\n this.model.CreatedDate = result.createdDate;\r\n this.model.UpdatedDate = result.updatedDate;\r\n this.model.UpdatedByUserName = result.updatedByUserName;\r\n this.model.UpdatedDateTZBased = result.updatedDateTZBased;\r\n this.model.SuspendedDate = result.suspendedDate;\r\n this.model.SuspensionEndDate = result.suspensionEndDate;\r\n }\r\n });\r\n }\r\n\r\n isFormvalid(){\r\n if(!this.model.SuspensionEndDate || !this.model.Reason)\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n save(){\r\n this.saving = true;\r\n this.recurringInvoiceService.suspend(this.model)\r\n .subscribe((res:any)=>{\r\n if(res){\r\n this.saving = false;\r\n this.alert.alertInfo({ title: 'Success', text : 'Invoice has been successfully suspended' });\r\n this.close(res);\r\n }\r\n }, (error: any)=>{\r\n this.alert.alertError({ title: 'Error', text : 'Failed to save request.' });\r\n }, ()=>{\r\n this.saving = false;\r\n });\r\n }\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Suspend Recurring Invoice

\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
    \r\n
  • \r\n

    \r\n Created by{{ model.CreatedByUserName }}\r\n

    \r\n

    \r\n Created on{{ model.CreatedDateTZBased | date: \"MM/dd/yyyy hh:mm:ss\" }}\r\n

    \r\n
  • \r\n
  • \r\n

    \r\n Updated by{{ model.UpdatedByUserName }}\r\n

    \r\n

    \r\n Last updated on{{ model.UpdatedDateTZBased | date: \"MM/dd/yyyy hh:mm:ss\" }}\r\n

    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n   Save\r\n \r\n \r\n
\r\n
\r\n","
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
Provide Invoice Note
\r\n
\r\n\r\n
\r\n \r\n Invoice Notes / Description\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n \r\n {{ !isLoading ? \"Save\" : \"Saving...\" }}\r\n \r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AlertService } from \"../../core/alert.service\";\r\n\r\n@Component({\r\n selector: 'app-invoice-notes',\r\n templateUrl: './invoice-notes.component.html',\r\n styleUrls: ['./invoice-notes.component.scss']\r\n})\r\nexport class InvoiceNotesComponent {\r\n public notesInfo: string;\r\n\r\n isLoading: boolean = false;\r\n isSubmitted: boolean = false;\r\n\r\n constructor( private activeModal: NgbActiveModal,\r\n private alert: AlertService,\r\n ) { }\r\n\r\n saveNotes(): void {\r\n this.isSubmitted = true;\r\n\r\n if (!this.notesInfo) {\r\n this.alert.alertWarning({ title: 'Warning', text : 'Please provide additional notes.' });\r\n return;\r\n }\r\n\r\n this.alert.alertSuccess({ title: 'Success', text : 'Thank you! Payment process will continue...' });\r\n this.isSubmitted = false;\r\n this.close(this.notesInfo);\r\n }\r\n\r\n close(data?: any) {\r\n this.activeModal.close(data);\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n ManualInvoice,\r\n CustomInvoiceFieldValue,\r\n ManualInvoicePartialPaySetting,\r\n PaymentPreview,\r\n} from 'src/app/invoice/models/invoice.model';\r\nimport { DatePipe } from '@angular/common';\r\nimport { Settings } from 'src/app/shared/models/settings/settings.model';\r\nimport { InvoiceTemplateModel } from 'src/app/invoice/models/invoice-template.model';\r\nimport { AuthService } from 'src/app/core/auth.service';\r\nimport { InvoiceService } from 'src/app/invoice/services/invoice-service.service';\r\nimport {\r\n Customer,\r\n CustomerAddress,\r\n} from 'src/app/shared/models/customer.model';\r\nimport { LocationModel } from 'src/app/settings/models/location/location-details.model';\r\nimport { TermsAndConditionModel } from 'src/app/settings/models/terms-conditions-policy-model';\r\nimport { InvoiceSummaryComponent } from 'src/app/invoice/invoice-summary/invoice-summary.component';\r\n\r\n@Component({\r\n selector: 'app-print-preview',\r\n templateUrl: './print-preview.component.html',\r\n styleUrls: ['./print-preview.component.scss'],\r\n})\r\nexport class PrintPreviewComponent implements OnInit {\r\n @Input() invoiceType: string;\r\n @Input() invoice: any;\r\n @Input() invoicePolicies: TermsAndConditionModel[] = [];\r\n @Input() businessInfo: Settings = new Settings();\r\n @Input() customer: Customer = new Customer();\r\n @Input() customerAddress: string;\r\n @Input() customerAddresses: CustomerAddress[];\r\n @Input() customerSignature: any;\r\n @Input() locationData: LocationModel;\r\n @Input() paymentData: PaymentPreview = new PaymentPreview();\r\n @Input() invoicePayments: any;\r\n @Input() workOrder: any;\r\n @Input() partialPayment: ManualInvoicePartialPaySetting;\r\n @Input() customFieldValues: CustomInvoiceFieldValue[];\r\n @Input() isSummary: boolean = true;\r\n\r\n isLoading: boolean = false;\r\n invoiceData: ManualInvoice;\r\n invoiceTemplate: any = new InvoiceTemplateModel();\r\n assigndEmployees: any[] = [];\r\n workOrderData: any[] = [];\r\n customerSig: any;\r\n\r\n constructor(\r\n public datepipe: DatePipe,\r\n private authService: AuthService,\r\n private invoiceService: InvoiceService,\r\n private modalRef: NgbActiveModal,\r\n private modalService: NgbModal\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n\r\n this.businessInfo.Logo = this.locationData.Logo\r\n ? `data:image/png;base64,${this.locationData.Logo}`\r\n : this.businessInfo.Logo;\r\n if (this.locationData.IsLocationNameDisplayed) {\r\n this.businessInfo.BusinessName = this.locationData.BranchName;\r\n }\r\n\r\n if (this.invoiceType !== 'estimate') {\r\n this.remapInvoice();\r\n this.invoiceService.getActiveInvoiceTemplate().subscribe(\r\n (result: any) => {\r\n if (result) {\r\n this.invoiceTemplate = result;\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.isLoading = false;\r\n },\r\n () => {\r\n setTimeout(() => {\r\n this.isLoading = false;\r\n }, 800);\r\n }\r\n );\r\n return;\r\n }\r\n\r\n setTimeout(() => {\r\n this.isLoading = false;\r\n }, 800);\r\n }\r\n\r\n onClose(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n onReturnInvoiceDetails(): void {\r\n let invoiceDiag = this.modalService.open(InvoiceSummaryComponent, {\r\n size: 'lg',\r\n keyboard: false,\r\n backdrop: 'static',\r\n });\r\n\r\n invoiceDiag.componentInstance.invoiceType = this.invoiceType;\r\n invoiceDiag.componentInstance.invoiceNumber =\r\n this.invoice[\r\n this.invoiceType !== 'estimate' ? 'invoiceNumber' : 'estimateNumber'\r\n ];\r\n this.onClose();\r\n }\r\n\r\n remapInvoice(): void {\r\n const commercialLineItems = this.invoice.commercialData?.commercialLineItems || [];\r\n\r\n this.invoiceData = {\r\n InvoiceId: this.invoice.id,\r\n InvoiceNumber: this.invoice.invoiceNumber,\r\n InvoiceDate: new Date(this.invoice.invoiceDate),\r\n DueDate: this.datepipe.transform(this.invoice.dueDate, 'MM/dd/yyyy'),\r\n AmountDue: this.invoice.amountDue,\r\n TotalAmount: this.invoice.totalAmount,\r\n PartialDue: this.invoice.partialDue,\r\n CustomerId: this.invoice.customerId,\r\n LocationName: this.invoice.locationName,\r\n PartialDueType: this.invoice.partialDueType,\r\n DiscountType: this.invoice.discountType === 'USD' ? '$' : '%',\r\n TaxType: this.invoice.taxType === 'USD' ? '$' : '%',\r\n UpchargeType: this.invoice.upchargeType === 'USD' ? '$' : '%',\r\n Balance: this.invoice.balance,\r\n Discount: this.invoice.discount,\r\n Tax: this.invoice.tax,\r\n Upcharge: this.invoice.upcharge,\r\n PaymentTerm: this.invoice.paymentTerm,\r\n PaymentTermValue: this.invoice.paymentTermValue,\r\n Status: this.invoice.status,\r\n Notes: this.invoice.notes,\r\n TCPId: this.invoice.tcpId,\r\n TCPIds: this.invoice.tcpIds,\r\n TaxableTotal: this.invoice.taxableTotal,\r\n NonTaxableTotal: this.invoice.nonTaxableTotal,\r\n CreatedByUserName: this.invoice.createdByUserName,\r\n CreatedDateTZBased: this.invoice.createdDateTZBased,\r\n UpdatedByUserName: this.invoice.updatedByUserName,\r\n UpdatedDateTZBased: this.invoice.updatedDateTZBased,\r\n InvoiceItems: this.invoice.invoiceItems.map((item, index) => {\r\n return {\r\n Id: item.id,\r\n ItemId: item.itemId,\r\n ItemType: item.itemType,\r\n ItemName: item.itemName,\r\n Quantity: item.quantity,\r\n IsTaxExempt: item.isTaxExempt,\r\n Rate: item.rate,\r\n Amount: item.amount,\r\n ServiceDescription: item.serviceDescription,\r\n ProductCode: commercialLineItems[index]?.productCode || null,\r\n ItemCommodityCode: commercialLineItems[index]?.itemCommodityCode || null,\r\n UnitOfMeasure: commercialLineItems[index]?.unitOfMeasure || null,\r\n DiscountAmount:\r\n commercialLineItems[index]?.discountAmount\r\n ? `$${commercialLineItems[index]?.discountAmount}`\r\n : commercialLineItems[index]?.discountRate\r\n ? `${commercialLineItems[index]?.discountRate}%`\r\n : null,\r\n TaxAmount:\r\n commercialLineItems[index]?.taxAmount\r\n ? `$${commercialLineItems[index]?.taxAmount}`\r\n : commercialLineItems[index]?.taxRate\r\n ? `${commercialLineItems[index]?.taxRate}%`\r\n : null,\r\n TaxType:\r\n commercialLineItems[index]?.additionalTaxType === 'SALESTAX'\r\n ? 'Sales Tax'\r\n : commercialLineItems[index]?.additionalTaxType === 'TAXEXEMPT'\r\n ? 'Tax Exempt'\r\n : commercialLineItems[index]?.additionalTaxType === 'NOTUSED'\r\n ? 'Not Used'\r\n : null,\r\n TaxTreatment:\r\n commercialLineItems[index]?.taxTreatment === '1'\r\n ? 'BEFORE Discount'\r\n : commercialLineItems[index]?.taxTreatment === '2'\r\n ? 'AFTER Discount'\r\n : null,\r\n };\r\n }),\r\n };\r\n }\r\n\r\n getTagsHtml(tagName: keyof HTMLElementTagNameMap): string {\r\n const htmlStr: string[] = [];\r\n const elements = document.getElementsByTagName(tagName);\r\n\r\n for (let idx = 0; idx < elements.length; idx++) {\r\n if (\r\n tagName === 'link' &&\r\n elements[idx].outerHTML.includes('href=\"styles')\r\n ) {\r\n elements[idx].outerHTML = elements[idx].outerHTML.replace(\r\n 'href=\"styles',\r\n 'href=\"/styles'\r\n );\r\n }\r\n\r\n htmlStr.push(elements[idx].outerHTML);\r\n }\r\n\r\n return htmlStr.join('\\r\\n');\r\n }\r\n\r\n getDefaultCustomerAddress(): string {\r\n if (this.customerAddresses) {\r\n const address = this.customerAddresses.find((e) => e.IsDefault);\r\n\r\n if (address) {\r\n return `${address.StreetAddress || ''} ${address.City || ''} ${\r\n address.State || ''\r\n } ${address.ZipCode || ''}`;\r\n }\r\n\r\n return '';\r\n }\r\n }\r\n\r\n getGrossTotal(): number {\r\n if (this.invoice) {\r\n if (this.invoice.partialDueType === '%') {\r\n return (\r\n this.invoice.totalAmount -\r\n Math.fround(\r\n (this.invoice.totalAmount * this.invoice.partialDue) / 100\r\n )\r\n );\r\n }\r\n\r\n return this.invoice.totalAmount - this.invoice.partialDue;\r\n }\r\n }\r\n\r\n getTipAmount(): number {\r\n if (this.invoice) {\r\n if (this.invoice.tipType === '%') {\r\n return Math.fround((this.invoice.totalAmount * this.invoice.tip) / 100);\r\n }\r\n\r\n return this.invoice.tip;\r\n }\r\n }\r\n\r\n printInvoice() {\r\n let printContents, popupWin;\r\n\r\n const stylesHtml = this.getTagsHtml('style');\r\n const linksHtml = this.getTagsHtml('link');\r\n const type =\r\n this.invoiceType === 'estimate'\r\n ? 'Estimate'\r\n : this.invoiceType === 'manual'\r\n ? 'Manual Invoice'\r\n : 'Recurring Invoice';\r\n\r\n printContents = document.getElementById('print-section').innerHTML;\r\n\r\n\r\n popupWin = window.open('', '',\r\n 'toolbar=no,location=no,directories=no,menubar=yes,scrollbars=yes,resizable=yes,width=1000,height=900,left=100,top=25'\r\n );\r\n popupWin.document.write(`\r\n \r\n \r\n ${stylesHtml}\r\n ${linksHtml}\r\n ${type} ${\r\n this.invoice[\r\n this.invoiceType === 'estimate' ? 'estimateNumber' : 'invoiceNumber'\r\n ]\r\n }\r\n \r\n \r\n ${printContents}\r\n `);\r\n popupWin.document.close();\r\n // popupWin.document.focus();\r\n }\r\n\r\n canAccessTipModule() {\r\n let nav = this.authService.user.SideNavAccess.find(\r\n (e) => e.SideNavName == 'Tips'\r\n );\r\n return nav ? nav.IsEnabled : true;\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
Print Preview
\r\n\r\n
\r\n \r\n \r\n Back to\r\n {{ invoiceType !== \"estimate\" ? \"Invoice\" : \"Estimate\" }} Details\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
INVOICE
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n A receipt can be printed after payment is accepted which may\r\n serve as evidence of payment. If an email address is\r\n provided during the payment process, a receipt will be\r\n emailed to you after the payment is processed.\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n If for any reason you wish to make a change to the payment\r\n after submission, please contact\r\n {{ businessInfo?.BusinessName }},\r\n {{ businessInfo?.ContactNumber }} for assistance.\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n

    \r\n Created by{{ invoice.createdByUserName }}\r\n

    \r\n

    \r\n Created on{{\r\n invoice.createdDateTZBased | date: \"MM/dd/yyyy hh:mm:ss\"\r\n }}\r\n

    \r\n
  • \r\n
  • \r\n

    \r\n Updated by{{ invoice.updatedByUserName }}\r\n

    \r\n

    \r\n Last updated on{{\r\n invoice.updatedDateTZBased | date: \"MM/dd/yyyy hh:mm:ss\"\r\n }}\r\n

    \r\n
  • \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ businessInfo.BusinessName }}\r\n
\r\n
\r\n \r\n
\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{ businessInfo.StateId }} {{ businessInfo.PostalCode\r\n }}{{\r\n businessInfo.CountryCode\r\n ? \" \" + businessInfo.CountryCode\r\n : \"\"\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\r\n invoice.estimateNumber || \"000-000-0000\"\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\r\n invoice.estimateDate | date: \"MM/dd/yyyy\"\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\r\n invoice.validityDate | date: \"MM/dd/yyyy\"\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ customer.FirstName }} {{ customer.LastName }}\r\n {{\r\n customer.BusinessName\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{ getDefaultCustomerAddress() }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Item / ServiceUnit CostQuantityLine Total
\r\n {{ item.itemName }}
\r\n \r\n {{ item.serviceDescription }}\r\n \r\n
{{ item.rate || 0 | currency }}{{ item.quantity }}\r\n {{ item.amount || 0 | currency }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{ invoice.notes }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{\r\n invoice.estimateTotalAmount || 0 | currency\r\n }}\r\n
\r\n \r\n \r\n {{ invoice.partialDueType === \"USD\" ? \"$\" : \"%\"\r\n }}{{\r\n invoice.partialDue\r\n ? invoice.partialDue.toFixed(2)\r\n : \"0.00\"\r\n }}\r\n
\r\n
\r\n \r\n {{ getGrossTotal() || 0 | currency }}\r\n
\r\n
\r\n
\r\n Adjustments\r\n
\r\n
\r\n \r\n {{ invoice.discountType === \"USD\" ? \"$\" : \"%\"\r\n }}{{\r\n invoice.discount\r\n ? invoice.discount.toFixed(2)\r\n : \"0.00\"\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ invoice.upchargeType === \"USD\" ? \"$\" : \"%\"\r\n }}{{\r\n invoice.upcharge\r\n ? invoice.upcharge.toFixed(2)\r\n : \"0.00\"\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ invoice.taxType === \"USD\" ? \"$\" : \"%\"\r\n }}{{\r\n invoice.tax ? invoice.tax.toFixed(2) : \"0.00\"\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ invoice.balance || 0 | currency }}\r\n
\r\n Due on\r\n {{ invoice.validityDate | date: \"MM/dd/yyyy\" }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnDestroy,\r\n} from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin, Subject, Subscription, of } from 'rxjs';\r\nimport { takeUntil, mergeMap, switchMap, tap } from 'rxjs/operators';\r\n// Models\r\nimport {\r\n SendDownloadInvoice,\r\n PaymentPreview,\r\n CustomInvoiceFieldValue,\r\n SettingsInvoice,\r\n RecurringInvoiceTip,\r\n} from 'src/app/invoice/models/invoice.model';\r\nimport { SendDownloadEstimate } from 'src/app/invoice/models/estimate.model';\r\nimport { Settings } from 'src/app/shared/models/settings/settings.model';\r\nimport {\r\n Customer,\r\n CustomerAddress,\r\n CustomerPhone,\r\n} from 'src/app/shared/models/customer.model';\r\nimport { LocationModel } from 'src/app/settings/models/location/location-details.model';\r\nimport {\r\n InvoiceAttachment,\r\n ManualInvoicePartialPaySetting,\r\n SendReceiptInvoice,\r\n} from 'src/app/invoice/models/invoice.model';\r\nimport { User } from 'src/app/shared/models/user.model';\r\nimport { TermsAndConditionModel } from 'src/app/settings/models/terms-conditions-policy-model';\r\n// Services\r\nimport { AlertService } from 'src/app/core/alert.service';\r\nimport { AuthService } from 'src/app/core/auth.service';\r\nimport { UserService } from 'src/app/shared/services/user.service';\r\nimport { AccountService } from 'src/app/shared/services/account.service';\r\nimport { CustomerManagementService } from 'src/app/shared/services/customer.service';\r\nimport { ServiceWorkOrderService } from 'src/app/shared/services/service-work-order.service';\r\nimport { InvoiceService } from 'src/app/invoice/services/invoice-service.service';\r\nimport { EstimateService } from 'src/app/invoice/services/estimate-service.service';\r\nimport { RecurringInvoiceService } from 'src/app/invoice/services/recurring-invoice.service';\r\n// Components\r\nimport { SendMultipleInvoiceComponent } from '../send-multiple-invoice/send-multiple-invoice.component';\r\nimport { InvoiceAutoSendScheduleComponent } from '../invoice-auto-send-schedule/invoice-auto-send-schedule.component';\r\nimport { PaymentOptionsComponent } from 'src/app/shared/components/payment-options_revamp/payment-options.component';\r\nimport { PrintPreviewComponent } from './components/print-preview/print-preview.component';\r\nimport { RecurringInvoiceCancellationComponent } from 'src/app/invoice/customer-invoice-details/recurring-invoice-cancellation/subscription-cancellation.component';\r\nimport { PauseRecurringInvoiceDialogComponent } from 'src/app/invoice/invoice-detail-view/pause-recurring-invoice-dialog/pause-subscription-dialog.component';\r\nimport { RecurringInvoiceSuspensionFormComponent } from 'src/app/invoice/invoice-detail-view/recurring-invoice-suspension-form/subscription-suspension-form.component';\r\nimport { PaymentService } from 'src/app/shared/services/payments.service';\r\n\r\ninterface Response {\r\n [key: string]: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-invoice-summary',\r\n templateUrl: './invoice-summary.component.html',\r\n styleUrls: ['./invoice-summary.component.scss'],\r\n})\r\nexport class InvoiceSummaryComponent implements OnInit, OnDestroy {\r\n @Input() invoiceType: 'manual' | 'estimate' | 'recurring' = 'manual';\r\n @Input() invoiceNumber: string = '';\r\n @Input() recurringParent: string = '';\r\n @Input() isRecurringInvoiceChild: boolean = false;\r\n @Input() customerProfileId: number;\r\n @Output() subscriptionUpdated = new EventEmitter();\r\n\r\n readonly unsubscribe$ = new Subject();\r\n\r\n isViewLoad: boolean = false;\r\n isInitLoad: boolean = false;\r\n isSending: boolean = false;\r\n\r\n businessInfo: Settings = new Settings();\r\n customer: Customer;\r\n customerAddresses: CustomerAddress[];\r\n customerContacts: CustomerPhone[];\r\n customerBusinessContact: any;\r\n customerSignature: any;\r\n locationData: LocationModel;\r\n invoice: any;\r\n recurringInvoice: any;\r\n invoiceSettings: SettingsInvoice = new SettingsInvoice();\r\n invoiceAttachments: InvoiceAttachment[];\r\n invoicePolicies: TermsAndConditionModel[];\r\n invoicePayments: any = [];\r\n invoicePaid: PaymentPreview = new PaymentPreview();\r\n invoiceNotes: any;\r\n // paymentData: PaymentPreview = new PaymentPreview();\r\n partialPayment: ManualInvoicePartialPaySetting;\r\n customFieldValues: CustomInvoiceFieldValue[];\r\n userInfo: User;\r\n workOrder: any;\r\n displayBalance: any;\r\n paymentConfig: any = {\r\n showCashPayment: true,\r\n hideManualPaymentOption: false,\r\n showACHPaymentOption: true,\r\n showCreditCardOption: true,\r\n };\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private modalService: NgbModal,\r\n private alertService: AlertService,\r\n private authService: AuthService,\r\n private invoiceService: InvoiceService,\r\n private estimateService: EstimateService,\r\n private recurringService: RecurringInvoiceService,\r\n private userService: UserService,\r\n private accountService: AccountService,\r\n private customerService: CustomerManagementService,\r\n private workOrderService: ServiceWorkOrderService,\r\n private paymentService: PaymentService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.isInitLoad = true;\r\n this.userInfo = JSON.parse(this.authService.getUserInfo());\r\n\r\n if (this.invoiceType === 'estimate') {\r\n this.getEstimateData();\r\n return;\r\n }\r\n\r\n this.getSummaryData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n getEstimateData(): void {\r\n this.estimateService\r\n .getEstimate(this.invoiceNumber)\r\n .pipe(\r\n takeUntil(this.unsubscribe$),\r\n tap((estimate: any) => (this.invoice = estimate)),\r\n mergeMap(() => {\r\n let estimateData: any = {\r\n businessInfo: this.userService.getMerchant('1'),\r\n invoicePolicies: this.accountService.getTtcps(),\r\n invoiceItems:\r\n this.estimateService.getEstimateDetailsByEstimateNumber(\r\n this.invoiceNumber\r\n ),\r\n invoicePaid:\r\n this.invoiceService.getPaidManualInvoiceByInvoiceNumber(\r\n this.invoiceNumber\r\n ),\r\n invoiceAttachments: this.estimateService.getEstimateDocuments(\r\n this.invoiceNumber\r\n ),\r\n customer: this.customerService.getCustomer(this.invoice.customerId),\r\n customerAddresses: this.customerService.getCustomerAddresses(\r\n this.invoice.customerId\r\n ),\r\n customerContacts: this.customerService.getCustomerContactPersons(\r\n this.invoice.customerId\r\n ),\r\n customFieldValues:\r\n this.invoiceService.getAllCustomFieldValuesByInvoiceNumber(\r\n this.invoiceNumber\r\n ),\r\n locationData: this.authService.getLocationById(\r\n this.invoice.locationId\r\n ),\r\n createdBy: this.accountService.getUser(this.invoice.createdBy),\r\n updatedBy: this.accountService.getUser(this.invoice.updatedBy),\r\n };\r\n\r\n if (this.invoice.invoiceNumber) {\r\n estimateData = {\r\n ...estimateData,\r\n manualInvoices: this.invoiceService.getManualInvoice(\r\n this.invoice.invoiceNumber\r\n ),\r\n };\r\n }\r\n\r\n return forkJoin({ ...estimateData });\r\n })\r\n )\r\n .subscribe(\r\n (data: Response) => {\r\n for (const [key, value] of Object.entries(data)) {\r\n if (key === 'locationData') {\r\n this.locationData = value.locationComplete;\r\n continue;\r\n }\r\n\r\n if (key === 'invoicePolicies') {\r\n this.invoicePolicies = value.filter((policy) =>\r\n this.invoice.tcpIds.includes(policy.TCPId)\r\n );\r\n continue;\r\n }\r\n\r\n if (key === 'invoiceItems') {\r\n this.invoice.invoiceItems = value;\r\n continue;\r\n }\r\n\r\n if (key === 'createdBy') {\r\n this.invoice.createdByUserName = value.EmployeeName;\r\n continue;\r\n }\r\n\r\n if (key === 'updatedBy') {\r\n this.invoice.updatedByUserName = value.EmployeeName;\r\n continue;\r\n }\r\n\r\n if (key === 'manualInvoices') {\r\n this.invoice.manualInvoice = value;\r\n continue;\r\n }\r\n\r\n if (key === 'customFieldValues') {\r\n this.customFieldValues = value.filter((field) => field.isActive);\r\n continue;\r\n }\r\n\r\n this[key] = value;\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.isInitLoad = false;\r\n },\r\n () => {\r\n this.isInitLoad = false;\r\n }\r\n );\r\n }\r\n\r\n getSummaryData(): void {\r\n this.invoiceService\r\n .getManualInvoice(this.invoiceNumber)\r\n .pipe(\r\n takeUntil(this.unsubscribe$),\r\n tap((invoice: any) => (this.invoice = invoice)),\r\n mergeMap(() => {\r\n if (this.invoiceType === 'recurring') {\r\n return this.recurringService.getRecurringInvoiceConfigurationByInvoiceNumber(\r\n this.invoiceNumber\r\n );\r\n }\r\n return of(null);\r\n }),\r\n switchMap((config: any) => {\r\n let summaryData: any = {\r\n businessInfo: this.userService.getMerchant('1'),\r\n invoicePolicies: this.accountService.getTtcps(),\r\n invoiceSettings: this.invoiceService.getSettingsInvoice(),\r\n invoiceItems:\r\n this.invoiceService.getManualInvoiceDetailsByInvoiceNumber(\r\n this.invoiceNumber\r\n ),\r\n invoiceAttachments: this.invoiceService.getManualInvoiceDocuments(\r\n this.invoiceNumber\r\n ),\r\n invoicePayments: this.invoiceService.getManualInvoicePayments(\r\n this.invoiceNumber\r\n ),\r\n invoicePaid:\r\n this.invoiceService.getPaidManualInvoiceByInvoiceNumber(\r\n this.invoiceNumber\r\n ),\r\n invoiceNotes: this.invoiceService.getAllInvoiceNotesByInvoiceNumber(\r\n this.invoiceNumber\r\n ),\r\n partialPayment:\r\n this.invoiceService.getPartialPaySettingByInvoiceNumber(\r\n this.invoiceNumber\r\n ),\r\n customFieldValues:\r\n this.invoiceService.getAllCustomFieldValuesByInvoiceNumber(\r\n this.invoiceNumber\r\n ),\r\n customerSignature:\r\n this.invoiceService.getCustomerSigByInvoiceNumber(\r\n this.invoiceNumber\r\n ),\r\n customer: this.customerService.getCustomer(this.invoice.customerId),\r\n customerAddresses: this.customerService.getCustomerAddresses(\r\n this.invoice.customerId\r\n ),\r\n customerContacts: this.customerService.getCustomerPhones(\r\n this.invoice.customerId\r\n ),\r\n customerBusinessContact:\r\n this.customerService.getCustomerContactPersonById(\r\n this.invoice.businessCustomerContactPersonId\r\n ),\r\n workOrder: this.workOrderService.getWorkOrderByInvoice(\r\n this.invoiceNumber\r\n ),\r\n locationData: this.authService.getLocationById(\r\n this.invoice.locationId\r\n ),\r\n };\r\n\r\n if (config) {\r\n summaryData = {\r\n ...summaryData,\r\n recurringInvoice: this.recurringService.getRecurringInvoiceById(\r\n config.recurringInvoiceId\r\n ),\r\n recurringManualInvoices:\r\n this.recurringService.getRecurringInvoicesByRecurringId(\r\n config.recurringInvoiceId\r\n ),\r\n };\r\n }\r\n\r\n return forkJoin({ ...summaryData });\r\n })\r\n )\r\n .subscribe(\r\n (data: Response) => {\r\n for (const [key, value] of Object.entries(data)) {\r\n if (key === 'locationData') {\r\n this.locationData = value.locationComplete;\r\n\r\n this.paymentConfig.showACHPaymentOption =\r\n this.locationData.ACHEnabled;\r\n this.paymentConfig.showCreditCardOption =\r\n this.locationData.CCEnabled;\r\n\r\n if (this.isRecurringInvoiceChild && this.recurringInvoice) {\r\n this.paymentConfig = {\r\n showCashPayment:\r\n !this.recurringInvoice.configuration.isAutoCharge,\r\n hideManualPaymentOption:\r\n this.recurringInvoice.configuration.isAutoCharge,\r\n showACHPaymentOption:\r\n !this.recurringInvoice.configuration.isAutoCharge &&\r\n this.locationData.ACHEnabled,\r\n showCreditCardOption: true,\r\n };\r\n }\r\n\r\n if (this.invoice.subscriptionId) {\r\n this.paymentConfig = {\r\n showACHPaymentOption: false,\r\n showCashPayment: false,\r\n hideManualPaymentOption: true,\r\n };\r\n }\r\n continue;\r\n }\r\n\r\n if (key === 'invoicePolicies') {\r\n this.invoicePolicies = value.filter((policy) =>\r\n this.invoice.tcpIds.includes(policy.TCPId)\r\n );\r\n continue;\r\n }\r\n\r\n if (key === 'invoiceItems') {\r\n this.invoice.invoiceItems = value;\r\n this.invoice.invoiceDate = !this.invoice.isDraft\r\n ? this.invoice.invoiceDate\r\n : new Date();\r\n continue;\r\n }\r\n\r\n if (key === 'recurringManualInvoices') {\r\n this.recurringInvoice.invoices = value;\r\n }\r\n\r\n if (key === 'customFieldValues') {\r\n this.customFieldValues = value.filter((field) => field.isActive);\r\n continue;\r\n }\r\n\r\n this[key] = value;\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.isInitLoad = false;\r\n },\r\n () => {\r\n this.setPartial();\r\n this.isInitLoad = false;\r\n }\r\n );\r\n }\r\n\r\n setPartial(): void {\r\n this.displayBalance = this.invoice.balance;\r\n\r\n if (this.invoicePayments.length) {\r\n this.invoicePayments.forEach((payment) => {\r\n this.displayBalance = this.displayBalance - payment.amountPaid;\r\n });\r\n } else {\r\n //if no payments yet, display the allowed partial payment as Amount Due\r\n if (!!this.partialPayment) {\r\n if (this.partialPayment.partialDueType === '%') {\r\n this.displayBalance = Math.fround(\r\n this.invoice.balance * (this.partialPayment.partialDue / 100)\r\n );\r\n } else {\r\n this.displayBalance = this.partialPayment.partialDue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n getInvoiceType(): string {\r\n switch (this.invoiceType) {\r\n case 'recurring':\r\n return 'Recurring Invoice';\r\n case 'estimate':\r\n return 'Estimate';\r\n default:\r\n return 'Invoice';\r\n }\r\n }\r\n\r\n canPayPartial(): boolean {\r\n return (\r\n (this.partialPayment && this.partialPayment.partialDue) && \r\n ['Partial', 'Paid', 'Voided', 'Refunded'].indexOf(this.invoice.status) ===\r\n -1\r\n );\r\n }\r\n\r\n onModalClose(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n onPrintPreview(): void {\r\n let previewDiag = this.modalService.open(PrintPreviewComponent);\r\n\r\n previewDiag.componentInstance.invoiceType = this.invoiceType;\r\n previewDiag.componentInstance.invoice = this.invoice;\r\n previewDiag.componentInstance.invoicePolicies = this.invoicePolicies;\r\n previewDiag.componentInstance.customer = this.customer;\r\n previewDiag.componentInstance.customerAddresses = this.customerAddresses;\r\n previewDiag.componentInstance.customerSignature = this.customerSignature;\r\n previewDiag.componentInstance.businessInfo = this.businessInfo;\r\n previewDiag.componentInstance.locationData = this.locationData;\r\n previewDiag.componentInstance.customFieldValues = this.customFieldValues;\r\n previewDiag.componentInstance.paymentData = this.invoicePaid;\r\n previewDiag.componentInstance.partialPayment = this.partialPayment;\r\n previewDiag.componentInstance.workOrder = this.workOrder;\r\n previewDiag.componentInstance.invoicePayments = this.invoicePayments;\r\n\r\n this.onModalClose();\r\n }\r\n\r\n onDeleteInvoice(): void {\r\n this.alertService.alert({\r\n title: 'Confirmation',\r\n text: `Are you sure you want to delete this ${this.getInvoiceType().toLowerCase()}?`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: 'Yes, delete it!',\r\n showLoaderOnConfirm: true,\r\n preConfirm: () => {\r\n switch (this.invoiceType) {\r\n case 'estimate':\r\n this.onDeleteEstimate();\r\n break;\r\n case 'recurring':\r\n this.onDeleteRecurring();\r\n break;\r\n default:\r\n this.onDeleteManual();\r\n break;\r\n }\r\n },\r\n });\r\n }\r\n\r\n onDeleteManual(): Subscription {\r\n return this.invoiceService\r\n .deleteManualInvoice(this.invoiceNumber, this.userInfo.UserId)\r\n .subscribe(\r\n (result) => {\r\n if (result) {\r\n this.alertService.alertSuccess({\r\n title: 'Success',\r\n text: 'Invoice successfully deleted.',\r\n });\r\n this.onModalClose(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.alertService.alertError({\r\n title: 'Error',\r\n text: error.error.text,\r\n });\r\n }\r\n );\r\n }\r\n\r\n onDeleteRecurring(): Subscription {\r\n return this.recurringService\r\n .deleteRecurringInvoicesByRecurringId(\r\n this.recurringInvoice.id,\r\n parseInt(this.userInfo.UserId)\r\n )\r\n .subscribe(\r\n (result) => {\r\n if (result) {\r\n this.alertService.alertSuccess({\r\n title: 'Success',\r\n text: 'Recurring Invoice successfully deleted.',\r\n });\r\n this.onModalClose(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.alertService.alertError({\r\n title: 'Error',\r\n text: error.error.text,\r\n });\r\n }\r\n );\r\n }\r\n\r\n onDeleteEstimate(): Subscription {\r\n return this.estimateService\r\n .deleteEstimate(this.invoiceNumber, parseInt(this.userInfo.UserId))\r\n .subscribe(\r\n (result) => {\r\n if (result) {\r\n this.alertService.alertSuccess({\r\n title: 'Success',\r\n text: 'Estimate successfully deleted.',\r\n });\r\n this.onModalClose(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.alertService.alertError({\r\n title: 'Error',\r\n text: error.error.text,\r\n });\r\n }\r\n );\r\n }\r\n\r\n onSelectPayment(): void {\r\n let paymentDiag = this.modalService.open(PaymentOptionsComponent, {\r\n backdrop: 'static',\r\n });\r\n\r\n paymentDiag.componentInstance.isInvoiceSummary = true;\r\n paymentDiag.componentInstance.canPayPartial = this.canPayPartial();\r\n paymentDiag.componentInstance.userInfo = this.userInfo;\r\n paymentDiag.componentInstance.invoice = this.invoice;\r\n paymentDiag.componentInstance.invoiceSettings = this.invoiceSettings;\r\n paymentDiag.componentInstance.customer = this.customer;\r\n paymentDiag.componentInstance.customerBusinessContact =\r\n this.customerBusinessContact;\r\n paymentDiag.componentInstance.customerAddresses = this.customerAddresses;\r\n paymentDiag.componentInstance.customerSignature = this.customerSignature;\r\n paymentDiag.componentInstance.businessInfo = this.businessInfo;\r\n paymentDiag.componentInstance.locationData = this.locationData;\r\n paymentDiag.componentInstance.workOrder = this.workOrder;\r\n paymentDiag.componentInstance.displayBalance = this.displayBalance;\r\n paymentDiag.componentInstance.hideManualPaymentOption =\r\n this.paymentConfig.hideManualPaymentOption;\r\n paymentDiag.componentInstance.showACHPaymentOption =\r\n this.paymentConfig.showACHPaymentOption;\r\n paymentDiag.componentInstance.showCashPayment =\r\n this.paymentConfig.showCashPayment;\r\n paymentDiag.componentInstance.showCreditCardOption =\r\n this.paymentConfig.showCreditCardOption;\r\n paymentDiag.componentInstance.recurringInvoiceConfig =\r\n this.recurringInvoice?.configuration;\r\n\r\n this.onModalClose();\r\n }\r\n\r\n onSendMail(): void {\r\n this.isSending = true;\r\n\r\n switch (this.invoiceType) {\r\n case 'estimate':\r\n this.onSendEstimateEmail();\r\n break;\r\n default:\r\n this.onSendManualEmail();\r\n break;\r\n }\r\n }\r\n\r\n onSendManualEmail(): void {\r\n let mailInvoice = new SendDownloadInvoice();\r\n const address = this.customerAddresses.find((e) => e.IsDefault);\r\n\r\n mailInvoice.InvoiceNumber = this.invoiceNumber;\r\n mailInvoice.CustomerEmail = this.customer.EmailAddress;\r\n\r\n mailInvoice.CustomerName =\r\n this.customer.CustomerTypeId === 2\r\n ? this.customer.BusinessName\r\n : `${this.customer.FirstName} ${this.customer.LastName}`;\r\n\r\n mailInvoice.BusinessName =\r\n this.businessInfo.BusinessName +\r\n (this.locationData ? ` - ${this.locationData.BranchName}` : '');\r\n mailInvoice.BusinessLogo = this.locationData.Logo\r\n ? `data:image/png;base64,${this.locationData.Logo}`\r\n : this.businessInfo.Logo;\r\n mailInvoice.BusinessAddress = this.locationData\r\n ? `${\r\n this.locationData.Address1 ? this.locationData.Address1 + ',' : ''\r\n } ${this.locationData.City ? this.locationData.City + ',' : ''} ${\r\n this.locationData.Province ? this.locationData.Province + ',' : ''\r\n } ${this.locationData.StateId || ''} ${\r\n this.locationData.PostalCode || ''\r\n } ${this.locationData.CountryCode || ''}`\r\n : `${\r\n this.businessInfo.Address1 ? this.businessInfo.Address1 + ',' : ''\r\n } ${this.businessInfo.City ? this.businessInfo.City + ',' : ''} ${\r\n this.businessInfo.Province ? this.businessInfo.Province + ',' : ''\r\n } ${this.businessInfo.StateId || ''} ${\r\n this.businessInfo.PostalCode || ''\r\n } ${this.businessInfo.CountryCode || ''}`;\r\n\r\n if (address) {\r\n mailInvoice.CustomerAddress = `${address.StreetAddress || ''} ${\r\n address.City || ''\r\n } ${address.State || ''} ${address.ZipCode || ''}`;\r\n }\r\n\r\n if (this.customerBusinessContact) {\r\n mailInvoice.CustomerEmail =\r\n this.customerBusinessContact.EmailAddress || this.customer.EmailAddress;\r\n }\r\n\r\n this.invoiceService.sendInvoice(mailInvoice).subscribe(() => {\r\n this.alertService.alertSuccess({\r\n title: 'Success!',\r\n text: 'Invoice has been successfully sent!',\r\n });\r\n\r\n this.isSending = false;\r\n });\r\n }\r\n\r\n onSendEstimateEmail(): void {\r\n let mailEstimate = new SendDownloadEstimate();\r\n const address = this.customerAddresses.find((e) => e.IsDefault);\r\n\r\n mailEstimate.EstimateNumber = this.invoice.estimateNumber;\r\n mailEstimate.CustomerEmail = this.customer.EmailAddress;\r\n mailEstimate.BusinessName = this.businessInfo.BusinessName;\r\n mailEstimate.BusinessLogo = this.businessInfo.Logo;\r\n\r\n mailEstimate.CustomerName =\r\n this.customer.CustomerTypeId === 2\r\n ? this.customer.BusinessName\r\n : `${this.customer.FirstName} ${this.customer.LastName}`;\r\n\r\n mailEstimate.BusinessAddress = `${\r\n this.businessInfo.Address1 ? this.businessInfo.Address1 + ',' : ''\r\n } ${this.businessInfo.City ? this.businessInfo.City + ',' : ''} ${\r\n this.businessInfo.Province ? this.businessInfo.Province + ',' : ''\r\n } ${this.businessInfo.StateId || ''} ${\r\n this.businessInfo.PostalCode || ''\r\n } ${this.businessInfo.CountryCode || ''}`;\r\n\r\n if (address) {\r\n mailEstimate.CustomerAddress = `${address.StreetAddress || ''} ${\r\n address.City || ''\r\n } ${address.State || ''} ${address.ZipCode || ''}`;\r\n }\r\n\r\n if (this.customerBusinessContact) {\r\n mailEstimate.CustomerEmail =\r\n this.customerBusinessContact.EmailAddress || this.customer.EmailAddress;\r\n }\r\n\r\n this.estimateService.sendEstimate(mailEstimate).subscribe(() => {\r\n this.alertService.alertSuccess({\r\n title: 'Success!',\r\n text: 'Estimate has been successfully sent!',\r\n });\r\n\r\n this.isSending = false;\r\n });\r\n }\r\n\r\n onSendReceipt(): void {\r\n this.isSending = true;\r\n\r\n const latestPayment = this.invoicePayments[this.invoicePayments.length - 1];\r\n const payload = {\r\n emailAddress: this.customer.EmailAddress,\r\n mobileNumber: null,\r\n paymentMethod: latestPayment.paymentMethodTypeName,\r\n receiptNumber: latestPayment.receiptNumber,\r\n }\r\n\r\n this.paymentService.sendReceipt(payload).subscribe({\r\n next: (res) => {\r\n if (res.toUpperCase() === 'SUCCESS') {\r\n this.alertService.alertSuccess({\r\n title: 'Success!',\r\n text: 'Receipt has been successfully sent!',\r\n });\r\n } else {\r\n this.alertService.alertError({\r\n title: 'Error!',\r\n text: res,\r\n });\r\n }\r\n },\r\n error: (error) => {\r\n this.alertService.alertError({\r\n title: 'Error!',\r\n text: error,\r\n });\r\n this.isSending = false;\r\n },\r\n complete: () => {\r\n this.isSending = false;\r\n }\r\n });\r\n }\r\n\r\n // TODO: All methods below are for refactoring\r\n onSendSchedule(): void {\r\n let dialog = this.modalService.open(InvoiceAutoSendScheduleComponent, {\r\n size: 'sm',\r\n backdrop: 'static',\r\n });\r\n\r\n dialog.componentInstance.manualInvoiceModel = this.invoice;\r\n }\r\n\r\n onSendMultiple(status: string): void {\r\n if (status === 'SelectInvoice') {\r\n let dialog = this.modalService.open(SendMultipleInvoiceComponent, {\r\n size: 'xl',\r\n });\r\n\r\n dialog.componentInstance.customerId = this.invoice['customerId'];\r\n dialog.componentInstance.customerName =\r\n this.customer.CustomerTypeId === 1\r\n ? this.customer.FirstName + ' ' + this.customer.LastName\r\n : this.customer.BusinessName;\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n this.alertService.alertSuccess({\r\n title: 'Success!',\r\n text: 'Invoice has been successfully sent!',\r\n });\r\n }\r\n });\r\n } else {\r\n this.isSending = true;\r\n this.invoiceService\r\n .sendMultipleInvoicesByStatus(this.invoice['customerId'], status)\r\n .subscribe(() => {\r\n this.alertService.alertSuccess({\r\n title: 'Success!',\r\n text: 'Invoice has been successfully sent!',\r\n });\r\n\r\n this.isSending = false;\r\n });\r\n }\r\n }\r\n\r\n onSubscriptionAction(action: string): void {\r\n this.isSending = true;\r\n\r\n switch (action) {\r\n case 'Cancel':\r\n this.onCancelSubscription();\r\n break;\r\n case 'Pause':\r\n case 'Resume':\r\n this.onPauseResumeSubscription(action.toLowerCase());\r\n break;\r\n case 'Suspend':\r\n this.onSuspendSubscription();\r\n break;\r\n case 'Activate':\r\n case 'Archive':\r\n this.onActivateArchiveInvoice(action.toLowerCase());\r\n break;\r\n case 'View':\r\n this.onViewSuspendDetails();\r\n break;\r\n default:\r\n this.onDeactivateAutoTip();\r\n break;\r\n }\r\n }\r\n\r\n onCancelSubscription(): void {\r\n let dialog = this.modalService.open(RecurringInvoiceCancellationComponent, {\r\n size: 'md',\r\n keyboard: false,\r\n backdrop: 'static',\r\n });\r\n\r\n dialog.componentInstance.recurringInvoiceModel = this.recurringInvoice;\r\n dialog.componentInstance.invoiceModel = this.invoice;\r\n dialog.componentInstance.status = 'Approved';\r\n dialog.componentInstance.displayApprovalNotes = true;\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n // this.subscriptionUpdated.emit();\r\n this.onModalClose(true);\r\n }\r\n this.isSending = false;\r\n });\r\n }\r\n\r\n onPauseResumeSubscription(action: string): void {\r\n let dialog = this.modalService.open(PauseRecurringInvoiceDialogComponent, {\r\n size: 'sm',\r\n keyboard: false,\r\n backdrop: 'static',\r\n });\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n this.recurringService[action]({\r\n recurringInvoiceId: this.recurringInvoice.id,\r\n userId: this.userInfo.UserId,\r\n resumeDate: res,\r\n }).subscribe((res) => {\r\n if (res) {\r\n // this.subscriptionUpdated.emit();\r\n this.alertService.alertSuccess({\r\n title: 'Success',\r\n text: 'Recurring Invoice successfully updated!',\r\n });\r\n } else {\r\n this.alertService.alertError({\r\n title: 'Error!',\r\n text: 'Something went wrong, please contact administrator.',\r\n });\r\n }\r\n this.onModalClose(true);\r\n });\r\n }\r\n this.isSending = false;\r\n });\r\n }\r\n\r\n onSuspendSubscription(): void {\r\n let dialog = this.modalService.open(\r\n RecurringInvoiceSuspensionFormComponent,\r\n {\r\n size: 'sm',\r\n backdrop: 'static',\r\n }\r\n );\r\n\r\n dialog.componentInstance.recurringInvoiceId = this.recurringInvoice.id;\r\n dialog.componentInstance.source = 'recurring_invoice';\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n // this.subscriptionUpdated.emit();\r\n this.onModalClose(true);\r\n }\r\n this.isSending = false;\r\n });\r\n }\r\n\r\n onActivateArchiveInvoice(action: string): void {\r\n this.alertService.alert({\r\n title: 'Confirmation',\r\n text: `Are you sure you want to ${action} this recurring invoice?`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: `Yes, ${action} it!`,\r\n showLoaderOnConfirm: true,\r\n preConfirm: () => {\r\n let payload: any = {\r\n userId: this.userInfo.UserId,\r\n recurringInvoiceId: this.recurringInvoice.id,\r\n };\r\n\r\n if (action === 'activate') {\r\n payload.resumeDate = true;\r\n }\r\n\r\n return this.recurringService[action](payload).subscribe(\r\n (result) => {\r\n if (result) {\r\n this.alertService.alertSuccess({\r\n title: 'Success',\r\n text: 'Recurring Invoice successfully updated.',\r\n });\r\n\r\n this.isSending = false;\r\n this.onModalClose(true);\r\n }\r\n },\r\n () => {\r\n this.alertService.alertError({\r\n title: 'Error!',\r\n text: 'Something went wrong, please contact administrator.',\r\n });\r\n\r\n this.isSending = false;\r\n }\r\n );\r\n },\r\n });\r\n }\r\n\r\n onViewSuspendDetails(): void {\r\n let dialog = this.modalService.open(\r\n RecurringInvoiceSuspensionFormComponent,\r\n {\r\n size: 'sm',\r\n backdrop: 'static',\r\n }\r\n );\r\n\r\n dialog.componentInstance.recurringInvoiceId = this.recurringInvoice.id;\r\n dialog.componentInstance.viewOnly = true;\r\n dialog.componentInstance.source = 'recurring_invoice';\r\n\r\n dialog.result.then((res) => {\r\n if (res) {\r\n // this.subscriptionUpdated.emit();\r\n this.onModalClose(true);\r\n }\r\n this.isSending = false;\r\n });\r\n }\r\n\r\n onDeactivateAutoTip() {\r\n const payload = new RecurringInvoiceTip();\r\n\r\n payload.Tip = this.recurringInvoice.configuration.tip;\r\n payload.TipType = this.recurringInvoice.configuration.tipType;\r\n payload.RecurringInvoiceId = this.recurringInvoice.id;\r\n payload.UpdatedBy = this.recurringInvoice.id;\r\n payload.IsRepeatTipOnSucceedingInvoices = false;\r\n\r\n this.alertService.alert({\r\n title: 'Confirmation',\r\n text: `Are you sure you want to deactivate auto-tip for the future payments?`,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n confirmButtonText: `Yes, deactivate it!`,\r\n showLoaderOnConfirm: true,\r\n preConfirm: () => {\r\n return this.recurringService\r\n .setRecurringInvoiceTipConfiguration(payload)\r\n .subscribe(\r\n (result) => {\r\n if (result) {\r\n this.alertService.alertSuccess({\r\n title: 'Recurring Invoice Tip',\r\n text: 'Auto-tip for future payments is now deactivated!',\r\n });\r\n this.isSending = false;\r\n this.onModalClose(true);\r\n }\r\n },\r\n () => {\r\n this.isSending = false;\r\n }\r\n );\r\n },\r\n });\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n $ {{item.amountPaid}}\r\n {{ manualInvoice.Status }}\r\n
\r\n
\r\n \r\n {{item.transactionId}}\r\n
\r\n
\r\n \r\n {{item.date | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n \r\n {{item?.paymentMethodTypeName || '-none-'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Location\r\n {{locationData ? locationData.BranchName : ''}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Invoice #\r\n {{ manualInvoice.InvoiceNumber ? manualInvoice.InvoiceNumber :\r\n '000-000-0000' }}\r\n
\r\n
\r\n
\r\n
\r\n Invoice Date\r\n {{ manualInvoice.InvoiceDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n Due Date\r\n {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n Transaction Date\r\n {{ paymentData.date | date: 'MM/dd/yyyy hh:mm:ss' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ customerInfo.FirstName }} {{ customerInfo.LastName }}\r\n
\r\n
\r\n {{ customerInfo.BusinessName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{field.fieldName}}\r\n \r\n {{ field.fieldValue && field.fieldValue === 'true' ? 'Yes' :\r\n 'No' }}\r\n {{field.fieldName}}{{ field.fieldValue }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Location\r\n {{locationData ? locationData.BranchName : ''}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Invoice #\r\n {{ manualInvoice.InvoiceNumber ? manualInvoice.InvoiceNumber :\r\n '000-000-0000' }}\r\n
\r\n
\r\n
\r\n
\r\n Invoice Date\r\n {{ manualInvoice.InvoiceDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n Due Date\r\n {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n Transaction Date\r\n {{ paymentData.date | date: 'MM/dd/yyyy hh:mm:ss' }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ customerInfo.FirstName }} {{ customerInfo.LastName }}\r\n
\r\n
\r\n {{ customerInfo.BusinessName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Location\r\n \r\n {{locationData ? locationData.BranchName : ''}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Invoice #\r\n {{ manualInvoice.InvoiceNumber ? manualInvoice.InvoiceNumber\r\n : '000-000-0000' }}\r\n
\r\n
\r\n
\r\n
\r\n Invoice Date\r\n {{ manualInvoice.InvoiceDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n Due Date\r\n {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n
\r\n Transaction Date\r\n {{ paymentData.date | date: 'MM/dd/yyyy hh:mm:ss' }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ customerInfo.FirstName }} {{ customerInfo.LastName }}\r\n
\r\n
\r\n {{ customerInfo.BusinessName }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Item / ServiceUnit CostQuantityIs Tax ExemptLine Total
\r\n
\r\n {{ item.ItemName }}\r\n
\r\n
\r\n {{ item.ServiceDescription }}\r\n
\r\n\r\n \r\n
\r\n
\r\n Tax Amount: {{ item.TaxAmount }}\r\n Tax Indicator: {{ item.TaxType }}\r\n Purchase ID: {{ item.ProductCode }}\r\n Commodity Code: {{ item.ItemCommodityCode }}\r\n Unit of Measure: {{ item.UnitOfMeasure }}\r\n Discount: {{ item.DiscountAmount }}\r\n Tax Treatment: {{ item.TaxTreatment }}\r\n
\r\n
\r\n
\r\n
\r\n
$ {{ item.Rate ? item.Rate.toFixed(2) : '0.00' }}{{ item.Quantity }}{{ item.IsTaxExempt ? 'Yes' : 'No' }}\r\n $ {{ item.Amount ? item.Amount.toFixed(2) : '0.00' }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
Service NameService Price
{{group.ServiceName}}{{'$' + group.Price}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ partialPayment.partialDueType === 'USD' ? '$' : '%' }} {{\r\n partialPayment.partialDue ?\r\n partialPayment.partialDue.toFixed(2) : '0.00' }}\r\n \r\n -\r\n
\r\n
\r\n
\r\n Adjustments\r\n
0\">\r\n
\r\n \r\n $ {{ totalDeposits.toFixed(2) }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n $\r\n {{ manualInvoice.Discount ? manualInvoice.Discount.toFixed(2)\r\n : '0.00' }}\r\n %\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n $\r\n {{ manualInvoice.Upcharge ? manualInvoice.Upcharge.toFixed(2)\r\n : '0.00' }}\r\n %\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Invoice Amount\r\n \r\n \r\n $ {{ totalInvoiceAmount ? totalInvoiceAmount.toFixed(2) :\r\n '0.00' }}\r\n \r\n
\r\n\r\n \r\n
\r\n Amount Due\r\n \r\n $ {{ manualInvoice.Balance && manualInvoice.Status !==\r\n 'Paid' ? manualInvoice.Balance.toFixed(2) : '0.00' }}\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n Partial Amount Due\r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (getPartialAmountDue() | currency) : (0 | currency) }}\r\n \r\n
\r\n
\r\n Total Amount Due\r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (totalInvoiceAmount | currency) : (manualInvoice.AmountDue |\r\n currency) }}\r\n \r\n
\r\n
\r\n\r\n Due on {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n InvoiceItems,\r\n ManualInvoice,\r\n CustomInvoiceFieldValue,\r\n PaymentPreview,\r\n ManualInvoicePartialPaySetting,\r\n} from '../../models/invoice.model';\r\nimport { Settings } from '../../../shared/models/settings/settings.model';\r\n\r\n@Component({\r\n selector: 'app-invoice-template-default',\r\n templateUrl: './invoice-template-default-component.html',\r\n styleUrls: ['./invoice-template-default-component.scss'],\r\n})\r\nexport class InvoiceTemplateDefaultComponent implements OnInit {\r\n @Input() invoiceTemplateModel: any = null;\r\n @Input() invoiceItems: InvoiceItems[];\r\n @Input() manualInvoice: ManualInvoice = {};\r\n @Input() customerInfo: any;\r\n @Input() assigndEmployees: any[] = [];\r\n @Input() grossTotal: number;\r\n @Input() totalInvoiceAmount: number;\r\n @Input() totalDeposits: number;\r\n @Input() tipAmt: number = 0;\r\n @Input() displayTipAmt: boolean = true;\r\n @Input() businessInfo: Settings;\r\n @Input() locationData: any;\r\n @Input() customFieldValues: CustomInvoiceFieldValue[] = [];\r\n @Input() paymentData: PaymentPreview = null;\r\n @Input() workOrderData: any = [];\r\n @Input() manualInvoicePayments: any = [];\r\n @Input() customerAddress: string = '';\r\n @Input() customerSig: any = null;\r\n @Input() partialPayment: ManualInvoicePartialPaySetting;\r\n businessLogoUrl: string = 'assets/images/grey-square.png';\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.assigndEmployees = [];\r\n console.log(this.invoiceItems)\r\n }\r\n\r\n getPartialAmountDue(): number {\r\n let amount;\r\n \r\n if (this.partialPayment && this.partialPayment.partialDueType === '%') {\r\n amount = (this.manualInvoice.Balance * this.partialPayment.partialDue) / 100;\r\n } else {\r\n amount = this.partialPayment.partialDue;\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n getL2L3Description(item): boolean {\r\n return item.TaxAmount || item. TaxType || item.ProductCode || item.ItemCommodityCode || item. UnitOfMeasure || item.DiscountAmount || item.TaxTreatment;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n \r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n

\r\n {{ businessInfo.ContactNumber }}\r\n

\r\n

\r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n

\r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Sales Invoice\r\n

\r\n
\r\n
\r\n
\r\n

Bill to:

\r\n

\r\n {{ customerInfo.FirstName }} {{ customerInfo.LastName }}\r\n {{ customerInfo.BusinessName }}\r\n

\r\n
\r\n
\r\n

Customer Address:

\r\n

\r\n \r\n {{ customerAddress }}\r\n

\r\n
\r\n
\r\n

Additional Details:

\r\n

\r\n {{field.fieldName}}\r\n \r\n {{ field.fieldValue && field.fieldValue === 'true' ? 'Yes' : 'No' }}\r\n \r\n {{field.fieldName}}{{ field.fieldValue }}\r\n

\r\n
\r\n
\r\n

Notes:

\r\n

\r\n \r\n {{ manualInvoice.Notes }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Invoice #{{ manualInvoice.InvoiceNumber ? manualInvoice.InvoiceNumber :\r\n '000-000-0000' }}\r\n

\r\n

\r\n Invoice Date\r\n {{ manualInvoice.InvoiceDate | date:'MM/dd/yyyy'}}\r\n

\r\n

\r\n Due date\r\n {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n

\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.ItemName }}\r\n
\r\n
\r\n {{ item.ServiceDescription }}\r\n
\r\n\r\n \r\n
\r\n
\r\n Tax Amount: {{ item.TaxAmount }}\r\n Tax Indicator: {{ item.TaxType }}\r\n Purchase ID: {{ item.ProductCode }}\r\n Commodity Code: {{ item.ItemCommodityCode }}\r\n Unit of Measure: {{ item.UnitOfMeasure }}\r\n Discount: {{ item.DiscountAmount }}\r\n Tax Treatment: {{ item.TaxTreatment }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Item/ServiceUnit CostQuantityIs Tax ExemptLine Total
\r\n $ {{ item.Rate ? item.Rate.toFixed(2) : '0.00' }}\r\n \r\n {{ item.Quantity }}\r\n \r\n {{ item.IsTaxExempt ? 'Yes' : 'No' }}\r\n \r\n $ {{ item.Amount ? item.Amount.toFixed(2) : '0.00' }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n $ {{ manualInvoice.TotalAmount ? manualInvoice.TotalAmount.toFixed(2) :\r\n '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n $ {{ grossTotal ? grossTotal.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n {{ partialPayment.partialDueType === 'USD' ? '$' : '%' }} {{\r\n partialPayment.partialDue ? partialPayment.partialDue.toFixed(2) :\r\n '0.00' }}\r\n

\r\n

-

\r\n
\r\n \r\n \r\n

\r\n $ {{ manualInvoice.TaxableTotal ? manualInvoice.TaxableTotal.toFixed(2)\r\n : '0.00' }}\r\n

\r\n
\r\n \r\n \r\n

\r\n $ {{ manualInvoice.NonTaxableTotal ?\r\n manualInvoice.NonTaxableTotal.toFixed(2) : '0.00' }}\r\n

\r\n \r\n \r\n
\r\n

Adjustments

\r\n
\r\n

0\">\r\n Deposits$ {{ totalDeposits.toFixed(2) }}\r\n

\r\n

\r\n Discount{{ manualInvoice.DiscountType }} {{ manualInvoice.Discount ?\r\n manualInvoice.Discount.toFixed(2) : '0.00' }}\r\n

\r\n

\r\n Tip$ {{ tipAmt.toFixed(2) }}\r\n

\r\n

\r\n {{ manualInvoice.UpchargeName === 'Custom upcharge' ? 'Upcharge' :\r\n manualInvoice.UpchargeName }}\r\n {{ manualInvoice.UpchargeType }} {{ manualInvoice.Upcharge ?\r\n manualInvoice.Upcharge.toFixed(2) : '0.00' }}\r\n

\r\n

\r\n Tax{{ manualInvoice.TaxType }} {{ manualInvoice.Tax ?\r\n manualInvoice.Tax.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n

\r\n $ {{ totalInvoiceAmount ? totalInvoiceAmount.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n {{ manualInvoice.Status || 'Paid' }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n $ {{ manualInvoice.Balance && manualInvoice.Status !== 'Paid' ?\r\n manualInvoice.Balance.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n \r\n
\r\n \r\n

\r\n {{ this.manualInvoice.Status !== \"Partial\" ? (getPartialAmountDue() |\r\n currency) : (0 | currency) }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n {{ this.manualInvoice.Status !== \"Partial\" ? (totalInvoiceAmount |\r\n currency) : (this.manualInvoice.AmountDue | currency) }}\r\n

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{item.transactionId}}\r\n
\r\n
\r\n \r\n {{item.date | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n \r\n {{item?.paymentMethodTypeName || '-none-'}}\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n InvoiceItems,\r\n ManualInvoice,\r\n CustomInvoiceFieldValue,\r\n ManualInvoicePartialPaySetting,\r\n} from '../../models/invoice.model';\r\nimport { Settings } from '../../../shared/models/settings/settings.model';\r\nimport { SafeStyle, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-invoice-template-1',\r\n templateUrl: './invoice-template-1-component.html',\r\n styleUrls: ['./invoice-template-1-component.scss'],\r\n})\r\nexport class InvoiceTemplate1Component implements OnInit {\r\n @Input() invoiceTemplateModel: any = null;\r\n @Input() invoiceItems: InvoiceItems[];\r\n @Input() manualInvoice: ManualInvoice;\r\n @Input() customerInfo: any;\r\n @Input() assigndEmployees: any[] = [];\r\n @Input() grossTotal: number;\r\n @Input() totalInvoiceAmount: number;\r\n @Input() totalDeposits: number;\r\n @Input() tipAmt: number = 0;\r\n @Input() displayTipAmt: boolean = true;\r\n @Input() businessInfo: Settings;\r\n @Input() locationData: any;\r\n @Input() customFieldValues: CustomInvoiceFieldValue[] = [];\r\n @Input() customerAddress: string = '';\r\n @Input() manualInvoicePayments: any = [];\r\n @Input() partialPayment: ManualInvoicePartialPaySetting;\r\n businessLogoUrl: string = 'assets/images/grey-square.png';\r\n public backgroundImg: SafeStyle;\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n this.businessLogoUrl = this.businessInfo.Logo\r\n ? this.businessInfo.Logo\r\n : 'assets/images/grey-square.png';\r\n this.backgroundImg = this.sanitizer.bypassSecurityTrustStyle(\r\n 'url(' + this.businessLogoUrl + ')'\r\n );\r\n }\r\n\r\n getPartialAmountDue(): number {\r\n let amount;\r\n\r\n if (this.partialPayment && this.partialPayment.partialDueType === '%') {\r\n amount =\r\n (this.manualInvoice.Balance * this.partialPayment.partialDue) / 100;\r\n } else {\r\n amount = this.partialPayment.partialDue;\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n getL2L3Description(item): boolean {\r\n return item.TaxAmount || item. TaxType || item.ProductCode || item.ItemCommodityCode || item. UnitOfMeasure || item.DiscountAmount || item.TaxTreatment;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
 
\r\n
 
\r\n \r\n
\r\n
 
\r\n
 
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n

\r\n {{ businessInfo.ContactNumber }}\r\n

\r\n \r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n

Bill to:

\r\n

\r\n {{ customerInfo.FirstName }} {{ customerInfo.LastName }}\r\n {{ customerInfo.BusinessName }}\r\n

\r\n
\r\n
\r\n

Customer Address:

\r\n

\r\n {{ customerAddress }}\r\n

\r\n
\r\n
\r\n

\r\n Invoice #{{ manualInvoice.InvoiceNumber ? manualInvoice.InvoiceNumber :\r\n '000-000-0000' }}\r\n

\r\n

\r\n Invoice Date{{ manualInvoice.InvoiceDate | date:'MM/dd/yyyy'}}\r\n

\r\n

\r\n Due Date{{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n

\r\n \r\n

\r\n {{field.fieldName}}\r\n \r\n \r\n {{ field.fieldValue && field.fieldValue === 'true' ? 'Yes' : 'No' }}\r\n \r\n {{ field.fieldValue }}\r\n

\r\n \r\n
\r\n
\r\n

Notes:

\r\n

\r\n \r\n {{ manualInvoice.Notes }}\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.ItemName }}\r\n
\r\n
\r\n {{ item.ServiceDescription }}\r\n
\r\n\r\n \r\n
\r\n
\r\n Tax Amount: {{ item.TaxAmount }}\r\n Tax Indicator: {{ item.TaxType }}\r\n Purchase ID: {{ item.ProductCode }}\r\n Commodity Code: {{ item.ItemCommodityCode }}\r\n Unit of Measure: {{ item.UnitOfMeasure }}\r\n Discount: {{ item.DiscountAmount }}\r\n Tax Treatment: {{ item.TaxTreatment }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Item/ServiceUnit CostQuantityIs Tax ExemptLine Total
\r\n $ {{ item.Rate ? item.Rate.toFixed(2) : '0.00' }}\r\n \r\n {{ item.Quantity }}\r\n \r\n {{ item.IsTaxExempt ? 'Yes' : 'No' }}\r\n \r\n $ {{ item.Amount ? item.Amount.toFixed(2) : '0.00' }}\r\n
\r\n\r\n
\r\n
\r\n \r\n

\r\n $ {{ manualInvoice.TotalAmount ?\r\n manualInvoice.TotalAmount.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n $ {{ grossTotal ? grossTotal.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n \r\n {{ partialPayment.partialDueType === 'USD' ? '$' : '%' }} {{\r\n partialPayment.partialDue ? partialPayment.partialDue.toFixed(2) :\r\n '0.00' }}\r\n

\r\n

-

\r\n
\r\n
\r\n\r\n
\r\n

Adjustments

\r\n
0\">\r\n \r\n

\r\n $ {{ totalDeposits.toFixed(2) }}\r\n

\r\n
\r\n\r\n
\r\n \r\n

\r\n {{ manualInvoice.DiscountType }} {{ manualInvoice.Discount ?\r\n manualInvoice.Discount.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n $ {{ tipAmt.toFixed(2) }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n {{ manualInvoice.UpchargeType }} {{ manualInvoice.Upcharge ?\r\n manualInvoice.Upcharge.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n {{ manualInvoice.TaxType }} {{ manualInvoice.Tax ?\r\n manualInvoice.Tax.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n \r\n \r\n \r\n {{ (manualInvoice.TaxableTotal | currency) || (0 | currency) }}\r\n

\r\n
\r\n \r\n \r\n \r\n {{ (manualInvoice.NonTaxableTotal | currency) || (0 | currency) }}\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

\r\n $ {{ totalInvoiceAmount ? totalInvoiceAmount.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n $ {{ manualInvoice.Balance && manualInvoice.Status !== 'Paid' ?\r\n manualInvoice.Balance.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (getPartialAmountDue() | currency) : (0 | currency) }}\r\n

\r\n
\r\n
\r\n \r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (totalInvoiceAmount | currency) : (manualInvoice.AmountDue |\r\n currency) }}\r\n

\r\n
\r\n
\r\n
\r\n {{ manualInvoice.Status || 'Paid' }}\r\n
\r\n
\r\n \r\n
\r\n \r\n {{item.transactionId}}\r\n
\r\n
\r\n \r\n {{item.date | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n \r\n {{item?.paymentMethodTypeName || '-none-'}}\r\n
\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n InvoiceItems,\r\n ManualInvoice,\r\n CustomInvoiceFieldValue,\r\n ManualInvoicePartialPaySetting,\r\n} from '../../models/invoice.model';\r\nimport { Settings } from '../../../shared/models/settings/settings.model';\r\nimport { SafeStyle, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-invoice-template-2',\r\n templateUrl: './invoice-template-2-component.html',\r\n styleUrls: ['./invoice-template-2-component.scss'],\r\n})\r\nexport class InvoiceTemplate2Component implements OnInit {\r\n @Input() invoiceTemplateModel: any = null;\r\n @Input() invoiceItems: InvoiceItems[];\r\n @Input() manualInvoice: ManualInvoice;\r\n @Input() customerInfo: any;\r\n @Input() assigndEmployees: any[] = [];\r\n @Input() grossTotal: number;\r\n @Input() totalInvoiceAmount: number;\r\n @Input() totalDeposits: number;\r\n @Input() tipAmt: number = 0;\r\n @Input() displayTipAmt: boolean = true;\r\n @Input() businessInfo: Settings;\r\n @Input() locationData: any;\r\n @Input() customFieldValues: CustomInvoiceFieldValue[] = [];\r\n @Input() customerAddress: string = '';\r\n @Input() manualInvoicePayments: any = [];\r\n @Input() partialPayment: ManualInvoicePartialPaySetting;\r\n businessLogoUrl: string = 'assets/images/grey-square.png';\r\n public backgroundImg: SafeStyle;\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n this.businessLogoUrl = this.businessInfo.Logo\r\n ? this.businessInfo.Logo\r\n : 'assets/images/grey-square.png';\r\n\r\n this.backgroundImg = this.sanitizer.bypassSecurityTrustStyle(\r\n 'url(' + this.businessLogoUrl + ')'\r\n );\r\n }\r\n\r\n getPartialAmountDue(): number {\r\n let amount;\r\n\r\n if (this.partialPayment && this.partialPayment.partialDueType === '%') {\r\n amount =\r\n (this.manualInvoice.Balance * this.partialPayment.partialDue) / 100;\r\n } else {\r\n amount = this.partialPayment.partialDue;\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n getL2L3Description(item): boolean {\r\n return item.TaxAmount || item. TaxType || item.ProductCode || item.ItemCommodityCode || item. UnitOfMeasure || item.DiscountAmount || item.TaxTreatment;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n \r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n

\r\n {{ businessInfo.ContactNumber }}\r\n

\r\n

\r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n

\r\n {{ businessInfo.ContactNumber }}\r\n

\r\n

\r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Invoice #{{ manualInvoice.InvoiceNumber ? manualInvoice.InvoiceNumber :\r\n '000-000-0000' }}\r\n

\r\n

\r\n Invoice Date\r\n {{ manualInvoice.InvoiceDate | date:'MM/dd/yyyy'}}\r\n

\r\n

\r\n Due date\r\n {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n

\r\n
\r\n
\r\n

\r\n Bill to:\r\n {{ customerInfo.FirstName }} {{ customerInfo.LastName }}\r\n {{ customerInfo.BusinessName }}\r\n {{ customerAddress }}\r\n

\r\n

\r\n Invoice Amount$ {{ totalInvoiceAmount ? totalInvoiceAmount.toFixed(2) : '0.00'\r\n }}\r\n

\r\n

\r\n Additional Details\r\n \r\n \r\n \r\n \r\n {{ field.fieldValue && field.fieldValue === 'true' ? 'Yes' : 'No'\r\n }}\r\n \r\n {{ field.fieldValue }}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Partial Amount Due\r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (getPartialAmountDue() | currency) : (0 | currency) }}\r\n \r\n \r\n

\r\n

\r\n \r\n

\r\n Amount Due\r\n \r\n \r\n {{ manualInvoice.Balance && manualInvoice.Status !== 'Paid' ?\r\n (manualInvoice.Balance | currency) : (0 | currency) }}\r\n \r\n
\r\n \r\n {{ manualInvoice.Status || 'Paid' }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Total Amount Due\r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (totalInvoiceAmount | currency) : (manualInvoice.AmountDue |\r\n currency) }}\r\n \r\n \r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.ItemName }}\r\n
\r\n
\r\n {{ item.ServiceDescription }}\r\n
\r\n\r\n \r\n
\r\n
\r\n Tax Amount: {{ item.TaxAmount }}\r\n Tax Indicator: {{ item.TaxType }}\r\n Purchase ID: {{ item.ProductCode }}\r\n Commodity Code: {{ item.ItemCommodityCode }}\r\n Unit of Measure: {{ item.UnitOfMeasure }}\r\n Discount: {{ item.DiscountAmount }}\r\n Tax Treatment: {{ item.TaxTreatment }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Item/ServiceUnit CostQuantityIs Tax ExemptLine Total
\r\n $ {{ item.Rate ? item.Rate.toFixed(2) : '0.00' }}\r\n \r\n {{ item.Quantity }}\r\n \r\n {{ item.IsTaxExempt ? 'Yes' : 'No' }}\r\n \r\n $ {{ item.Amount ? item.Amount.toFixed(2) : '0.00' }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n $ {{ manualInvoice.TotalAmount ? manualInvoice.TotalAmount.toFixed(2) :\r\n '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n $ {{ grossTotal ? grossTotal.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n {{ partialPayment.partialDueType === 'USD' ? '$' : '%' }} {{\r\n partialPayment.partialDue ? partialPayment.partialDue.toFixed(2) :\r\n '0.00' }}\r\n

\r\n

-

\r\n
\r\n \r\n \r\n

\r\n $ {{ manualInvoice.TaxableTotal ? manualInvoice.TaxableTotal.toFixed(2)\r\n : '0.00' }}\r\n

\r\n
\r\n \r\n \r\n

\r\n $ {{ manualInvoice.NonTaxableTotal ?\r\n manualInvoice.NonTaxableTotal.toFixed(2) : '0.00' }}\r\n

\r\n \r\n \r\n
\r\n

Adjustments

\r\n
\r\n

0\">\r\n Deposits{{ totalDeposits ? totalDeposits.toFixed(2) : '0.00' }}\r\n

\r\n

\r\n Discount{{ manualInvoice.DiscountType }} {{ manualInvoice.Discount ?\r\n manualInvoice.Discount.toFixed(2) : '0.00' }}\r\n

\r\n

\r\n Tip$ {{ tipAmt.toFixed(2) }}\r\n

\r\n

\r\n {{ manualInvoice.UpchargeName === 'Custom upcharge' ? 'Upcharge' :\r\n manualInvoice.UpchargeName }}\r\n {{ manualInvoice.UpchargeType }} {{ manualInvoice.Upcharge ?\r\n manualInvoice.Upcharge.toFixed(2) : '0.00' }}\r\n

\r\n

\r\n Tax{{ manualInvoice.TaxType }} {{ manualInvoice.Tax ?\r\n manualInvoice.Tax.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n \r\n
\r\n

\r\n Notes
\r\n {{ manualInvoice.Notes }}\r\n

\r\n
\r\n
\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n InvoiceItems,\r\n ManualInvoice,\r\n CustomInvoiceFieldValue,\r\n ManualInvoicePartialPaySetting,\r\n} from '../../models/invoice.model';\r\nimport { Settings } from '../../../shared/models/settings/settings.model';\r\nimport { SafeStyle, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-invoice-template-3',\r\n templateUrl: './invoice-template-3-component.html',\r\n styleUrls: ['./invoice-template-3-component.scss'],\r\n})\r\nexport class InvoiceTemplate3Component implements OnInit {\r\n @Input() invoiceTemplateModel: any = null;\r\n @Input() invoiceItems: InvoiceItems[];\r\n @Input() manualInvoice: ManualInvoice;\r\n @Input() customerInfo: any;\r\n @Input() assigndEmployees: any[] = [];\r\n @Input() grossTotal: number;\r\n @Input() totalInvoiceAmount: number;\r\n @Input() totalDeposits: number;\r\n @Input() tipAmt: number = 0;\r\n @Input() displayTipAmt: boolean = true;\r\n @Input() businessInfo: Settings;\r\n @Input() locationData: any;\r\n @Input() customFieldValues: CustomInvoiceFieldValue[] = [];\r\n @Input() customerAddress: string = '';\r\n @Input() partialPayment: ManualInvoicePartialPaySetting;\r\n @Input() manualInvoicePayments: any = [];\r\n businessLogoUrl: string = 'assets/images/grey-square.png';\r\n public backgroundImg: SafeStyle;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n this.businessLogoUrl = this.businessInfo.Logo\r\n ? this.businessInfo.Logo\r\n : 'assets/images/grey-square.png';\r\n\r\n this.backgroundImg = this.sanitizer.bypassSecurityTrustStyle(\r\n 'url(' + this.businessLogoUrl + ')'\r\n );\r\n }\r\n\r\n getPartialAmountDue(): number {\r\n let amount;\r\n\r\n if (this.partialPayment && this.partialPayment.partialDueType === '%') {\r\n amount =\r\n (this.manualInvoice.Balance * this.partialPayment.partialDue) / 100;\r\n } else {\r\n amount = this.partialPayment.partialDue;\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n getL2L3Description(item): boolean {\r\n return item.TaxAmount || item. TaxType || item.ProductCode || item.ItemCommodityCode || item. UnitOfMeasure || item.DiscountAmount || item.TaxTreatment;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

{{ businessInfo.BusinessName}}

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n

{{ businessInfo.ContactNumber }}

\r\n

\r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n {{ customerInfo.FirstName }} {{ customerInfo.LastName }}\r\n

\r\n

\r\n {{ customerInfo.BusinessName }}\r\n

\r\n

{{ customerAddress }}

\r\n

{{ customerInfo.EmailAddress }}

\r\n
\r\n
\r\n
\r\n

Amount to pay

\r\n

Pay on or before {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}

\r\n

\r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (totalInvoiceAmount | currency) : (manualInvoice.AmountDue | currency)\r\n }}\r\n
\r\n \r\n {{ manualInvoice.Status || 'Paid' }}\r\n
\r\n

\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n \r\n Invoice # {{ manualInvoice.InvoiceNumber ?\r\n manualInvoice.InvoiceNumber : '000-000-0000' }}\r\n Page 1 of 2\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Location

\r\n {{locationData ? locationData.BranchName : ''}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Invoice Date

\r\n {{ manualInvoice.InvoiceDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Due Date

\r\n {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

Transaction ID

\r\n {{item.transactionId}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Payment Date

\r\n {{item.date | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Payment Method

\r\n {{item?.paymentMethodTypeName || '-none-'}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.ItemName }}\r\n
\r\n
\r\n {{ item.ServiceDescription }}\r\n
\r\n\r\n \r\n
\r\n
\r\n Tax Amount: {{ item.TaxAmount }}\r\n Tax Indicator: {{ item.TaxType }}\r\n Purchase ID: {{ item.ProductCode }}\r\n Commodity Code: {{ item.ItemCommodityCode\r\n }}\r\n Unit of Measure: {{ item.UnitOfMeasure\r\n }}\r\n Discount: {{ item.DiscountAmount }}\r\n Tax Treatment: {{ item.TaxTreatment }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
Item/ServiceUnit CostQuantityLine Total
\r\n $ {{ item.Rate ? item.Rate.toFixed(2) : '0.00' }}\r\n {{ item.Quantity }}\r\n $ {{ item.Amount ? item.Amount.toFixed(2) : '0.00' }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
Additional information about your invoice
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n

{{ manualInvoice.Notes }}

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n

\r\n $ {{ manualInvoice.TotalAmount ?\r\n manualInvoice.TotalAmount.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

$ {{ grossTotal ? grossTotal.toFixed(2) : '0.00' }}

\r\n
\r\n
\r\n \r\n

\r\n {{ partialPayment.partialDueType === 'USD' ? '$' : '%'\r\n }} {{ partialPayment.partialDue ?\r\n partialPayment.partialDue.toFixed(2) : '0.00' }}\r\n

\r\n

-

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

\r\n
\r\n\r\n
\r\n \r\n

\r\n {{ manualInvoice.DiscountType }} {{\r\n manualInvoice.Discount ?\r\n manualInvoice.Discount.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

{{ manualInvoice.TipType }} {{ tipAmt.toFixed(2) }}

\r\n
\r\n
\r\n \r\n

\r\n {{ manualInvoice.UpchargeType }} {{\r\n manualInvoice.Upcharge ?\r\n manualInvoice.Upcharge.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n {{ manualInvoice.TaxType }} {{ manualInvoice.Tax ?\r\n manualInvoice.Tax.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n \r\n \r\n

\r\n $ {{ manualInvoice.TaxableTotal ?\r\n manualInvoice.TaxableTotal.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n \r\n \r\n

\r\n $ {{ manualInvoice.NonTaxableTotal ?\r\n manualInvoice.NonTaxableTotal.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n

\r\n $ {{ totalInvoiceAmount ? totalInvoiceAmount.toFixed(2)\r\n : '0.00' }}\r\n

\r\n
\r\n\r\n \r\n \r\n

\r\n $ {{ manualInvoice.Balance && manualInvoice.Status !==\r\n 'Paid' ? manualInvoice.Balance.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n\r\n \r\n
\r\n \r\n

\r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status)\r\n ? (getPartialAmountDue() | currency) : (0 | currency)\r\n }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status)\r\n ? (totalInvoiceAmount | currency) :\r\n (manualInvoice.AmountDue | currency) }}\r\n

\r\n
\r\n
\r\n\r\n \r\n \r\n Due Date {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
Payment instruction
\r\n

Please proceed to the payment website.

\r\n\r\n
\r\n
\r\n
\r\n

Invoice #

\r\n {{ manualInvoice.InvoiceNumber ?\r\n manualInvoice.InvoiceNumber : '000-000-0000' }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Amount Due

\r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status)\r\n ? (totalInvoiceAmount | currency) :\r\n (manualInvoice.AmountDue | currency) }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n For any concerns, kindly contact us thru email at\r\n {{businessInfo.Email}} or you may call us\r\n {{businessInfo.ContactNumber}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
 
\r\n
\r\n
\r\n

\r\n \r\n Terms and Conditions: Page 2 of 2\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n For any concerns, kindly contact us thru email at\r\n {{businessInfo.Email}} or you may call us\r\n {{businessInfo.ContactNumber}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n RECEIPT
\r\n A receipt can be printed after payment is accepted which may\r\n serve as evidence of payment. If an email address is\r\n provided during the payment process, a receipt will be\r\n emailed to you after the payment is processed.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n CONTACT
\r\n If for any reason you wish to make a change to the payment\r\n after submission, please contact {{\r\n businessInfo?.BusinessName }}, {{\r\n businessInfo?.ContactNumber }} for assistance.\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n InvoiceItems,\r\n ManualInvoice,\r\n CustomInvoiceFieldValue,\r\n ManualInvoicePartialPaySetting,\r\n} from '../../models/invoice.model';\r\nimport { Settings } from '../../../shared/models/settings/settings.model';\r\nimport { SafeStyle, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-invoice-template-4',\r\n templateUrl: './invoice-template-4-component.html',\r\n styleUrls: ['./invoice-template-4-component.scss'],\r\n})\r\nexport class InvoiceTemplate4Component implements OnInit {\r\n @Input() invoiceTemplateModel: any = null;\r\n @Input() invoiceItems: InvoiceItems[];\r\n @Input() manualInvoice: ManualInvoice;\r\n @Input() customerInfo: any;\r\n @Input() assigndEmployees: any[] = [];\r\n @Input() grossTotal: number;\r\n @Input() totalInvoiceAmount: number;\r\n @Input() totalDeposits: number;\r\n @Input() tipAmt: number = 0;\r\n @Input() displayTipAmt: boolean = true;\r\n @Input() businessInfo: Settings;\r\n @Input() locationData: any;\r\n @Input() customFieldValues: CustomInvoiceFieldValue[] = [];\r\n @Input() customerAddress: string = '';\r\n @Input() tcps = [];\r\n @Input() partialPayment: ManualInvoicePartialPaySetting;\r\n @Input() manualInvoicePayments: any = [];\r\n businessLogoUrl: string = 'assets/images/grey-square.png';\r\n public backgroundImg: SafeStyle;\r\n\r\n constructor(public sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n this.businessLogoUrl = this.businessInfo.Logo\r\n ? this.businessInfo.Logo\r\n : 'assets/images/grey-square.png';\r\n this.backgroundImg = this.sanitizer.bypassSecurityTrustStyle(\r\n 'url(' + this.businessLogoUrl + ')'\r\n );\r\n }\r\n\r\n getPartialAmountDue(): number {\r\n let amount;\r\n\r\n if (this.partialPayment && this.partialPayment.partialDueType === '%') {\r\n amount =\r\n (this.manualInvoice.Balance * this.partialPayment.partialDue) / 100;\r\n } else {\r\n amount = this.partialPayment.partialDue;\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n getL2L3Description(item): boolean {\r\n return item.TaxAmount || item. TaxType || item.ProductCode || item.ItemCommodityCode || item. UnitOfMeasure || item.DiscountAmount || item.TaxTreatment;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n \r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n

\r\n {{ businessInfo.ContactNumber }}\r\n

\r\n

\r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{ businessInfo.BusinessName}}\r\n

\r\n

\r\n {{ businessInfo.Address1 }}, {{ businessInfo.City }},\r\n {{businessInfo.StateId}} {{ businessInfo.PostalCode\r\n }}{{businessInfo.CountryCode ? ' ' + businessInfo.CountryCode : ''}}\r\n

\r\n

\r\n {{ businessInfo.ContactNumber }}\r\n

\r\n

\r\n Location : {{locationData ? locationData.BranchName : ''}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

\r\n Invoice #{{ manualInvoice.InvoiceNumber ? manualInvoice.InvoiceNumber :\r\n '000-000-0000' }}\r\n

\r\n

\r\n Invoice Date\r\n {{ manualInvoice.InvoiceDate | date:'MM/dd/yyyy'}}\r\n

\r\n

\r\n Due date\r\n {{ manualInvoice.DueDate | date:'MM/dd/yyyy'}}\r\n

\r\n
\r\n
\r\n

\r\n Bill to:\r\n {{ customerInfo.FirstName }} {{ customerInfo.LastName }}\r\n {{ customerInfo.BusinessName }}\r\n {{ customerAddress }}\r\n

\r\n

\r\n Invoice Amount$ {{ totalInvoiceAmount ? totalInvoiceAmount.toFixed(2) : '0.00'\r\n }}\r\n

\r\n

\r\n Additional Details\r\n \r\n \r\n \r\n \r\n {{ field.fieldValue && field.fieldValue === 'true' ? 'Yes' : 'No'\r\n }}\r\n \r\n {{ field.fieldValue }}\r\n \r\n

\r\n
\r\n
\r\n
\r\n

\r\n \r\n Partial Amount Due\r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (getPartialAmountDue() | currency) : (0 | currency) }}\r\n \r\n \r\n

\r\n

\r\n \r\n

\r\n Amount Due\r\n
\r\n \r\n {{ manualInvoice.Balance && manualInvoice.Status !== 'Paid' ?\r\n (manualInvoice.Balance | currency) : (0 | currency) }}\r\n \r\n
\r\n \r\n {{ manualInvoice.Status || 'Paid' }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Total Amount Due\r\n \r\n {{ ![\"Partial\", \"Paid\"].includes(manualInvoice.Status) ?\r\n (totalInvoiceAmount | currency) : (manualInvoice.AmountDue |\r\n currency) }}\r\n \r\n \r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ item.ItemName }}\r\n
\r\n
\r\n {{ item.ServiceDescription }}\r\n
\r\n\r\n \r\n
\r\n
\r\n Tax Amount: {{ item.TaxAmount }}\r\n Tax Indicator: {{ item.TaxType }}\r\n Purchase ID: {{ item.ProductCode }}\r\n Commodity Code: {{ item.ItemCommodityCode }}\r\n Unit of Measure: {{ item.UnitOfMeasure }}\r\n Discount: {{ item.DiscountAmount }}\r\n Tax Treatment: {{ item.TaxTreatment }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
Item/ServiceUnit CostQuantityLine Total
\r\n $ {{ item.Rate ? item.Rate.toFixed(2) : '0.00' }}\r\n \r\n {{ item.Quantity }}\r\n \r\n $ {{ item.Amount ? item.Amount.toFixed(2) : '0.00' }}\r\n
\r\n
\r\n
\r\n \r\n

\r\n $ {{ manualInvoice.TotalAmount ? manualInvoice.TotalAmount.toFixed(2) :\r\n '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n $ {{ grossTotal ? grossTotal.toFixed(2) : '0.00' }}\r\n

\r\n
\r\n
\r\n \r\n

\r\n {{ partialPayment.partialDueType === 'USD' ? '$' : '%' }} {{\r\n partialPayment.partialDue ? partialPayment.partialDue.toFixed(2) :\r\n '0.00' }}\r\n

\r\n

-

\r\n
\r\n \r\n \r\n

\r\n $ {{ manualInvoice.TaxableTotal ? manualInvoice.TaxableTotal.toFixed(2)\r\n : '0.00' }}\r\n

\r\n
\r\n \r\n \r\n

\r\n $ {{ manualInvoice.NonTaxableTotal ?\r\n manualInvoice.NonTaxableTotal.toFixed(2) : '0.00' }}\r\n

\r\n \r\n \r\n \r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport {\r\n InvoiceItems,\r\n ManualInvoice,\r\n CustomInvoiceFieldValue,\r\n ManualInvoicePartialPaySetting,\r\n} from '../../models/invoice.model';\r\nimport { Settings } from '../../../shared/models/settings/settings.model';\r\nimport { SafeStyle, DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'app-invoice-template-5',\r\n templateUrl: './invoice-template-5-component.html',\r\n styleUrls: ['./invoice-template-5-component.scss'],\r\n})\r\nexport class InvoiceTemplate5Component implements OnInit {\r\n @Input() invoiceTemplateModel: any = null;\r\n @Input() invoiceItems: InvoiceItems[];\r\n @Input() manualInvoice: ManualInvoice;\r\n @Input() customerInfo: any;\r\n @Input() assigndEmployees: any[] = [];\r\n @Input() grossTotal: number;\r\n @Input() totalInvoiceAmount: number;\r\n @Input() totalDeposits: number;\r\n @Input() tipAmt: number = 0;\r\n @Input() displayTipAmt: boolean = true;\r\n @Input() businessInfo: Settings;\r\n @Input() locationData: any;\r\n @Input() customFieldValues: CustomInvoiceFieldValue[] = [];\r\n @Input() customerAddress: string = '';\r\n @Input() partialPayment: ManualInvoicePartialPaySetting;\r\n @Input() manualInvoicePayments: any = [];\r\n businessLogoUrl: string = 'assets/images/grey-square.png';\r\n public backgroundImg: SafeStyle;\r\n\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n this.businessLogoUrl = this.businessInfo.Logo\r\n ? this.businessInfo.Logo\r\n : 'assets/images/grey-square.png';\r\n\r\n this.backgroundImg = this.sanitizer.bypassSecurityTrustStyle(\r\n 'url(' + this.businessLogoUrl + ')'\r\n );\r\n }\r\n\r\n getPartialAmountDue(): number {\r\n let amount;\r\n\r\n if (this.partialPayment && this.partialPayment.partialDueType === '%') {\r\n amount =\r\n (this.manualInvoice.Balance * this.partialPayment.partialDue) / 100;\r\n } else {\r\n amount = this.partialPayment.partialDue;\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n getL2L3Description(item): boolean {\r\n return item.TaxAmount || item. TaxType || item.ProductCode || item.ItemCommodityCode || item. UnitOfMeasure || item.DiscountAmount || item.TaxTreatment;\r\n }\r\n}\r\n","export class EstimateModel {\r\n}\r\n\r\nexport class Estimate {\r\n\t\tId : string;\r\n\t\tEstimateNumber : string;\r\n\t\tCustomerId : number;\r\n\t\tBalance : number;\r\n\t\tEstimateTotalAmount : number;\r\n\t\tDepositAmount : number;\r\n\t\tStatus : string;\r\n\t\tReferenceNumber : string;\r\n\t\tValidityDate : any;\r\n\t\tEstimateDate : any;\r\n\t\tDiscount : number;\r\n\t\tTax : number;\r\n\t\tIsDraft : boolean;\r\n\t\tNotes : string;\r\n\t\tTCPId : number;\r\n\t\tDiscountType : string;\r\n\t\tTaxType : string;\r\n\t\tPartialDueType : string;\r\n\t\tShowTCP : boolean;\r\n\t\tLocationId : number;\r\n\t\tCreatedBy : number;\r\n\t\tCreatedDate : Date;\r\n\t\tUpdatedBy : number;\r\n\t\tUpdatedDate : Date;\r\n\t\tFirstName : string;\r\n\t\tLastName : string;\r\n\t\tBusinessName : string;\r\n\t\tLocationName : string;\r\n\t\tEstimateItems : EstimateItems[];\r\n\t\tCustomer: string;\r\n\t\tSource: string;\r\n\t\tTaxExemptionType: string;\r\n Upcharge: number;\r\n UpchargeType: string;\r\n UpchargeName: string;\r\n DiscountName: string;\r\n TaxName: string;\r\n TaxableTotal: number;\r\n NonTaxableTotal: number;\r\n PartialDue: number;\r\n TCPIds: number[];\r\n}\r\n\r\nexport class EstimateItems {\r\n\tpublic IsFreetext: boolean = false;\r\n\tpublic Id: number;\r\n\tpublic ItemId: number;\r\n\tpublic ItemType: string;\r\n\tpublic EstimateNumber: string;\r\n\tpublic ItemName: string;\r\n\tpublic Quantity: number;\r\n\tpublic Rate: number;\r\n\tpublic Amount: number;\r\n\tpublic ProductTaxCode: string;\r\n}\r\n\r\nexport class UpdateEstimateDetail {\r\n\tpublic EstimateDetail: EstimateItems;\r\n\tpublic Balance: number;\r\n\tpublic TotalAmount: number;\r\n\tpublic UpdatedBy: number;\r\n}\r\n\r\nexport class SendDownloadEstimate {\r\n\tpublic EstimateNumber: string;\r\n\tpublic CustomerName: string;\r\n\tpublic CustomerAddress: string;\r\n\tpublic CustomerEmail: string;\r\n\tpublic BusinessLogo: string;\r\n\tpublic BusinessName: string;\r\n\tpublic BusinessAddress: string;\r\n\tpublic OtherEmailRecipients: string;\r\n}\r\n\r\nexport class EstimateWorkOrder{\r\n\tpublic EstimateNumber: string; \r\n\tpublic GeneratedWorkOrderId: string;\r\n\tpublic StartDateTime: string;\r\n\tpublic EndDateTime: string;\r\n\tpublic AssignedEmployeeId : number;\r\n public AssignedEmployeeName: string;\r\n\tpublic PartialDueType: string;\r\n\tpublic PartialDue: number;\r\n\tpublic CreatedBy: number;\r\n\tpublic CreatedDate: string;\r\n\tpublic UpdatedBy: number;\r\n\tpublic UpdatedDate: string;\r\n\tpublic IsPartiallyPaid: boolean;\r\n}\r\n\r\nexport class CustomEstimateFieldValue {\r\n public fieldId: number = 0;\r\n public id: number = 0;\r\n public fieldName: string = '';\r\n public fieldDataType: number;\r\n public isRequired: boolean = false;\r\n public userId: number;\r\n public fieldValue: string = '';\r\n public saving: any;\r\n public estimateNumber: string;\r\n}\r\n\r\n\r\n","export class EstimateModel {\r\n}\r\n\r\nexport class InvoiceTemplateModel {\r\n\t\tId : number;\r\n TemplateId : number;\r\n Name : string;\r\n AccentColor : string;\r\n FontColor: string;\r\n ImageUrl: string;\r\n Status: number;\r\n UserId: number;\r\n LogoAlignment: string;\r\n\r\n public InvoiceTemplateModel() {\r\n this.Id = 0;\r\n this.Status = 0;\r\n this.LogoAlignment = 'Left';\r\n }\r\n}\r\n\r\n\r\n","import { TransactionSource, SourceComponent } from './payment.model';\r\n\r\nexport class Invoice {\r\n public InvoiceNumber: string;\r\n public Customer: string;\r\n public PaymentTerm: string;\r\n public DueDate: string;\r\n public BalanceDue: number;\r\n public Status: string;\r\n}\r\n\r\nexport class InvoiceModel {}\r\n\r\nexport class LevelDetails {\r\n taxValue?: number;\r\n taxValueType?: string;\r\n taxType?: string;\r\n productCode?: string;\r\n itemCommodityCode?: string;\r\n unitOfMeasure?: string;\r\n discountValue?: number;\r\n discountType?: string;\r\n taxTreatment?: number;\r\n}\r\n\r\nexport class InvoiceItems {\r\n itemCommodityCode?: string;\r\n productCode?: string;\r\n taxAmount?: number;\r\n taxRate?: number;\r\n discountType?: string;\r\n discountAmount?: number;\r\n discountRate?: number;\r\n unitOfMeasure?: string;\r\n taxType?: string;\r\n taxValue?: number;\r\n taxValueType?: string;\r\n discountValue?: number;\r\n commercialLineItemId?: number;\r\n taxTreatment?: number;\r\n constructor(\r\n public IsFreetext?: boolean,\r\n public Id?: number,\r\n public ItemId?: number,\r\n public ItemType?: string,\r\n public ManualInvoiceNumber?: string,\r\n public ItemName?: string,\r\n public Quantity?: number,\r\n public Rate?: number,\r\n public IsTaxExempt?: boolean,\r\n public ServiceDescription?: string,\r\n public ProductTaxCode?: string,\r\n public Amount?: number,\r\n public isCustom?: boolean\r\n ) {}\r\n}\r\nexport interface CommercialData {\r\n id?: number;\r\n customerRefId?: string;\r\n purchaseOrderNumber?: string;\r\n taxType?: string;\r\n taxAmount?: number;\r\n destinationCountryCode?: string;\r\n destinationPostalCode?: string;\r\n discountAmount?: number;\r\n discountTreatment?: number;\r\n dutyAmount?: number;\r\n freightAmount?: number;\r\n freightTaxAmount?: number;\r\n freightTaxRate?: number;\r\n invoiceNumber?: string;\r\n netGrossIndicator?: any;\r\n createdDate?: Date;\r\n shipFromZipPostalCode?: string;\r\n summaryCommodityCode?: string;\r\n customerVATRegistrationNumber?: string;\r\n localTaxRate?: number;\r\n merchantVATRegistrationNumber?: string;\r\n nationalTaxAmount?: number;\r\n commercialLineItems?: CommercialLineItem[];\r\n}\r\n\r\nexport interface CommercialLineItem {\r\n id?: number;\r\n commercialDataId?: number;\r\n itemCommodityCode?: string;\r\n description?: string;\r\n discountAmount?: number;\r\n productCode?: string;\r\n quantity?: number;\r\n taxAmount?: number;\r\n taxRate?: number;\r\n taxTreatment?: string;\r\n totalAmount?: number;\r\n unitCost?: number;\r\n unitOfMeasure?: string;\r\n vatTaxAmount?: any;\r\n vatTaxRate?: number;\r\n additionalTaxType?: string;\r\n debitCreditIndicator?: string;\r\n discountRate?: number;\r\n}\r\nexport class ManualInvoice {\r\n constructor(\r\n public Id?: number,\r\n public InvoiceId?: number,\r\n public InvoiceNumber?: string,\r\n public CustomerId?: number,\r\n public AmountDue?: number,\r\n public DueDate?: string,\r\n public InitialDueDate?: string,\r\n public PartialDue?: number,\r\n public Balance?: number,\r\n public TotalAmount?: number,\r\n public PaymentTermId?: string,\r\n public Status?: string,\r\n public PaidToDate?: number,\r\n public InvoiceDate?: any,\r\n public Discount?: number,\r\n public DiscountType?: string,\r\n public DiscountName?: string,\r\n public Upcharge?: number,\r\n public UpchargeType?: string,\r\n public UpchargeName?: string,\r\n public Tax?: number,\r\n public TaxableTotal?: number,\r\n public NonTaxableTotal?: number,\r\n public TaxType?: string,\r\n public taxName?: string,\r\n public Tip?: number,\r\n public TipType?: string,\r\n public PaymentTerm?: string,\r\n public PaymentTermValue?: number,\r\n public ReferenceInvoiceNumber?: string,\r\n public IsDraft?: boolean,\r\n public Notes?: string,\r\n public TCPId?: number,\r\n public TCPIds?: any,\r\n public InvoiceItems?: InvoiceItems[],\r\n public PartialDueType?: string,\r\n public ShowTCP?: boolean,\r\n public LocationId?: number,\r\n public CreatedBy?: number,\r\n public CreatedDate?: Date,\r\n public UpdatedBy?: number,\r\n public UpdatedDate?: Date,\r\n public LocationName?: string,\r\n public IsRecurringPayment?: boolean,\r\n public IsRecurringInvoice?: boolean,\r\n public UpdatedByUserName?: string,\r\n public CreatedByUserName?: string,\r\n public CreatedDateTZBased?: Date,\r\n public UpdatedDateTZBased?: Date,\r\n public IsManuallyEnteredInvoiceNo?: boolean,\r\n public PurchaseOrderNumber?: string,\r\n public BusinessCustomerContactPersonId?: number,\r\n public TaxExemptionType?: string,\r\n public commercialData?: CommercialData\r\n ) {}\r\n}\r\n\r\nexport class AutomaticInvoice {\r\n comments: string;\r\n createdBy: number;\r\n createdDate: Date;\r\n id: number;\r\n invoiceDate: Date;\r\n invoiceNumber: string;\r\n orderAdjustments: any[];\r\n orderId: string;\r\n orderItems: any[];\r\n orderSubTotal: number;\r\n orderTotal: number;\r\n source: string;\r\n statusId: number;\r\n terminalId: string;\r\n terms: any;\r\n updatedBy: number;\r\n updatedDate: Date;\r\n voidId: any;\r\n}\r\n\r\nexport class UpdateManualInvoiceDetail {\r\n public ManualInvoiceDetail: InvoiceItems;\r\n public Balance: number;\r\n public TotalAmount: number;\r\n public UpdatedBy: number;\r\n}\r\n\r\nexport class SendDownloadInvoice {\r\n public InvoiceNumber: string;\r\n public CustomerName: string;\r\n public CustomerAddress: string;\r\n public CustomerEmail: string;\r\n public BusinessLogo: string;\r\n public BusinessName: string;\r\n public BusinessAddress: string;\r\n public OtherEmailRecipients: string;\r\n}\r\n\r\nexport class SendSMSInvoice {\r\n public invoiceNumber: string;\r\n public businessName: string;\r\n public customerMobileNumber: string;\r\n public transactionType: string;\r\n}\r\n\r\nexport class CreditPayment {\r\n public cardInfo: CardInfo;\r\n\r\n public orderId: string;\r\n public invoiceNumber: string;\r\n public terminalId: string;\r\n public transactionId: string;\r\n public amount: number = 0;\r\n public authAmount: number = 0;\r\n public currency: string = 'USD';\r\n\r\n public gratuity: number = 0;\r\n public timestamp: string;\r\n\r\n public requestMultiUseToken: boolean = false;\r\n\r\n public SecretApiKey: string;\r\n public MID: string;\r\n public customerId: number;\r\n\r\n public billingAddress: CustomerAddress;\r\n public shippingAddress: CustomerAddress;\r\n public Notes: string;\r\n\r\n public TransactionSource: TransactionSource;\r\n public SourceComponent: SourceComponent;\r\n public isPartialPayment: boolean;\r\n\r\n public cardDataSource: string;\r\n public Level: string;\r\n public SendCVV: boolean;\r\n}\r\n//\r\n// export class CreditPaymentOnline {\r\n// public cardInfo: CardInfo;\r\n// public orderId: string;\r\n// public invoiceNumber: string;\r\n// public terminalId: string = \"ONLINE\";\r\n// public transactionId: string = \"0\";\r\n// public amount: number = 0;\r\n// public currency: string = 'USD';\r\n// public gratuity: number = 0;\r\n// public timestamp: string;\r\n// public requestMultiUseToken: boolean = false;\r\n// public SecretApiKey: string;\r\n// public MID: string;\r\n// public customerId: number;\r\n// public billingAddress: CustomerAddress;\r\n// public shippingAddress: [];\r\n// public TransactionSource: TransactionSource;\r\n// public SourceComponent: SourceComponent;\r\n// public orderItems: [];\r\n// public alias: string;\r\n// public productId: number;\r\n// public balanceInquiryType: string = \"FOODSTAMP\";\r\n// public recurringSequence: string = \"First\";\r\n// public serviceUrl: any;\r\n// public mid: any;\r\n// }\r\n\r\nexport class CustomerAddress {\r\n public Id: number;\r\n public City: string;\r\n public Country: string;\r\n public CountryCode: string;\r\n public PostalCode: string;\r\n public Province: string;\r\n public State: string;\r\n public StreetAddress1: string;\r\n public StreetAddress2: string;\r\n public StreetAddress3: string;\r\n}\r\n\r\nexport class PaymentPreview {\r\n public invoiceNumber: string;\r\n public transactionId: string;\r\n public date: string;\r\n public type: string;\r\n public status: string;\r\n public amountPaid: number;\r\n public employeeName: number;\r\n public cardType?: string;\r\n public cardLast4?: string;\r\n}\r\n\r\nexport class CardInfo {\r\n public token: string = '';\r\n public number: number;\r\n public expMonth: number;\r\n public expYear: number;\r\n public cvn: string;\r\n public cardBrandTransactionId: string;\r\n public isCOF: boolean = false;\r\n public cardType: string;\r\n public cardBIN: string;\r\n public cardHolderName: string;\r\n}\r\n\r\nexport class SettingsInvoice {\r\n public generalPaymentTerm: string;\r\n public generalPaymentTermCount: number = 0;\r\n public autoCreateInvoice: boolean = false;\r\n public sendEmailToOwnerOnAccept: boolean = false;\r\n public sendEmailToCreatorOnAccept: boolean = false;\r\n public enableMultipleInvoiceEmailSend: boolean = false;\r\n public defaultValidityDateDays: number = 0;\r\n public requireCustomerSignOrPasswordOnPayment: boolean = false;\r\n public requireCvvVerification: boolean = false;\r\n public userId: number = 0;\r\n}\r\n\r\nexport class SettingsRecurringInvoice {\r\n public defaultScheduleNotificationId: number;\r\n public useSystemReminderEmailContent: boolean;\r\n public reminderEmailContent: string;\r\n public userId: number = 0;\r\n public notificationSchedule: NotificationScheduleOption;\r\n}\r\n\r\nexport class NotificationScheduleOption {\r\n public id: number;\r\n public frequencyType: string;\r\n public frequencyValue: number;\r\n}\r\n\r\nexport class CustomerSettingsInvoice {\r\n public id: number = 0;\r\n public paymentTermCount: number = 0;\r\n public paymentTerm: number = 0;\r\n public customerId: number = 0;\r\n public userId: number = 0;\r\n}\r\n\r\nexport class CustomInvoiceField {\r\n public fieldId: number = 0;\r\n public fieldName: string = '';\r\n public isRequired: boolean = false;\r\n public isActive: boolean = false;\r\n public fieldDataType: number = 167;\r\n public userId: number;\r\n public saving: any;\r\n}\r\n\r\nexport class CustomInvoiceFieldValue {\r\n public fieldId: number = 0;\r\n public id: number = 0;\r\n public fieldName: string = '';\r\n public fieldDataType: number;\r\n public isRequired: boolean = false;\r\n public userId: number;\r\n public fieldValue: string = '';\r\n public saving: any;\r\n public invoiceNumber: string;\r\n public isActive: boolean = false;\r\n}\r\n\r\nexport class ManualInvoicePartialPaySetting {\r\n public id: number = 0;\r\n public invoiceNumber: string;\r\n public partialDueType: string;\r\n public partialDue: number;\r\n public userId: number;\r\n}\r\n\r\nexport class UpdateInvoiceTipModel {\r\n InvoiceNumber: string;\r\n TipAmount: number;\r\n AmountDue: number;\r\n TipType: string;\r\n}\r\n\r\nexport class PaymentWorkflowResponse {\r\n public Transaction: any;\r\n public Card: any;\r\n public CardLast4: string;\r\n public ServiceUrl: string;\r\n public UserId: number;\r\n public LocationId: number;\r\n public Invoice: any;\r\n}\r\n\r\nexport class ManualInvoiceAutoSendSchedule {\r\n public Id: number;\r\n public ManualInvoiceId: number;\r\n public ScheduleDate: Date;\r\n public ScheduleStatus: string;\r\n public SentDate: Date;\r\n public UserId: number;\r\n\r\n public CreatedBy?: number;\r\n public CreatedDate?: Date;\r\n public UpdatedBy?: number;\r\n public UpdatedDate?: Date;\r\n}\r\n\r\nexport class NonCustomerModel {\r\n id: number = 0;\r\n invoiceNumber: string;\r\n receiptEmail: string;\r\n lastName: string;\r\n firstName: string;\r\n createdBy: number = 0;\r\n}\r\n\r\nexport class RecurringPayment {\r\n public Id?: number;\r\n public Status: string = 'Active';\r\n public ManualInvoiceId?: number;\r\n public NextRecurrenceDate?: string;\r\n public Configuration?: RecurringPaymentConfig;\r\n}\r\n\r\nexport class RecurringPaymentConfig {\r\n IsOpenEnded: boolean = false;\r\n AutoSendPaymentRequestOnFail: boolean = false;\r\n RecurringInvoiceOnly: boolean = false;\r\n PaymentStartImmediately: boolean = false;\r\n StartDate: Date;\r\n EndDate: Date;\r\n CustomerCardNumberId: number;\r\n FrequencyRule: string;\r\n RecurringFrequency: RecurringFrequency;\r\n RecurringPaymentId: number;\r\n Id: number;\r\n ReminderFrequencyType: string;\r\n ReminderFrequencyValue: number;\r\n}\r\n\r\nexport class RecurringInvoice {\r\n public Id?: number;\r\n public Status: string = 'Active';\r\n public ManualInvoiceId?: number;\r\n public NextRecurrenceDate?: string;\r\n public Configuration?: RecurringInvoiceConfig;\r\n}\r\n\r\nexport class RecurringInvoiceConfig {\r\n IsOpenEnded: boolean = false;\r\n IsAutoCharge: boolean = false;\r\n RecurringFrequency: RecurringFrequency;\r\n PaymentStartImmediately: boolean = false;\r\n StartDate: Date | string;\r\n EndDate: Date | string;\r\n CustomerCardNumberId: number;\r\n FrequencyRule: string;\r\n RecurringInvoiceId: number;\r\n Id: number;\r\n ReminderFrequencyType: string;\r\n ReminderFrequencyValue: number;\r\n}\r\n\r\nexport class RecurringFrequency {\r\n Id: number;\r\n RecurringInvoiceId: number;\r\n FrequencyType: FrequencyRepeatTypes = FrequencyRepeatTypes.Monthly;\r\n EndType: FrequencyEndType = FrequencyEndType.Never;\r\n Count: number = 2;\r\n Until: Date;\r\n Interval: number = 1;\r\n ByDay: string;\r\n ByDayArray: any[];\r\n ByMonth: number;\r\n ByMonthDay: number;\r\n BySetPos: number = 1;\r\n DayType: string = 'day';\r\n}\r\n\r\nexport class RecurringInvoiceCancellation {\r\n Id: number;\r\n RecurringInvoiceId: number;\r\n ApprovalNotes: string;\r\n Status: string = 'For Approval';\r\n Reason: string;\r\n CancellationReasonId: number;\r\n RecurringInvoiceStatus: string;\r\n NumberOfInvoices: number = 0;\r\n UpdatedBy: number;\r\n}\r\n\r\nexport class RecurringInvoiceSuspension {\r\n public Id: number;\r\n public RecurringInvoiceId: number;\r\n public SuspendedDate: Date;\r\n public SuspensionEndDate: Date;\r\n public Reason: string;\r\n public CreatedBy: number;\r\n public CreatedDate: Date;\r\n public CreatedDateTZBased: Date;\r\n public UpdatedBy: number;\r\n public UpdatedDate: Date;\r\n public UpdatedDateTZBased: Date;\r\n public CreatedByUserName: string;\r\n public UpdatedByUserName: string;\r\n}\r\n\r\nexport enum FrequencyEndType {\r\n Never = 1,\r\n Until = 2,\r\n Count = 3,\r\n}\r\n\r\nexport enum FrequencyRepeatTypes {\r\n Daily = 1,\r\n Weekly = 2,\r\n Monthly = 3,\r\n Yearly = 4,\r\n}\r\n\r\nexport class RecurringInvoiceCancellationReason {\r\n public Id: number;\r\n public Description: string;\r\n public Createdby: number;\r\n public UpdatedBy: string;\r\n}\r\n\r\nexport class RecurringInvoiceTip {\r\n RecurringInvoiceId: number;\r\n Tip: number;\r\n TipType: string;\r\n IsRepeatTipOnSucceedingInvoices: boolean = false;\r\n UpdatedBy: number;\r\n}\r\n\r\nexport class InvoiceAttachment {\r\n id: number;\r\n fileName: string;\r\n fileUrl: string;\r\n invoiceNumber: string;\r\n isDelete: boolean;\r\n createdBy: number;\r\n createdDate: Date;\r\n updatedBy: number;\r\n updatedDate: Date;\r\n}\r\n\r\nexport class SendReceiptInvoice {\r\n TransactionId: string;\r\n PaymentMethod: string;\r\n InvoiceNumber: string;\r\n TransactionAmount: number;\r\n TerminalId: string;\r\n CustomerName: string;\r\n CustomerEmail: string;\r\n CustomerId: number;\r\n CustomerZipCode: string;\r\n CustomerStreetAddress: string;\r\n CustomerCity: string;\r\n CustomerCountry: string;\r\n CustomerState: string;\r\n TransactionDate: Date;\r\n}","import { Component, OnInit, Inject, LOCALE_ID, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { formatDate } from '@angular/common';\r\nimport { InvoiceService } from \"../services/invoice-service.service\";\r\nimport { AlertService } from \"../../core/alert.service\";\r\n\r\n@Component({\r\n selector: 'app-send-multiple-invoice',\r\n templateUrl: './send-multiple-invoice.component.html',\r\n styleUrls: ['./send-multiple-invoice.component.scss']\r\n})\r\nexport class SendMultipleInvoiceComponent implements OnInit {\r\n @Input() customerId: number;\r\n @Input() customerName: string;\r\n\r\n busy: boolean = false;\r\n invoiceDataSource: BehaviorSubject;\r\n invoiceColumns: any[];\r\n private gridApi;\r\n selectedRowsString = '';\r\n\r\n constructor(private modalRef: NgbActiveModal,\r\n private invoiceService: InvoiceService,\r\n private alert: AlertService,\r\n @Inject(LOCALE_ID) private locale: string) {\r\n\r\n this.invoiceDataSource = new BehaviorSubject([]);\r\n this.invoiceColumns = [\r\n {\r\n headerName: 'Invoice Number',\r\n field: 'invoiceNumber',\r\n sortable: true,\r\n filter: true,\r\n width: 300,\r\n cellRenderer: this.sourceRenderer.bind(this),\r\n headerCheckboxSelection: true,\r\n headerCheckboxSelectionFilteredOnly: true,\r\n checkboxSelection: true,\r\n },\r\n {\r\n headerName: 'Payment Term',\r\n field: 'paymentTerm',\r\n sortable: true,\r\n filter: true,\r\n valueGetter: params => {\r\n return `${params.data.paymentTermValue} - ${params.data.paymentTerm}`;\r\n }\r\n },\r\n { headerName: 'Due Date', field: 'dueDate', sortable: true, filter: 'agDateColumnFilter', cellRenderer: this.dateRenderer.bind(this) },\r\n { headerName: 'Status', field: 'status', sortable: true, filter: true, cellRenderer: this.statusRenderer.bind(this) },\r\n { headerName: 'Amount Due', field: 'balance', sortable: true, filter: true, cellRenderer: function(params: any){\r\n return `$ ${(params.data.balance).toFixed(2)} `;\r\n }\r\n },\r\n ];\r\n }\r\n\r\n loadInvoice(){\r\n this.busy = true;\r\n this.invoiceService.getCustomerManualInvoicesByStatus(this.customerId, 'AllActive').subscribe((res:any) => {\r\n if(res) {\r\n this.invoiceDataSource.next(res.result);\r\n }\r\n this.busy = false;\r\n });\r\n }\r\n\r\n onSelectionChanged() {\r\n this.selectedRowsString = '';\r\n\r\n var selectedRows = this.gridApi.getSelectedRows();\r\n var selectedRowStr = '';\r\n selectedRows.forEach(function(selectedRow, index) {\r\n if (index > 0) {\r\n selectedRowStr += ',';\r\n }\r\n selectedRowStr += selectedRow.invoiceNumber;\r\n });\r\n this.selectedRowsString = selectedRowStr;\r\n }\r\n\r\n private dateRenderer(params) {\r\n let data = params.data;\r\n let dueDate = data.dueDate;\r\n if(!dueDate || dueDate === '0001-01-01T00:00:00') {\r\n return 'N / A';\r\n } else {\r\n return formatDate(data.dueDate, 'yyyy-MM-dd', this.locale);\r\n }\r\n }\r\n\r\n private statusRenderer(params){\r\n let statClass = '';\r\n let status = params.data.status;\r\n\r\n if (status === 'New' && params.data.isDraft) {\r\n status = 'Draft'\r\n }\r\n\r\n switch (status) {\r\n case 'New': statClass = 'badge badge-info'\r\n break;\r\n case 'Draft': statClass = 'text-secondary'\r\n break;\r\n case 'Partial':\r\n case 'Partially Paid': statClass = 'badge badge-warning'\r\n break;\r\n case 'Paid':\r\n case 'Fully Paid': statClass = 'badge badge-success'\r\n break;\r\n case 'Voided': statClass = 'badge badge-dark'\r\n break;\r\n case 'Refunded': statClass = 'badge badge-secondary'\r\n break;\r\n case 'Overdue': statClass = 'badge badge-danger'\r\n break;\r\n case 'Viewed':statClass = 'badge badge-viewed'\r\n break;\r\n case 'Sent': statClass = 'badge badge-sent'\r\n break;\r\n }\r\n return `${status}`;\r\n }\r\n\r\n private sourceRenderer(params){\r\n let statClass = '';\r\n let source = params.data.source;\r\n\r\n switch (source) {\r\n case 'Estimate':\r\n statClass = 'invoice-source invoice-source-mi'\r\n break;\r\n case 'Work Order':\r\n statClass = 'invoice-source invoice-source-es'\r\n break;\r\n case 'Manual Invoice':\r\n statClass = 'invoice-source invoice-source-wo'\r\n source = 'MI'\r\n break;\r\n case 'Recurring Invoice':\r\n statClass = 'invoice-source invoice-source-ri'\r\n source = 'RI';\r\n break;\r\n case 'Recurring Payment':\r\n statClass = 'invoice-source invoice-source-rp'\r\n source = 'RP';\r\n break;\r\n }\r\n\r\n return `
${source.substring(0,2)}
${params.data.invoiceNumber}
`;\r\n }\r\n\r\n ngOnInit() {\r\n this.loadInvoice();\r\n }\r\n\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n // this.gridApi.sizeColumnsToFit();\r\n this.gridApi.setDomLayout('autoHeight');\r\n }\r\n\r\n onSend(){\r\n this.busy = true;\r\n this.invoiceService.sendmultipleinvoices(this.selectedRowsString.split(',')).subscribe((res:any) => {\r\n if(res) {\r\n this.alert.alertSuccess({ title: 'Success!', text: 'Invoice has been successfully sent!' });\r\n this.busy = false;\r\n }\r\n this.busy = false;\r\n });\r\n }\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n Select Invoice to Send\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ customerName }}\r\n
\r\n
\r\n
\r\n {{\r\n selectedRowsString\r\n }}\r\n
\r\n
\r\n
\r\n Please tick the checkbox to select the Invoice/s to send.\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n Send\r\n \r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Estimate, EstimateItems, EstimateWorkOrder, SendDownloadEstimate } from '../models/estimate.model';\r\nimport { CustomEstimateFieldValue } from '../models/estimate.model';\r\nimport { InvoiceAttachment } from '../models/invoice.model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EstimateService {\r\n private baseRoute: string;\r\n\r\n private mockEstimates: BehaviorSubject;\r\n private mockEstimateItems: BehaviorSubject;\r\n constructor(private httpClient: HttpClient) {\r\n this.mockEstimates = new BehaviorSubject([\r\n // { Id: '', CustomerId: 0, Balance: 0, DepositAmount: 0, EstimateNumber : '20191205000100001', Customer : 'Wolfgang Paganini', EstimateDate : new Date(), EstimateTotalAmount : 2000, Status : 'Viewed' },\r\n // { Id: '', CustomerId: 0, Balance: 0, DepositAmount: 0, EstimateNumber : '20191205000100002', Customer : 'Johannes Baethoven', EstimateDate : new Date(), EstimateTotalAmount : 0.00, Status : 'Paid' },\r\n // { Id: '', CustomerId: 0, Balance: 0, DepositAmount: 0, EstimateNumber : '20191205000100003', Customer : 'Ray Mendelbach', EstimateDate : new Date(), EstimateTotalAmount : 1250, Status : 'Past Due' },\r\n // { Id: '', CustomerId: 0, Balance: 0, DepositAmount: 0, EstimateNumber : '20191205000100004', Customer : 'Sam Dunn', EstimateDate : new Date(), EstimateTotalAmount : 600, Status : 'Sent' },\r\n // { Id: '', CustomerId: 0, Balance: 0, DepositAmount: 0, EstimateNumber : '20191205000100005', Customer : 'Clay Morrow', EstimateDate : new Date(), EstimateTotalAmount : 550, Status : 'Sent' },\r\n ]);\r\n\r\n this.mockEstimateItems = new BehaviorSubject([\r\n\r\n ])\r\n\r\n }\r\n\r\n\r\n getEstimates(locationId: number, source: string):Observable{\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/getestimates?locationId=${locationId}&source=${source}`);\r\n }\r\n\r\n getEstimate(estimateNumber : string):Observable{\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/getestimatebyestimatenumber/${estimateNumber}`);\r\n }\r\n\r\n deleteEstimateDetail(estimateDetailId : number, updatedBy: number): Observable {\r\n return this.httpClient.delete(`${environment.estimatesAPIRoot}/detail/${estimateDetailId}/delete?updatedBy=${updatedBy}`);\r\n }\r\n\r\n addEstimateDetail(estimateDetail : any): Observable {\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/addestimatedetails`, estimateDetail);\r\n }\r\n\r\n updateEstimateDetail(estimateDetail : any): Observable {\r\n return this.httpClient.put(`${environment.estimatesAPIRoot}/updateestimatedetail`, estimateDetail);\r\n }\r\n\r\n // save manual invoice\r\n saveEstimate(payload : Estimate) : Observable{\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/saveestimate`, payload);\r\n }\r\n\r\n // update manual invoice\r\n updateEstimate(payload : Estimate) : Observable{\r\n return this.httpClient.put(`${environment.estimatesAPIRoot}/updateestimate`, payload);\r\n }\r\n sendEstimate(payload: SendDownloadEstimate): Observable {\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/send`, payload);\r\n }\r\n\r\n getEstimateDetailsByEstimateNumber(estimateNuber: string): Observable{\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/getestimatedetailsbyestimatenumber/${estimateNuber}`);\r\n }\r\n\r\n validateEstimateNumber(estimateNumber: string): Observable {\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/${estimateNumber}/validate`);\r\n }\r\n\r\n generateEstimateNumber(): Observable{\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/generateestimatenumber`);\r\n }\r\n\r\n\r\n getEstimateManualInvoice(estimateNuber: string): Observable{\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/getestimatemanualinvoice/${estimateNuber}`);\r\n }\r\n\r\n addManualInvoice(estimateNumber: string, invoiceNumber: string): Observable {\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/addmanualinvoice/${estimateNumber}/${invoiceNumber}`, null);\r\n }\r\n\r\n deleteEstimate(estimateNumber : string, updatedBy: number): Observable {\r\n return this.httpClient.delete(`${environment.estimatesAPIRoot}/deleteestimate/${estimateNumber}/${updatedBy}`);\r\n }\r\n\r\n upsertEstimateWorkorder(payload : EstimateWorkOrder) : Observable{\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/upsertestimateworkorder`, payload);\r\n }\r\n\r\n getEstimateWorkOrder(estimateNuber: string): Observable{\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/getestimateworkorder/${estimateNuber}`);\r\n }\r\n\r\n getWorkOrder(workOrderId: string): Observable {\r\n return this.httpClient.get(`${environment.serviceworkorderAPIRoot}/main/get/${workOrderId}`);\r\n }\r\n\r\n getEstimateLineItems(estimateNumber: string): Observable {\r\n // return this.httpClient.get(`${this.baseRoute}/getmanualinvoicedetailsbyinvoicenumber/${invoiceNumber}`);\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/getestimatedetailsbyestimatenumber/${estimateNumber}`);\r\n }\r\n\r\n markEstimateAsAccepted(estimateNumber : any): Observable {\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/markasaccepted/${estimateNumber}`, null);\r\n }\r\n\r\n markEstimateAsAcceptedForWorkOrder(estimateNumber : any): Observable {\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/markasacceptedforworkorder/${estimateNumber}`, null);\r\n }\r\n\r\n markEstimateAsViewed(estimateNumber : any): Observable {\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/markasviewed/${estimateNumber}`, null);\r\n }\r\n\r\n getAllCustomFieldValuesByEstimateNumber(estimateNumber: string): Observable {\r\n return this.httpClient.get(`${environment.estimatesAPIRoot}/getallcustomfieldvaluesbyestimatenumber/${estimateNumber}`);\r\n }\r\n\r\n upsertEstimateCustomFieldValues(fields: CustomEstimateFieldValue[]): Observable {\r\n return this.httpClient.post(`${environment.estimatesAPIRoot}/upsertestimatecustomfieldvalues`, fields);\r\n }\r\n\r\n getEstimateDocuments(estimateNumber: any): Observable {\r\n return this.httpClient.get(\r\n `${environment.estimatesAPIRoot}/getestimatedocumentbyestimatenumber/${estimateNumber}`\r\n );\r\n }\r\n\r\n deleteEstimateDocument(\r\n docId: number,\r\n updatedBy: number,\r\n estimateNumber: string\r\n ): Observable {\r\n return this.httpClient.delete(\r\n `${environment.estimatesAPIRoot}/deleteestimatedocument/${docId}/${updatedBy}/${estimateNumber}`\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject, Subject } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n Invoice,\r\n InvoiceItems,\r\n ManualInvoice,\r\n SendDownloadInvoice,\r\n CreditPayment,\r\n SettingsInvoice,\r\n CustomerSettingsInvoice,\r\n CustomInvoiceField,\r\n CustomInvoiceFieldValue,\r\n ManualInvoicePartialPaySetting,\r\n NonCustomerModel,\r\n RecurringInvoiceCancellation,\r\n RecurringInvoiceTip,\r\n InvoiceAttachment,\r\n SendSMSInvoice,\r\n SendReceiptInvoice,\r\n} from '../models/invoice.model';\r\nimport { InvoiceTemplateModel } from '../models/invoice-template.model';\r\nimport { Pagination } from 'src/app/shared/models/pagination.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class InvoiceService {\r\n public baseRoute = '/portal/invoice/manual';\r\n\r\n private mockInvoices: BehaviorSubject;\r\n private mockInvoiceItems: BehaviorSubject;\r\n private _reloadList = new Subject();\r\n private _filterInvoice = new Subject<{source: string, searchText: string}>();\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this.mockInvoices = new BehaviorSubject([\r\n {\r\n InvoiceNumber: '20191205000100001',\r\n Customer: 'Wolfgang Paganini',\r\n PaymentTerm: '24 Months',\r\n DueDate: '12th of the Month',\r\n BalanceDue: 2000,\r\n Status: 'Viewed',\r\n },\r\n {\r\n InvoiceNumber: '20191205000100002',\r\n Customer: 'Johannes Baethoven',\r\n PaymentTerm: 'Full Payment',\r\n DueDate: '11/21/2019',\r\n BalanceDue: 0.0,\r\n Status: 'Paid',\r\n },\r\n {\r\n InvoiceNumber: '20191205000100003',\r\n Customer: 'Ray Mendelbach',\r\n PaymentTerm: '6 Months',\r\n DueDate: '5th of the Month',\r\n BalanceDue: 1250,\r\n Status: 'Past Due',\r\n },\r\n {\r\n InvoiceNumber: '20191205000100004',\r\n Customer: 'Sam Dunn',\r\n PaymentTerm: '5 weeks',\r\n DueDate: '6th of the Month',\r\n BalanceDue: 600,\r\n Status: 'Sent',\r\n },\r\n {\r\n InvoiceNumber: '20191205000100005',\r\n Customer: 'Clay Morrow',\r\n PaymentTerm: '9 Months',\r\n DueDate: '1st of the Month',\r\n BalanceDue: 550,\r\n Status: 'Sent',\r\n },\r\n ]);\r\n\r\n this.mockInvoiceItems = new BehaviorSubject([]);\r\n }\r\n\r\n setFilter(value: {source: string, searchText: string}): void {\r\n this._filterInvoice.next(value);\r\n }\r\n\r\n onFilterChange(): Observable<{source: string, searchText: string}> {\r\n return this._filterInvoice.pipe(share<{source: string, searchText: string}>());\r\n }\r\n\r\n reloadInvoiceList(): void {\r\n this._reloadList.next(true);\r\n }\r\n\r\n onReloadInvoiceList(): Observable {\r\n return this._reloadList.pipe(share());\r\n }\r\n\r\n // InvoiceNumber\r\n getInvoiceNumber(terminalId: string): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/createinvoicenumber/${terminalId}`,\r\n null\r\n );\r\n }\r\n\r\n generateManualInvoiceNumber(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/generatemanualinvoicenumber`\r\n );\r\n }\r\n\r\n // Creater Invoice by OrderId\r\n createInvoice(orderId: string, source: string): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/createinvoicebyorderid/${orderId}/${source}`,\r\n null\r\n );\r\n }\r\n // Creater Invoice by OrderId\r\n updateOrderInvoice(orderId: string, source: string): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/updateinvoicebyorderid/${orderId}/${source}`,\r\n null\r\n );\r\n }\r\n\r\n saveInvoice(\r\n orderId: string,\r\n source: string,\r\n invoiceNumber: string\r\n ): Observable {\r\n if (invoiceNumber) {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/updateinvoicebyorderid/${orderId}/${source}`,\r\n null\r\n );\r\n } else {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/createinvoicebyorderid/${orderId}/${source}`,\r\n null\r\n );\r\n }\r\n }\r\n\r\n // save manual invoice\r\n saveManualInvoice(payload: ManualInvoice): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/savemanualinvoice`,\r\n payload\r\n );\r\n }\r\n\r\n // save manual invoice\r\n saveManualInvoiceNoCustomer(payload: ManualInvoice): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/savemanualinvoicewithoutcustomer`,\r\n payload\r\n );\r\n }\r\n\r\n // update manual invoice\r\n updateManualInvoice(payload: ManualInvoice): Observable {\r\n return this.httpClient.put(\r\n `${environment.invoiceAPIRoot}/updatemanualinvoice`,\r\n payload\r\n );\r\n }\r\n\r\n getManualInvoices(locationId: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getmanualinvoices?locationId=${locationId}`\r\n );\r\n }\r\n\r\n getPagedManualInvoices(payload: Pagination): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/getpagedmanualinvoices?locationId=${payload.locationId}`,\r\n payload\r\n );\r\n }\r\n\r\n getManualInvoicePayments(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getmanualinvoicepayments/${invoiceNumber}`\r\n );\r\n }\r\n\r\n getCustomerManualInvoicesByStatus(\r\n customerId: number,\r\n sendFilter: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getcustomermanualinvoicesbystatus?customerId=${customerId}&sendFilter=${sendFilter}`\r\n );\r\n }\r\n\r\n getManualInvoice(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getmanualinvoice/${invoiceNumber}`\r\n );\r\n }\r\n\r\n getLineItemsByInvoiceId(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getlineitemsbyinvoiceid/${invoiceNumber}`\r\n );\r\n }\r\n\r\n getManualInvoiceDetailsByInvoiceNumber(\r\n invoiceNumber: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getmanualinvoicedetailsbyinvoicenumber/${invoiceNumber}`\r\n );\r\n }\r\n\r\n // PaymentTerms\r\n getPaymentTerms(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getpaymentterms`\r\n );\r\n }\r\n\r\n getRecurringInvoices(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getrecurringmanualinvoices`\r\n );\r\n }\r\n\r\n validateInvoiceNumber(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/${invoiceNumber}/validate`\r\n );\r\n }\r\n\r\n deleteManualInvoiceDetail(\r\n manualInvoiceDetailId: number,\r\n updatedBy: number\r\n ): Observable {\r\n return this.httpClient.delete(\r\n `${environment.invoiceAPIRoot}/detail/${manualInvoiceDetailId}/delete?updatedBy=${updatedBy}`\r\n );\r\n }\r\n\r\n addManualInvoiceDetail(manualInvoiceDetail: any): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/addmanualinvoicedetail`,\r\n manualInvoiceDetail\r\n );\r\n }\r\n\r\n updateManualInvoiceDetail(manualInvoiceDetail: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.invoiceAPIRoot}/updatemanualinvoicedetail`,\r\n manualInvoiceDetail\r\n );\r\n }\r\n\r\n downloadInvoice(payload: SendDownloadInvoice) {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/download`,\r\n payload,\r\n { responseType: 'arraybuffer' }\r\n );\r\n }\r\n\r\n sendInvoice(payload: SendDownloadInvoice): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/send`,\r\n payload\r\n );\r\n }\r\n\r\n sendSMSInvoice(payload: SendSMSInvoice): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/SendInvoiceToSMS`,\r\n payload\r\n );\r\n }\r\n\r\n sendmultipleinvoices(payload: string[]): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/sendmultipleinvoices`,\r\n payload\r\n );\r\n }\r\n\r\n sendMultipleInvoicesByStatus(\r\n customerId: number,\r\n status: string\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/sendmultipleinvoicesbystatus/${customerId}/${status}`,\r\n null\r\n );\r\n }\r\n\r\n //MOCK DATA\r\n getMockInvoices(): Observable {\r\n return this.mockInvoices.asObservable();\r\n }\r\n\r\n getMockInvoiceItems(): Observable {\r\n return this.mockInvoiceItems.asObservable();\r\n }\r\n\r\n addMockInvoiceItem(invoiceItem: InvoiceItems) {\r\n let items = this.mockInvoiceItems.getValue();\r\n items.push(invoiceItem);\r\n this.mockInvoiceItems.next(items);\r\n }\r\n\r\n removeMockInvoiceItem(itemId: number) {\r\n let items = this.mockInvoiceItems.getValue();\r\n let filtered = items.filter((item) => {\r\n return item.ItemId !== itemId;\r\n });\r\n this.mockInvoiceItems.next(filtered);\r\n }\r\n\r\n clearAllMockInvoiceItems() {\r\n this.mockInvoiceItems.next([]);\r\n }\r\n\r\n getPaidInvoiceByInvoiceNumber(invoiceId: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getpaidinvoicebyinvoicenumber/${invoiceId}`\r\n );\r\n }\r\n\r\n getPaidManualInvoiceByInvoiceNumber(invoiceId: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getpaidmanualinvoicebyinvoicenumber/${invoiceId}`\r\n );\r\n }\r\n\r\n getSettingsInvoice(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getsettingsinvoice`\r\n );\r\n }\r\n\r\n savesettingsinvoice(payload: SettingsInvoice): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/savesettingsinvoice`,\r\n payload\r\n );\r\n }\r\n\r\n saveCustomerSettingInvoice(\r\n payload: CustomerSettingsInvoice\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/savecustomersettinginvoice`,\r\n payload\r\n );\r\n }\r\n\r\n deletecustomersettinginvoice(\r\n settingid: number,\r\n updatedBy: number\r\n ): Observable {\r\n return this.httpClient.delete(\r\n `${environment.invoiceAPIRoot}/deletecustomersettinginvoice/${settingid}/delete?updatedBy=${updatedBy}`\r\n );\r\n }\r\n\r\n getallsettingscustomerinvoice(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getallsettingscustomerinvoice`\r\n );\r\n }\r\n\r\n getallcustomerwithinvoicesetting(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getallcustomerwithinvoicesetting`\r\n );\r\n }\r\n\r\n getSettingsCustomerInvoice(customerId: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getcustomersettinginvoice/${customerId}`\r\n );\r\n }\r\n\r\n deleteManualInvoice(\r\n invoiceNumber: string,\r\n updatedBy: number | string\r\n ): Observable {\r\n return this.httpClient.delete(\r\n `${environment.invoiceAPIRoot}/deletemanualinvoice/${invoiceNumber}/${updatedBy}`\r\n );\r\n }\r\n\r\n getManualInvoiceDocuments(invoiceNumber: any): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getmanualinvoicedocumentbyinvoicenumber/${invoiceNumber}`\r\n );\r\n }\r\n\r\n deleteManualInvoiceDocument(\r\n docId: number,\r\n updatedBy: number,\r\n invoiceNumber: string\r\n ): Observable {\r\n return this.httpClient.delete(\r\n `${environment.invoiceAPIRoot}/deletemanualinvoicedocument/${docId}/${updatedBy}/${invoiceNumber}`\r\n );\r\n }\r\n\r\n getInvoiceCustomFields(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getinvoicecustomfields`\r\n );\r\n }\r\n\r\n deleteInvoiceCustomField(\r\n fieldId: number,\r\n updatedBy: number\r\n ): Observable {\r\n return this.httpClient.delete(\r\n `${environment.invoiceAPIRoot}/deleteinvoicecustomfield/${fieldId}/${updatedBy}`\r\n );\r\n }\r\n\r\n upsertInvoiceCustomField(field: CustomInvoiceField): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/upsertinvoicecustomfield`,\r\n field\r\n );\r\n }\r\n\r\n checkExistingCusomtFields(field: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/countinvoicecustomfield/${field}`\r\n );\r\n }\r\n\r\n saveNonCustomerInvoiceDetails(payload: NonCustomerModel): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/createinvoicecustomer`,\r\n payload\r\n );\r\n }\r\n\r\n upsertretailinvoicecustomer(\r\n invoiceNumber: string,\r\n customerId: number\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/upsertretailinvoicecustomer/${invoiceNumber}/${customerId}`,\r\n null\r\n );\r\n }\r\n\r\n getAllCustomFieldValuesByInvoiceNumber(\r\n invoiceNumber: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getallcustomfieldvaluesbyinvoicenumber/${invoiceNumber}`\r\n );\r\n }\r\n\r\n upsertInvoiceCustomFieldValues(\r\n fields: CustomInvoiceFieldValue[]\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/upsertinvoicecustomfieldvalues`,\r\n fields\r\n );\r\n }\r\n\r\n getPartialPaySettingByInvoiceNumber(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getpartialpaysettingbyinvoicenumber/${invoiceNumber}`\r\n );\r\n }\r\n\r\n upsertManualInvoicePartialPaySetting(\r\n payload: ManualInvoicePartialPaySetting\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/upsertmanualinvoicepartialpaysetting`,\r\n payload\r\n );\r\n }\r\n\r\n deleteManualInvoicePartialPaySetting(\r\n invoiceNumber: string,\r\n updatedBy: number\r\n ): Observable {\r\n return this.httpClient.delete(\r\n `${environment.invoiceAPIRoot}/deletemanualinvoicepartialpaysetting/${invoiceNumber}/${updatedBy}`\r\n );\r\n }\r\n\r\n getInvoiceTemplates(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/invoicetemplates`\r\n );\r\n }\r\n\r\n upsertInvoiceTemplate(payload: InvoiceTemplateModel): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/invoicetemplates`,\r\n payload\r\n );\r\n }\r\n\r\n deleteInvoiceTemplate(templateId: number): Observable {\r\n return this.httpClient.delete(\r\n `${environment.invoiceAPIRoot}/invoicetemplates/delete/${templateId}`\r\n );\r\n }\r\n\r\n getInvoiceTemplate(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/invoicetemplate/${id}`\r\n );\r\n }\r\n\r\n uploadInvoiceTemplateImage(payload: any) {\r\n return this.httpClient.post(\r\n environment.invoiceAPIRoot + '/invoicetemplates/upload-image',\r\n payload\r\n );\r\n }\r\n\r\n getInvoiceEmployees(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/employee/getall/${invoiceNumber}`\r\n );\r\n }\r\n\r\n saveInvoiceEmployee(payload: any) {\r\n return this.httpClient.post(\r\n environment.invoiceAPIRoot + '/employee/save',\r\n payload\r\n );\r\n }\r\n\r\n deleteInvoiceEmployee(invoiceNumbe: string, employeeId: number) {\r\n return this.httpClient.delete(\r\n environment.invoiceAPIRoot +\r\n `/employee/delete/${invoiceNumbe}/${employeeId}`\r\n );\r\n }\r\n\r\n uploadCustomersig(payload: any) {\r\n return this.httpClient.post(\r\n environment.invoiceAPIRoot + '/uploadcustomersig',\r\n payload\r\n );\r\n }\r\n\r\n getCustomerSigByInvoiceNumber(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getcustomersigbyinvoicenumber/${invoiceNumber}`\r\n );\r\n }\r\n\r\n upsertManualInvoiceAutoSendSchedule(payload: any) {\r\n return this.httpClient.post(\r\n environment.invoiceAPIRoot + '/upsertmanualinvoiceautosendschedule',\r\n payload\r\n );\r\n }\r\n\r\n getAllScheduledInvoices(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getallscheduledinvoices`\r\n );\r\n }\r\n\r\n deleteScheduledInvoice(id: number, employeeId: number) {\r\n return this.httpClient.delete(\r\n environment.invoiceAPIRoot + `/deletescheduledinvoice/${id}/${employeeId}`\r\n );\r\n }\r\n\r\n getInvoicesByInvoiceNumber(\r\n invoiceId: string,\r\n withLinteItems: boolean\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getinvoicebyinvoicenumber/${invoiceId}`\r\n );\r\n }\r\n\r\n getRetailInvoiceCustomer(invoiceId: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getretailinvoicecustomer/${invoiceId}`\r\n );\r\n }\r\n\r\n getInvoiceLineItems(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getmanualinvoicedetailsbyinvoicenumber/${invoiceNumber}`\r\n );\r\n }\r\n\r\n getActiveInvoiceTemplate(): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/invoicetemplate/active`\r\n );\r\n }\r\n\r\n setRecurringInvoiceCardNumberByInvoiceNumber(\r\n invoiceNumber: string,\r\n cardId: number\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.recurringInvoiceAPIRoot}/setrecurringinvoicecardnumberbyinvoicenumber/${cardId}/${invoiceNumber}`,\r\n null\r\n );\r\n }\r\n\r\n setRecurringInvoiceTipConfiguration(\r\n payload: RecurringInvoiceTip\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.recurringInvoiceAPIRoot}/savetipdetails`,\r\n payload\r\n );\r\n }\r\n\r\n getRecurringInvoiceConfigurationByInvoiceNumber(\r\n invoice: string\r\n ): Observable {\r\n if (invoice.charAt(0) === 'R') {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getconfigurationbychildinvoicenumber/${invoice}`\r\n );\r\n }\r\n\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getconfigurationbyinvoicenumber/${invoice}`\r\n );\r\n }\r\n\r\n getRecurringInvoiceById(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getrecurringinvoiceid/${id}`\r\n );\r\n }\r\n\r\n getRecurringInvoiceCancellationReasons(): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getcancellationreasons`\r\n );\r\n }\r\n\r\n getRecurringInvoicesByRecurringId(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getinvoicesbyrecurringinvoiceid/${id}`\r\n );\r\n }\r\n\r\n upsertRecurringInvoiceCancellation(\r\n payload: RecurringInvoiceCancellation\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.recurringInvoiceAPIRoot}/upsertrecurringinvoicecancellation`,\r\n payload\r\n );\r\n }\r\n\r\n getManualInvoicesByInvoiceNumbers(\r\n invoiceNumbers: string[]\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/getmanualinvoicesbyinvoicenumbers`,\r\n invoiceNumbers\r\n );\r\n }\r\n\r\n markAsViewed(invoiceNumber: any): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/markasviewed/${invoiceNumber}`,\r\n null\r\n );\r\n }\r\n\r\n getTipByInvoiceNumber(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.tipAPIRoot}/getbyinvoicenumber/${invoiceNumber}`\r\n );\r\n }\r\n\r\n updateInvoiceTip(payload: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.invoiceAPIRoot}/updatetip`,\r\n payload\r\n );\r\n }\r\n\r\n getAllInvoiceNotesByInvoiceNumber(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getallinvoicenote/${invoiceNumber}`\r\n );\r\n }\r\n\r\n getInvoiceNote(noteId: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.invoiceAPIRoot}/getinvoicenotebyid/${noteId}`\r\n );\r\n }\r\n\r\n saveInvoiceNote(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/insertinvoicenote`,\r\n payload\r\n );\r\n }\r\n\r\n updateInvoiceNote(payload: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.invoiceAPIRoot}/updateinvoicenote`,\r\n payload\r\n );\r\n }\r\n\r\n deleteInvoiceNote(noteId: number): Observable {\r\n return this.httpClient.delete(\r\n `${environment.invoiceAPIRoot}/deleteInvoiceNote/${noteId}`\r\n );\r\n }\r\n\r\n sendReceipt(payload: SendReceiptInvoice): Observable{\r\n return this.httpClient.post(\r\n `${environment.invoiceAPIRoot}/sendreceipt`,\r\n payload\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport {\r\n RecurringInvoice,\r\n RecurringInvoiceCancellationReason,\r\n RecurringInvoiceTip,\r\n SettingsRecurringInvoice,\r\n} from '../models/invoice.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RecurringInvoiceService {\r\n constructor(private httpClient: HttpClient) {}\r\n saveRecurringInvoice(payload: RecurringInvoice): Observable {\r\n return this.httpClient.post(\r\n `${environment.recurringInvoiceAPIRoot}/saverecurringinvoice`,\r\n payload\r\n );\r\n }\r\n\r\n getRecurringInvoiceConfigurationByInvoiceNumber(\r\n invoice: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getconfigurationbyinvoicenumber/${invoice}`\r\n );\r\n }\r\n\r\n getRecurringInvoiceConfigurationByChildInvoiceNumber(\r\n invoice: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getconfigurationbychildinvoicenumber/${invoice}`\r\n );\r\n }\r\n\r\n getAllRecurringInvoice(locationId: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getallrecurringinvoices?locationId=${locationId}`\r\n );\r\n }\r\n\r\n getRecurringInvoiceById(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getrecurringinvoiceid/${id}`\r\n );\r\n }\r\n\r\n getRecurringInvoicesByRecurringId(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getinvoicesbyrecurringinvoiceid/${id}`\r\n );\r\n }\r\n\r\n deleteRecurringInvoicesByRecurringId(\r\n id: number,\r\n updatedBy: number\r\n ): Observable {\r\n return this.httpClient.delete(\r\n `${environment.recurringInvoiceAPIRoot}/detail/${id}/delete/${updatedBy}`\r\n );\r\n }\r\n\r\n archive(payload: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.recurringInvoiceAPIRoot}/archive`,\r\n payload\r\n );\r\n }\r\n\r\n suspend(payload: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.recurringInvoiceAPIRoot}/suspend`,\r\n payload\r\n );\r\n }\r\n\r\n activate(payload: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.recurringInvoiceAPIRoot}/activate`,\r\n payload\r\n );\r\n }\r\n\r\n pause(payload: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.recurringInvoiceAPIRoot}/pause`,\r\n payload\r\n );\r\n }\r\n\r\n resume(payload: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.recurringInvoiceAPIRoot}/resume`,\r\n payload\r\n );\r\n }\r\n\r\n setRecurringInvoiceTipConfiguration(\r\n payload: RecurringInvoiceTip\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.recurringInvoiceAPIRoot}/savetipdetails`,\r\n payload\r\n );\r\n }\r\n\r\n getSuspensionsByRecurringId(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getsuspensionsbyrecurringinvoiceid/${id}`\r\n );\r\n }\r\n\r\n getRecurringInvoiceCancellations(): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getrecurringinvoicecancellations`\r\n );\r\n }\r\n\r\n approveCancellationRequest(payload: any): Observable {\r\n return this.httpClient.put(\r\n `${environment.recurringInvoiceAPIRoot}/approvecancellationrequest`,\r\n payload\r\n );\r\n }\r\n\r\n getAllCancellationsForApproval(): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getcancellationsforapproval`\r\n );\r\n }\r\n\r\n getCancellationReasons(): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getcancellationreasons`\r\n );\r\n }\r\n\r\n upsertRecurringInvoiceCancellationReason(\r\n payload: RecurringInvoiceCancellationReason\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.recurringInvoiceAPIRoot}/upsertrecurringinvoicecancellationreason`,\r\n payload\r\n );\r\n }\r\n\r\n deleteCancellationReason(id: number, deletedBy: number): Observable {\r\n return this.httpClient.delete(\r\n `${environment.recurringInvoiceAPIRoot}/cancellationreason/delete/${id}/${deletedBy}`\r\n );\r\n }\r\n\r\n getUnpaidManualInvoices(recurringInvoicePaymentId: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getunpaidmanualinvoices/${recurringInvoicePaymentId}`\r\n );\r\n }\r\n\r\n getSettings(): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getsettings`\r\n );\r\n }\r\n\r\n updateSettingsRecurringInvoice(\r\n payload: SettingsRecurringInvoice\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${environment.recurringInvoiceAPIRoot}/updatesettings`,\r\n payload\r\n );\r\n }\r\n\r\n getRecurringPaymentFormDetails(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/${id}/details`\r\n );\r\n }\r\n\r\n getRecurringPaymentFormChildInvoices(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getchildinvoices/${id}`\r\n );\r\n }\r\n\r\n getRecurringPaymentConfigByInvoiceNumber(\r\n invoiceNumber: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getconfigurationbyinvoicenumber/${invoiceNumber}`\r\n );\r\n }\r\n\r\n getRecurringPaymentConfigById(id: number): Observable {\r\n return this.httpClient.get(\r\n `${environment.recurringInvoiceAPIRoot}/getconfigurationbyrecurringinvoiceid/${id}`\r\n );\r\n }\r\n}\r\n","\r\nimport * as moment from 'moment';\r\nimport { FrequencyRepeatTypes, FrequencyEndType } from './models/invoice.model';\r\n\r\nclass RecurringFrequency {\r\n id: number;\r\n recurringInvoiceId: number;\r\n frequencyType: FrequencyRepeatTypes = FrequencyRepeatTypes.Monthly;\r\n endType: FrequencyEndType = FrequencyEndType.Never;\r\n count: number = 0;\r\n until: Date = null;\r\n interval: number = 1;\r\n byDay: string= null;\r\n byDayArray: any[];\r\n byMonth: number = 0;\r\n byMonthDay: number = 0;\r\n bySetPos: number = 1;\r\n dayType: string = 'day';\r\n}\r\n\r\nexport function getFrequencyText(frequencyData): string {\r\n let recurringTextPieces: string[] = [];\r\n let daysOfTheWeek: string[] = [];\r\n daysOfTheWeek['SU'] = 'Sunday'\r\n daysOfTheWeek['MO'] = 'Monday'\r\n daysOfTheWeek['TU'] = 'Tuesday'\r\n daysOfTheWeek['WE'] = 'Wednesday'\r\n daysOfTheWeek['TH'] = 'Thursday'\r\n daysOfTheWeek['FR'] = 'Friday'\r\n daysOfTheWeek['SA'] = 'Saturday'\r\n\r\n const months: string[] = ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n const position: string[] = ['', 'First', 'Second', 'Third', 'Fourth', 'Last'];\r\n\r\n switch (frequencyData.frequencyType) {\r\n case FrequencyRepeatTypes.Daily:\r\n if (frequencyData.interval > 1) {\r\n recurringTextPieces.push(`Every ${frequencyData.interval} days`);\r\n } else {\r\n recurringTextPieces.push('Daily');\r\n }\r\n break;\r\n case FrequencyRepeatTypes.Weekly:\r\n let selectedDays: string[] = [];\r\n if (frequencyData.interval > 1) {\r\n recurringTextPieces.push(`Every ${frequencyData.interval} weeks on`);\r\n } else {\r\n recurringTextPieces.push('Weekly on');\r\n }\r\n\r\n Object.keys(daysOfTheWeek).map((index) => {\r\n if (frequencyData.byDay.split(',').indexOf(index) !== -1) {\r\n selectedDays.push(daysOfTheWeek[index]);\r\n }\r\n });\r\n\r\n recurringTextPieces.push(selectedDays.join(', '));\r\n\r\n break;\r\n case FrequencyRepeatTypes.Monthly:\r\n if (frequencyData.interval > 1) {\r\n recurringTextPieces.push(`Every ${frequencyData.interval} months,`);\r\n } else {\r\n recurringTextPieces.push('Monthly,');\r\n }\r\n\r\n if (frequencyData.byMonthDay) {\r\n recurringTextPieces.push(`on day ${frequencyData.byMonthDay}`);\r\n } else {\r\n recurringTextPieces.push(`on ${position[frequencyData.bySetPos]} ${daysOfTheWeek[frequencyData.byDay]}`);\r\n }\r\n break;\r\n case FrequencyRepeatTypes.Yearly:\r\n if (frequencyData.interval > 1) {\r\n recurringTextPieces.push(`Every ${frequencyData.interval} years,`);\r\n } else {\r\n recurringTextPieces.push('Yearly,');\r\n }\r\n\r\n if (frequencyData.byMonthDay) {\r\n recurringTextPieces.push(`on day ${frequencyData.byMonthDay}`);\r\n } else {\r\n recurringTextPieces.push(`on ${position[frequencyData.bySetPos]} ${daysOfTheWeek[frequencyData.byDay]}`);\r\n }\r\n\r\n recurringTextPieces.push(`of ${months[frequencyData.byMonth]}`);\r\n break;\r\n }\r\n\r\n return recurringTextPieces.join(' ');\r\n}\r\n\r\nexport function getEndText(frequencyData): string {\r\n let endDateString: string = \"Never\";\r\n\r\n if (frequencyData.count) {\r\n endDateString = `Count ${frequencyData.count}`;\r\n } else if (frequencyData.until) {\r\n endDateString = `Until ${moment(frequencyData.until).format('MM/DD/YYYY')}`;\r\n }\r\n\r\n return endDateString;\r\n}\r\n\r\nexport function mapFrequencyRule(frequency: any): any {\r\n let recurringFrequency: RecurringFrequency = new RecurringFrequency();\r\n const frequencyData = frequency.split(';');\r\n\r\n frequencyData.forEach(data => {\r\n if (data) {\r\n const item = data.split('=');\r\n item[0] = item[0].toLowerCase();\r\n\r\n switch(item[0]) {\r\n case 'freq':\r\n item[0] = 'frequencyType';\r\n item[1] = FrequencyRepeatTypes[item[1].charAt(0) + item[1].slice(1).toLowerCase()];\r\n item[1] = parseInt(item[1]);\r\n break;\r\n case 'bymonth':\r\n item[0] = 'byMonth';\r\n item[1] = parseInt(item[1]);\r\n break;\r\n case 'bymonthday':\r\n item[0] = 'byMonthDay';\r\n item[1] = parseInt(item[1]);\r\n break;\r\n case 'bysetpos':\r\n item[0] = 'bySetPos';\r\n item[1] = parseInt(item[1]);\r\n break;\r\n case 'byday':\r\n item[0] = 'byDay';\r\n break;\r\n }\r\n\r\n recurringFrequency[item[0]] = item[1];\r\n }\r\n });\r\n\r\n return recurringFrequency;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport {\r\n CreditPayment,\r\n PaymentWorkflowResponse,\r\n} from '../../shared/models/invoice/invoice.model';\r\nimport { TransactionSource } from '../../shared/models/invoice/payment.model';\r\nimport { SendReceipt } from '../../shared/models/invoice/cash-payment.model';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n }),\r\n};\r\n\r\nconst httpOptionsDownload = {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n params: null,\r\n reportProgress: true,\r\n responseType: 'arraybuffer',\r\n withCredentials: false,\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CreditPaymentService {\r\n private baseRoute: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this.baseRoute = environment.paymentAPIRoot;\r\n }\r\n\r\n creditCharge(\r\n payload: CreditPayment,\r\n userId: string,\r\n locationId: string,\r\n branchName: string\r\n ): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/charge?userId=${userId}&locationId=${locationId}&branchName=${branchName}`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditChargeForm(\r\n payload: CreditPayment,\r\n userId: string,\r\n locationId: string,\r\n branchName: string\r\n ): Observable {\r\n payload.TransactionSource = TransactionSource.Online;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/charge?userId=${userId}&locationId=${locationId}&branchName=${branchName}`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditAuthorize(payload: CreditPayment): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/authorize`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditVerify(payload: CreditPayment): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/verify`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditVerifyForm(payload: CreditPayment): Observable {\r\n payload.TransactionSource = TransactionSource.Online;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/verify`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditBalanceInquiry(payload: CreditPayment): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/balanceinquiry`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditRefund(payload: CreditPayment): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/refund`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditReverse(payload: CreditPayment): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/reverse`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditVoid(payload: CreditPayment): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/void`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n getCardType(cardNumber: string): Observable {\r\n return this.httpClient.get(`https://lookup.binlist.net/${cardNumber}`);\r\n }\r\n\r\n /*For user zero*/\r\n txncreditCharge(\r\n payload: CreditPayment,\r\n userId: string,\r\n locationId: string,\r\n branchName: string,\r\n isUserZero: boolean\r\n ): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credittransaction/charge?userId=${userId}&locationId=${locationId}&branchName=${branchName}&isUserZero=${isUserZero}`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n txncreditAuthorize(\r\n payload: CreditPayment,\r\n isUserZero: boolean\r\n ): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credittransaction/authorize?isUserZero=${isUserZero}`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n txncreditVerify(\r\n payload: CreditPayment,\r\n isUserZero: boolean\r\n ): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credittransaction/verify?isUserZero=${isUserZero}`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n txncreditBalanceInquiry(\r\n payload: CreditPayment,\r\n isUserZero: boolean\r\n ): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credittransaction/balanceinquiry?isUserZero=${isUserZero}`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n txncreditRefund(\r\n payload: CreditPayment,\r\n isUserZero: boolean\r\n ): Observable {\r\n // ?isUserZero=${isUserZero}\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/refund`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n txncreditReverse(payload: any, isUserZero: boolean): Observable {\r\n // ?isUserZero=${isUserZero}\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/reverse`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n globalReverse(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/globalreverse`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n globalRefnud(payload: any): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/globalrefund`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n txncreditVoid(payload: CreditPayment, isUserZero: boolean): Observable {\r\n payload.TransactionSource = TransactionSource.Merchant;\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credittransaction/void?isUserZero=${isUserZero}`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n creditChargeOnly(\r\n payload: CreditPayment,\r\n userId: string,\r\n locationId: string,\r\n branchName: string\r\n ): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/chargeonly?userId=${userId}&locationId=${locationId}&branchName=${branchName}`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n addAuditTrail(payload: PaymentWorkflowResponse): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/addaudittrail`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n sendReceipt(payload: PaymentWorkflowResponse): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/sendreceipt`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n processTip(payload: PaymentWorkflowResponse): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/credit/processtip`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n getCashPaymentByInvoiceNumber(invoiceNumber: string): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/api/CashPayment/invoice/${invoiceNumber}`\r\n );\r\n }\r\n sendFormReceipt(payload: SendReceipt): Observable {\r\n return this.httpClient.post(\r\n `${this.baseRoute}/api/CashPayment/receipt/send`,\r\n payload,\r\n httpOptions\r\n );\r\n }\r\n\r\n generateManifest(): Observable {\r\n return this.httpClient.get(\r\n `${this.baseRoute}/api/credit/generatemanifest`\r\n );\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { distinctUntilChanged, debounceTime, map } from 'rxjs/operators';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-customer-lookup-ag-grid-control',\r\n templateUrl: './customer-lookup-ag-grid-control.component.html',\r\n styleUrls: ['./customer-lookup-ag-grid-control.component.scss'],\r\n})\r\nexport class CustomerLookupAgGridControlComponent\r\n implements ICellRendererAngularComp, OnInit\r\n{\r\n selectedItem: any;\r\n items: any[];\r\n public value: any;\r\n\r\n public params: any;\r\n public searchFunc: any;\r\n public formatterFunc: any;\r\n\r\n public itemTemplate: any;\r\n itemBusy: boolean = false;\r\n\r\n constructor() {}\r\n agInit(params) {\r\n this.params = params;\r\n this.items = params.items;\r\n }\r\n\r\n refresh(params: any): boolean {\r\n return true;\r\n }\r\n\r\n getValue() {\r\n return this.selectedItem;\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n onItemSelect(r) {\r\n this.selectedItem = r;\r\n }\r\n\r\n search = (text$: Observable) =>\r\n text$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n map((term) =>\r\n term === ''\r\n ? this.items\r\n : this.items.filter(\r\n (v) =>\r\n (v.CustomerTypeId == 2\r\n ? v.BusinessName\r\n : v.FirstName + ' ' + v.LastName\r\n )\r\n .toLowerCase()\r\n .indexOf(term.toLowerCase()) > -1\r\n )\r\n )\r\n );\r\n formatter = (x: {\r\n BusinessName: string;\r\n FirstName: string;\r\n LastName: string;\r\n CustomerTypeId: number;\r\n }) =>\r\n x.CustomerTypeId == 2 ? x.BusinessName : x.FirstName + ' ' + x.LastName;\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Observable } from 'rxjs';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\r\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-item-lookup-ag-grid-control',\r\n templateUrl: './item-lookup-ag-grid-control.component.html',\r\n styleUrls: ['./item-lookup-ag-grid-control.component.scss'],\r\n})\r\nexport class ItemLookupAgGridControlComponent\r\n implements ICellRendererAngularComp, OnInit\r\n{\r\n selectedItem: any;\r\n items: any[];\r\n public value: any;\r\n\r\n public params: any;\r\n public searchFunc: any;\r\n public formatterFunc: any;\r\n\r\n public itemTemplate: any;\r\n itemBusy: boolean = false;\r\n\r\n constructor() {}\r\n agInit(params) {\r\n this.params = params;\r\n this.items = params.items;\r\n }\r\n\r\n refresh(params: any): boolean {\r\n return true;\r\n }\r\n\r\n getValue() {\r\n return this.selectedItem;\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n onItemSelect(r) {\r\n this.selectedItem = r;\r\n }\r\n\r\n search = (text$: Observable) =>\r\n text$.pipe(\r\n debounceTime(200),\r\n distinctUntilChanged(),\r\n map((term) =>\r\n term === ''\r\n ? this.items\r\n : this.items.filter(\r\n (v) =>\r\n v.Name.toLowerCase().indexOf(term.toLowerCase()) > -1 ||\r\n (v.Barcode ? v.Barcode : '')\r\n .toLowerCase()\r\n .indexOf(term.toLowerCase()) > -1\r\n )\r\n )\r\n );\r\n formatter = (x: { Name: string }) => x.Name;\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n OnChanges,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { createMask } from '@ngneat/input-mask';\r\n\r\n@Component({\r\n selector: 'app-amount-toggle',\r\n templateUrl: './amount-toggle.component.html',\r\n styleUrls: ['./amount-toggle.component.scss'],\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class AmountToggleComponent implements OnInit, OnChanges {\r\n @Input() amount: any;\r\n @Input() name = '';\r\n @Input() isPercentage = false;\r\n @Input() isValid = true;\r\n @Input() fullWidth = false;\r\n @Input() label = '';\r\n @Input() required = false;\r\n @Input() disabled = false;\r\n @Input() placeholder = '0.00';\r\n @Output() amountChange = new EventEmitter();\r\n @Output() changed = new EventEmitter();\r\n @Output() typedChanged = new EventEmitter();\r\n\r\n value = '';\r\n currencyInputMask = createMask({\r\n alias: 'numeric',\r\n groupSeparator: ',',\r\n digits: 2,\r\n digitsOptional: false,\r\n prefix: '',\r\n placeholder: '0',\r\n numericInput: true,\r\n rightAlign: false,\r\n allowMinus: false,\r\n });\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.value = this.amount;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.amount) {\r\n this.value = changes.amount.currentValue;\r\n }\r\n }\r\n\r\n onChange(value): void {\r\n this.value = value;\r\n this.amountChange.emit(this.toNumber(value));\r\n }\r\n\r\n toNumber(value): number {\r\n return +(value ?? '').split(',').join('') ?? 0;\r\n }\r\n}\r\n","\r\n {{ label }}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-android-mobile-url',\r\n templateUrl: './android-mobile-url.component.html',\r\n styleUrls: ['./android-mobile-url.component.scss']\r\n})\r\nexport class AndroidMobileUrlComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n Google Play\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{title}}

\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{col.headerName}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n PAGE {{currentPage + 1}} of \t{{totalPages}}\r\n \r\n \r\n
\r\n
\r\n","declare var $: any;\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'cj-grid',\r\n templateUrl: './cj-grid.component.html',\r\n styleUrls: []\r\n})\r\nexport class CJGridComponent implements OnInit {\r\n\r\n @Input() columns: any[];\r\n @Input() buttons: any[];\r\n @Input() apiUrl: string;\r\n @Input() primaryKey: string;\r\n @Input() pageSize: number = 0;\r\n @Input() title: string = '';\r\n @Input() isExternalFilterPresent: boolean = false;\r\n @Input() preDefinedDataSource: any[] = [];\r\n @Input() pinnedBottomRowData: any[];\r\n @Input('doesExternalFilterPass') doesExternalFilterPass: (row: any) => any;\r\n\r\n busy: boolean = true;\r\n rows: any[] = [];\r\n dataSource: any[] = [];\r\n apiData: any[];\r\n totalPages: number = 0;\r\n currentPage: number = 0;\r\n searchText: string = '';\r\n searchTimeout: number = 0;\r\n public isLoading: boolean = false;\r\n constructor(\r\n private httpClient: HttpClient) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.loadData();\r\n }\r\n\r\n public loadData() {\r\n this.busy = true;\r\n this.totalPages = 0;\r\n this.currentPage = 0;\r\n this.dataSource = [];\r\n this.rows = [];\r\n\r\n this.getData().subscribe((res: any) => {\r\n if (res) {\r\n this.apiData = res;\r\n if (res.length < this.pageSize) {\r\n this.totalPages = 1;\r\n }\r\n else {\r\n this.totalPages = Math.floor(res.length / this.pageSize);\r\n if (res.length % this.pageSize > 0) {\r\n this.totalPages += 1;\r\n }\r\n }\r\n\r\n for (var v = 0; v < res.length; v++) {\r\n let row = [];\r\n for (var p = 0; p < this.columns.length; p++) {\r\n if (this.columns[p].cellRenderer) {\r\n let param = { data: res[v][this.columns[p].field], key: res[v][this.primaryKey] };\r\n var s = this.columns[p].cellRenderer(param);\r\n if (typeof s === 'object') {\r\n row.push(s.innerHTML);\r\n } else {\r\n row.push(s);\r\n }\r\n }\r\n else {\r\n if (this.columns[p].field) {\r\n if (this.columns[p].fieldType) {\r\n var fieldValue = '';\r\n switch (this.columns[p].fieldType) {\r\n case 'currency':\r\n fieldValue = '$' + res[v][this.columns[p].field];\r\n break;\r\n default:\r\n fieldValue = res[v][this.columns[p].field];\r\n break;\r\n }\r\n row.push(fieldValue);\r\n }\r\n else {\r\n row.push(res[v][this.columns[p].field])\r\n }\r\n\r\n }\r\n else {\r\n if (this.columns[p].actionRenderer) {\r\n let param = { data: res[v][this.primaryKey] };\r\n let paramDetails = res[v];\r\n var s = this.columns[p].actionRenderer(param, paramDetails);\r\n row.push(s.innerHTML);\r\n }\r\n }\r\n }\r\n }\r\n this.dataSource.push(row);\r\n }\r\n\r\n let pagedDs = this.pageDataSource(this.dataSource, this.pageSize);\r\n this.rows = pagedDs[0];\r\n\r\n }\r\n this.busy = false;\r\n });\r\n }\r\n\r\n public getDataItem(key: string, keyValue: any ) {\r\n if (this.apiData.length > 0) {\r\n for (var i = 0; i < this.apiData.length; i++) {\r\n let data = this.apiData[i];\r\n if (data[key] == keyValue) return data;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n pageDataSource(arr, len) {\r\n var chunks = [], i = 0, n = arr.length;\r\n while (i < n) {\r\n chunks.push(arr.slice(i, i += len));\r\n }\r\n return chunks;\r\n }\r\n\r\n nextPage() {\r\n if (this.currentPage + 1 == this.totalPages) return;\r\n this.currentPage++;\r\n this.page();\r\n }\r\n\r\n prevPage() {\r\n if (this.currentPage == 0) return;\r\n this.currentPage--;\r\n this.page();\r\n }\r\n\r\n firstPage() {\r\n if (this.currentPage == 0) return;\r\n this.currentPage = 0;\r\n this.page();\r\n }\r\n\r\n lastPage() {\r\n if (this.currentPage + 1 == this.totalPages) return;\r\n this.currentPage = this.totalPages - 1;\r\n this.page();\r\n }\r\n\r\n page() {\r\n let pagedDs = this.pageDataSource(this.dataSource, this.pageSize);\r\n this.rows = pagedDs[this.currentPage];\r\n }\r\n\r\n search() {\r\n window.clearTimeout(this.searchTimeout);\r\n const self = this;\r\n\r\n this.searchTimeout = window.setTimeout(function () { self.beginSearch(); }, 500);\r\n }\r\n\r\n getData() {\r\n return this.httpClient.get(this.apiUrl);\r\n }\r\n\r\n beginSearch() {\r\n var filteredDs = [];\r\n for (var i = 0; i < this.dataSource.length; i++) {\r\n var row = this.dataSource[i];\r\n\r\n var keyFound = false;\r\n for (var a = 0; a < row.length; a++) {\r\n if (!keyFound) {\r\n if (row[a] != null) {\r\n var rowval = row[a].toString().toLowerCase();\r\n if (rowval.indexOf(this.searchText.toLowerCase()) != -1) {\r\n filteredDs.push(row);\r\n keyFound = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.resetPaging(filteredDs);\r\n }\r\n\r\n sort(event) {\r\n let target = $(event)[0].currentTarget;\r\n let s = $(target);\r\n let colIndex = parseInt(s.attr('data-index'));\r\n if (s.hasClass('sort-desc')) {\r\n s.addClass('hide');\r\n s.next().removeClass('hide');\r\n this.dataSource.sort((a, b) => (a[colIndex] > b[colIndex]) ? 1 : -1);\r\n\r\n }\r\n else {\r\n s.addClass('hide');\r\n s.prev().removeClass('hide');\r\n this.dataSource.sort((a, b) => (a[colIndex] < b[colIndex]) ? 1 : -1);\r\n }\r\n\r\n this.resetPaging(this.dataSource);\r\n }\r\n\r\n resetPaging(dsource) {\r\n let pagedDs = this.pageDataSource(dsource, this.pageSize);\r\n this.currentPage = 0;\r\n this.totalPages = dsource.length < this.pageSize ? 1 : Math.round(dsource.length / this.pageSize);\r\n this.rows = pagedDs[0];\r\n }\r\n\r\n setUrl(url: string) {\r\n this.apiUrl = url;\r\n }\r\n\r\n public setQuickFilter(q: string) {\r\n this.searchText = q;\r\n this.beginSearch();\r\n }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cj-svg-icon',\r\n templateUrl: './cj-svg-icon.component.html',\r\n styleUrls: ['./cj-svg-icon.component.scss']\r\n})\r\nexport class CjSvgIconComponent implements OnInit {\r\n @Input() icon: string;\r\n\r\n link: string;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.link = `assets/images/svg/${this.icon}.svg#${this.icon}`;\r\n }\r\n}\r\n","\r\n \r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cj-tags',\r\n templateUrl: './cj-tags.component.html',\r\n styleUrls: ['./cj-tags.component.scss'],\r\n})\r\nexport class CJTagsComponent implements OnInit {\r\n @Input() key = '';\r\n @Input() options = [];\r\n @Input() type: 'multi' | 'select' = 'multi';\r\n @Input() tagClass = 'bg-teal-30 text-cyan-60';\r\n @Output() selected = new EventEmitter();\r\n @ViewChild('datalist') datalist!: ElementRef;\r\n @ViewChild('input') input!: ElementRef;\r\n\r\n currentFocus = -1;\r\n filteredOptions: HTMLOptionElement[] = [];\r\n selectedTag: any[] = [];\r\n tempOptions = [];\r\n toRemoved = -1;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n if (!this.options.length) return;\r\n\r\n this.tempOptions = [...this.options];\r\n\r\n if (this.type !== 'multi') this.setDefault();\r\n }\r\n\r\n onInput(value: string) {\r\n this.toRemoved = -1;\r\n this.datalist.nativeElement.style.display = 'block';\r\n var text = value.toUpperCase();\r\n const options = this.datalist.nativeElement.options;\r\n let index = '';\r\n let searchResult = 0;\r\n\r\n for (let option of Object.keys(options)) {\r\n if (options[option].value.toUpperCase().indexOf(text) > -1) {\r\n options[option].style.display = 'block';\r\n searchResult++;\r\n if (index === '') {\r\n index = option;\r\n }\r\n } else {\r\n options[option].style.display = 'none';\r\n }\r\n }\r\n\r\n if (!searchResult) {\r\n this.datalist.nativeElement.style.display = 'none';\r\n } else {\r\n this.currentFocus = parseInt(index, 10);\r\n this.addActive(this.datalist.nativeElement.options);\r\n }\r\n }\r\n\r\n onKeydown(event: KeyboardEvent) {\r\n switch (event.code) {\r\n case 'ArrowDown':\r\n this.currentFocus++;\r\n this.addActive(this.datalist.nativeElement.options);\r\n break;\r\n case 'ArrowUp':\r\n this.currentFocus--;\r\n this.addActive(this.datalist.nativeElement.options);\r\n break;\r\n case 'Enter':\r\n event.preventDefault();\r\n if (this.currentFocus === -1) {\r\n this.datalist.nativeElement.style.display = 'block';\r\n this.onInput('');\r\n } else if (\r\n this.currentFocus > -1 &&\r\n this.datalist.nativeElement.options\r\n ) {\r\n this.onSelect(this.filteredOptions[this.currentFocus].dataset.index);\r\n }\r\n break;\r\n case 'Backspace':\r\n if (this.selectedTag.length && this.toRemoved === -1) {\r\n this.toRemoved = this.selectedTag.length - 1;\r\n this.datalist.nativeElement.style.display = 'none';\r\n this.currentFocus = -1;\r\n } else if (this.toRemoved > -1) {\r\n this.removeTag(this.toRemoved);\r\n this.toRemoved = -1;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n addActive(x: HTMLCollectionOf) {\r\n if (!x) return false;\r\n this.removeActive(x);\r\n this.filteredOptions = Array.from(x).filter(\r\n (s) => window.getComputedStyle(s).getPropertyValue('display') != 'none'\r\n );\r\n\r\n if (this.currentFocus >= this.filteredOptions.length) this.currentFocus = 0;\r\n if (this.currentFocus < 0)\r\n this.currentFocus = this.filteredOptions.length - 1;\r\n\r\n this.filteredOptions[this.currentFocus].classList.add('active');\r\n }\r\n\r\n removeActive(x) {\r\n for (var i = 0; i < x.length; i++) {\r\n x[i].classList.remove('active');\r\n }\r\n }\r\n\r\n onSelect(selected) {\r\n this.input.nativeElement.value = '';\r\n\r\n if (this.type !== 'multi') {\r\n this.selectedTag = [this.options[selected]];\r\n this.selected.emit(this.selectedTag);\r\n this.hide();\r\n return;\r\n }\r\n\r\n const selectedTag = this.options.splice(selected, 1);\r\n this.selectedTag = [...this.selectedTag, ...selectedTag];\r\n this.selected.emit(this.selectedTag);\r\n }\r\n\r\n removeTag(index) {\r\n if (this.type !== 'multi') {\r\n this.onSelect(0);\r\n return;\r\n }\r\n this.selectedTag.splice(index, 1);\r\n this.options = this.tempOptions.filter(\r\n (option) => !this.selectedTag.includes(option)\r\n );\r\n this.selected.emit(this.selectedTag);\r\n }\r\n\r\n hide() {\r\n this.datalist.nativeElement.style.display = 'none';\r\n this.currentFocus = -1;\r\n this.toRemoved = -1;\r\n }\r\n\r\n setDefault() {\r\n this.selectedTag = [this.tempOptions[0]];\r\n }\r\n}\r\n","\r\n \r\n {{ key ? tag[key] : tag }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{ key ? option[key] : option }}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'cj-typeahead',\r\n templateUrl: './cj-typeahead.component.html',\r\n styleUrls: ['./cj-typeahead.component.scss'],\r\n})\r\nexport class CJTypeahead implements OnInit {\r\n @Input() key = '';\r\n @Input() value = '';\r\n @Input() label = '';\r\n @Input() required = false;\r\n @Input() options = [];\r\n @Input() disabled = false;\r\n @Input() fullWidth = false;\r\n @Input() withClear = false;\r\n @Input() placeholder = '';\r\n @Input() icon = 'search';\r\n @Input() clearOnSelect = false;\r\n @Input() iconPlacement: 'prefix' | 'suffix' | '' = 'prefix';\r\n @Input() withEmptyOption = false;\r\n @Output() selectChanged = new EventEmitter();\r\n @Output() clear = new EventEmitter();\r\n @Output() enter = new EventEmitter();\r\n @ViewChild('datalist') datalist!: ElementRef;\r\n @ViewChild('input') input!: ElementRef;\r\n @ViewChild('overlay') overlay!: ElementRef;\r\n\r\n currentFocus = -1;\r\n htmlOptions: HTMLOptionElement[] = [];\r\n filteredOptions = [];\r\n offset = 20;\r\n math = Math;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.filteredOptions = this.options;\r\n }\r\n\r\n onBlur() {\r\n this.datalist.nativeElement.style.display = 'none';\r\n this.overlay.nativeElement.style.display = 'none';\r\n document.documentElement.classList.remove('menu-open')\r\n this.currentFocus = -1;\r\n }\r\n\r\n onInput(value: string) {\r\n this.datalist.nativeElement.style.display = 'block';\r\n this.overlay.nativeElement.style.display = 'block';\r\n document.documentElement.classList.add('menu-open')\r\n const inputRect = this.input.nativeElement.getBoundingClientRect();\r\n this.datalist.nativeElement.style.top =\r\n Math.ceil(inputRect.y) + Math.ceil(inputRect.height) + 'px';\r\n this.datalist.nativeElement.style.left = Math.ceil(inputRect.x) + 'px';\r\n this.filteredOptions = this.options.filter((option) => {\r\n const name = this.key ? option[this.key] : option;\r\n return name.toLowerCase().includes(value.toLowerCase());\r\n });\r\n\r\n this.currentFocus = 0;\r\n }\r\n\r\n onKeydown(event: KeyboardEvent) {\r\n switch (event.code) {\r\n case 'ArrowDown':\r\n this.currentFocus++;\r\n if (\r\n this.currentFocus >= this.filteredOptions.slice(0, this.offset).length\r\n ) {\r\n this.currentFocus = 0;\r\n }\r\n this.datalist.nativeElement.scrollTop =\r\n (this.currentFocus + 1) * 28 - 240;\r\n break;\r\n case 'ArrowUp':\r\n this.currentFocus--;\r\n if (\r\n this.datalist.nativeElement.scrollTop >\r\n (this.currentFocus + 1) * 28\r\n ) {\r\n this.datalist.nativeElement.scrollTop -= 28;\r\n }\r\n\r\n if (this.currentFocus < 0) {\r\n this.currentFocus =\r\n this.filteredOptions.slice(0, this.offset).length - 1;\r\n this.datalist.nativeElement.scrollTop =\r\n (this.currentFocus + 1) * 28 - 240;\r\n }\r\n\r\n break;\r\n case 'Enter':\r\n event.preventDefault();\r\n\r\n if (this.currentFocus > -1) {\r\n this.onSelect(this.filteredOptions[this.currentFocus]);\r\n } else {\r\n this.enter.emit(this.input.nativeElement.value);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n onSelect(option) {\r\n this.datalist.nativeElement.style.display = 'none';\r\n this.overlay.nativeElement.style.display = 'none';\r\n document.documentElement.classList.remove('menu-open')\r\n\r\n if (this.clearOnSelect) {\r\n this.value = '';\r\n this.input.nativeElement.value = '';\r\n this.currentFocus = -1;\r\n } else {\r\n this.value = this.key && option ? option[this.key] : option;\r\n this.input.nativeElement.value =\r\n this.key && option ? option[this.key] : option;\r\n }\r\n this.selectChanged.emit(option);\r\n }\r\n\r\n onClear() {\r\n setTimeout(() => {\r\n this.value = '';\r\n this.input.nativeElement.value = '';\r\n this.currentFocus = -1;\r\n this.onInput('');\r\n this.clear.emit();\r\n this.input.nativeElement.focus();\r\n }, 1);\r\n }\r\n\r\n loadMore(event) {\r\n this.offset += 10;\r\n event.stopPropagation();\r\n this.datalist.nativeElement.style.display = 'block';\r\n this.overlay.nativeElement.style.display = 'block';\r\n document.documentElement.classList.add('menu-open')\r\n }\r\n\r\n trackBy(index: number, item: any) {\r\n return item.Id;\r\n }\r\n}\r\n","\r\n
\r\n {{\r\n label\r\n }}\r\n \r\n \r\n \r\n
\r\n
    \r\n \r\n \r\n {{ key ? option[key] : option }}\r\n \r\n \r\n Load More...\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators } from '@angular/forms';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CsvUpload } from '../../../models/csv-import.model';\r\nimport { CsvImportValidationComponent } from '../csv-import-validation-component/csv-import-validation.component';\r\nimport { KeyValue } from '@angular/common';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { CsvImportService } from '../../../services/csv-import.service';\r\n\r\n@Component({\r\n selector: 'app-csv-column-mapping',\r\n templateUrl: './csv-column-mapping.component.html',\r\n styleUrls: ['./csv-column-mapping.component.scss'],\r\n})\r\nexport class CsvColumnMappingComponent implements OnInit {\r\n @Input() csvData: any;\r\n @Input() type: string;\r\n\r\n public csvContent: string;\r\n public fileContent: string;\r\n public headerFromCSV: any[] = [];\r\n public selectedColumn: any[] = [];\r\n public headerFromDB: any[] = [];\r\n public mappingColumn: any = {};\r\n\r\n public myFormGroup: FormGroup;\r\n public form_template: any = [];\r\n public isRequired: boolean = true;\r\n public headerRowIndex: number;\r\n public firstRowData: any[];\r\n runningImports: number = 0;\r\n busy: boolean = false;\r\n isPaid: boolean = false;\r\n isSortedValue: any = false;\r\n\r\n constructor(\r\n private modalService: NgbActiveModal,\r\n private modalCSVService: NgbModal,\r\n private csvImportService: CsvImportService,\r\n private alert: AlertService\r\n ) {}\r\n\r\n ngOnInit() {\r\n // this.getInvoiceDBColumns();\r\n this.getImportColumns();\r\n }\r\n\r\n save(): void {\r\n this.onSubmit();\r\n }\r\n\r\n onSubmit() {\r\n if(this.myFormGroup.status === 'VALID') {\r\n this.busy = true;\r\n this.mappingColumn = this.cleanMappedColumn(this.myFormGroup.value);\r\n this.csvImportService\r\n .mapCsvDBColumns(\r\n this.mappingColumn,\r\n this.type ?? 'invoice',\r\n this.csvData.headerRowIndex,\r\n this.csvData.csvID\r\n )\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n console.log(res);\r\n let csvUpload = new CsvUpload();\r\n csvUpload.UploadType = res.uploadtype;\r\n csvUpload.Items = res.Data;\r\n this.csvValidation(csvUpload);\r\n this.modalService.close();\r\n } else {\r\n this.alert.alertWarning({\r\n title: 'Column Mapping ',\r\n text: res.message,\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this.alert.alertWarning({\r\n title: 'Column Mapping ',\r\n text: 'Error Encountered: ' + error,\r\n });\r\n },\r\n () => {\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n csvValidation(res: any) {\r\n this.busy = true;\r\n let modal = this.modalCSVService.open(CsvImportValidationComponent, {\r\n size: 'xl',\r\n backdrop: 'static',\r\n });\r\n modal.componentInstance.itemsDataSource = res.Items;\r\n modal.componentInstance.uploadType = res.UploadType;\r\n modal.componentInstance.type = this.type ?? 'invoice';\r\n modal.result.then(\r\n (res) => {\r\n if (res.Code === 200 || res.code === 200) {\r\n this.runningImports = res.runningImports;\r\n } else {\r\n this.alert.alertWarning({ title: 'CSV Upload', text: res.message });\r\n }\r\n },\r\n (error: any) => {\r\n this.alert.alertWarning({\r\n title: 'CSV Upload',\r\n text: 'Error Encountered: ' + error,\r\n });\r\n }\r\n );\r\n this.busy = false;\r\n }\r\n\r\n cleanMappedColumn(obj) {\r\n for (var propName in obj) {\r\n if (obj[propName] === null || obj[propName] === '') {\r\n delete obj[propName];\r\n }\r\n }\r\n return obj;\r\n }\r\n\r\n getImportColumns(): void {\r\n this.busy = true;\r\n this.csvImportService.importColumns(this.type)\r\n .subscribe((res: any) => {\r\n if(res) {\r\n this.headerFromDB = res;\r\n this.csvContent = this.csvData.csvContent;\r\n this.headerFromCSV = Object.keys(this.csvContent[0]);\r\n this.generateMapPage(this.headerFromCSV);\r\n } else {\r\n this.alert.alertWarning({\r\n title: 'Column Mapping ',\r\n text: res.message,\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this.alert.alertWarning({\r\n title: 'Column Mapping ',\r\n text: 'Error Encountered: ' + error,\r\n });\r\n },\r\n () => {\r\n this.busy = false;\r\n }\r\n )\r\n }\r\n\r\n getInvoiceDBColumns() {\r\n this.busy = true;\r\n this.csvImportService.importInvoiceDBColumns().subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.headerFromDB = res;\r\n this.csvContent = this.csvData.csvContent;\r\n this.headerFromCSV = Object.keys(this.csvContent[0]); //get array of keys\r\n this.generateMapPage(this.headerFromCSV);\r\n } else {\r\n this.alert.alertWarning({\r\n title: 'Column Mapping ',\r\n text: res.message,\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n this.alert.alertWarning({\r\n title: 'Column Mapping ',\r\n text: 'Error Encountered: ' + error,\r\n });\r\n },\r\n () => {\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n // Dropdown selection\r\n public onOptionsSelected(event, formLabel) {\r\n let valueSelected = event.target.value; //index selected\r\n let indexSelected = [];\r\n let dataInput = this.selectedColumn.find((e) => e === valueSelected);\r\n\r\n if (dataInput && dataInput.length > 0) {\r\n this.alert.alertWarning({\r\n title: 'Column Mapping ',\r\n text: 'This column was previously selected.',\r\n });\r\n }\r\n if (formLabel == 'Paid') {\r\n this.isPaid = true;\r\n this.alert.alertWarning({\r\n title: 'Column Mapping ',\r\n text: '[DatePaid] or Date of Payment will be required for data with Paid amount.',\r\n });\r\n }\r\n\r\n indexSelected = Object.values(this.myFormGroup.value);\r\n this.selectedColumn = indexSelected;\r\n this.selectedColumn.push(valueSelected);\r\n }\r\n generateMapPage(headerFromCSV) {\r\n this.form_template = [];\r\n let index_value = 0;\r\n let selecetdIndex = '';\r\n selecetdIndex = String(index_value);\r\n for (let itemLabel of this.headerFromDB) {\r\n if (itemLabel.Name == 'DatePaid') {\r\n itemLabel.IsRequired = false;\r\n }\r\n this.form_template.push({\r\n type: 'select',\r\n name: selecetdIndex,\r\n label: itemLabel.Name,\r\n isRequired: itemLabel.Name === 'CustomerType' || itemLabel.Name === 'BusinessName' ? false : itemLabel.IsRequired,\r\n dataType: itemLabel.DataType,\r\n maxLength: itemLabel.MaxLength,\r\n regexPattern: itemLabel.RegexPattern,\r\n options: headerFromCSV,\r\n });\r\n\r\n index_value++;\r\n selecetdIndex = String(index_value);\r\n }\r\n\r\n this.form_template.sort((a, b) =>\r\n a['isRequired'] < b['isRequired']\r\n ? 1\r\n : a['isRequired'] > b['isRequired']\r\n ? -1\r\n : 0\r\n );\r\n let group = {};\r\n this.form_template.forEach((input_template) => {\r\n group[input_template.name] = new FormControl('');\r\n });\r\n\r\n this.myFormGroup = new FormGroup(group);\r\n }\r\n\r\n close() {\r\n this.modalService.close();\r\n }\r\n\r\n sortTable(colName, sortedValue) {\r\n if (sortedValue == true) {\r\n this.form_template.sort((a, b) =>\r\n a[colName] < b[colName] ? 1 : a[colName] > b[colName] ? -1 : 0\r\n );\r\n this.isSortedValue = !this.isSortedValue;\r\n } else {\r\n this.form_template.sort((a, b) =>\r\n a[colName] > b[colName] ? 1 : a[colName] < b[colName] ? -1 : 0\r\n );\r\n this.isSortedValue = !this.isSortedValue;\r\n }\r\n }\r\n\r\n originalOrder = (\r\n a: KeyValue,\r\n b: KeyValue\r\n ): number => {\r\n return 0;\r\n };\r\n}\r\n","
\r\n
\r\n
Column Mapping
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

File Preview

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Column NameValue
{{headerLabel.key}}{{headerLabel.value}}
\r\n
\r\n\r\n
\r\n

Map

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
System Fields Columns From CSV FileRequired Value
{{form_elem.label}}\r\n
\r\n \r\n
\r\n
*
\r\n
*
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { CsvImportService } from '../../../services/csv-import.service';\r\n\r\n@Component({\r\n selector: 'app-csv-import-results',\r\n templateUrl: './csv-import-results.component.html',\r\n styleUrls: ['./csv-import-results.component.scss'],\r\n})\r\nexport class CsvImportResultsComponent implements OnInit {\r\n busy: boolean = false;\r\n uploadType: number = 1;\r\n uploadStep: number = 1;\r\n processingFile: boolean = false;\r\n\r\n private gridApi;\r\n private gridColumnApi;\r\n\r\n itemColumns: any[];\r\n queueResultColumns: any[];\r\n importItems: any[];\r\n\r\n columns: any[];\r\n itemsDataSource: any;\r\n\r\n @Input() type: string = ''; // [products,customers,invoices]\r\n\r\n modalTitle: string = 'Completed Imports';\r\n modalSubTitle: string = 'Here are the list of completed imports';\r\n\r\n constructor(\r\n private activeModal: NgbActiveModal,\r\n private csvImportService: CsvImportService,\r\n private alert: AlertService\r\n ) {\r\n this.itemsDataSource = new BehaviorSubject([]);\r\n this.itemColumns = [\r\n {\r\n headerName: 'Name',\r\n field: 'Name',\r\n sortable: true,\r\n filter: true,\r\n cellRenderer: this.actionRenderer.bind(this),\r\n width: '300',\r\n },\r\n {\r\n headerName: 'Type',\r\n field: 'Type',\r\n },\r\n {\r\n headerName: 'Started',\r\n field: 'StartDate',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Completed',\r\n field: 'CompletedDate',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Duration (ms)',\r\n field: 'Duration',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Status',\r\n field: 'Status',\r\n sortable: true,\r\n filter: true,\r\n },\r\n ];\r\n\r\n this.queueResultColumns = [\r\n { headerName: 'Value', field: 'KeyValue' },\r\n {\r\n headerName: 'Transaction Type',\r\n field: 'TransactionType',\r\n sortable: true,\r\n filter: true,\r\n },\r\n { headerName: 'Result', field: 'Result', sortable: true, filter: true },\r\n { headerName: 'Message', field: 'Message', sortable: true, filter: true },\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n this.columns = this.itemColumns;\r\n this.loadCompletedImports();\r\n }\r\n\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.setDomLayout('autoHeight');\r\n //this.gridApi.sizeColumnsToFit();\r\n }\r\n\r\n close() {\r\n this.activeModal.close();\r\n }\r\n\r\n loadCompletedImports() {\r\n this.csvImportService.importResults(this.type).subscribe((res) => {\r\n this.columns = this.itemColumns;\r\n this.itemsDataSource = res;\r\n });\r\n }\r\n\r\n openImportResults(params) {\r\n this.csvImportService\r\n .importQueueResults(params.data.Id)\r\n .subscribe((res) => {\r\n this.columns = this.queueResultColumns;\r\n this.itemsDataSource = res;\r\n this.modalSubTitle =\r\n 'Here are the list of items that are previously imported under ' +\r\n params.value;\r\n this.modalTitle = 'Import Results from ' + params.value;\r\n });\r\n }\r\n\r\n private actionRenderer(params) {\r\n if (params.value) {\r\n const self = this;\r\n const eDiv = document.createElement('div');\r\n\r\n let template =\r\n '' +\r\n params.value +\r\n '';\r\n\r\n eDiv.innerHTML = template;\r\n\r\n var lnkButton = eDiv.querySelectorAll('.view-import-result')[0];\r\n\r\n lnkButton.addEventListener('click', () => {\r\n self.openImportResults(params);\r\n });\r\n\r\n return eDiv;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
{{modalTitle}}
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { CsvImportUpload } from '../../../models/csv-import.model';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { CsvImportService } from '../../../services/csv-import.service';\r\n\r\n@Component({\r\n selector: 'app-csv-import-validation',\r\n templateUrl: './csv-import-validation.component.html',\r\n styleUrls: ['./csv-import-validation.component.scss'],\r\n})\r\nexport class CsvImportValidationComponent implements OnInit {\r\n busy: boolean = false;\r\n uploadType: number = 1;\r\n uploadStep: number = 1;\r\n processingFile: boolean = false;\r\n\r\n private gridApi;\r\n private gridColumnApi;\r\n\r\n itemColumns: any[];\r\n customerColumns: any[];\r\n invoiceColumns: any[];\r\n columns: any[];\r\n importItems: any[];\r\n importTypeHeader: string = 'Products';\r\n\r\n @Input() itemsDataSource: BehaviorSubject = new BehaviorSubject([]);\r\n\r\n @Input() type: string = ''; // [products,customers,invoices]\r\n\r\n constructor(\r\n private activeModal: NgbActiveModal,\r\n private csvImportService: CsvImportService,\r\n private alert: AlertService\r\n ) {\r\n this.itemsDataSource = new BehaviorSubject([]);\r\n\r\n this.itemColumns = [\r\n { headerName: 'Item Name', field: 'ItemName' },\r\n {\r\n headerName: 'Item Category',\r\n field: 'ItemCategory',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Item Description',\r\n field: 'ItemDescription',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Tax Code',\r\n field: 'TaxCode',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Item Unit',\r\n field: 'ItemUnit',\r\n sortable: true,\r\n filter: true,\r\n },\r\n { headerName: 'SKU', field: 'SKU', sortable: true, filter: true },\r\n { headerName: 'Price', field: 'Price', sortable: true, filter: true },\r\n {\r\n headerName: 'ImageUrl',\r\n field: 'ImageUrl',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Validation Result',\r\n field: 'MissingFieldText',\r\n sortable: false,\r\n filter: false,\r\n cellRenderer: this.validationRenderer.bind(this),\r\n },\r\n ];\r\n\r\n this.customerColumns = [\r\n { headerName: 'Customer Type', field: 'CustomerType' },\r\n {\r\n headerName: 'Business Name',\r\n field: 'BusinessName',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'FirstName',\r\n field: 'FirstName',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'LastName',\r\n field: 'LastName',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'EmailAddress',\r\n field: 'EmailAddress',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Birthday',\r\n field: 'Birthday',\r\n sortable: true,\r\n filter: true,\r\n },\r\n {\r\n headerName: 'Job Title',\r\n field: 'JobTitle',\r\n sortable: true,\r\n filter: true,\r\n },\r\n { headerName: 'City', field: 'City', sortable: true, filter: true },\r\n { headerName: 'Street Address', field: 'StreetAddress', sortable: true, filter: true },\r\n { headerName: 'Address 2', field: 'Address2', sortable: true, filter: true },\r\n { headerName: 'State', field: 'State', sortable: true, filter: true },\r\n { headerName: 'Country', field: 'Country', sortable: true, filter: true },\r\n { headerName: 'ZipCode', field: 'ZipCode', sortable: true, filter: true },\r\n {\r\n headerName: 'Contact Number',\r\n field: 'ContactNumber',\r\n sortable: true,\r\n filter: true,\r\n },\r\n { headerName: 'Notes', field: 'Notes', sortable: true, filter: true },\r\n ];\r\n\r\n this.invoiceColumns = [\r\n { headerName: 'Client', field: 'Client' },\r\n { headerName: 'Invoice Number', field: 'InvoiceNumber' },\r\n { headerName: 'Invoice Date', field: 'InvoiceDate' },\r\n { headerName: 'Amount', field: 'Amount' },\r\n { headerName: 'Paid', field: 'Paid' },\r\n { headerName: 'DueDate', field: 'DueDate', sortable: true, filter: true },\r\n {\r\n headerName: 'ItemProduct',\r\n field: 'ItemProduct',\r\n sortable: true,\r\n filter: true,\r\n },\r\n { headerName: 'ItemNotes', field: 'ItemNotes' },\r\n { headerName: 'ItemCost', field: 'ItemCost' },\r\n { headerName: 'ItemQuantity', field: 'ItemQuantity' },\r\n {\r\n headerName: 'Validation Errors',\r\n field: 'Warnings',\r\n cellRenderer: this.warningRenderer.bind(this),\r\n },\r\n ];\r\n }\r\n\r\n ngOnInit() {\r\n switch (this.type) {\r\n case 'item':\r\n this.columns = this.itemColumns;\r\n this.importTypeHeader = 'Products';\r\n break;\r\n case 'customer':\r\n this.columns = this.customerColumns;\r\n this.importTypeHeader = 'Customers';\r\n break;\r\n case 'invoice':\r\n this.columns = this.invoiceColumns;\r\n this.importTypeHeader = 'Invoices';\r\n break;\r\n }\r\n //this.loadLibraries();\r\n }\r\n\r\n private warningRenderer(params) {\r\n const self = this;\r\n\r\n if (params.data.HasMissingField) {\r\n const self = this;\r\n const eDiv = document.createElement('div');\r\n\r\n let template = `\r\n
\r\n View Errors\r\n
`;\r\n eDiv.innerHTML = template;\r\n\r\n var editBtn = eDiv.querySelectorAll('.view-warnings')[0];\r\n editBtn.addEventListener('click', () => {\r\n self.viewWarnings(params, self);\r\n //self.editInvoice(params, self);\r\n });\r\n\r\n return eDiv;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n viewWarnings(param, self) {\r\n var warnings = param.data.Warnings;\r\n var errorMessage = '';\r\n for (var i = 0; i < warnings.length; i++) {\r\n errorMessage += '' + warnings[i] + '
';\r\n }\r\n this.alert.alertError({ title: 'Validation Errors', html: errorMessage });\r\n }\r\n\r\n step() {\r\n this.uploadStep = this.uploadStep == 1 ? 2 : 1;\r\n }\r\n\r\n onCsvFileSelected(event: any) {\r\n this.processingFile = true;\r\n }\r\n\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n this.gridApi.setDomLayout('autoHeight');\r\n }\r\n\r\n gridRowStyle(params) {\r\n if (params.data.HasMissingField) {\r\n return { background: '#ffc107 !important' };\r\n }\r\n if (params.data.Existing) {\r\n return { background: '#dc3545 !important' };\r\n }\r\n }\r\n\r\n private validationRenderer(params) {\r\n const eDiv = document.createElement('div');\r\n let template = '';\r\n if (params.data.HasMissingField) {\r\n template =\r\n ' ' +\r\n params.data.MissingFieldText +\r\n '';\r\n } else {\r\n template =\r\n '';\r\n }\r\n eDiv.innerHTML = template;\r\n\r\n return eDiv;\r\n }\r\n\r\n upload() {\r\n let alertText =\r\n this.uploadType === 2\r\n ? 'This will overwrite existing records. All items will be deleted and replaced. '\r\n : 'This will add new records and update existing ones. Existing records will be revised, not deleted.';\r\n let self = this;\r\n this.alert\r\n .alertQuestion({\r\n title: 'Import Confirmation',\r\n text: alertText + ' Would you like to proceed?',\r\n showCancelButton: true,\r\n showConfirmButton: true,\r\n cancelButtonClass: 'btn btn-lg btn-danger ml-2',\r\n confirmButtonText: 'Confirm',\r\n })\r\n .then((arg: any) => {\r\n if (arg.value) {\r\n let csvImportUpload = new CsvImportUpload();\r\n\r\n csvImportUpload.Items = self.itemsDataSource;\r\n csvImportUpload.Overwrite = self.uploadType === 2;\r\n self.busy = true;\r\n self.csvImportService\r\n .upload(csvImportUpload, self.type)\r\n .subscribe((res) => {\r\n self.activeModal.close(res);\r\n self.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Successfully initiated import queue!',\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n close() {\r\n this.activeModal.close();\r\n }\r\n}\r\n","
\r\n
\r\n
Import {{importTypeHeader}}
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n - Duplicate \r\n
\r\n
\r\n - Missing required field(s). Will not be imported. \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CsvUpload } from '../../../models/csv-import.model';\r\nimport { CsvColumnMappingComponent } from '../csv-column-mapping/csv-column-mapping.component';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { CsvImportService } from '../../../services/csv-import.service';\r\n\r\n@Component({\r\n selector: 'app-csv-import-wizard',\r\n templateUrl: './csv-import-wizard-component.html',\r\n styleUrls: ['./csv-import-wizard-component.scss'],\r\n})\r\nexport class CsvImportWizardComponent implements OnInit {\r\n busy: boolean = false;\r\n @Input() type: string = ''; // [item,customer,invoice]\r\n\r\n uploadtype: number = 1;\r\n uploadStep: number = 2;\r\n processingFile: boolean = false;\r\n hasUploadError: boolean = false;\r\n uploadMessage: string = '';\r\n response: any;\r\n headerRowIndex: number = 1;\r\n noRowHeader: boolean = false;\r\n\r\n public csvContent: string;\r\n public fileContent: string;\r\n constructor(\r\n private activeModal: NgbActiveModal,\r\n private modalService: NgbModal,\r\n private csvImportService: CsvImportService,\r\n private alert: AlertService\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n selectOption(uploadtype: number) {\r\n this.uploadtype = uploadtype;\r\n }\r\n\r\n step() {\r\n this.uploadStep = this.uploadStep == 1 ? 2 : 1;\r\n }\r\n\r\n openFileBrowser() {\r\n let element: HTMLElement = document.getElementById(\r\n 'csvFile'\r\n ) as HTMLElement;\r\n element.click();\r\n }\r\n\r\n onCsvFileSelected(event: any) {\r\n let files = event.target.files;\r\n this.processingFile = true;\r\n var self = this;\r\n var file = files[0];\r\n const formData = new FormData();\r\n formData.append(file.name, file);\r\n this.csvImportService\r\n .validateCsv(formData, this.type, this.headerRowIndex - 1)\r\n .subscribe(\r\n (res) => {\r\n this.response = res;\r\n this.processingFile = false;\r\n if (this.response.Code == 200) {\r\n let csvUpload = new CsvUpload();\r\n csvUpload.UploadType = this.uploadtype;\r\n csvUpload.Items = this.response.Data;\r\n if (this.response.IsNonDefault == true) {\r\n this.onFileLoad(csvUpload.Items, this.response.Id);\r\n self.activeModal.close();\r\n } else {\r\n self.activeModal.close(csvUpload);\r\n }\r\n } else {\r\n self.activeModal.close();\r\n this.hasUploadError = true;\r\n this.uploadMessage = this.response.Message;\r\n }\r\n },\r\n (error: any) => {\r\n this.alert.alertWarning({\r\n title: 'CSV Upload',\r\n text: 'File upload error.',\r\n });\r\n self.activeModal.close();\r\n }\r\n );\r\n /*setTimeout(function () {\r\n self.activeModal.close();\r\n }, 3000);*/\r\n }\r\n\r\n onFileLoad(fileLoadedEvent, csvFileId) {\r\n this.csvContent = fileLoadedEvent;\r\n let modal = this.modalService.open(CsvColumnMappingComponent, {\r\n size: 'xl',\r\n backdrop: 'static',\r\n });\r\n modal.componentInstance.type = this.type;\r\n modal.componentInstance.csvData = {\r\n csvContent: this.csvContent,\r\n csvID: csvFileId,\r\n headerRowIndex: this.headerRowIndex - 1,\r\n };\r\n }\r\n\r\n hasHeaderChange(event: any) {\r\n if (event.target.checked) {\r\n this.headerRowIndex = 0;\r\n }\r\n }\r\n\r\n headerRowChanged(event: any) {\r\n this.headerRowIndex = event.target.value;\r\n }\r\n\r\n close() {\r\n this.activeModal.close();\r\n }\r\n\r\n getHowToLink() {\r\n switch (this.type) {\r\n case 'invoice':\r\n return 'https://support.heartlandforserviceprofessionals.com/article/80-import-invoices';\r\n break;\r\n case 'item':\r\n return 'https://support.heartlandforserviceprofessionals.com/article/73-import-products';\r\n break;\r\n case 'customer':\r\n return 'https://support.paymentsmanagerplus.com/hc/en-us/articles/25964495802893-Import-Customers-Using-Default-Template';\r\n break;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

{{ uploadStep == 1 ? 'Import Type' : 'Import Records' }}

\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Modify Records\r\n

\r\n Add new records and update existing ones. Existing records will be revised, not deleted.\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Replace Records \r\n

\r\n Overwrite existing records. All items will be deleted and replaced.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n - The allowed maximum number of records should not exceed 500. CSV File with rows over 500 will not be processed. \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n Upload CSV\r\n

\r\n Select csv file from your computer\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Processing File... \r\n \r\n
\r\n
\r\n \r\n {{uploadMessage}}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n Input,\r\n ViewChildren,\r\n QueryList,\r\n} from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n Customer,\r\n CustomerAddress,\r\n CustomerPhone,\r\n ContactPerson,\r\n} from '../../../models/customer.model';\r\nimport { AuthorizationBase } from 'src/app/shared/libraries/authorize-base';\r\nimport * as moment from 'moment';\r\nimport { LocationSwitchService } from 'src/app/shared/services/location-switch.service';\r\nimport { NgForm } from '@angular/forms';\r\nimport { ZipCodeValidator } from '../../../../shared/validators/zip-code.validator';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { CustomerManagementService } from '../../../services/customer.service';\r\nimport { CustomerPhoto } from '../../../../customer/models/customer.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe-decorator';\r\nimport { ContactFormComponent } from 'src/app/shared/components/customers/contact-form/contact-form.component';\r\n\r\n@Component({\r\n selector: 'app-add-customer',\r\n templateUrl: './add-customer.component.html',\r\n styleUrls: ['./add-customer.component.scss'],\r\n})\r\nexport class AddCustomerComponent extends AuthorizationBase implements OnInit {\r\n @ViewChild('customerForm', { static: true }) customerForm: NgForm;\r\n @ViewChild(ContactFormComponent)\r\n contactForm: ContactFormComponent;\r\n @Input()\r\n isIndividual: boolean = true;\r\n @Input() isEditMode: boolean = false;\r\n @Input() contactmodel: ContactPerson;\r\n @Input() model: Customer;\r\n\r\n isUSA: boolean = true;\r\n busy: boolean = false;\r\n addressmodel: CustomerAddress;\r\n phonemodel: CustomerPhone;\r\n countries = [];\r\n usStates = [];\r\n maxDate: string = moment(new Date()).format('YYYY-MM-DD');\r\n emailAddressValid: boolean = true;\r\n isShippingAddress: boolean = false;\r\n isDefaultSelected: boolean = false;\r\n shippingAddressCount: number = 0;\r\n validAddress: boolean = false;\r\n temporaryCountrySelected: string = 'United States';\r\n\r\n public locations: any[];\r\n zipCodeValidator: ZipCodeValidator;\r\n zipCodeError: boolean = false;\r\n\r\n customeraddresses: CustomerAddress[];\r\n processor: string;\r\n customerPhoto: any = 'assets/images/customer-photo.png';\r\n customerPhotoLoading: boolean = false;\r\n hasUpdates: boolean = false;\r\n\r\n customerContactNumbers: CustomerPhone[];\r\n\r\n @AutoUnsubscribe()\r\n private getAllCountries$: Subscription;\r\n @AutoUnsubscribe()\r\n private usaStates$: Subscription;\r\n @AutoUnsubscribe()\r\n private saveCustomer$: Subscription;\r\n @AutoUnsubscribe()\r\n private updateContactPerson$: Subscription;\r\n @AutoUnsubscribe()\r\n private addContactPerson$: Subscription;\r\n @AutoUnsubscribe()\r\n private addAddress$: Subscription;\r\n @AutoUnsubscribe()\r\n private addPhone$: Subscription;\r\n @AutoUnsubscribe()\r\n private updateCustomerPhoto$: Subscription;\r\n @AutoUnsubscribe()\r\n private loadLocations$: Subscription;\r\n @AutoUnsubscribe()\r\n saveCustomerContactWithAddress$: Subscription;\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private alert: AlertService,\r\n public apiService: CustomerManagementService,\r\n private locationSwitchService: LocationSwitchService\r\n ) {\r\n super();\r\n\r\n this.model = new Customer();\r\n this.model.CustomerTypeId = 1;\r\n this.model.SalesTaxType = '%';\r\n this.addressmodel = new CustomerAddress();\r\n this.addressmodel.AddressType = 1;\r\n this.addressmodel.CountryId = 0;\r\n this.addressmodel.State = '';\r\n this.addressmodel.IsDefault = true;\r\n this.phonemodel = new CustomerPhone();\r\n this.phonemodel.PhoneType = 1;\r\n this.contactmodel = new ContactPerson();\r\n let locId = +locationSwitchService.getCurrentLocation();\r\n if (locId == 0) {\r\n locId = this.getCurrentLoginUser().LocationId;\r\n }\r\n\r\n this.model.LocationId = locId;\r\n this.zipCodeValidator = new ZipCodeValidator();\r\n this.customeraddresses = [];\r\n this.customerContactNumbers = [];\r\n this.processor = super.getPlatform().toString();\r\n }\r\n\r\n ngOnInit() {\r\n this.model.Photo =\r\n this.model.Photo == '' || this.model.Photo == null\r\n ? 'assets/images/customer-photo.PNG'\r\n : this.model.Photo;\r\n this.loadCountries();\r\n this.loadLocations();\r\n this.validAddress = this.isEditMode;\r\n this.hasUpdates = false;\r\n this.model.PaymentTerm = !this.model.PaymentTerm ? '' : this.model.PaymentTerm;\r\n }\r\n\r\n loadCountries() {\r\n return new Promise((resolve) => {\r\n this.getAllCountries$ = this.apiService\r\n .getAllCountries()\r\n .subscribe((resp: any[]) => {\r\n if (resp) {\r\n this.countries = resp;\r\n const usa = this.countries.find(\r\n (c) => c.CountryName === 'United States'\r\n );\r\n if (this.addressmodel.CountryId === 0) {\r\n this.addressmodel.CountryId = usa.Id;\r\n this.loadStates();\r\n }\r\n }\r\n resolve(resp);\r\n });\r\n });\r\n }\r\n\r\n loadStates() {\r\n this.usaStates$ = this.apiService.usaStates().subscribe((response: any) => {\r\n this.usStates = response;\r\n });\r\n }\r\n\r\n loadLocations() {\r\n this.loadLocations$ = this.locationSwitchService.locations.subscribe(\r\n (list) => {\r\n this.locations = list;\r\n }\r\n );\r\n }\r\n\r\n forceMaxDate(e) {\r\n if (e.target.value) {\r\n if (new Date(e.target.value) > new Date(e.target.max))\r\n e.target.value = e.target.max;\r\n } else {\r\n e.target.value = e.target.max;\r\n }\r\n }\r\n\r\n customerTypeChanged(event: any) {\r\n this.model.CustomerTypeId = event.target.value;\r\n this.isIndividual = event.target.value === '1' ? true : false;\r\n }\r\n\r\n countryChanged(event: any) {\r\n this.isUSA = event.target.value === '230' ? true : false;\r\n this.temporaryCountrySelected =\r\n event.target.options[event.target.options.selectedIndex].text;\r\n }\r\n\r\n save() {\r\n if (!this.isValidEmail() && this.isIndividual) return false;\r\n\r\n this.model.IsDeleted = false;\r\n this.model.CreatedDate = new Date();\r\n this.model.UpdatedBy = null;\r\n this.model.UpdatedDate = null;\r\n\r\n if(this.model.PaymentTerm === '') {\r\n this.model.PaymentTermCount = 0;\r\n this.model.PaymentTerm = null;\r\n }\r\n\r\n if (!this.isEditMode) {\r\n if (this.isIndividual && this.customeraddresses.length === 0) {\r\n this.addNewCustomerAddress();\r\n\r\n if (!this.validAddress) {\r\n return;\r\n }\r\n }\r\n\r\n this.model.MembershipNumber = 'TempNumber';\r\n this.model.MembershipStartDate = new Date();\r\n this.model.IsDeactivated = false;\r\n if(!this.isEditMode) {\r\n this.model.CreatedBy = Number.parseInt(super.userId().toString());\r\n this.model.UpdatedBy = Number.parseInt(super.userId().toString());\r\n } else {\r\n this.model.UpdatedBy = Number.parseInt(super.userId().toString());\r\n }\r\n this.model.Id = 0;\r\n }\r\n\r\n //check if Individual\r\n if (this.isIndividual) {\r\n this.model.BusinessName = null;\r\n this.model.BusinessNature = null;\r\n } else {\r\n this.model.FirstName = null;\r\n this.model.LastName = null;\r\n this.model.Birthday = null;\r\n this.model.JobTitle = null;\r\n this.model.About = null;\r\n this.model.EmailAddress = this.contactmodel.EmailAddress;\r\n }\r\n\r\n this.busy = true;\r\n this.saveCustomer$ = this.apiService\r\n .saveCustomer(this.model)\r\n .subscribe(async (res) => {\r\n if (res) {\r\n //add customer address\r\n await this.addAddress(res, null);\r\n //add phone\r\n await this.addPhone(res, null);\r\n //add contact person if business\r\n // if (!this.isIndividual) {\r\n // this.addContactPerson(res);\r\n // }\r\n /**\r\n * Add Contact Persons in Business Type Customer.\r\n */\r\n\r\n if (\r\n !this.contactForm?.contactPersons.length &&\r\n this.contactForm?.customerForm.valid\r\n ) {\r\n this.contactForm.save();\r\n }\r\n\r\n if (this.contactForm?.contactPersons.length) {\r\n await this.addContacts(res);\r\n }\r\n\r\n let message = this.isEditMode\r\n ? 'Successfully updated customer record!'\r\n : 'Successfully created customer record!';\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: message,\r\n });\r\n this.busy = false;\r\n this.model.hasUpdates = true;\r\n this.modalRef.close(this.model.Id || res);\r\n }\r\n });\r\n }\r\n\r\n preventPureSpaces(e: any) {\r\n if (e.target.value) {\r\n if (e.target.value.trim().length == 0) {\r\n this.customerForm.controls[e.target.name].setValue(null);\r\n }\r\n }\r\n }\r\n\r\n addContactPerson(customerId: any) {\r\n if (this.contactmodel.Id) {\r\n this.contactmodel.UpdatedBy = Number.parseInt(super.userId().toString());\r\n this.updateContactPerson$ = this.apiService\r\n .updateContactPerson(this.contactmodel)\r\n .subscribe((res) => {\r\n if (res) {\r\n }\r\n });\r\n } else {\r\n this.contactmodel.BusinessCustomerId = customerId;\r\n this.contactmodel.IsMainContact = true;\r\n this.contactmodel.CreatedBy = this.model.CreatedBy;\r\n this.contactmodel.UpdatedBy = null;\r\n this.contactmodel.IsDeleted = false;\r\n this.addContactPerson$ = this.apiService\r\n .addContactPerson(this.contactmodel)\r\n .subscribe((res) => {\r\n if (res) {\r\n //add address\r\n this.addContactPersonAddress(customerId, res);\r\n // this.addAddress(null, res);\r\n //add phone\r\n this.addPhone(null, res);\r\n }\r\n });\r\n }\r\n }\r\n\r\n addContactPersonAddress(customerId, contactPersonId) {\r\n const contactPersonAddress = new CustomerAddress();\r\n contactPersonAddress.ContactPersonId = contactPersonId;\r\n contactPersonAddress.IsDefault = true;\r\n contactPersonAddress.CustomerId = customerId;\r\n this.addAddress$ = this.apiService\r\n .addAddress(contactPersonAddress)\r\n .subscribe((res: any) => {\r\n if (res) {\r\n console.log(res);\r\n }\r\n });\r\n }\r\n\r\n async addAddress(customerId: any, contactpersonId: any) {\r\n /*this.addressmodel.Id = 0;\r\n this.addressmodel.CustomerId = customerId;\r\n this.addressmodel.ContactPersonId = contactpersonId;\r\n this.addressmodel.IsDefault = true;\r\n this.addressmodel.CreatedBy = this.model.CreatedBy;\r\n this.addressmodel.UpdatedBy = null;\r\n this.addressmodel.IsDeleted = false;\r\n if (!this.isUSA){\r\n this.addressmodel.State = null;\r\n }\r\n this.apiService.addAddress(this.addressmodel).subscribe((res) => {\r\n if(res) {\r\n console.log(res);\r\n }\r\n });*/\r\n\r\n for (const customeraddress of this.customeraddresses) {\r\n customeraddress.County = null;\r\n customeraddress.CustomerId = customerId;\r\n customeraddress.ContactPersonId = contactpersonId;\r\n customeraddress.CreatedBy = Number(this.userId());\r\n \r\n // if (this.isDefaultSelected == false) {\r\n // customeraddress.IsDefault = true;\r\n // this.isDefaultSelected = true;\r\n // }\r\n\r\n await this.apiService.addAddress(customeraddress).toPromise();\r\n }\r\n }\r\n\r\n addressFieldRequiresValue() {\r\n return this.customeraddresses.length === 0;\r\n }\r\n\r\n addNewContactNumber() {\r\n const contactNumberItem = new CustomerPhone();\r\n contactNumberItem.PhoneNumber = this.phonemodel.PhoneNumber;\r\n contactNumberItem.PhoneType = this.phonemodel.PhoneType;\r\n\r\n this.customerContactNumbers.push(contactNumberItem);\r\n this.phonemodel.PhoneNumber = null;\r\n this.phonemodel.PhoneType = 1;\r\n }\r\n\r\n //added for transit changes\r\n //added for transit changes\r\n addNewCustomerAddress() {\r\n if (\r\n !this.addressmodel.AddressType ||\r\n !this.addressmodel.City ||\r\n !this.addressmodel.CountryId ||\r\n !this.addressmodel.StreetAddress ||\r\n !this.addressmodel.ZipCode\r\n ) {\r\n this.alert.alertWarning({\r\n title: 'Warning',\r\n text: 'Please provide complete address information.',\r\n });\r\n } else {\r\n this.zipCodeError = !this.zipCodeValidator.isValid(\r\n this.addressmodel.CountryId,\r\n this.addressmodel.ZipCode\r\n );\r\n if (this.zipCodeError) {\r\n this.alert.alertWarning({\r\n title: 'Warning',\r\n text: 'Invalid Zip Code.',\r\n });\r\n //return false;\r\n } else {\r\n let customeraddressitem = new CustomerAddress();\r\n customeraddressitem = this.addressmodel;\r\n customeraddressitem.Id = 0;\r\n customeraddressitem.CustomerId = 0;\r\n customeraddressitem.ContactPersonId = 0;\r\n customeraddressitem.IsDefault = this.addressmodel.IsDefault;\r\n if (customeraddressitem.IsDefault == true) {\r\n this.isDefaultSelected = true;\r\n }\r\n if (customeraddressitem.AddressType == 3) {\r\n this.isShippingAddress = true;\r\n this.shippingAddressCount += 1;\r\n }\r\n customeraddressitem.CreatedBy = this.model.CreatedBy;\r\n customeraddressitem.UpdatedBy = null;\r\n customeraddressitem.IsDeleted = false;\r\n\r\n customeraddressitem.County = this.temporaryCountrySelected;\r\n this.customeraddresses.push(customeraddressitem);\r\n\r\n //console.log(this.customeraddresses);\r\n this.addressmodel = new CustomerAddress();\r\n this.addressmodel.AddressType = 1;\r\n this.addressmodel.CountryId = 0;\r\n this.loadCountries();\r\n\r\n if (\r\n this.customeraddresses.length &&\r\n this.customeraddresses.length > 0\r\n ) {\r\n this.validAddress = true;\r\n\r\n if (\r\n this.model.LevelProcessing >= 2 &&\r\n this.isShippingAddress == true\r\n ) {\r\n this.validAddress = true;\r\n } else if (\r\n this.model.LevelProcessing >= 2 &&\r\n this.isShippingAddress == false\r\n ) {\r\n this.validAddress = false;\r\n }\r\n\r\n if (this.processor == 'tsys') {\r\n if (\r\n this.model.LevelProcessing >= 2 &&\r\n this.shippingAddressCount <= 0\r\n ) {\r\n this.addressmodel.AddressType = 3;\r\n this.alert.alertWarning({\r\n title: 'Warning',\r\n text: 'Shipping Address is Required for Level 2 or 3 Customers.',\r\n });\r\n }\r\n }\r\n } else {\r\n this.validAddress = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async addPhone(customerId: any, contactpersonId: any) {\r\n let isDefault = true;\r\n if (this.customerContactNumbers.length > 0 && this.isIndividual) {\r\n for (const customerContactNumber of this.customerContactNumbers) {\r\n customerContactNumber.Id = 0;\r\n customerContactNumber.CustomerId = customerId;\r\n customerContactNumber.IsDefault = isDefault;\r\n customerContactNumber.CreatedBy = this.model.CreatedBy;\r\n customerContactNumber.UpdatedBy = null;\r\n customerContactNumber.IsDeleted = false;\r\n if (customerContactNumber.PhoneNumber) {\r\n await this.apiService.addPhone(customerContactNumber).toPromise();\r\n isDefault = false;\r\n }\r\n }\r\n } else {\r\n this.phonemodel.Id = 0;\r\n this.phonemodel.CustomerId = customerId;\r\n this.phonemodel.IsDefault = true;\r\n this.phonemodel.CreatedBy = this.model.CreatedBy;\r\n this.phonemodel.UpdatedBy = null;\r\n this.phonemodel.IsDeleted = false;\r\n if (this.phonemodel.PhoneNumber) {\r\n await this.apiService.addPhone(this.phonemodel).toPromise();\r\n }\r\n }\r\n }\r\n\r\n async addContacts(customerId: any) {\r\n for (const contact of this.contactForm.contactPersons) {\r\n contact.BusinessCustomerId = customerId;\r\n contact.Id = 0;\r\n for (const key in contact) {\r\n if (contact[key] === '' || contact[key] === null) {\r\n delete contact[key];\r\n }\r\n }\r\n await this.apiService.saveCustomerContactWithAddress(contact).toPromise();\r\n }\r\n }\r\n\r\n removeContactNumber(contactNumberIndex) {\r\n this.customerContactNumbers.splice(contactNumberIndex, 1);\r\n }\r\n\r\n remove(customeraddressitem, address_index) {\r\n if (this.processor == 'tsys') {\r\n if (customeraddressitem.AddressType == 3) {\r\n this.shippingAddressCount -= 1;\r\n }\r\n if (this.model.LevelProcessing >= 2 && this.shippingAddressCount <= 0) {\r\n this.validAddress = false;\r\n this.addressmodel.AddressType = 3;\r\n this.alert.alertWarning({\r\n title: 'Warning',\r\n text: 'Shipping Address is Required for Level 2 or 3 Customers.',\r\n });\r\n }\r\n }\r\n // remove from lists\r\n this.customeraddresses.splice(address_index, 1);\r\n }\r\n\r\n close() {\r\n this.modalRef.close();\r\n }\r\n\r\n isValidEmail() {\r\n const re =\r\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n let emailAddress = this.isIndividual\r\n ? this.model.EmailAddress\r\n : this.contactmodel.EmailAddress;\r\n this.emailAddressValid = re.test(String(emailAddress).toLowerCase());\r\n\r\n return this.emailAddressValid;\r\n }\r\n\r\n onMobileNumberKeyup(event) {\r\n let formattedMobileNumber = event;\r\n\r\n if (event != '') {\r\n if (event.length > 2) {\r\n if (event.indexOf('(') < 0) {\r\n formattedMobileNumber = '(' + event[0] + event[1] + event[2] + ')';\r\n }\r\n if (event.length == 8) {\r\n formattedMobileNumber =\r\n formattedMobileNumber.slice(0, 5) +\r\n ' ' +\r\n formattedMobileNumber[5] +\r\n formattedMobileNumber[6] +\r\n formattedMobileNumber[7] +\r\n '-';\r\n }\r\n this.phonemodel.PhoneNumber = formattedMobileNumber;\r\n } else {\r\n this.phonemodel.PhoneNumber = event;\r\n }\r\n }\r\n //console.log(this.fieldvalue);\r\n }\r\n\r\n onLevelChange(levelValue) {\r\n if (levelValue == 2 || levelValue == 3) {\r\n this.addressmodel.AddressType = 3;\r\n } else {\r\n this.addressmodel.AddressType = 1;\r\n }\r\n }\r\n\r\n // for checking valid characters in PO Number\r\n checkSpecialChar(event) {\r\n var keyval;\r\n keyval = event.charCode;\r\n if (\r\n (keyval > 64 && keyval < 91) ||\r\n (keyval > 96 && keyval < 123) ||\r\n keyval == 8 ||\r\n keyval == 32 ||\r\n (keyval >= 48 && keyval <= 57)\r\n ) {\r\n return keyval;\r\n } else {\r\n this.alert.alertWarning({\r\n title: 'Warning!',\r\n text: 'Special characters are not allowed. Please use alphanumeric characters only.',\r\n });\r\n }\r\n }\r\n\r\n encodeImageFileAsURL(event: any) {\r\n if (event.target.files && event.target.files[0]) {\r\n let files = event.target.files;\r\n let reader = new FileReader();\r\n let file = files[0];\r\n\r\n reader.readAsDataURL(event.target.files[0]);\r\n\r\n reader.onload = (event: any) => {\r\n this.model.Photo = event.target.result;\r\n let customerPhoto = new CustomerPhoto();\r\n customerPhoto.Id = this.model.Id;\r\n customerPhoto.Image = event.target.result.replace(\r\n 'data:image/jpeg;base64,',\r\n ''\r\n );\r\n this.customerPhotoLoading = true;\r\n this.updateCustomerPhoto$ = this.apiService\r\n .updateCustomerPhoto(customerPhoto)\r\n .subscribe((res: any) => {\r\n this.model.Photo = res.ImagePath;\r\n this.customerPhotoLoading = false;\r\n this.hasUpdates = true;\r\n });\r\n };\r\n }\r\n }\r\n\r\n isValidAddress() {\r\n if (this.isEditMode) return true;\r\n\r\n if (!this.isIndividual) return true;\r\n\r\n return this.validAddress || this.customerForm.form.valid;\r\n }\r\n}\r\n","\r\n
\r\n

\r\n \r\n {{ isEditMode ? \"Edit\" : \"Add\" }} Customer\r\n

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n

Contact Information

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n = 48 && event.charCode <= 57\"\r\n aria-label=\"Contact Number\"\r\n />\r\n
\r\n
\r\n
\r\n \r\n Add customer phone\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Contact Numbers

\r\n \r\n \r\n \r\n Type\r\n Mobile Number\r\n Action\r\n \r\n \r\n \r\n \r\n No contact number yet.\r\n \r\n \r\n \r\n Mobile\r\n \r\n \r\n Home\r\n \r\n \r\n Office\r\n \r\n \r\n {{ individualContactNumber.PhoneNumber }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n

Address

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n {{ state.abbreviation }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n {{ country.CountryName }}\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
 
\r\n
\r\n \r\n Note: Shipping\r\n Address is required for Level 2 or 3 customers.\r\n
\r\n
\r\n \r\n Add another address\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n

Addresses

\r\n \r\n \r\n \r\n Type\r\n Address\r\n Action\r\n \r\n \r\n \r\n \r\n No address yet.\r\n \r\n \r\n \r\n Home\r\n \r\n \r\n Office\r\n \r\n \r\n Shipping\r\n \r\n \r\n Billing\r\n \r\n \r\n {{ individualaddress.StreetAddress }}\r\n {{ individualaddress.Address2 }} {{ individualaddress.City }}\r\n {{ individualaddress.State }} {{ individualaddress.County }}\r\n {{ individualaddress.ZipCode }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n

Invoice Settings

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n {{ isEditMode ? \"Update Customer\" : \"Add new Customer\" }}\r\n \r\n \r\n
\r\n\r\n","
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n Update Card Details\r\n
\r\n
\r\n\r\n
\r\n \r\n Card Number\r\n \r\n \r\n
\r\n \r\n Card Expiration\r\n \r\n \r\n \r\n Card CVV\r\n \r\n \r\n
\r\n \r\n Set as Default\r\n \r\n
\r\n\r\n
\r\n \r\n Discard\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ !isProcessing ? 'Update Card Details' : 'Updating Card Details...' }}\r\n \r\n
\r\n
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CustomerCardNumber } from 'src/app/shared/models/customer.model';\r\nimport { AlertService } from 'src/app/core/alert.service';\r\nimport { AuthService } from 'src/app/core/auth.service';\r\nimport { CustomerManagementService } from 'src/app/shared/services/customer.service';\r\n\r\n@Component({\r\n selector: 'app-card-update-form',\r\n templateUrl: './card-update-form.component.html',\r\n styleUrls: ['./card-update-form.component.scss']\r\n})\r\nexport class CardUpdateFormComponent implements OnInit {\r\n @Input() card: CustomerCardNumber;\r\n @Input() customerId: number;\r\n @Input() locationId: number;\r\n\r\n isSubmitted: boolean = false;\r\n isProcessing: boolean = false;\r\n cardExpiry: string = '';\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private authService: AuthService,\r\n private alertService: AlertService,\r\n private customerService: CustomerManagementService,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.cardExpiry = this.card.ExpMonth + '/' + this.card.ExpYear;\r\n }\r\n\r\n onClose(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n onKeyup(e: any): void {\r\n if (e.code === 'Backspace') return\r\n\r\n this.cardExpiry = e.target.value.replace(\r\n /^([1-9]\\/|[2-9])$/g, '0$1/' // 3 > 03/\r\n ).replace(\r\n /^(0[1-9]|1[0-2])$/g, '$1/' // 11 > 11/\r\n ).replace(\r\n /^([0-1])([3-9])$/g, '0$1/$2' // 13 > 01/3\r\n ).replace(\r\n /^(0?[1-9]|1[0-2])([0-9]{4})$/g, '$1/$2' // 141 > 01/41\r\n ).replace(\r\n /^([0]+)\\/|[0]+$/g, '0' // 0/ > 0 and 00 > 0\r\n );\r\n }\r\n\r\n onKeydown(e: any): void {\r\n if (e.code === 'Slash') {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n onSaveCard(): void {\r\n this.isProcessing = true;\r\n\r\n const expiryMonth = Number.parseInt(this.cardExpiry.split('/')[0]);\r\n const expiryYear = Number.parseInt(this.cardExpiry.split('/')[1]);\r\n\r\n const payload = {\r\n customerId: this.customerId,\r\n locationId: this.locationId,\r\n cardInfo: {\r\n expMonth: expiryMonth,\r\n expYear: expiryYear,\r\n cardLast4Digits: this.card.CardLast4Digits,\r\n token: this.card.Token,\r\n cardType: this.card.CardBrand,\r\n },\r\n };\r\n\r\n this.customerService\r\n .updateCardToken(payload)\r\n .subscribe({\r\n next: (res) => {\r\n if (res.toLowerCase() === 'successfully updated the token.') {\r\n this.setDefaultCard(expiryMonth, expiryYear);\r\n } else {\r\n this.alertService.alertError({\r\n title: 'Error',\r\n text: res,\r\n });\r\n this.isProcessing = false;\r\n }\r\n },\r\n error: (err) => {\r\n this.alertService.alertError({\r\n title: 'Error',\r\n text: err.error,\r\n });\r\n this.isProcessing = false;\r\n },\r\n })\r\n }\r\n\r\n setDefaultCard(expMonth: number, expYear: number): void {\r\n this.card.UpdatedBy = Number.parseInt(JSON.parse(this.authService.getUserInfo()).UserId);\r\n this.card.UpdatedDate = new Date();\r\n this.card.ExpMonth = expMonth;\r\n this.card.ExpYear = expYear;\r\n\r\n this.customerService\r\n .updateCustomerCardNumber(this.card)\r\n .subscribe({\r\n next: () => {\r\n this.alertService.alertSuccess({\r\n title: 'Success!',\r\n text: 'Successfully updated card details',\r\n });\r\n this.onClose(true);\r\n },\r\n error: (error) => {\r\n this.alertService.alertError({\r\n title: 'Error',\r\n text: error.error,\r\n });\r\n this.isProcessing = false;\r\n },\r\n })\r\n }\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { NgForm } from '@angular/forms';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe-decorator';\r\nimport { Subscription } from 'rxjs';\r\nimport { ContactPerson } from 'src/app/customer/models/customer.model';\r\nimport { CustomerManagementService } from 'src/app/customer/services/customer.service';\r\nimport { Customer } from 'src/app/shared/models/customer.model';\r\n\r\n@Component({\r\n selector: 'app-contact-form',\r\n templateUrl: './contact-form.component.html',\r\n styleUrls: ['./contact-form.component.scss'],\r\n})\r\nexport class ContactFormComponent implements OnInit {\r\n @ViewChild('customerForm', { static: true }) customerForm: NgForm;\r\n @Input() usStates: any[] = [];\r\n @Input() countries: any[] = [];\r\n @Input() model: Customer;\r\n isUSA: boolean = true;\r\n isUSAContact: boolean = true;\r\n\r\n isContactSaving: boolean = false;\r\n contactPersons: ContactPerson[] = [];\r\n\r\n @AutoUnsubscribe()\r\n usaStates$: Subscription;\r\n @AutoUnsubscribe()\r\n saveCustomerContactWithAddress$: Subscription;\r\n @AutoUnsubscribe()\r\n getAllCountries$: Subscription;\r\n\r\n constructor(private apiService: CustomerManagementService) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n save() {\r\n const contactPerson = new ContactPerson();\r\n\r\n for (let key in this.customerForm.value) {\r\n if (key === 'IsMainContact') {\r\n contactPerson[key] = !!this.customerForm.value[key];\r\n break;\r\n }\r\n contactPerson[key] = this.customerForm.value[key];\r\n }\r\n\r\n this.contactPersons.push(contactPerson);\r\n this.customerForm.resetForm();\r\n }\r\n\r\n removeContactPerson(contactNumberIndex) {\r\n this.contactPersons.splice(contactNumberIndex, 1);\r\n }\r\n\r\n countryChanged(event: any) {\r\n this.isUSA = event.target.value === '230' ? true : false;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Add another contact\r\n \r\n
\r\n
\r\n
Contact Persons
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Full nameEmailDefault
No contact number yet.
{{ contact.FirstName + \" \" + contact.LastName }}{{ contact.EmailAddress }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { CustomerManagementService } from '../../../services/customer.service';\r\nimport { CustomerAddress } from '../../../models/customer.model';\r\nimport { AlertService } from 'src/app/core/alert.service';\r\nimport { AuthorizationBase } from 'src/app/core/authorize-base';\r\n\r\n@Component({\r\n selector: 'app-customer-address-form',\r\n templateUrl: './customer-address-form.component.html',\r\n styleUrls: ['./customer-address-form.component.scss'],\r\n})\r\nexport class CustomerAddressFormComponent extends AuthorizationBase implements OnInit, OnDestroy {\r\n @Input() customerId: number;\r\n @Input() editMode: boolean = false;\r\n\r\n @Input() customerAddress: CustomerAddress = new CustomerAddress();\r\n states: any[];\r\n countries: any[];\r\n isLoading: boolean = false;\r\n isSubmitted: boolean = false;\r\n\r\n selectedAddressType: number = 1;\r\n addressTypes: any = [\r\n { name: 'Home', value: 1 },\r\n { name: 'Office', value: 2 },\r\n { name: 'Shipping', value: 3 },\r\n { name: 'Billing', value: 4 },\r\n ];\r\n\r\n readonly unsubscribe$ = new Subject();\r\n\r\n constructor(\r\n private apiService: CustomerManagementService,\r\n private activeModal: NgbActiveModal,\r\n private alert: AlertService,\r\n ) { \r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n \r\n if(!this.editMode) {\r\n this.customerAddress = new CustomerAddress();\r\n }\r\n \r\n forkJoin({\r\n states: this.apiService.usaStates(),\r\n countries: this.apiService.getAllCountries(),\r\n })\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((data: any) => {\r\n for (const [key, value] of Object.entries(data)) {\r\n this[key] = value;\r\n }\r\n\r\n this.customerAddress.CustomerId = this.customerId;\r\n this.customerAddress.CountryId = 230;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n close(data?: any): void {\r\n this.activeModal.close(data);\r\n }\r\n\r\n onAddressTypeSelected(type: number): void {\r\n this.selectedAddressType = type;\r\n this.customerAddress.AddressType = this.selectedAddressType;\r\n }\r\n\r\n onCountryChanged(countryCode: number): void {\r\n this.customerAddress.CountryId = countryCode;\r\n }\r\n\r\n onSave(isValid: boolean): void {\r\n this.isSubmitted = true;\r\n\r\n if (isValid) {\r\n \r\n this.isLoading = true;\r\n if(!this.editMode) {\r\n this.customerAddress.UpdatedBy = !isNaN(Number(this.userId)) ? Number(this.userId) : 0;\r\n this.customerAddress.CreatedBy = !isNaN(Number(this.userId)) ? Number(this.userId) : 0;\r\n } else {\r\n this.customerAddress.UpdatedBy = !isNaN(Number(this.userId)) ? Number(this.userId) : 0;\r\n }\r\n \r\n \r\n this.apiService.addAddress(this.customerAddress)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((address: any) => {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: this.editMode\r\n ? 'Successfully updated an address!'\r\n : 'Successfully added a new address!',\r\n }).then(() => {\r\n this.isLoading = false;\r\n this.isSubmitted = false;\r\n\r\n this.close(address.CustomerAddress);\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n
\r\n
{{ !editMode ? 'Add Customer Address' : 'Edit Customer Address' }}
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Street address\r\n \r\n \r\n\r\n \r\n Address 2\r\n \r\n \r\n\r\n
\r\n \r\n City\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Zip Code\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Set as Default\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Cancel\r\n \r\n \r\n \r\n \r\n {{ !isLoading ? 'Save' : 'Saving...' }}\r\n \r\n
\r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NgbActiveModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AuthorizationBase } from 'src/app/shared/libraries/authorize-base';\r\nimport { CustomerAddressFormComponent } from '../customer-address-form/customer-address-form.component';\r\nimport { HeartlandCardTokenizerComponent } from '../../../../shared/components/heartland-card-tokenizer/heartland-card-tokenizer.component';\r\nimport { CustomerCardNumber } from '../../../models/customer.model';\r\nimport {\r\n CardInfo,\r\n CreditPayment,\r\n CustomerAddress,\r\n} from '../../../models/invoice/invoice.model';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { CreditPaymentService } from '../../../services/creditpayment.service';\r\nimport { CustomerManagementService } from '../../../services/customer.service';\r\nimport { SourceComponent } from '../../../models/invoice/payment.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { AutoUnsubscribe } from 'ngx-auto-unsubscribe-decorator';\r\n\r\n@Component({\r\n selector: 'app-customercarddata-form',\r\n templateUrl: './customercarddata-form.component.html',\r\n styleUrls: ['./customercarddata-form.component.scss'],\r\n})\r\nexport class CustomerCardDataComponent\r\n extends AuthorizationBase\r\n implements OnInit\r\n{\r\n @ViewChild('container', { static: false }) tcpTemplate: TemplateRef;\r\n @ViewChild('tokenizerForm', { static: false })\r\n tokenizerForm: HeartlandCardTokenizerComponent;\r\n\r\n @Input() customercardData: any;\r\n @Input() customerId: number;\r\n @Input() addressId: number = 0;\r\n @Input() policyContent: string;\r\n @Input() termsAndConditionContent: string;\r\n tokenReceived: boolean = false;\r\n formTitle: string = 'Add Customer Card';\r\n buttonTitle: string = 'Add new customer card';\r\n isUpdate: boolean = false;\r\n maskedcardnumber: string;\r\n busy: boolean = false;\r\n model: CustomerCardNumber;\r\n cardToken: any;\r\n cardBrandTransactionId: string;\r\n\r\n docSource = 'customerMgt';\r\n\r\n verifyMessage: string = 'Card not yet verified';\r\n\r\n customerAddress: CustomerAddress;\r\n customerAddressList: any[];\r\n\r\n tcpTitle: string;\r\n tcpContent: string;\r\n\r\n currentModal: NgbModalRef;\r\n\r\n processor: string;\r\n\r\n cardDataSource: 'internet';\r\n\r\n @AutoUnsubscribe()\r\n private getCustomerAddresses$: Subscription;\r\n @AutoUnsubscribe()\r\n private getCustomerCardNumber$: Subscription;\r\n @AutoUnsubscribe()\r\n private updateCustomerCardNumber$: Subscription;\r\n @AutoUnsubscribe()\r\n private addCustomerCardNumber$: Subscription;\r\n @AutoUnsubscribe()\r\n private creditVerify$: Subscription;\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private alert: AlertService,\r\n private creditService: CreditPaymentService,\r\n public apiService: CustomerManagementService,\r\n private modalService: NgbModal\r\n ) {\r\n super();\r\n this.model = new CustomerCardNumber();\r\n this.processor = super.getPlatform().toString();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.customercardData) {\r\n this.getCustomerCardData(this.customercardData.id);\r\n this.formTitle = 'Update Customer Card';\r\n this.buttonTitle = 'Update customer card';\r\n this.isUpdate = true;\r\n this.maskcreditcard(this.customercardData.cardNumber);\r\n } else {\r\n this.customercardData = new CustomerCardNumber();\r\n this.customercardData.id = 0;\r\n this.customercardData.customerId = this.customerId;\r\n this.model = this.customercardData;\r\n }\r\n\r\n this.customerAddress = new CustomerAddress();\r\n this.getCustomerAddress(this.customerId);\r\n }\r\n\r\n getCustomerAddress(id: number) {\r\n this.busy = true;\r\n this.getCustomerAddresses$ = this.apiService\r\n .getCustomerAddresses(id)\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n let addr = res.find((addr) => {\r\n if (this.addressId != 0) {\r\n return addr.Id === this.addressId;\r\n } else {\r\n return addr.IsDefault === true;\r\n }\r\n });\r\n this.customerAddressList = res;\r\n\r\n if (addr) {\r\n this.addressId = addr.Id;\r\n this.customerAddress.City = addr.City;\r\n this.customerAddress.State = addr.State;\r\n this.customerAddress.PostalCode = addr.ZipCode;\r\n this.customerAddress.StreetAddress1 = addr.StreetAddress;\r\n }\r\n }\r\n },\r\n (error: any) => {},\r\n () => {\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n getCustomerCardData(id: number) {\r\n this.busy = true;\r\n this.getCustomerCardNumber$ = this.apiService\r\n .getCustomerCardNumber(id)\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.model = res;\r\n }\r\n },\r\n (error: any) => {},\r\n () => {\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n onCardTokenReceived(token) {\r\n this.cardToken = token;\r\n this.tokenReceived = true;\r\n // call verify\r\n let creditCard = new CreditPayment();\r\n creditCard.cardInfo = new CardInfo();\r\n creditCard.cardInfo.token = this.cardToken.paymentReference;\r\n creditCard.cardInfo.number = this.cardToken.details.cardLast4;\r\n creditCard.cardInfo.cardType = this.cardToken.details.cardType;\r\n creditCard.cardInfo.cardBIN = this.cardToken.details.cardBin;\r\n creditCard.cardInfo.expMonth = this.cardToken.details.expiryMonth;\r\n creditCard.cardInfo.expYear = this.cardToken.details.expiryYear;\r\n creditCard.cardInfo.cvn = this.cardToken.details.cvv;\r\n\r\n creditCard.billingAddress = this.customerAddress;\r\n creditCard.SourceComponent = SourceComponent.AddCustomerCard;\r\n creditCard.TransactionSource = SourceComponent.AddCustomerCard;\r\n creditCard.cardDataSource = this.cardDataSource;\r\n creditCard.LocationId = +super.getUserLocationId();\r\n\r\n this.creditVerify$ = this.creditService.creditVerify(creditCard).subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.cardToken.token_value = res.token;\r\n this.cardBrandTransactionId = res.cardBrandTransactionId;\r\n this.save();\r\n }\r\n },\r\n (err) => {\r\n this.alert.alertError({\r\n title: 'Verification failed',\r\n text: err.error,\r\n });\r\n this.tokenizerForm.setBusyState(false);\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n maskcreditcard(cardnumber: string) {\r\n //mask\r\n var text = '';\r\n for (var i = 0; i < cardnumber.length - 4; i++) {\r\n text += 'X';\r\n }\r\n text = text + cardnumber.substring(cardnumber.length - 4);\r\n this.maskedcardnumber = text;\r\n }\r\n\r\n save() {\r\n const id = this.customercardData.id;\r\n if (id > 0) {\r\n this.model.IsDeleted = false;\r\n this.model.UpdatedBy = 1;\r\n this.model.UpdatedDate = new Date();\r\n this.updateCustomerCardNumber$ = this.apiService\r\n .updateCustomerCardNumber(this.model)\r\n .subscribe((res) => {\r\n if (res) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Successfully updated customer card',\r\n });\r\n this.tokenizerForm.setBusyState(false);\r\n this.modalRef.close(true);\r\n }\r\n });\r\n } else {\r\n this.model.Token = this.cardToken.token_value;\r\n this.model.CardLast4Digits = this.cardToken.last_four;\r\n this.model.CardBrand = this.cardToken.card_type;\r\n\r\n this.model.CardLast4Digits = this.cardToken.details.cardLast4;\r\n this.model.CardBrand = this.cardToken.details.cardType;\r\n this.model.ExpMonth = this.cardToken.details.expiryMonth;\r\n this.model.ExpYear = this.cardToken.details.expiryYear;\r\n this.model.CVN = this.cardToken.details.cvv;\r\n this.model.CardBrandTransactionId = this.cardBrandTransactionId;\r\n\r\n this.model.IsDeleted = false;\r\n this.model.CreatedBy = Number.parseInt(this.userId().toString());\r\n this.model.CreatedDate = new Date();\r\n this.model.UpdatedBy = null;\r\n this.model.UpdatedDate = null;\r\n this.model.Id = 0;\r\n this.model.CustomerId = this.customerId;\r\n\r\n this.addCustomerCardNumber$ = this.apiService\r\n .addCustomerCardNumber(this.model)\r\n .subscribe((res) => {\r\n if (res) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Successfully created customer card',\r\n });\r\n this.tokenizerForm.setBusyState(false);\r\n this.modalRef.close(true);\r\n }\r\n });\r\n }\r\n }\r\n\r\n addAddress() {\r\n let cardDiag = this.modalService.open(CustomerAddressFormComponent, {\r\n size: 'lg',\r\n });\r\n cardDiag.componentInstance.customerId = this.customerId;\r\n\r\n cardDiag.result.then((res: CustomerAddress) => {\r\n if (res) {\r\n this.customerAddressList.push(res);\r\n this.addressId = res.Id;\r\n this.addressSelected();\r\n }\r\n });\r\n }\r\n\r\n addressSelected() {\r\n var addr = this.customerAddressList.find((addr) => {\r\n return addr.Id == this.addressId;\r\n });\r\n if (addr) {\r\n this.customerAddress.City = addr.City;\r\n this.customerAddress.State = addr.State;\r\n this.customerAddress.PostalCode = addr.ZipCode;\r\n this.customerAddress.StreetAddress1 = addr.StreetAddress;\r\n }\r\n }\r\n\r\n openTermsAndCondition() {\r\n this.tcpTitle = 'Terms and Conditions';\r\n this.tcpContent = this.termsAndConditionContent;\r\n this.currentModal = this.modalService.open(this.tcpTemplate, {\r\n size: 'lg',\r\n });\r\n }\r\n\r\n openPolicy() {\r\n this.tcpTitle = 'Policy';\r\n this.tcpContent = this.policyContent;\r\n this.currentModal = this.modalService.open(this.tcpTemplate, {\r\n size: 'lg',\r\n });\r\n }\r\n\r\n close() {\r\n this.modalRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n {{ formTitle }}\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ addr.StreetAddress }} {{ addr.City }} {{ addr.CountryCode }}\r\n {{ addr.ZipCode }}\r\n \r\n \r\n
\r\n
\r\n \r\n Add address\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, map } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-customer-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.scss'],\r\n})\r\nexport class SearchComponent implements OnInit {\r\n @Input() editable = false;\r\n @Input() customerInfo: any;\r\n @Input() required = false;\r\n @Output() customerInfoChange = new EventEmitter();\r\n @Input() customers = [];\r\n @Input() disabled = false;\r\n @Output() select = new EventEmitter();\r\n @Output() clear = new EventEmitter();\r\n\r\n showNoRecord: boolean = false;\r\n limit: number = 20;\r\n offset: number = 0;\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n customerFormatter = (x: {\r\n FirstName: string;\r\n LastName: string;\r\n CustomerTypeId: number;\r\n BusinessName: string;\r\n }) =>\r\n x.CustomerTypeId == 2 ? x.BusinessName : x.FirstName + ' ' + x.LastName;\r\n\r\n searchCustomer = (text$: Observable) =>\r\n text$.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n map((term) => {\r\n if (term === '') {\r\n this.showNoRecord = false;\r\n return this.customers.splice(this.offset, this.limit);\r\n } else {\r\n const result = this.customers.filter((v) => {\r\n v.FullName = v.FirstName + ' ' + v.LastName;\r\n return v.CustomerTypeId == 2\r\n ? v.BusinessName != null &&\r\n v.BusinessName.toLowerCase().indexOf(term.toLowerCase()) > -1\r\n : v.FullName != null &&\r\n v.FullName.toLowerCase().indexOf(term.toLowerCase()) > -1;\r\n });\r\n\r\n this.showNoRecord = result.length === 0 ? true : false;\r\n result.push({ showMore: true });\r\n return result.splice(this.offset, this.limit);\r\n }\r\n })\r\n );\r\n\r\n onSelect(customer) {\r\n this.select.emit(customer);\r\n }\r\n\r\n change(newValue) {\r\n if (!newValue) {\r\n this.onClear();\r\n } else {\r\n this.customerInfo = newValue;\r\n this.customerInfoChange.emit(newValue);\r\n }\r\n }\r\n\r\n onClear() {\r\n this.clear.emit();\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n No customer found\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss'],\r\n})\r\nexport class FilterComponent implements OnInit {\r\n @Input() showSearchInput = true;\r\n @Input() inputClass = '';\r\n @Input() searchPlaceholder = '';\r\n @Input() dropDownChoices: [] | {};\r\n @Output() selectChange = new EventEmitter();\r\n @Output() searchChange = new EventEmitter();\r\n\r\n search: FormControl = new FormControl();\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.search.valueChanges\r\n .pipe(debounceTime(300))\r\n .subscribe((value: string) => {\r\n this.searchChange.emit(value);\r\n });\r\n }\r\n\r\n onSelect(event: { target: HTMLSelectElement }): void {\r\n this.selectChange.emit(event.target.value);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ choices?.name || choices }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-forbiddem-access',\r\n templateUrl: './forbiddem-access.component.html',\r\n styleUrls: ['./forbiddem-access.component.scss']\r\n})\r\nexport class ForbiddemAccessComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n

Forbidden.

\r\n

\r\n Unauthorized access. You don't have the privilege to access this page.\r\n

\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { RecurringFrequency } from '../../models/frequency.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-frequency-form',\r\n templateUrl: './frequency-form.component.html',\r\n styleUrls: ['./frequency-form.component.scss'],\r\n})\r\nexport class FrequencyFormComponent implements OnInit {\r\n recurringFrequency: RecurringFrequency;\r\n minDate = new Date();\r\n\r\n constructor() {\r\n this.recurringFrequency = new RecurringFrequency();\r\n this.minDate.setDate(this.minDate.getDate() + 1);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setFrequencyDefaults();\r\n }\r\n\r\n changeRecurringEndType(event) {\r\n this.recurringFrequency.EndType = event.target.value;\r\n }\r\n\r\n changeRecurringFrequencyType(event) {\r\n const dayOfTheWeek = moment().format('dd').toUpperCase();\r\n this.recurringFrequency.FrequencyType = +event.target.value;\r\n\r\n if (event.target.value == 3) {\r\n this.recurringFrequency.ByDay = dayOfTheWeek;\r\n } else {\r\n this.recurringFrequency.ByDay = dayOfTheWeek;\r\n this.recurringFrequency.ByDayArray = [];\r\n this.recurringFrequency.ByDayArray.push(dayOfTheWeek);\r\n }\r\n }\r\n\r\n changeRecurringByMonth(event) {\r\n this.recurringFrequency.ByMonth = +event.target.value;\r\n }\r\n\r\n changeRecurringBySetPos(event) {\r\n this.recurringFrequency.BySetPos = +event.target.value;\r\n }\r\n\r\n changeRecurringByDay(day: string, type: string) {\r\n if (type === 'multiple') {\r\n const isSelected = this.recurringFrequency.ByDayArray.find(\r\n (e) => e === day\r\n );\r\n if (isSelected) {\r\n this.recurringFrequency.ByDayArray =\r\n this.recurringFrequency.ByDayArray.filter((e) => e !== day);\r\n } else {\r\n this.recurringFrequency.ByDayArray.push(day);\r\n }\r\n\r\n this.recurringFrequency.ByDay =\r\n this.recurringFrequency.ByDayArray.join(',');\r\n } else {\r\n this.recurringFrequency.ByDay = day;\r\n }\r\n }\r\n\r\n changeRecurringDayType(type: string) {\r\n this.recurringFrequency.DayType = type;\r\n }\r\n\r\n setFrequencyDefaults() {\r\n this.recurringFrequency.ByDay = moment().format('dd').toUpperCase();\r\n this.recurringFrequency.ByDayArray = [moment().format('dd').toUpperCase()];\r\n this.recurringFrequency.ByMonth = +moment().format('M');\r\n this.recurringFrequency.ByMonthDay = +moment().format('D');\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Day/s\r\n Week/s\r\n Month/s\r\n Year/s\r\n
\r\n \r\n S\r\n M\r\n T\r\n W\r\n T\r\n F\r\n S\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Day of the month\r\n \r\n \r\n Week of the month\r\n \r\n
\r\n \r\n \r\n \r\n Every\r\n \r\n of the month\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n S\r\n M\r\n T\r\n W\r\n T\r\n F\r\n S\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n","declare var $: any;\r\ndeclare var GlobalPayments: any;\r\nimport { Component, OnInit, EventEmitter, Output, Input } from '@angular/core';\r\nimport { ApiService } from '../../services/api.service';\r\nimport { AuthorizationBase } from '../../../core/authorize-base';\r\nimport { paymentCss } from '../../../formiobuilder/models/globalpayments.model';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CreditPaymentService } from '../../services/creditpayment.service';\r\n\r\n@Component({\r\n selector: 'app-heartland-card-tokenizer',\r\n templateUrl: './heartland-card-tokenizer.component.html',\r\n styleUrls: ['./heartland-card-tokenizer.component.scss'],\r\n})\r\nexport class HeartlandCardTokenizerComponent\r\n extends AuthorizationBase\r\n implements OnInit\r\n{\r\n form: FormGroup;\r\n field: any;\r\n cardToken: any;\r\n busy: boolean;\r\n tokenizerBusy: boolean;\r\n @Input() source: string = '';\r\n @Input() publicAPIKey: string;\r\n @Input() submitText = 'Add new customer card';\r\n @Output() tokenData = new EventEmitter();\r\n\r\n constructor(\r\n private creditService: CreditPaymentService,\r\n private toastr: ToastrService,\r\n private apiService: ApiService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n let apiKey = this.getAPIKey();\r\n\r\n let self = this;\r\n GlobalPayments.configure({\r\n publicApiKey: apiKey,\r\n });\r\n // Create Form\r\n const cardForm = GlobalPayments.ui.form({\r\n fields: {\r\n 'card-holder-name': {\r\n placeholder: 'Jane Smith',\r\n target: '#credit-card-card-holder',\r\n },\r\n 'card-number': {\r\n placeholder: '•••• •••• •••• ••••',\r\n target: '#credit-card-card-number',\r\n },\r\n 'card-expiration': {\r\n placeholder: 'MM / YYYY',\r\n target: '#credit-card-card-expiration',\r\n },\r\n 'card-cvv': {\r\n placeholder: '•••',\r\n target: '#credit-card-card-cvv',\r\n },\r\n submit: {\r\n text: this.submitText,\r\n target: '#credit-card-submit',\r\n },\r\n },\r\n styles: paymentCss(),\r\n });\r\n\r\n cardForm.on('card-number', 'token-success', function (resp) {\r\n cardForm.frames['card-cvv'].getCvv().then(function (c) {\r\n resp.details.cvv = c;\r\n self.onTokenSuccess(resp);\r\n });\r\n });\r\n\r\n cardForm.on('card-number', 'token-error', function (resp) {\r\n self.onTokenError(resp);\r\n });\r\n\r\n cardForm.on('submit', 'click', () => {\r\n this.tokenizerBusy = true;\r\n });\r\n\r\n var paymentRequestForm = GlobalPayments.paymentRequest.setup(\r\n '#credit-card-submit',\r\n {\r\n total: {\r\n label: 'Total',\r\n amount: { value: 10, currency: 'USD' },\r\n },\r\n }\r\n );\r\n\r\n paymentRequestForm.on('token-success', function (resp) {\r\n self.onTokenSuccess(resp);\r\n GlobalPayments.paymentRequest.complete('success');\r\n });\r\n\r\n paymentRequestForm.on('token-error', function (resp) {\r\n self.onTokenError(resp);\r\n });\r\n\r\n paymentRequestForm.on('error', function (resp) {\r\n self.onTokenError(resp);\r\n });\r\n }\r\n\r\n onTokenSuccess(res) {\r\n this.cardToken = res;\r\n this.tokenData.emit(res);\r\n }\r\n\r\n onTokenError(res) {\r\n if (res.error) {\r\n this.toastr.error(res.reasons[0].message, res.reasons[0].code);\r\n this.tokenizerBusy = false;\r\n }\r\n }\r\n\r\n setBusyState(state: boolean) {\r\n this.tokenizerBusy = state;\r\n }\r\n\r\n checkIfSandboxEnabled() {\r\n //check if use sandbox is set to true\r\n this.apiService\r\n .get(`account/configuration/get?name=Sandbox.IsEnabled`)\r\n .subscribe((response: any) => {\r\n if (!response) {\r\n this.toastr.error(\r\n 'Please set Sandbox.IsEnabled configuration.',\r\n 'Missing Sandbox.IsEnabled configuration.'\r\n );\r\n return false;\r\n } else {\r\n if (response.Value.toString() === 'TRUE') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n return false;\r\n }\r\n\r\n getSandboxPublicKey() {\r\n this.apiService\r\n .get(`account/configuration/get?name=Sandbox.PublicAPIKey`)\r\n .subscribe(\r\n (response: any) => {\r\n if (!response) {\r\n this.toastr.error(\r\n 'Please set Sandbox.IsEnabled configuration.',\r\n 'Missing Sandbox.IsEnabled configuration.'\r\n );\r\n return false;\r\n } else {\r\n let apiKey = response.Value.toString();\r\n console.log(apiKey);\r\n return apiKey;\r\n }\r\n },\r\n (error: any) => {\r\n let msg = 'Error encountered';\r\n let ctr = 0;\r\n while (true && ctr < 10) {\r\n if (error.error === undefined) {\r\n msg = error.message;\r\n break;\r\n }\r\n ctr++;\r\n error = error.error;\r\n }\r\n this.toastr.error(msg, 'Error');\r\n },\r\n () => {}\r\n );\r\n return false;\r\n }\r\n\r\n getAPIKey() {\r\n let userid = super.userId();\r\n if (userid === '0') {\r\n let isSandboxEnabled = this.checkIfSandboxEnabled();\r\n if (isSandboxEnabled) {\r\n return this.getSandboxPublicKey();\r\n }\r\n }\r\n\r\n let locationData = super.getCurrentLoginUserLocation(); //TODO RESOLVE THIS SUCH THAT THE API KEY DATA IS ALSO AVAILABLE FOR THE CUSTOMER INVOICE\r\n let apiKey = locationData ? locationData.Public_API_Key : this.publicAPIKey;\r\n if (!apiKey) {\r\n this.toastr.error(\r\n 'Please set API Keys before using Card Payment. They can be configured by going to Locations > Edit Location > MID, PUBLIC API KEY and SECRET API KEY fields.',\r\n 'Missing API Keys'\r\n );\r\n return false;\r\n }\r\n\r\n return apiKey;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n  Setting up payment\r\n form..\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import {\r\n Attribute,\r\n Component,\r\n Output,\r\n EventEmitter,\r\n Input,\r\n SimpleChanges,\r\n OnChanges,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ControlContainer, NgForm } from '@angular/forms';\r\nimport { createMask } from '@ngneat/input-mask';\r\n\r\n@Component({\r\n selector: 'app-input-currency',\r\n templateUrl: './input-currency.component.html',\r\n styleUrls: ['./input-currency.component.scss'],\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n})\r\nexport class InputCurrencyComponent implements OnInit, OnChanges {\r\n @Input() className = '';\r\n @Input() id = '';\r\n @Input() amount = '';\r\n @Input() name = '';\r\n @Input() placeholder = '';\r\n @Input() required = false;\r\n @Input() min = '';\r\n @Input() max = '';\r\n @Input() disabled = false;\r\n @Input() icon = '';\r\n @Input() iconPlacement: 'prefix' | 'suffix' | '' = 'prefix';\r\n @Output() amountChange = new EventEmitter();\r\n @Output() blur = new EventEmitter();\r\n\r\n value = '';\r\n currencyInputMask = createMask({\r\n alias: 'numeric',\r\n groupSeparator: ',',\r\n digits: 2,\r\n digitsOptional: false,\r\n prefix: '',\r\n placeholder: '0',\r\n numericInput: true,\r\n rightAlign: false,\r\n allowMinus: false,\r\n });\r\n\r\n constructor() {}\r\n\r\n /**\r\n * Set Inital value\r\n */\r\n ngOnInit(): void {\r\n this.value = this.amount;\r\n }\r\n\r\n /**\r\n * Set Input Currency value on amount change\r\n * @param changes @Input properties\r\n */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.amount) {\r\n this.value = changes.amount.currentValue;\r\n }\r\n }\r\n\r\n /**\r\n * Emit value to amount on Input currency value change\r\n * @param value string\r\n */\r\n onChange(value): void {\r\n this.value = value;\r\n this.amountChange.emit(this.toNumber(value));\r\n }\r\n\r\n /**\r\n *\r\n * @param value string\r\n * @returns number - Format 123,456.78 to 123456.78\r\n */\r\n toNumber(value): number {\r\n return +(value ?? '').split(',').join('') ?? 0;\r\n }\r\n\r\n /**\r\n * On Input Currency blur\r\n * @param event emit blur event\r\n */\r\n onBlur(event): void {\r\n this.blur.emit();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-ios-mobile-url',\r\n templateUrl: './ios-mobile-url.component.html',\r\n styleUrls: ['./ios-mobile-url.component.scss']\r\n})\r\nexport class IosMobileUrlComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss']\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-modal-loader',\r\n templateUrl: './modal-loader.component.html',\r\n styleUrls: ['./modal-loader.component.scss']\r\n})\r\nexport class ModalLoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n","import { Input } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { YesNoDialogComponent } from '../../dialogs/yes-no-dialog/yes-no-dialog.component';\r\nimport { AuthorizationBase } from '../../libraries/authorize-base';\r\nimport { AlertService } from '../../../core/alert.service';\r\nimport { NotificationScheduleOption } from '../../models/settings/notification-schedule-option';\r\nimport { SubscriptionService } from '../../services/subscription-service.service';\r\n\r\n@Component({\r\n selector: 'app-notification-schedule-options',\r\n templateUrl: './notification-schedule-options.component.html',\r\n styleUrls: ['./notification-schedule-options.component.scss'],\r\n})\r\nexport class NotificationScheduleOptionsComponent\r\n extends AuthorizationBase\r\n implements OnInit\r\n{\r\n @Input() moduleType: string = 'Subscription';\r\n public searchKey: FormControl = new FormControl();\r\n\r\n busy: boolean = false;\r\n saving: boolean;\r\n options: NotificationScheduleOption[] = [];\r\n user: any;\r\n\r\n constructor(\r\n private alert: AlertService,\r\n private modalService: NgbModal,\r\n private subscriptionService: SubscriptionService\r\n ) {\r\n super();\r\n this.user = this.getCurrentLoginUser();\r\n }\r\n\r\n ngOnInit() {\r\n this.loadLists();\r\n }\r\n\r\n loadLists() {\r\n this.busy = true;\r\n this.subscriptionService\r\n .getactivenotificationscheduleoption(this.moduleType)\r\n .subscribe(\r\n (res: any[]) => {\r\n this.busy = false;\r\n this.options = res;\r\n if (this.options.length == 0) {\r\n this.addField();\r\n }\r\n },\r\n (error: any) => {\r\n this.busy = false;\r\n },\r\n () => {\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n addField() {\r\n if (this.options.length < 3) {\r\n const field = new NotificationScheduleOption();\r\n field.Id = 0;\r\n field.FrequencyType = 'Daily';\r\n field.FrequencyValue = 1;\r\n field.IsActive = true;\r\n field.IsDeleted = false;\r\n field.CreatedBy = +this.user.UserId;\r\n field.ModuleType = this.moduleType;\r\n this.options.push(field);\r\n }\r\n }\r\n\r\n isOptionValid(field: NotificationScheduleOption): boolean {\r\n if (field.saving) return false;\r\n return true;\r\n }\r\n\r\n removeField(field: NotificationScheduleOption) {\r\n if (field.Id == 0) {\r\n this.options.splice(this.options.indexOf(field), 1);\r\n } else {\r\n let yesNoDialog = this.modalService.open(YesNoDialogComponent, {\r\n size: 'sm',\r\n backdrop: 'static',\r\n });\r\n yesNoDialog.componentInstance.content =\r\n 'Are you sure you want to delete this option?';\r\n yesNoDialog.result.then((res) => {\r\n if (res) {\r\n field.IsDeleted = true;\r\n field.UpdatedBy = +this.user.UserId;\r\n\r\n this.subscriptionService\r\n .upsertNotificationScheduleOption(field)\r\n .subscribe((res: any) => {\r\n this.options.splice(this.options.indexOf(field), 1);\r\n this.alert.alertSuccess({\r\n title: 'Schedule Option',\r\n text: 'Option has been successfully deleted.',\r\n });\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n optionChanged(field: NotificationScheduleOption) {\r\n if (this.isOptionValid(field)) {\r\n field.saving = true;\r\n this.subscriptionService\r\n .upsertNotificationScheduleOption(field)\r\n .subscribe((res: any) => {\r\n field.saving = false;\r\n field.Id = res;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n\r\n","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-ach-pay-tc',\r\n templateUrl: './ach-pay-tc.component.html',\r\n styleUrls: ['./ach-pay-tc.component.scss']\r\n})\r\nexport class AchPayTcComponent {\r\n @Input() merchantName: string;\r\n @Input() contactNumber: string;\r\n @Input() isAgreed: boolean;\r\n\r\n constructor(private activeModal: NgbActiveModal) { }\r\n\r\n close(data?: any) {\r\n this.activeModal.close(data);\r\n }\r\n\r\n onAgree(isAgree: boolean = false): void {\r\n this.close(this.isAgreed || isAgree);\r\n }\r\n}\r\n","
\r\n
\r\n
Payment Terms & Conditions
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n

\r\n By checking the \"I accept the Terms and Conditions\" checkbox below I authorize my bank to debit my specified account for the amount of my payment. This is a one-time payment which will occur on the next business day or as soon as practical thereafter.\r\n

\r\n

\r\n If my payment cannot be completed for any reason, including insufficient funds or error in the information which I submitted, I will retain the same liability, which is my sole responsibility, for payment as though I had not attempted to make the payment.\r\n

\r\n

\r\n I also understand that additional fees and penalties may be collected to the extent of applicable law.\r\n

\r\n
\r\n\r\n
\r\n \r\n

A receipt can be printed after payment is accepted which may serve as evidence of payment. If an email address is provided during the payment process, a receipt will be emailed to you after the payment is processed.

\r\n
\r\n\r\n
\r\n \r\n

\r\n If for any reason you wish to make a change to the payment after submission, please contact {{ merchantName }}\r\n for assistance at {{ contactNumber }}.\r\n

\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n Input,\r\n Output,\r\n ViewChild,\r\n EventEmitter,\r\n} from '@angular/core';\r\n\r\nimport { ACHPayment } from '../../../models/invoice/ach-payment.model';\r\nimport {\r\n CustomerAddress,\r\n ManualInvoicePartialPaySetting,\r\n} from '../../../models/invoice/invoice.model';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { ACHPaymentService } from '../../../services/achpayment.service';\r\nimport {\r\n AccountType,\r\n CheckType,\r\n SourceComponent,\r\n} from '../../../models/invoice/payment.model';\r\nimport { Settings } from 'src/app/settings/models/settings.model';\r\nimport { ACH } from 'src/app/shared/models/invoice/ach.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { CustomerManagementService } from 'src/app/shared/services/customer.service';\r\n\r\n@Component({\r\n selector: 'app-ach-pay',\r\n templateUrl: './ach-pay.component.html',\r\n styleUrls: ['./ach-pay.component.scss'],\r\n})\r\nexport class ACHPayComponent implements OnInit, OnDestroy {\r\n private getCustomerACHSubscription$: Subscription;\r\n @ViewChild('achPayForm', { static: false }) achForm: HTMLFormElement;\r\n\r\n @Input() isProcessing: boolean = false;\r\n @Input() isSubmitted: boolean = false;\r\n @Input() invoiceBalance: any = 0;\r\n @Input() invoice: any;\r\n\r\n @Input() invoiceNumber: string = '';\r\n @Input() customerId: number = 0;\r\n @Input() addressId: number;\r\n @Input() merchantName: string = ''; //\r\n @Input() contactNumber: string = ''; //\r\n @Input() locationData: any;\r\n @Input() isWorkOrder: boolean;\r\n @Input() isPartialPayment: boolean = false;\r\n @Input() userId: string = '';\r\n @Input() isMultipleInvoices: boolean = false;\r\n @Input() manualInvoices: any[];\r\n @Input() tipAmount: number = 0;\r\n @Input() isSalesInvoice: boolean = false;\r\n\r\n @Input() businessInfo: Settings;\r\n @Input() customerAddresses: any;\r\n @Input() customerBusinessContact: any;\r\n\r\n @Output() onValueChange: EventEmitter = new EventEmitter();\r\n @Output() onAddressAdd: EventEmitter = new EventEmitter();\r\n @Output() onACHSelect: EventEmitter = new EventEmitter();\r\n @Output() onACHAdd: EventEmitter = new EventEmitter();\r\n\r\n selectedAccountType: AccountType = AccountType.CHECKING;\r\n accountTypes: any = [\r\n { name: 'Checking', value: AccountType.CHECKING },\r\n { name: 'Savings', value: AccountType.SAVINGS },\r\n ];\r\n\r\n selectedCheckType: CheckType | string = '';\r\n checkTypes: any = [\r\n { name: 'Select Check Type', value: '' },\r\n { name: 'Personal', value: CheckType.PERSONAL },\r\n { name: 'Business', value: CheckType.BUSINESS },\r\n { name: 'Payroll', value: CheckType.PAYROLL },\r\n ];\r\n\r\n achPayment: ACHPayment = new ACHPayment();\r\n agreedToTerms: boolean = false;\r\n customerAddress: CustomerAddress = new CustomerAddress();\r\n multipleInvoices: string[];\r\n manualInvoice: any;\r\n partialPaymentSetting: ManualInvoicePartialPaySetting =\r\n new ManualInvoicePartialPaySetting();\r\n selectedInvoiceString: string = '';\r\n customerACHDetails: ACH[];\r\n selectedACH: ACH;\r\n isAddACH: boolean = false;\r\n isInitializing: boolean = false;\r\n\r\n constructor(\r\n private alert: AlertService,\r\n private achPaymentService: ACHPaymentService,\r\n private customerService: CustomerManagementService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.getDefaultCustomerAddress();\r\n\r\n if (this.isMultipleInvoices) {\r\n this.invoiceBalance = 0;\r\n\r\n this.manualInvoices.forEach((invoice) => {\r\n this.multipleInvoices.push(invoice.InvoiceNumber);\r\n\r\n if (this.isPartialPayment) {\r\n this.invoiceBalance += invoice.ManualInvoice.requiredPartialPayment;\r\n } else {\r\n this.invoiceBalance +=\r\n invoice.ManualInvoice.status === 'Partial'\r\n ? invoice.ManualInvoice.balance - invoice.ManualInvoice.totalPaid\r\n : invoice.ManualInvoice.balance;\r\n }\r\n });\r\n }\r\n\r\n this.loadACHDetails();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.getCustomerACHSubscription$.unsubscribe();\r\n }\r\n\r\n getDefaultCustomerAddress(): void {\r\n if (this.customerAddresses) {\r\n const address = this.customerAddresses.find((e) => {\r\n if (this.addressId) {\r\n return e.Id === this.addressId;\r\n }\r\n\r\n return e.IsDefault;\r\n });\r\n\r\n if (address) {\r\n this.addressId = address.Id;\r\n }\r\n }\r\n }\r\n\r\n getFullAddress(address: any): string {\r\n return `${address.StreetAddress || ''} ${address.City || ''} ${\r\n address.CountryCode || ''\r\n } ${address.ZipCode || ''}`;\r\n }\r\n\r\n onAddressSelected(id: number): void {\r\n const address = this.customerAddresses.find((e) => {\r\n return e.Id === id;\r\n });\r\n\r\n if (address) {\r\n this.addressId = address.Id;\r\n this.onValueChange.emit(this.achForm.form);\r\n }\r\n }\r\n\r\n onAccountTypeChanged(type: AccountType): void {\r\n this.selectedAccountType = type;\r\n this.achPayment.AccountType = this.selectedAccountType;\r\n this.onValueChange.emit(this.achForm.form);\r\n }\r\n\r\n onCheckTypeChanged(type: CheckType | string): void {\r\n this.selectedCheckType = type;\r\n\r\n if (this.selectedCheckType !== '') {\r\n this.achPayment.CheckType = this.selectedCheckType as CheckType;\r\n this.onValueChange.emit(this.achForm.form);\r\n }\r\n }\r\n\r\n onChange(key: string, data: string): void {\r\n this.achPayment[key] = data;\r\n this.onValueChange.emit(this.achForm.form);\r\n }\r\n\r\n processPayment(isValid: boolean) {\r\n // this.isSubmitted = true;\r\n // if (isValid) {\r\n // this.isProcessing = true;\r\n // if (!this.agreedToTerms) {\r\n // this.alert.alertError({ title: 'Failed', text: 'Please agree to Terms and Conditions' });\r\n // this.isProcessing = false;\r\n // return;\r\n // }\r\n // this.achPayment.Amount = this.invoiceBalance;\r\n // this.achPayment.InvoiceNumber = this.invoice.invoiceNumber;\r\n // this.achPayment.TerminalId = \"MAIN\";\r\n // this.achPayment.IsPartialPayment = this.isPartialPayment;\r\n // this.achPayment.Currency = \"USD\";\r\n // this.achPayment.MID = this.locationData.MID;\r\n // this.achPayment.SecretApiKey = this.locationData.Secret_API_Key;\r\n // this.achPayment.LocationId = this.locationData.Id;\r\n // this.achPayment.CustomerId = this.invoice.customerId.toString();\r\n // this.achPayment.StreetAddress1 = this.customerAddress.StreetAddress1;\r\n // this.achPayment.City = this.customerAddress.City;\r\n // this.achPayment.State = this.customerAddress.State;\r\n // this.achPayment.PostalCode = this.customerAddress.PostalCode;\r\n // this.achPayment.SourceComponent = this.isWorkOrder\r\n // ? SourceComponent.WorkOrder\r\n // : SourceComponent.ManualInvoice;\r\n // this.achPaymentService.achCharge(this.achPayment)\r\n // .pipe(takeUntil(this.unsubscribe$))\r\n // .subscribe((res: any) => {\r\n // if (res) {\r\n // this.isProcessing = false;\r\n // this.isSubmitted = false;\r\n // this.close(true);\r\n // }\r\n // }, () => {\r\n // this.isProcessing = false;\r\n // this.isSubmitted = false;\r\n // this.alert.alertError(`Payment failed for invoice number: ${this.achPayment.InvoiceNumber}`);\r\n // });\r\n // }\r\n }\r\n\r\n processMultiplePayments() {\r\n if (!this.agreedToTerms) {\r\n this.alert.alertError({ text: 'Please Agree to Terms and Conditions.' });\r\n return false;\r\n }\r\n\r\n // this.isProcessingPayment = true;\r\n let promises = [];\r\n\r\n for (var i = 0; i < this.manualInvoices.length; i++) {\r\n this.achPayment.Amount = this.isPartialPayment\r\n ? this.manualInvoices[i].ManualInvoice.requiredPartialPayment\r\n : this.manualInvoices[i].ManualInvoice.balance -\r\n this.manualInvoices[i].ManualInvoice.totalPaid;\r\n this.achPayment.InvoiceNumber =\r\n this.manualInvoices[i].ManualInvoice.invoiceNumber;\r\n this.achPayment.TerminalId = 'MAIN';\r\n this.achPayment.IsPartialPayment = this.isPartialPayment;\r\n this.achPayment.Currency = 'USD';\r\n this.achPayment.LocationId = this.manualInvoices[i].locationData.Id;\r\n\r\n this.achPayment.CustomerId = this.customerId.toString();\r\n this.achPayment.StreetAddress1 = this.customerAddress.StreetAddress1;\r\n this.achPayment.City = this.customerAddress.City;\r\n this.achPayment.State = this.customerAddress.State;\r\n this.achPayment.PostalCode = this.customerAddress.PostalCode;\r\n this.achPayment.SourceComponent =\r\n this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n this.achPayment.TransactionSource =\r\n this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n\r\n promises.push(\r\n new Promise((resolve, reject) => {\r\n this.achPaymentService.achCharge(this.achPayment).subscribe(\r\n (res: any) => {\r\n if (res) {\r\n resolve(res);\r\n //this.alert.alertSuccess({ title: 'Success', text: 'Successfully charged ACH account!' });\r\n }\r\n },\r\n (err) => {\r\n reject(\r\n `Payment failed for invoice number: ${this.achPayment.InvoiceNumber}`\r\n );\r\n }\r\n );\r\n })\r\n );\r\n }\r\n\r\n Promise.all(promises).then((values) => {\r\n for (var i = 0; i < this.manualInvoices.length; i++) {\r\n this.manualInvoices[i].paymentResult = values[i];\r\n }\r\n // this.close(this.manualInvoices);\r\n this.isProcessing = false;\r\n });\r\n }\r\n\r\n onSelectACH(paymentIdentifier: string): void {\r\n const ach = this.customerACHDetails.find((e) => e.paymentIdentifier === paymentIdentifier);\r\n\r\n if (ach) {\r\n this.selectedACH = ach;\r\n this.onACHSelect.emit(this.selectedACH);\r\n }\r\n }\r\n\r\n loadACHDetails(): void {\r\n this.isInitializing = true;\r\n this.getCustomerACHSubscription$ =\r\n this.customerService.getCustomerACHsById(this.customerId)\r\n .subscribe({\r\n next: (result: any) => {\r\n if(result) {\r\n this.customerACHDetails = result;\r\n this.getDefaultACH();\r\n }\r\n this.isInitializing = false;\r\n\r\n },\r\n error: () => {\r\n this.isInitializing = false;\r\n }\r\n })\r\n }\r\n\r\n getDefaultACH(): void {\r\n if (this.customerACHDetails.length && !this.selectedACH) {\r\n const card = this.customerACHDetails.find((e) => e.isDefault);\r\n this.onSelectACH(card?.paymentIdentifier || this.customerACHDetails[0].paymentIdentifier);\r\n }\r\n }\r\n\r\n onAddACH(): void {\r\n this.isAddACH = !this.isAddACH;\r\n this.onACHAdd.emit(this.isAddACH);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Add address\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n ****{{ ach.account4Digits }}\r\n {{ ach.accountType === 0 ? \"Checking\" : \"Savings\" }}\r\n \r\n \r\n
\r\n \r\n
\r\n Customer have no ACH saved\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Account Number\r\n \r\n \r\n \r\n Routing Number\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n \r\n {{ !isAddACH ? \"Pay via new ACH\" : \"Select ACH Details\" }}\r\n \r\n\r\n \r\n Check Holder Name\r\n \r\n \r\n\r\n \r\n Amount Due\r\n \r\n \r\n \r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { CustomerManagementService } from 'src/app/shared/services/customer.service';\r\nimport { CustomerAddress } from 'src/app/shared/models/invoice/invoice.model';\r\nimport { SettingsInvoice } from 'src/app/invoice/models/invoice.model';\r\nimport { Customer } from 'src/app/customer/models/customer.model';\r\n\r\n@Component({\r\n selector: 'app-card-pay',\r\n templateUrl: './card-pay.component.html',\r\n styleUrls: ['./card-pay.component.scss'],\r\n})\r\nexport class CardPayComponent implements OnInit, OnDestroy {\r\n @ViewChild('cardPayForm', { static: false }) cardForm: HTMLFormElement;\r\n\r\n @Input() invoice: any;\r\n @Input() invoiceSettings: SettingsInvoice;\r\n @Input() businessInfo: any;\r\n @Input() customer: Customer;\r\n @Input() customerAddresses: any;\r\n @Input() invoiceBalance: any = 0;\r\n @Input() addressId: number;\r\n @Input() addressShippingId: number;\r\n @Input() isProcessing: boolean = false;\r\n @Input() isSubmitted: boolean = false;\r\n @Input() cardCVV: string;\r\n @Input() selectedCard: any;\r\n @Input() publicAPIKey: any;\r\n\r\n @Output() onValueChange: EventEmitter = new EventEmitter();\r\n @Output() onAddressAdd: EventEmitter = new EventEmitter();\r\n @Output() onCardAdd: EventEmitter = new EventEmitter();\r\n @Output() onCardSelect: EventEmitter = new EventEmitter();\r\n @Output() onTokenReceive: EventEmitter = new EventEmitter();\r\n\r\n isInitializing: boolean = false;\r\n isAddCard: boolean = false;\r\n customerAddress: CustomerAddress = new CustomerAddress();\r\n customerCards: any[] = [];\r\n\r\n readonly unsubscribe$ = new Subject();\r\n\r\n constructor(private customerService: CustomerManagementService) {}\r\n\r\n ngOnInit(): void {\r\n this.isInitializing = true;\r\n\r\n this.getDefaultCustomerAddress();\r\n\r\n if (this.customer && [2, 3].includes(this.customer.LevelProcessing)) {\r\n this.getShippingCustomerAddress();\r\n }\r\n\r\n this.customerService\r\n .getCustomerCardsOnFile(this.invoice.customerId)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((data: any) => {\r\n this.customerCards = data;\r\n this.getDefaultCard();\r\n\r\n this.isInitializing = false;\r\n\r\n this.onValueChange.emit(this.cardForm.form);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n getDefaultCard(): void {\r\n if (this.customerCards.length && !this.selectedCard) {\r\n const card = this.customerCards.find((e) => e.IsDefault);\r\n this.onSelectCard(card?.Id || this.customerCards[0].Id);\r\n }\r\n }\r\n\r\n getDefaultCustomerAddress(): void {\r\n if (this.customerAddresses) {\r\n const address = this.customerAddresses.find((e) => {\r\n if (this.addressId) {\r\n return e.Id === this.addressId;\r\n }\r\n\r\n return e.IsDefault;\r\n });\r\n\r\n if (address) {\r\n this.addressId = address.Id;\r\n }\r\n }\r\n }\r\n\r\n getShippingCustomerAddress(): void {\r\n if (this.customerAddresses) {\r\n const address = this.customerAddresses.find((e) => {\r\n if (this.addressShippingId) {\r\n return e.Id === this.addressShippingId;\r\n }\r\n\r\n return e.AddressType === 3 || e.IsDefault;\r\n });\r\n\r\n if (address) {\r\n this.addressShippingId = address.Id;\r\n }\r\n }\r\n }\r\n\r\n getFullAddress(address: any): string {\r\n return `${address.StreetAddress || ''} ${address.City || ''} ${\r\n address.CountryCode || ''\r\n } ${address.ZipCode || ''}`;\r\n }\r\n\r\n setCVVLength(): number {\r\n if (this.customerCards.length) {\r\n const selectedCard = this.customerCards.find(\r\n (card) => this.selectedCard?.Id === card.Id\r\n );\r\n\r\n if (selectedCard?.CardBrand.toLowerCase() === 'amex') {\r\n return 4;\r\n }\r\n\r\n return 3;\r\n }\r\n }\r\n\r\n onAddressSelected(id: number, isShipping: boolean = false): void {\r\n const address = this.customerAddresses.find((e) => {\r\n return e.Id === id;\r\n });\r\n\r\n if (address) {\r\n this[!isShipping ? 'addressId' : 'addressShippingId'] = address.Id;\r\n this.onValueChange.emit(this.cardForm.form);\r\n }\r\n }\r\n\r\n onChange(): void {\r\n this.onValueChange.emit(this.cardForm.form);\r\n }\r\n\r\n onCVVEntry(event: KeyboardEvent): void {\r\n if (\r\n !/^\\d+$/.test(event.key) &&\r\n ![37, 38, 39, 40, 8, 46].includes(event.keyCode)\r\n ) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n onSelectCard(id: number): void {\r\n const card = this.customerCards.find((e) => e.Id === id);\r\n\r\n if (card) {\r\n this.selectedCard = card;\r\n this.onCardSelect.emit(this.selectedCard);\r\n }\r\n }\r\n\r\n onAddCard(): void {\r\n this.isAddCard = !this.isAddCard;\r\n this.onCardAdd.emit(this.isAddCard);\r\n }\r\n\r\n onCardTokenReceived(token: any): void {\r\n this.onTokenReceive.emit({\r\n token: token,\r\n addressId: this.addressId,\r\n addressShippingId: this.addressShippingId,\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Add address\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Add address\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{ card.CardBrand | uppercase }} ****{{ card.CardLast4Digits }}\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Customer have no cards saved\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ !isAddCard ? 'Pay via new card' : 'Select card on file' }}\r\n \r\n
\r\n\r\n \r\n Enter CVV/CVN For Verification\r\n \r\n \r\n\r\n \r\n Amount Due\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cash-pay',\r\n templateUrl: './cash-pay.component.html',\r\n styleUrls: ['./cash-pay.component.scss']\r\n})\r\nexport class CashPayComponent {\r\n @Input() isProcessing: boolean = false;\r\n @Input() invoiceBalance: any = 0;\r\n}\r\n","\r\n Amount Due\r\n \r\n\r\n","import { Component, OnInit, Input, Output, ViewChild, EventEmitter } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\nimport { ManualPayment } from \"src/app/shared/models/invoice/manual-payment.model\";\r\n\r\n@Component({\r\n selector: 'app-manual-pay',\r\n templateUrl: './manual-pay.component.html',\r\n styleUrls: ['./manual-pay.component.scss']\r\n})\r\nexport class ManualPayComponent implements OnInit {\r\n @ViewChild('manualPayForm', { static: false }) manualForm: HTMLFormElement;\r\n\r\n @Input() isProcessing: boolean = false;\r\n @Input() isSubmitted: boolean = false;\r\n @Input() invoiceBalance: any = 0;\r\n @Input() invoiceModel: any;\r\n @Input() type: string = 'merchant'; // merchant or checkout\r\n\r\n @Output() onValueChange: EventEmitter = new EventEmitter();\r\n\r\n manualPayment: ManualPayment = new ManualPayment();\r\n minPaymentDate: string = moment(new Date()).format('YYYY-MM-DD');\r\n paymentDate: string;\r\n\r\n selectedPaymentMethod: number | string = '';\r\n paymentMethods: any = [\r\n { name: 'Select Method', value: '', enable: true },\r\n { name: 'Check', value: 1, enable: true },\r\n { name: 'Bank Transfer', value: 2, enable: true },\r\n { name: 'Cash', value: 3, enable: this.type !== 'merchant' },\r\n ];\r\n\r\n ngOnInit() {\r\n this.minPaymentDate = moment(new Date(this.invoiceModel.invoiceDate)).format('YYYY-MM-DD');\r\n }\r\n\r\n setPaymentMethod(method: string | number): void {\r\n this.selectedPaymentMethod = method;\r\n\r\n if (this.selectedPaymentMethod !== '') {\r\n this.manualPayment.PaymentMethod = this.selectedPaymentMethod as number;\r\n this.onValueChange.emit(this.manualForm.form);\r\n }\r\n }\r\n\r\n setPaymentDate(date: string): void {\r\n this.paymentDate = date;\r\n\r\n if (this.isValidDate()) {\r\n this.manualPayment.PaymentDate = new Date(this.paymentDate);\r\n this.onValueChange.emit(this.manualForm.form);\r\n }\r\n }\r\n\r\n isValidDate(): boolean {\r\n let paymentDate = Date.parse(this.paymentDate);\r\n\r\n return !isNaN(paymentDate);\r\n }\r\n\r\n onChange(key: string, data: string): void {\r\n this.manualPayment[key] = data;\r\n this.onValueChange.emit(this.manualForm.form);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ method.name }}\r\n \r\n \r\n \r\n
\r\n\r\n \r\n Payment Date\r\n \r\n \r\n
\r\n \r\n Transaction Reference\r\n \r\n \r\n \r\n Private Note\r\n \r\n \r\n \r\n Amount Due\r\n \r\n \r\n
\r\n
","import {\r\n Component,\r\n OnInit,\r\n OnDestroy,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n NgbActiveModal,\r\n NgbModal,\r\n NgbModalRef,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n// Services\r\nimport { AlertService } from 'src/app/core/alert.service';\r\nimport { InvoiceService } from 'src/app/invoice/services/invoice-service.service';\r\nimport { TermsconditionpolicyService } from 'src/app/shared/services/termsconditionpolicy.service';\r\nimport { CashPaymentService } from 'src/app/shared/components/payment/cash-payment/cash-payment.service';\r\nimport { ManualPaymentService } from 'src/app/shared/services/manual-payment.service';\r\nimport { ACHPaymentService } from 'src/app/shared/services/achpayment.service';\r\nimport { CreditPaymentService } from 'src/app/reports/services/creditpayment.service';\r\nimport { ServiceWorkOrderService } from 'src/app/shared/services/service-work-order.service';\r\nimport { CustomerManagementService } from 'src/app/shared/services/customer.service';\r\nimport { PaymentService } from 'src/app/shared/services/payments.service';\r\n// Models\r\nimport {\r\n Customer,\r\n CustomerAddress,\r\n} from 'src/app/customer/models/customer.model';\r\nimport { User } from 'src/app/shared/models/user.model';\r\nimport { SourceComponent } from 'src/app/shared/models/invoice/payment.model';\r\nimport {\r\n CardInfo,\r\n SettingsInvoice,\r\n} from 'src/app/invoice/models/invoice.model';\r\nimport { CashPayment } from 'src/app/shared/models/invoice/cash-payment.model';\r\nimport { ManualPayment } from 'src/app/shared/models/invoice/manual-payment.model';\r\nimport {\r\n ACHOnFilePayment,\r\n ACHPayment,\r\n} from 'src/app/shared/models/invoice/ach-payment.model';\r\nimport { CreditPayment } from 'src/app/shared/models/invoice/invoice.model';\r\nimport { WorkOrderEnum } from 'src/app/shared/models/work-order-enum';\r\nimport { CustomerCardNumber } from 'src/app/shared/models/customer.model';\r\n// Components\r\nimport { InvoiceSummaryComponent } from 'src/app/invoice/invoice-summary/invoice-summary.component';\r\nimport { CustomerAddressFormComponent } from 'src/app/shared/components/customers/customer-address-form/customer-address-form.component';\r\nimport { PaymentConfirmActionComponent } from 'src/app/shared/dialogs/payment-confirm-action/payment-confirm-action.component';\r\nimport { InvoiceNotesComponent } from 'src/app/invoice/invoice-notes/invoice-notes.component';\r\nimport { PaymentTermsComponent } from './payment-terms/payment-terms.component';\r\nimport { AchPayTcComponent } from './ach-pay/ach-pay-tc/ach-pay-tc.component';\r\nimport { RecurringPaymentDetailComponent } from 'src/app/formiobuilder/components/formbuilder-recurring-payments-list/recurring-payment-detail/recurring-payment-detail.component';\r\nimport { ACH } from '../../models/invoice/ach.model';\r\nimport { AddACH } from '../../models/invoice/add-ach.model';\r\nimport { AuthorizationBase } from 'src/app/core/authorize-base';\r\n\r\n@Component({\r\n selector: 'app-payment-options',\r\n templateUrl: './payment-options.component.html',\r\n styleUrls: ['./payment-options.component.scss'],\r\n})\r\nexport class PaymentOptionsComponent\r\n extends AuthorizationBase\r\n implements OnInit, OnDestroy\r\n{\r\n @Input() invoiceStatus: string;\r\n @Input() userInfo: User;\r\n @Input() customerId: number;\r\n @Input() invoice: any;\r\n @Input() invoiceSettings: SettingsInvoice;\r\n @Input() customer: Customer;\r\n @Input() customerAddresses: CustomerAddress[];\r\n @Input() customerBusinessContact: any;\r\n @Input() customerSignature: any;\r\n @Input() locationData: any;\r\n @Input() workOrder: any;\r\n @Input() businessInfo: any;\r\n @Input() recurringPaymentDetails: any;\r\n @Input() isInvoiceSummary: boolean = false;\r\n @Input() isRecurringPayment: boolean = false;\r\n @Input() isPartialPayment: boolean = false;\r\n @Input() canPayPartial: boolean = false;\r\n @Input() displayBalance: any;\r\n @Input() recurringInvoiceConfig: any;\r\n\r\n @Input()\r\n get hideManualPaymentOption(): boolean {\r\n return this._hideManualPaymentOption;\r\n }\r\n set hideManualPaymentOption(value: boolean) {\r\n this._hideManualPaymentOption = value;\r\n\r\n let method = this.paymentMethods.find(\r\n (method) => method.value === 'manual'\r\n );\r\n method.enabled = !this._hideManualPaymentOption;\r\n }\r\n protected _hideManualPaymentOption = false;\r\n\r\n @Input()\r\n get showACHPaymentOption(): boolean {\r\n return this._showACHPaymentOption;\r\n }\r\n set showACHPaymentOption(value: boolean) {\r\n this._showACHPaymentOption = value;\r\n\r\n let method = this.paymentMethods.find((method) => method.value === 'ach');\r\n method.enabled = this._showACHPaymentOption;\r\n }\r\n protected _showACHPaymentOption = false;\r\n\r\n @Input()\r\n get showCashPayment(): boolean {\r\n return this._showCashPayment;\r\n }\r\n set showCashPayment(value: boolean) {\r\n this._showCashPayment = value;\r\n\r\n let method = this.paymentMethods.find((method) => method.value === 'cash');\r\n method.enabled = this._showCashPayment;\r\n }\r\n protected _showCashPayment = true;\r\n\r\n @Input()\r\n get showCreditCardOption(): boolean {\r\n return this._showCreditCardOption;\r\n }\r\n set showCreditCardOption(value: boolean) {\r\n this._showCreditCardOption = value;\r\n\r\n let method = this.paymentMethods.find((method) => method.value === 'card');\r\n method.enabled = this._showCreditCardOption;\r\n }\r\n protected _showCreditCardOption = true;\r\n\r\n @Output() back: EventEmitter = new EventEmitter();\r\n\r\n isLoading: boolean = false;\r\n isSubmitted: boolean = false;\r\n isProcessing: boolean = false;\r\n isAgreedToTerms: boolean = false;\r\n isEmailReceipt: boolean = false;\r\n isFromAddress: boolean = false;\r\n isSaveCard: boolean = false;\r\n isNewCard: boolean = false;\r\n isNewACH: boolean = false;\r\n isSaveACH: boolean = false;\r\n\r\n termsAndConditions: any;\r\n paymentSteps: string[] = ['pay-options', 'pay-methods', 'pay-form'];\r\n currentStep: string = this.paymentSteps[0];\r\n\r\n customerAddress: any = new CustomerAddress();\r\n shippingAddress: any = new CustomerAddress();\r\n cashPayment: CashPayment = new CashPayment();\r\n manualPayment: ManualPayment = new ManualPayment();\r\n achPayment: ACHPayment = new ACHPayment();\r\n creditPayment: CreditPayment = new CreditPayment();\r\n cardInfo: CardInfo = new CardInfo();\r\n customerCard: CustomerCardNumber = new CustomerCardNumber();\r\n selectedCard: any;\r\n cardToken: any;\r\n multiUseToken: any;\r\n\r\n formData: any = {\r\n manualForm: null,\r\n achForm: null,\r\n cardForm: null,\r\n };\r\n\r\n paymentOptions: any = [\r\n { name: 'Pay in Full', value: 'full', icon: 'pay-in-full' },\r\n { name: 'Pay in Partial', value: 'partial', icon: 'pay-in-partial' },\r\n ];\r\n\r\n selectedMethod: any;\r\n paymentMethods: any = [\r\n { name: 'Pay via Card', value: 'card', icon: 'pay-card', enabled: true },\r\n { name: 'Pay via ACH', value: 'ach', icon: 'pay-ach', enabled: true },\r\n {\r\n name: 'Manual Payment',\r\n value: 'manual',\r\n icon: 'pay-manual',\r\n enabled: true,\r\n },\r\n { name: 'Cash Payment', value: 'cash', icon: 'pay-cash', enabled: true },\r\n ];\r\n\r\n dialogOption: any = {\r\n centered: true,\r\n size: 'lg',\r\n backdrop: 'static',\r\n backdropClass: 'semi',\r\n animation: true,\r\n };\r\n\r\n readonly unsubscribe$ = new Subject();\r\n selectedACHDetail: ACH;\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private modalService: NgbModal,\r\n private alert: AlertService,\r\n private invoiceService: InvoiceService,\r\n private termsPolicyService: TermsconditionpolicyService,\r\n private cashPaymentService: CashPaymentService,\r\n private manualPaymentService: ManualPaymentService,\r\n private achPaymentService: ACHPaymentService,\r\n private creditService: CreditPaymentService,\r\n private workOrderService: ServiceWorkOrderService,\r\n private customerService: CustomerManagementService,\r\n private paymentService: PaymentService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.isFromAddress) {\r\n this.isLoading = true;\r\n\r\n if (!this.canPayPartial) {\r\n this.currentStep =\r\n this.paymentSteps[this.paymentSteps.indexOf(this.currentStep) + 1];\r\n this.isPartialPayment = false;\r\n }\r\n\r\n this.termsPolicyService\r\n .getTerms()\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((data: any) => {\r\n this.termsAndConditions = data.find((item) => {\r\n return item.Type === 1 && item.IsDefault;\r\n });\r\n\r\n setTimeout(() => {\r\n this.isLoading = false;\r\n }, 800);\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n onClose(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n isFirstStep(): boolean {\r\n return (\r\n (this.canPayPartial && this.currentStep === this.paymentSteps[0]) ||\r\n (!this.canPayPartial && this.currentStep === this.paymentSteps[1])\r\n );\r\n }\r\n\r\n getHeaderLabel(): string {\r\n return this.currentStep !== 'pay-form'\r\n ? `Payment Option for Invoice ${this.invoice.invoiceNumber}`\r\n : 'Process Payment';\r\n }\r\n\r\n getBackLabel(): string {\r\n if (this.isFirstStep()) {\r\n if (this.isInvoiceSummary) {\r\n return 'Invoice Details';\r\n }\r\n\r\n if (this.isRecurringPayment) {\r\n return 'Recurring Payment Details';\r\n }\r\n }\r\n\r\n return 'Payment Method';\r\n }\r\n\r\n getCustomerName(): string {\r\n if (this.customer) {\r\n return this.customer.CustomerTypeId === 1\r\n ? this.customer.FirstName + ' ' + this.customer.LastName\r\n : this.customer.BusinessName;\r\n }\r\n }\r\n\r\n getDefaultCustomerAddress(): string {\r\n if (this.customerAddresses) {\r\n const address = this.customerAddresses.find((e) => e.IsDefault);\r\n\r\n if (address) {\r\n return `${address.StreetAddress || ''} ${address.City || ''} ${\r\n address.State || ''\r\n } ${address.ZipCode || ''}`;\r\n }\r\n\r\n return '-';\r\n }\r\n }\r\n\r\n setComponentData(dialog: NgbModalRef): void {\r\n // Much better to store data on a service\r\n dialog.componentInstance.isLoading = true;\r\n dialog.componentInstance.selectedMethod = this.paymentMethods.find(\r\n (e) => e.value === this.selectedMethod.value\r\n );\r\n dialog.componentInstance.currentStep = 'pay-form';\r\n\r\n dialog.componentInstance.isInvoiceSummary = this.isInvoiceSummary;\r\n dialog.componentInstance.canPayPartial = this.canPayPartial;\r\n dialog.componentInstance.isPartialPayment = this.isPartialPayment;\r\n dialog.componentInstance.userInfo = this.userInfo;\r\n dialog.componentInstance.invoice = this.invoice;\r\n dialog.componentInstance.invoiceSettings = this.invoiceSettings;\r\n dialog.componentInstance.customer = this.customer;\r\n dialog.componentInstance.customerBusinessContact =\r\n this.customerBusinessContact;\r\n dialog.componentInstance.customerAddresses = this.customerAddresses;\r\n dialog.componentInstance.customerAddress = this.customerAddress;\r\n dialog.componentInstance.shippingAddress = this.shippingAddress;\r\n dialog.componentInstance.customerSignature = this.customerSignature;\r\n dialog.componentInstance.businessInfo = this.businessInfo;\r\n dialog.componentInstance.locationData = this.locationData;\r\n dialog.componentInstance.workOrder = this.workOrder;\r\n dialog.componentInstance.displayBalance = this.displayBalance;\r\n dialog.componentInstance.hideManualPaymentOption =\r\n this.hideManualPaymentOption;\r\n dialog.componentInstance.showACHPaymentOption = this.showACHPaymentOption;\r\n dialog.componentInstance.showCashPayment = this.showCashPayment;\r\n dialog.componentInstance.termsAndConditions = this.termsAndConditions;\r\n dialog.componentInstance.creditPayment = this.creditPayment;\r\n dialog.componentInstance.cardInfo = this.cardInfo;\r\n dialog.componentInstance.selectedCard = this.selectedCard;\r\n dialog.componentInstance.achPayment = this.achPayment;\r\n dialog.componentInstance.isAgreedToTerms = this.isAgreedToTerms;\r\n dialog.componentInstance.isEmailReceipt = this.isEmailReceipt;\r\n dialog.componentInstance.formData = this.formData;\r\n }\r\n\r\n onBack(): void {\r\n if (this.isFirstStep()) {\r\n if (this.isInvoiceSummary) {\r\n return this.onReturnInvoiceDetails();\r\n }\r\n\r\n if (this.isRecurringPayment) {\r\n return this.onReturnRecurringPaymentDetails();\r\n }\r\n\r\n return this.onClose();\r\n }\r\n\r\n this.currentStep =\r\n this.paymentSteps[this.paymentSteps.indexOf(this.currentStep) - 1];\r\n }\r\n\r\n onReturnInvoiceDetails(): void {\r\n let invoiceDiag = this.modalService.open(InvoiceSummaryComponent, {\r\n size: 'lg',\r\n keyboard: false,\r\n backdrop: 'static',\r\n });\r\n\r\n invoiceDiag.componentInstance.invoiceNumber = this.invoice.invoiceNumber;\r\n this.onClose();\r\n }\r\n\r\n onReturnRecurringPaymentDetails(): void {\r\n let invoiceDiag = this.modalService.open(RecurringPaymentDetailComponent, {\r\n size: 'md',\r\n });\r\n\r\n invoiceDiag.componentInstance.recurringId =\r\n this.recurringPaymentDetails.recurringId;\r\n invoiceDiag.componentInstance.invoiceNumber =\r\n this.recurringPaymentDetails.invoiceNumber;\r\n invoiceDiag.componentInstance.status = this.recurringPaymentDetails.status;\r\n this.onClose();\r\n }\r\n\r\n onOptionSelect(option: string): void {\r\n this.currentStep =\r\n this.paymentSteps[this.paymentSteps.indexOf(this.currentStep) + 1];\r\n this.isPartialPayment = option === 'partial';\r\n }\r\n\r\n onMethodSelect(method: any): void {\r\n this.currentStep =\r\n this.paymentSteps[this.paymentSteps.indexOf(this.currentStep) + 1];\r\n this.selectedMethod = method;\r\n\r\n this.isAgreedToTerms = false;\r\n this.isEmailReceipt = false;\r\n this.isProcessing = false;\r\n this.isSubmitted = false;\r\n this.isSaveCard = false;\r\n this.isNewCard = false;\r\n this.isNewACH = false;\r\n }\r\n\r\n onOpenTermsAndCondition(): void {\r\n if (this.selectedMethod.value === 'ach') {\r\n let achTerms = this.modalService.open(AchPayTcComponent, {\r\n ...this.dialogOption,\r\n });\r\n\r\n achTerms.componentInstance.merchantName = this.businessInfo.BusinessName;\r\n achTerms.componentInstance.contactNumber =\r\n this.businessInfo.ContactNumber;\r\n achTerms.componentInstance.isAgreed = this.isAgreedToTerms;\r\n\r\n achTerms.result.then((res) => {\r\n if (res) {\r\n this.isAgreedToTerms = true;\r\n }\r\n });\r\n } else {\r\n let paymentTerms = this.modalService.open(PaymentTermsComponent, {\r\n ...this.dialogOption,\r\n });\r\n\r\n paymentTerms.componentInstance.content = this.termsAndConditions.Content;\r\n paymentTerms.componentInstance.isAgreed = this.isAgreedToTerms;\r\n\r\n paymentTerms.result.then((res) => {\r\n if (res) {\r\n this.isAgreedToTerms = true;\r\n }\r\n });\r\n }\r\n }\r\n\r\n onValueChange(key: string, form: any): void {\r\n this.formData[key] = form;\r\n }\r\n\r\n onAddressAdd(isShipping: boolean = false): void {\r\n let addressDiag = this.modalService.open(CustomerAddressFormComponent);\r\n\r\n addressDiag.componentInstance.customerId = this.invoice.customerId;\r\n\r\n this.onClose();\r\n\r\n addressDiag.result.then((res) => {\r\n let paymentDiag = this.modalService.open(PaymentOptionsComponent);\r\n\r\n this.setComponentData(paymentDiag);\r\n paymentDiag.componentInstance.isFromAddress = true;\r\n\r\n if (res) {\r\n paymentDiag.componentInstance.customerAddresses.push(res);\r\n paymentDiag.componentInstance[\r\n !isShipping ? 'customerAddress' : 'shippingAddress'\r\n ] = res;\r\n }\r\n\r\n setTimeout(() => {\r\n paymentDiag.componentInstance.isLoading = false;\r\n paymentDiag.componentInstance.isFromAddress = false;\r\n }, 800);\r\n });\r\n }\r\n\r\n onCardAdd(isAdd: boolean): void {\r\n this.isNewCard = isAdd;\r\n }\r\n\r\n onACHAdd(isAdd: boolean): void {\r\n this.isNewACH = isAdd;\r\n }\r\n\r\n onACHSelect(ach: ACH): void {\r\n this.selectedACHDetail = ach;\r\n }\r\n\r\n onCardSelect(card: any): void {\r\n this.selectedCard = card;\r\n }\r\n\r\n onTokenReceive(data: any): void {\r\n if (data.token) {\r\n this.cardToken = data.token;\r\n\r\n const address = this.customerAddresses.find((e) => {\r\n if (data.addressId) {\r\n return e.Id === data.addressId;\r\n }\r\n return e.IsDefault;\r\n });\r\n\r\n if (address) {\r\n this.customerAddress.Id = address.Id;\r\n this.customerAddress.City = address.City;\r\n this.customerAddress.State = address.State;\r\n this.customerAddress.PostalCode = address.ZipCode;\r\n this.customerAddress.StreetAddress1 = address.StreetAddress;\r\n\r\n this.creditPayment.billingAddress = this.customerAddress;\r\n }\r\n\r\n if (\r\n data.token.details.cardType === 'amex' &&\r\n !this.customerAddress.PostalCode\r\n ) {\r\n this.alert.alertError({\r\n title: 'Invoice Payment Failed',\r\n text: 'An American Express card requires a zip code for verification and the selected address has no zip code specified. Please edit it via Customers > Edit Customer > Zip Code field.',\r\n });\r\n return;\r\n }\r\n\r\n if (!data.addressId) {\r\n this.alert.alertError({\r\n title: 'Invoice Payment Failed',\r\n text: 'Please select an address.',\r\n });\r\n return;\r\n }\r\n\r\n if (!this.isAgreedToTerms) {\r\n this.alert.alertError({\r\n title: 'Invoice Payment Failed',\r\n text: 'Please Agree to the Terms and Conditions.',\r\n });\r\n return;\r\n }\r\n\r\n // Added For Transit Notes Requirement\r\n if (this.businessInfo?.Processor.toLowerCase() === 'tsys') {\r\n if (\r\n data.token.details.cardType === 'amex' &&\r\n !this.invoice.notes &&\r\n [2, 3].includes(this.customer.LevelProcessing)\r\n ) {\r\n let modal = this.modalService.open(InvoiceNotesComponent);\r\n this.onClose();\r\n\r\n modal.result.then((res: any) => {\r\n let paymentDiag = this.modalService.open(PaymentOptionsComponent);\r\n this.setComponentData(paymentDiag);\r\n\r\n if (!res) {\r\n this.alert.alertError({\r\n title: 'Invoice Payment Failed',\r\n text: 'An American Express card requires an invoice notes for Level 2 or 3 Customers.',\r\n });\r\n\r\n return;\r\n }\r\n\r\n paymentDiag.componentInstance.isProcessing = true;\r\n paymentDiag.componentInstance.creditPayment.Notes = res;\r\n this.onNewCardPayment(data);\r\n });\r\n return;\r\n }\r\n\r\n this.onNewCardPayment(data);\r\n return;\r\n }\r\n\r\n this.onNewCardPayment(data);\r\n }\r\n }\r\n\r\n async onProcessPayment(): Promise {\r\n if (!this.isAgreedToTerms) {\r\n this.alert.alertError({\r\n title: 'Invoice Payment Failed',\r\n text: 'Please agree to the Terms and Conditions',\r\n });\r\n return;\r\n }\r\n\r\n this.isSubmitted = true;\r\n\r\n switch (this.selectedMethod.value) {\r\n case 'cash':\r\n await this.onCashPayment();\r\n break;\r\n case 'manual':\r\n await this.onManualPayment();\r\n break;\r\n case 'ach':\r\n if (this.isNewACH) {\r\n await this.onACHPayment();\r\n } else {\r\n await this.onACHOnFilePayment();\r\n }\r\n break;\r\n case 'card':\r\n await this.onCardPayment();\r\n break;\r\n }\r\n }\r\n\r\n onCashPayment(): void {\r\n this.isProcessing = true;\r\n\r\n this.cashPayment.InvoiceId = this.invoice.id;\r\n this.cashPayment.InvoiceNumber = this.invoice.invoiceNumber;\r\n this.cashPayment.CustomerId = this.invoice.customerId;\r\n this.cashPayment.EmailReceiptToClient = this.isEmailReceipt;\r\n this.cashPayment.PaymentType = this.isPartialPayment ? 2 : 1;\r\n this.cashPayment.LocationId = this.locationData.Id;\r\n this.cashPayment.Amount = parseFloat(\r\n this.invoice.status === 'Partial' || this.isPartialPayment\r\n ? this.displayBalance\r\n : this.invoice.balance\r\n );\r\n\r\n if (this.businessInfo) {\r\n this.cashPayment.BusinessName = this.businessInfo.BusinessName;\r\n this.cashPayment.BusinessLogo = this.businessInfo.Logo;\r\n this.cashPayment.BusinessAddress = `${\r\n this.businessInfo.Address1 ? this.businessInfo.Address1 + ',' : ''\r\n } ${this.businessInfo.City ? this.businessInfo.City + ',' : ''} ${\r\n this.businessInfo.Province ? this.businessInfo.Province + ',' : ''\r\n } ${this.businessInfo.StateId || ''} ${\r\n this.businessInfo.PostalCode || ''\r\n } ${this.businessInfo.CountryCode || ''}`;\r\n }\r\n\r\n if (this.customer) {\r\n this.cashPayment.CustomerName = this.getCustomerName();\r\n this.cashPayment.CustomerEmail = this.customer.EmailAddress;\r\n\r\n if (this.customerBusinessContact) {\r\n this.cashPayment.CustomerEmail =\r\n this.customerBusinessContact.EmailAddress ||\r\n this.customer.EmailAddress;\r\n }\r\n\r\n if (this.getDefaultCustomerAddress()) {\r\n this.cashPayment.CustomerAddress = this.getDefaultCustomerAddress();\r\n }\r\n }\r\n\r\n this.cashPaymentService\r\n .addManualPayment(this.cashPayment)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(() => {\r\n this.isProcessing = false;\r\n this.onConfirmPayment();\r\n });\r\n }\r\n\r\n onManualPayment(): void {\r\n if (this.formData.manualForm && this.formData.manualForm.valid) {\r\n this.isProcessing = true;\r\n\r\n this.manualPayment.InvoiceId = this.invoice.id;\r\n this.manualPayment.InvoiceNumber = this.invoice.invoiceNumber;\r\n this.manualPayment.CustomerId = this.invoice.customerId;\r\n this.manualPayment.EmailReceiptToClient = this.isEmailReceipt;\r\n this.manualPayment.PaymentType = this.isPartialPayment ? 2 : 1;\r\n this.manualPayment.Amount = parseFloat(\r\n this.invoice.status === 'Partial' || this.isPartialPayment\r\n ? this.displayBalance\r\n : this.invoice.balance\r\n );\r\n\r\n if (this.businessInfo) {\r\n this.manualPayment.BusinessName = this.businessInfo.BusinessName;\r\n this.manualPayment.BusinessLogo = this.businessInfo.Logo;\r\n this.manualPayment.BusinessAddress = `${\r\n this.businessInfo.Address1 ? this.businessInfo.Address1 + ',' : ''\r\n } ${this.businessInfo.City ? this.businessInfo.City + ',' : ''} ${\r\n this.businessInfo.Province ? this.businessInfo.Province + ',' : ''\r\n } ${this.businessInfo.StateId || ''} ${\r\n this.businessInfo.PostalCode || ''\r\n } ${this.businessInfo.CountryCode || ''}`;\r\n }\r\n\r\n if (this.customer) {\r\n this.manualPayment.CustomerName = this.getCustomerName();\r\n this.manualPayment.CustomerEmail = this.customer.EmailAddress;\r\n\r\n if (this.customerBusinessContact) {\r\n this.manualPayment.CustomerEmail =\r\n this.customerBusinessContact.EmailAddress ||\r\n this.customer.EmailAddress;\r\n }\r\n\r\n if (this.getDefaultCustomerAddress()) {\r\n this.manualPayment.CustomerAddress = this.getDefaultCustomerAddress();\r\n }\r\n }\r\n\r\n for (const [key, value] of Object.entries(\r\n this.formData.manualForm.value\r\n )) {\r\n if (value) {\r\n if (key === 'PaymentDate') {\r\n this.manualPayment[key] = new Date(value as string);\r\n continue;\r\n }\r\n\r\n this.manualPayment[key] = value;\r\n }\r\n }\r\n\r\n this.manualPaymentService\r\n .addManualPayment(this.manualPayment)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(() => {\r\n this.isSubmitted = false;\r\n this.isProcessing = false;\r\n this.onConfirmPayment();\r\n });\r\n }\r\n }\r\n\r\n onACHOnFilePayment(): void {\r\n if (this.selectedACHDetail) {\r\n this.isProcessing = true;\r\n const payload: ACHOnFilePayment = {\r\n customerId: this.customer.Id,\r\n locationId: this.locationData.Id,\r\n amount: parseFloat(\r\n this.invoice.status === 'Partial' || this.isPartialPayment\r\n ? this.displayBalance\r\n : this.invoice.balance\r\n ),\r\n paymentIdentifier: this.selectedACHDetail.paymentIdentifier,\r\n currency: 'USD',\r\n terminalId: 'MAIN',\r\n transactionSource: !!this.workOrder\r\n ? SourceComponent.WorkOrder\r\n : this.isRecurringPayment\r\n ? SourceComponent.RecurringPayment\r\n : SourceComponent.ManualInvoice,\r\n invoiceNumber: this.invoice.invoiceNumber,\r\n isPartialPayment: this.isPartialPayment,\r\n sourceComponent: !!this.workOrder\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice,\r\n userId: Number(this.userInfo.UserId),\r\n };\r\n\r\n this.achPaymentService\r\n .achOnFileCharge(payload)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.isSubmitted = false;\r\n this.isProcessing = false;\r\n this.onConfirmPayment();\r\n }\r\n },\r\n (err: any) => {\r\n this.alert.alertError({\r\n title: 'Invoice Payment Failed',\r\n text: `Payment failed for invoice number: ${this.invoice.invoiceNumber}`,\r\n });\r\n\r\n this.isProcessing = false;\r\n this.isSubmitted = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n onSaveNewACHDetail(): Promise {\r\n const payload: AddACH = {\r\n customerId: this.customer.Id,\r\n locationId: this.locationData.Id,\r\n firstName: this.customer.FirstName,\r\n lastName: this.customer.LastName,\r\n accountNumber: this.formData.achForm.value.AccountNumber,\r\n routingNumber: this.formData.achForm.value.RoutingNumber,\r\n checkType: this.formData.achForm.value.CheckType,\r\n accountType: this.formData.achForm.value.AccountType,\r\n streetAddress1: this.achPayment.StreetAddress1,\r\n city: this.achPayment.City,\r\n state: this.achPayment.State,\r\n postalCode: this.achPayment.PostalCode,\r\n country: this.achPayment.Country,\r\n };\r\n\r\n return new Promise((resolve, reject) => {\r\n this.customerService\r\n .addCustomerACHDetails(payload)\r\n .subscribe((res: any) => {\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n async onACHPayment(): Promise {\r\n if (this.formData.achForm && this.formData.achForm.valid) {\r\n this.isProcessing = true;\r\n\r\n this.achPayment.InvoiceNumber = this.invoice.invoiceNumber;\r\n this.achPayment.TerminalId = 'MAIN';\r\n this.achPayment.IsPartialPayment = this.isPartialPayment;\r\n this.achPayment.Currency = 'USD';\r\n this.achPayment.LocationId = this.locationData.Id;\r\n this.achPayment.CustomerId = this.invoice.customerId.toString();\r\n\r\n this.achPayment.SourceComponent = !!this.workOrder\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n this.achPayment.TransactionSource = !!this.workOrder\r\n ? SourceComponent.WorkOrder\r\n : this.isRecurringPayment\r\n ? SourceComponent.RecurringPayment\r\n : SourceComponent.ManualInvoice;\r\n\r\n this.achPayment.Amount = parseFloat(\r\n this.invoice.status === 'Partial' || this.isPartialPayment\r\n ? this.displayBalance\r\n : this.invoice.balance\r\n );\r\n\r\n for (const [key, value] of Object.entries(this.formData.achForm.value)) {\r\n if (value) {\r\n if (key === 'Address') {\r\n this.customerAddress.Id = value;\r\n continue;\r\n }\r\n\r\n this.achPayment[key] = value;\r\n }\r\n }\r\n\r\n const address = this.customerAddresses.find((e) => {\r\n if (this.customerAddress.Id) {\r\n return e.Id === this.customerAddress.Id;\r\n }\r\n return e.IsDefault;\r\n });\r\n\r\n if (address) {\r\n this.achPayment.StreetAddress1 = address.StreetAddress;\r\n this.achPayment.City = address.City;\r\n this.achPayment.State = address.State;\r\n this.achPayment.PostalCode = address.ZipCode;\r\n this.achPayment.Country = address.CountryCode;\r\n }\r\n\r\n if (this.isSaveACH) {\r\n await this.onSaveNewACHDetail();\r\n }\r\n\r\n this.achPaymentService\r\n .achCharge(this.achPayment)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.isSubmitted = false;\r\n this.isProcessing = false;\r\n this.onConfirmPayment();\r\n }\r\n },\r\n () => {\r\n this.alert.alertError({\r\n title: 'Invoice Payment Failed',\r\n text: `Payment failed for invoice number: ${this.invoice.invoiceNumber}`,\r\n });\r\n\r\n this.isProcessing = false;\r\n this.isSubmitted = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n onCardPayment(): void {\r\n if (this.formData.cardForm && this.formData.cardForm.valid) {\r\n for (const [key, value] of Object.entries(this.formData.cardForm.value)) {\r\n if (value) {\r\n if (key === 'CVV') {\r\n this.cardInfo.cvn = value as string;\r\n }\r\n\r\n if (key === 'BillingAddress') {\r\n this.customerAddress.Id = value;\r\n\r\n const address = this.customerAddresses.find((e) => {\r\n if (this.customerAddress.Id) {\r\n return e.Id === this.customerAddress.Id;\r\n }\r\n return e.IsDefault;\r\n });\r\n\r\n if (address) {\r\n this.customerAddress.Id = address.Id;\r\n this.customerAddress.City = address.City;\r\n this.customerAddress.State = address.State;\r\n this.customerAddress.PostalCode = address.ZipCode;\r\n this.customerAddress.StreetAddress1 = address.StreetAddress;\r\n\r\n this.creditPayment.billingAddress = this.customerAddress;\r\n }\r\n continue;\r\n }\r\n\r\n if (key === 'ShippingAddress') {\r\n this.shippingAddress.Id = value;\r\n\r\n const address = this.customerAddresses.find((e) => {\r\n if (this.shippingAddress.Id) {\r\n return e.Id === this.shippingAddress.Id;\r\n }\r\n return e.AddressType === 3 || e.IsDefault;\r\n });\r\n\r\n if (address) {\r\n this.shippingAddress.Id = address.Id;\r\n this.shippingAddress.City = address.City;\r\n this.shippingAddress.State = address.State;\r\n this.shippingAddress.PostalCode = address.ZipCode;\r\n this.shippingAddress.StreetAddress1 = address.StreetAddress;\r\n\r\n this.creditPayment.shippingAddress = this.shippingAddress;\r\n }\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n this.cardInfo.token = this.selectedCard.Token;\r\n this.cardInfo.number = this.selectedCard.CardLast4Digits;\r\n this.cardInfo.expMonth = this.selectedCard.ExpMonth;\r\n this.cardInfo.expYear = this.selectedCard.ExpYear;\r\n this.cardInfo.cardType = this.selectedCard.CardBrand;\r\n this.cardInfo.cardBrandTransactionId =\r\n this.selectedCard.CardBrandTransactionId;\r\n this.cardInfo.isCOF = true;\r\n\r\n this.creditPayment.currency = 'USD';\r\n this.creditPayment.cardInfo = this.cardInfo;\r\n this.creditPayment.invoiceNumber = this.invoice.invoiceNumber;\r\n this.creditPayment.terminalId = 'MAIN';\r\n this.creditPayment.isPartialPayment = this.isPartialPayment;\r\n\r\n this.creditPayment.SourceComponent = !!this.workOrder\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n this.creditPayment.TransactionSource = !!this.workOrder\r\n ? SourceComponent.WorkOrder\r\n : this.isRecurringPayment\r\n ? SourceComponent.RecurringPayment\r\n : SourceComponent.ManualInvoice;\r\n\r\n this.creditPayment.amount = parseFloat(\r\n this.invoice.status === 'Partial' || this.isPartialPayment\r\n ? this.displayBalance\r\n : this.invoice.balance\r\n );\r\n this.creditPayment.gratuity = 0;\r\n\r\n this.creditPayment.customerId = this.invoice.customerId;\r\n this.creditPayment.Level =\r\n this.customer.LevelProcessing?.toLocaleString() || '';\r\n this.creditPayment.Notes = this.invoice.notes || '';\r\n\r\n if (!this.selectedCard.Token) {\r\n this.alert.alertError({\r\n text: 'Please input card details and verify the card first.',\r\n });\r\n return;\r\n }\r\n\r\n if (\r\n this.selectedCard.CardBrand === 'amex' &&\r\n !this.invoice.notes &&\r\n [2, 3].includes(this.customer.LevelProcessing)\r\n ) {\r\n let modal = this.modalService.open(InvoiceNotesComponent);\r\n this.onClose();\r\n\r\n modal.result.then((res: any) => {\r\n let paymentDiag = this.modalService.open(PaymentOptionsComponent);\r\n this.setComponentData(paymentDiag);\r\n\r\n if (!res) {\r\n this.alert.alertError({\r\n title: 'Invoice Payment Failed',\r\n text: 'An American Express card requires an invoice notes for Level 2 or 3 Customers.',\r\n });\r\n\r\n return;\r\n }\r\n\r\n paymentDiag.componentInstance.isProcessing = true;\r\n paymentDiag.componentInstance.creditPayment.Notes = res;\r\n this.onProcessCardPayment();\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.onProcessCardPayment();\r\n }\r\n }\r\n\r\n onProcessCardPayment(): void {\r\n this.isProcessing = true;\r\n\r\n this.creditService\r\n .creditChargeOnly(\r\n this.creditPayment,\r\n this.userInfo.UserId,\r\n this.invoice.locationId,\r\n ''\r\n )\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n // Audit Trail\r\n this.creditService\r\n .addAuditTrail(res)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (auditres: any) => {\r\n if (auditres) {\r\n // Audit Trail Successful\r\n }\r\n },\r\n (error) => {\r\n this.alert.alertError({\r\n title: 'Payment successful but audit trail failed',\r\n text: error.error,\r\n });\r\n },\r\n () => {\r\n // Send Receipt\r\n const payload = {\r\n emailAddress: this.customer.EmailAddress,\r\n mobileNumber: null,\r\n paymentMethod: 'Credit',\r\n receiptNumber: res.receiptNumber,\r\n };\r\n\r\n this.paymentService\r\n .sendReceipt(payload)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (receiptres: any) => {\r\n if (receiptres) {\r\n // Send receipt successful\r\n }\r\n },\r\n (error) => {\r\n this.alert\r\n .alertWarning({\r\n title: `Payment Successful
Sending Receipt Failed`,\r\n text: `The payment was done successfully.
Unfortunately, there was an error encountered\r\n while sending the receipt.
\r\n

Please check Transaction Reports to retry sending the receipt to the customer.`,\r\n })\r\n .then((result) => {\r\n if (result.isDismissed || result.isConfirmed) {\r\n this.onProcessTip(res);\r\n }\r\n });\r\n },\r\n () => {\r\n this.onProcessTip(res);\r\n }\r\n );\r\n }\r\n );\r\n }\r\n },\r\n (error) => {\r\n if (error.error.toLowerCase().indexOf('authorization') >= 0) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Authorization successful.',\r\n });\r\n return;\r\n }\r\n this.alert.alertError({\r\n title: 'Invoice Payment failed',\r\n text: error.error,\r\n });\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n onProcessTip(result: any): void {\r\n this.creditService\r\n .processTip(result)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (tipres: any) => {\r\n if (tipres) {\r\n // Tip processing successful\r\n }\r\n },\r\n (error) => {\r\n this.alert.alertError({\r\n title: 'Payment successful but tip processing failed',\r\n text: error.error,\r\n });\r\n },\r\n () => {\r\n if (this.selectedCard) {\r\n this.onCardAssignToRecurringInvoice(\r\n this.creditPayment.invoiceNumber,\r\n this.selectedCard.Id\r\n );\r\n }\r\n\r\n this.onConfirmPayment();\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n onNewCardPayment(data: any): void {\r\n this.isProcessing = true;\r\n\r\n this.cardInfo.token = this.cardToken.paymentReference;\r\n this.cardInfo.number = this.cardToken.details.cardLast4;\r\n this.cardInfo.cardBIN = this.cardToken.details.cardBin;\r\n this.cardInfo.expMonth = this.cardToken.details.expiryMonth;\r\n this.cardInfo.expYear = this.cardToken.details.expiryYear;\r\n this.cardInfo.cvn = this.cardToken.details.cvv;\r\n\r\n this.creditPayment.currency = 'USD';\r\n this.creditPayment.cardInfo = this.cardInfo;\r\n this.creditPayment.invoiceNumber = this.invoice.invoiceNumber;\r\n this.creditPayment.terminalId = 'MAIN';\r\n this.creditPayment.customerId = this.invoice.customerId;\r\n this.creditPayment.gratuity = 0;\r\n\r\n this.creditPayment.SourceComponent = !!this.workOrder\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n this.creditPayment.TransactionSource = !!this.workOrder\r\n ? SourceComponent.WorkOrder\r\n : this.isRecurringPayment\r\n ? SourceComponent.RecurringPayment\r\n : SourceComponent.ManualInvoice;\r\n\r\n this.creditPayment.amount = parseFloat(\r\n this.invoice.status === 'Partial' || this.isPartialPayment\r\n ? this.displayBalance\r\n : this.invoice.balance\r\n );\r\n\r\n if (this.businessInfo?.Processor.toLowerCase() === 'tsys') {\r\n const address = this.customerAddresses.find((e) => {\r\n if (data.addressShippingId) {\r\n return e.Id === this.shippingAddress.Id;\r\n }\r\n return e.AddressType === 3 || e.IsDefault;\r\n });\r\n\r\n if (address) {\r\n this.shippingAddress.Id = address.Id;\r\n this.shippingAddress.City = address.City;\r\n this.shippingAddress.State = address.State;\r\n this.shippingAddress.PostalCode = address.ZipCode;\r\n this.shippingAddress.StreetAddress1 = address.StreetAddress;\r\n\r\n this.creditPayment.shippingAddress = this.shippingAddress;\r\n }\r\n\r\n this.creditPayment.Level =\r\n this.customer.LevelProcessing?.toLocaleString() || '';\r\n this.creditPayment.Notes = this.creditPayment.Notes || this.invoice.notes;\r\n }\r\n\r\n this.creditPayment.billingAddress = this.customerAddress;\r\n this.creditPayment.LocationId = this.locationData.Id;\r\n this.onProcessNewCardPayment();\r\n }\r\n\r\n onProcessNewCardPayment(): void {\r\n this.isProcessing = true;\r\n\r\n this.creditPayment.isPartialPayment = this.isPartialPayment;\r\n this.creditPayment.cardInfo = this.cardInfo;\r\n this.creditPayment.requestMultiUseToken = this.isSaveCard;\r\n\r\n this.creditService\r\n .creditChargeOnly(\r\n this.creditPayment,\r\n this.userInfo.UserId,\r\n this.invoice.locationId.toLocaleString() || this.locationData.Id,\r\n 'Main'\r\n )\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n if (this.isSaveCard) {\r\n this.cardInfo.cardBrandTransactionId =\r\n res.transaction.cardBrandTransactionId;\r\n this.cardInfo.token = res.transaction.token;\r\n this.onSaveCardToFile();\r\n }\r\n\r\n if (this.customerSignature) {\r\n this.invoiceService\r\n .uploadCustomersig({\r\n invoiceNumber: this.invoice.invoiceNumber,\r\n signatureUrl: this.customerSignature,\r\n createdBy: this.userInfo.UserId || '1',\r\n })\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe();\r\n }\r\n\r\n // Audit Trail\r\n this.creditService\r\n .addAuditTrail(res)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (auditres: any) => {\r\n if (auditres) {\r\n // Audit Trail Successful\r\n }\r\n },\r\n (error) => {\r\n this.alert.alertError({\r\n title: 'Payment successful but audit trail failed',\r\n text: error.error,\r\n });\r\n },\r\n () => {\r\n // Send Receipt\r\n const payload = {\r\n emailAddress: this.customer.EmailAddress,\r\n mobileNumber: null,\r\n paymentMethod: 'Credit',\r\n receiptNumber: res.receiptNumber,\r\n };\r\n\r\n this.paymentService\r\n .sendReceipt(payload)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe(\r\n (receiptres: any) => {\r\n if (receiptres) {\r\n // Send receipt successful\r\n }\r\n },\r\n (error) => {\r\n this.alert\r\n .alertWarning({\r\n title: `Payment Successful
Sending Receipt Failed`,\r\n text: `The payment was done successfully.
Unfortunately, there was an error encountered\r\n while sending the receipt.
\r\n

Please check Transaction Reports to retry sending the receipt to the customer.`,\r\n })\r\n .then((result) => {\r\n if (result.isDismissed || result.isConfirmed) {\r\n this.onProcessTip(res);\r\n }\r\n });\r\n },\r\n () => {\r\n this.onProcessTip(res);\r\n }\r\n );\r\n }\r\n );\r\n }\r\n },\r\n (error) => {\r\n if (error.error.toLowerCase().indexOf('authorization') >= 0) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Authorization successful.',\r\n });\r\n if (this.isSaveCard) {\r\n this.onSaveCardToFile();\r\n this.isProcessing = false;\r\n }\r\n return;\r\n }\r\n this.alert.alertError({\r\n title: 'Invoice Payment failed',\r\n text: error.error,\r\n });\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n onSaveCardToFile(): void {\r\n this.customerCard.Token = this.cardInfo.token;\r\n this.customerCard.CardLast4Digits = this.cardToken.details.cardLast4;\r\n this.customerCard.CardBrand = this.cardToken.details.cardType;\r\n this.customerCard.ExpMonth = this.cardToken.details.expiryMonth;\r\n this.customerCard.ExpYear = this.cardToken.details.expiryYear;\r\n this.customerCard.CVN = this.cardToken.details.cvv;\r\n\r\n this.customerCard.IsDeleted = false;\r\n this.customerCard.CreatedBy = 2;\r\n this.customerCard.CreatedDate = new Date();\r\n this.customerCard.UpdatedBy = null;\r\n this.customerCard.UpdatedDate = null;\r\n this.customerCard.Id = 0;\r\n this.customerCard.CustomerId = this.invoice.customerId;\r\n\r\n this.customerService\r\n .addCustomerCardNumber(this.customerCard)\r\n .subscribe((res: any) => {\r\n this.onCardAssignToRecurringInvoice(this.invoice.invoiceNumber, res);\r\n if (res) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Successfully added card to file.',\r\n });\r\n this.isProcessing = false;\r\n }\r\n });\r\n }\r\n\r\n onConfirmPayment(): void {\r\n if (!!this.workOrder) {\r\n this.workOrderService.statusUpdate(\r\n this.workOrder.WorkOrderId,\r\n WorkOrderEnum.Completed,\r\n 1\r\n );\r\n }\r\n\r\n if (this.invoiceSettings?.requireCustomerSignOrPasswordOnPayment) {\r\n let signDiag = this.modalService.open(PaymentConfirmActionComponent, {\r\n backdrop: 'static',\r\n });\r\n\r\n signDiag.componentInstance.hideUserPassword = true;\r\n this.onClose();\r\n\r\n signDiag.result.then((res) => {\r\n if (res && res.signUrl) {\r\n this.invoiceService\r\n .uploadCustomersig({\r\n invoiceNumber: this.invoice.invoiceNumber,\r\n signatureUrl: res.signUrl,\r\n createdBy: this.userInfo.UserId,\r\n })\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe();\r\n }\r\n\r\n this.alert.alertSuccess({\r\n title: 'Invoice Payment Successful',\r\n text: `You have successfully paid the invoice Transaction # ${this.invoice.invoiceNumber}`,\r\n });\r\n\r\n this.invoiceService.reloadInvoiceList();\r\n this.onClose();\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.alert.alertSuccess({\r\n title: 'Invoice Payment Successful',\r\n text: `You have successfully paid the invoice Transaction # ${this.invoice.invoiceNumber}`,\r\n });\r\n\r\n this.invoiceService.reloadInvoiceList();\r\n this.onClose();\r\n }\r\n\r\n onCardAssignToRecurringInvoice(invoiceNumber: string, cardId: number) {\r\n if (!this.recurringInvoiceConfig) {\r\n this.onClose(true);\r\n return;\r\n }\r\n\r\n if (this.recurringInvoiceConfig.isAutoCharge) {\r\n this.invoiceService\r\n .setRecurringInvoiceCardNumberByInvoiceNumber(invoiceNumber, cardId)\r\n .subscribe((res) => {\r\n if (res) {\r\n this.alert\r\n .alertSuccess({\r\n title: 'Success',\r\n text: 'This card is now used for future payments for this recurring invoice.',\r\n })\r\n .then(() => {\r\n this.onClose(true);\r\n });\r\n }\r\n });\r\n } else {\r\n this.onClose(true);\r\n\r\n this.alert.alert({\r\n title: 'Confirmation',\r\n text: `Do you want to use this card for auto payment?`,\r\n icon: 'info',\r\n showCancelButton: true,\r\n confirmButtonText: 'Yes, use this card!',\r\n showLoaderOnConfirm: true,\r\n preConfirm: () => {\r\n return this.invoiceService\r\n .setRecurringInvoiceCardNumberByInvoiceNumber(invoiceNumber, cardId)\r\n .subscribe(\r\n (result) => {\r\n if (result) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'This card is now used for future payments for this recurring invoice.',\r\n });\r\n this.onClose(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.alert.alertError({\r\n title: 'Error',\r\n text: error.error.text,\r\n });\r\n }\r\n );\r\n },\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ getHeaderLabel() }}\r\n
\r\n\r\n
\r\n \r\n \r\n Back to {{ getBackLabel() }}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ currentStep !== 'pay-form' ? 'Select Payment Method' : 'Invoice and Payment Summary' }}\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ option.name }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ method.name }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ invoice.invoiceNumber }}\r\n
\r\n\r\n
\r\n \r\n \r\n {{ !isPartialPayment ? 'Full Payment' : 'Partial Payment' }}, {{ selectedMethod.name }}\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n {{ getDefaultCustomerAddress() }}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
\r\n \r\n Customer has read and agree to the\r\n \r\n Terms and Conditions\r\n
\r\n\r\n
\r\n \r\n Send Receipt to Client\r\n \r\n
\r\n\r\n
\r\n \r\n Save card to customer’s account\r\n \r\n
\r\n\r\n
\r\n \r\n Save ACH Detail to customer’s account\r\n \r\n
\r\n
\r\n\r\n
\r\n Cancel Payment\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ !isProcessing ? 'Process Payment' : 'Processing...' }}\r\n \r\n\r\n \r\n
\r\n \r\n \r\n Processing...\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n Cancel\r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-payment-terms',\r\n templateUrl: './payment-terms.component.html',\r\n styleUrls: ['./payment-terms.component.scss']\r\n})\r\nexport class PaymentTermsComponent {\r\n @Input() content: any;\r\n @Input() isAgreed: boolean;\r\n\r\n constructor(private activeModal: NgbActiveModal) { }\r\n\r\n close(data?: any) {\r\n this.activeModal.close(data);\r\n }\r\n\r\n onAgree(isAgree: boolean = false): void {\r\n this.close(this.isAgreed || isAgree);\r\n }\r\n}\r\n","
\r\n
\r\n
Payment Terms & Conditions
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AchTcComponent } from './ach-tc/ach-tc.component';\r\nimport { ACHOnFilePayment, ACHPayment } from '../../../models/invoice/ach-payment.model';\r\nimport {\r\n CustomerAddress,\r\n ManualInvoice,\r\n ManualInvoicePartialPaySetting,\r\n} from '../../../models/invoice/invoice.model';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { CustomerManagementService } from '../../../services/customer.service';\r\nimport { InvoiceService } from '../../../services/invoice.service';\r\nimport { ACHPaymentService } from '../../../services/achpayment.service';\r\nimport {\r\n AccountType,\r\n CheckType,\r\n SourceComponent,\r\n} from '../../../models/invoice/payment.model';\r\nimport { CustomerAddressFormComponent } from '../../customers/customer-address-form/customer-address-form.component';\r\nimport { ACH } from 'src/app/shared/models/invoice/ach.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { AddACH } from 'src/app/shared/models/invoice/add-ach.model';\r\n\r\n@Component({\r\n selector: 'app-ach-payment',\r\n templateUrl: './ach-payment.component.html',\r\n styleUrls: ['./ach-payment.component.scss'],\r\n})\r\nexport class ACHPaymentComponent implements OnInit {\r\n private getCustomerACHSubscription$: Subscription;\r\n \r\n @Input() invoiceNumber: string = '';\r\n @Input() customerId: number = 0;\r\n @Input() addressId: number = 0;\r\n @Input() merchantName: string = '';\r\n @Input() contactNumber: string = '';\r\n @Input() locationData: any;\r\n @Input() isWorkOrder: boolean;\r\n @Input() isPartialPayment: boolean = false;\r\n @Input() userId: string = '';\r\n @Input() isMultipleInvoices: boolean = false;\r\n @Input() manualInvoices: any[];\r\n @Input() tipAmount: number = 0;\r\n @Input() isSalesInvoice: boolean = false;\r\n @Input() customerInfo:any = {};\r\n\r\n busy: boolean;\r\n agreedToTerms: boolean = false;\r\n //selectedCard: any;\r\n //cardsOnFile: any[];\r\n amountToBePaid: number;\r\n isProcessingPayment: boolean = false;\r\n\r\n customerAddresses: any[];\r\n\r\n //cardInfo: CardInfo;\r\n achPaymentModel: ACHPayment = new ACHPayment();\r\n manualInvoice: any;\r\n customerAddress: CustomerAddress;\r\n\r\n partialPaymentSetting: ManualInvoicePartialPaySetting =\r\n new ManualInvoicePartialPaySetting();\r\n loadingPaidDetails: boolean = false;\r\n loadingPartialPaySettings: boolean = false;\r\n selectedInvoiceString: string = '';\r\n isCheckingAccount: boolean = true;\r\n customerACHDetails: ACH[] = [];\r\n selectedACH: ACH;\r\n isAddACH: boolean = false;\r\n isInitializing: boolean = false;\r\n isSaveACH: boolean = false;\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private alert: AlertService,\r\n private customerService: CustomerManagementService,\r\n private invoiceService: InvoiceService,\r\n private achPaymentService: ACHPaymentService,\r\n private modalService: NgbModal\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.achPaymentModel.AccountType = AccountType.CHECKING;\r\n //this.cardsOnFile = [];\r\n this.manualInvoice = new ManualInvoice();\r\n //this.cardInfo = new CardInfo();\r\n\r\n if (this.isMultipleInvoices) {\r\n this.amountToBePaid = 0;\r\n\r\n this.selectedInvoiceString = '';\r\n\r\n this.manualInvoices.forEach((eachObj, index) => {\r\n if (index > 0) this.selectedInvoiceString += ',';\r\n this.selectedInvoiceString += eachObj.InvoiceNumber;\r\n\r\n if (this.isPartialPayment) {\r\n this.amountToBePaid += eachObj.ManualInvoice.requiredPartialPayment;\r\n } else {\r\n this.amountToBePaid +=\r\n eachObj.ManualInvoice.status === 'Partial'\r\n ? eachObj.ManualInvoice.balance - eachObj.ManualInvoice.totalPaid\r\n : eachObj.ManualInvoice.balance;\r\n }\r\n });\r\n } else {\r\n if (!this.isSalesInvoice) {\r\n this.getManualInvoice(this.invoiceNumber);\r\n }\r\n }\r\n\r\n //this.loadCardsOnFile(this.customerId);\r\n this.customerAddress = new CustomerAddress();\r\n this.getCustomerAddress(this.customerId);\r\n //this.getTermsPolicy();\r\n this.loadACHDetails();\r\n }\r\n\r\n getCustomerAddress(id: number) {\r\n this.busy = true;\r\n this.customerService.getCustomerAddresses(id).subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.customerAddresses = res;\r\n let addr = res.find((addr) => {\r\n if (this.addressId != 0) {\r\n return addr.Id === this.addressId;\r\n } else {\r\n return addr.IsDefault === true;\r\n }\r\n });\r\n\r\n if (addr) {\r\n this.addressId = addr.Id;\r\n this.customerAddress.Id = addr.Id;\r\n this.customerAddress.City = addr.City;\r\n this.customerAddress.State = addr.State;\r\n this.customerAddress.PostalCode = addr.ZipCode;\r\n this.customerAddress.StreetAddress1 = addr.StreetAddress;\r\n this.customerAddress.CountryCode = addr.CountryCode;\r\n }\r\n }\r\n },\r\n () => {},\r\n () => {\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n addressSelected() {\r\n var addr = this.customerAddresses.find((addr) => {\r\n return addr.Id == this.addressId;\r\n });\r\n if (addr) {\r\n this.addressId = addr.Id;\r\n this.customerAddress.Id = addr.Id;\r\n this.customerAddress.City = addr.City;\r\n this.customerAddress.State = addr.State;\r\n this.customerAddress.PostalCode = addr.ZipCode;\r\n this.customerAddress.StreetAddress1 = addr.StreetAddress;\r\n this.customerAddress.CountryCode = addr.CountryCode;\r\n }\r\n }\r\n\r\n addAddress() {\r\n let cardDiag = this.modalService.open(CustomerAddressFormComponent, {\r\n size: 'lg',\r\n });\r\n cardDiag.componentInstance.customerId = this.customerId;\r\n\r\n cardDiag.result.then((res: CustomerAddress) => {\r\n if (res) {\r\n this.customerAddresses.push(res);\r\n this.addressId = res.Id;\r\n this.addressSelected();\r\n }\r\n });\r\n }\r\n\r\n getManualInvoice(invoiceNumber: string) {\r\n this.busy = true;\r\n this.loadingPartialPaySettings = this.isPartialPayment;\r\n\r\n this.invoiceService\r\n .getManualInvoice(invoiceNumber)\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this.manualInvoice = res;\r\n\r\n if (this.isPartialPayment || this.manualInvoice.status === 'Partial')\r\n this.loadInvoicePartialPaySetting(invoiceNumber);\r\n else this.amountToBePaid = this.manualInvoice.balance.toFixed(2);\r\n }\r\n this.busy = false;\r\n });\r\n }\r\n\r\n loadInvoicePartialPaySetting(invoiceNumber: string) {\r\n this.loadingPartialPaySettings = true;\r\n this.amountToBePaid = 0;\r\n this.invoiceService\r\n .getPartialPaySettingByInvoiceNumber(invoiceNumber)\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.partialPaymentSetting = res;\r\n if (this.manualInvoice.status === 'Partial') {\r\n this.loadingPaidDetails = true;\r\n this.invoiceService\r\n .getPaidManualInvoiceByInvoiceNumber(this.invoiceNumber)\r\n .subscribe((res: any) => {\r\n this.amountToBePaid = +(\r\n this.manualInvoice.balance - res.amountPaid\r\n ).toFixed(2);\r\n this.loadingPaidDetails = false;\r\n });\r\n } else {\r\n if (this.partialPaymentSetting.partialDueType === '%') {\r\n this.amountToBePaid = +(\r\n (this.manualInvoice.balance - this.tipAmount) *\r\n (this.partialPaymentSetting.partialDue / 100)\r\n ).toFixed(2);\r\n } else {\r\n this.amountToBePaid =\r\n +this.partialPaymentSetting.partialDue.toFixed(2);\r\n }\r\n this.amountToBePaid += this.tipAmount;\r\n }\r\n }\r\n },\r\n () => {},\r\n () => {\r\n this.loadingPartialPaySettings = false;\r\n }\r\n );\r\n }\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n accountTypeChanged(event: any) {\r\n this.achPaymentModel.AccountType =\r\n event.target.value === '0' ? AccountType.CHECKING : AccountType.SAVINGS;\r\n this.isCheckingAccount = event.target.value === '0' ? true : false;\r\n }\r\n\r\n checkTypeChanged(event: any) {\r\n let chktype = event.target.value;\r\n if (chktype === '0') {\r\n this.achPaymentModel.CheckType = CheckType.PERSONAL;\r\n } else if (chktype === '1') {\r\n this.achPaymentModel.CheckType = CheckType.BUSINESS;\r\n } else if (chktype === '2') {\r\n this.achPaymentModel.CheckType = CheckType.PAYROLL;\r\n } else {\r\n this.achPaymentModel.CheckType = null;\r\n }\r\n }\r\n\r\n payviaACH() {\r\n this.achPaymentModel.Amount = this.amountToBePaid;\r\n this.achPaymentModel.InvoiceNumber = this.invoiceNumber;\r\n this.achPaymentModel.TerminalId = 'MAIN';\r\n this.achPaymentModel.IsPartialPayment = this.isPartialPayment;\r\n this.achPaymentModel.Currency = 'USD';\r\n this.achPaymentModel.LocationId = this.locationData.Id;\r\n\r\n this.achPaymentModel.CustomerId = this.customerId.toString();\r\n this.achPaymentModel.StreetAddress1 = this.customerAddress.StreetAddress1;\r\n this.achPaymentModel.City = this.customerAddress.City;\r\n this.achPaymentModel.State = this.customerAddress.State;\r\n this.achPaymentModel.PostalCode = this.customerAddress.PostalCode;\r\n this.achPaymentModel.SourceComponent =\r\n this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n this.achPaymentModel.TransactionSource =\r\n this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n this.busy = true;\r\n this.achPaymentService.achCharge(this.achPaymentModel).subscribe(\r\n (res) => {\r\n if (res) {\r\n this.modalRef.close(res);\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Successfully charged ACH account!',\r\n });\r\n this.busy = false;\r\n }\r\n },\r\n (err) => {\r\n this.modalRef.close();\r\n this.alert.alertError({ title: 'ACH charge failed', text: err.error });\r\n this.busy = false;\r\n }\r\n );\r\n return;\r\n }\r\n\r\n processACHonFilePayment() {\r\n if(this.selectedACH) {\r\n const payload: ACHOnFilePayment = {\r\n customerId: this.customerId,\r\n locationId: this.locationData.Id,\r\n amount: this.amountToBePaid,\r\n paymentIdentifier: this.selectedACH.paymentIdentifier,\r\n currency: 'USD',\r\n terminalId: 'MAIN',\r\n transactionSource: this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice,\r\n invoiceNumber: this.manualInvoice.invoiceNumber,\r\n isPartialPayment: this.isPartialPayment,\r\n sourceComponent: this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice,\r\n userId: Number(this.userId)\r\n };\r\n\r\n this.achPaymentService\r\n .achOnFileCharge(payload)\r\n .subscribe(\r\n (res: any) => {\r\n if(res) {\r\n this.isProcessingPayment = false;\r\n this.close(true);\r\n }\r\n },\r\n (err) => {\r\n this.isProcessingPayment = false;\r\n this.alert.alertError(\r\n `Payment failed for invoice number: ${this.achPaymentModel.InvoiceNumber}`\r\n );\r\n }\r\n )\r\n }\r\n }\r\n\r\n onSaveNewACHDetail(): Promise {\r\n const payload: AddACH = {\r\n customerId: this.customerId,\r\n locationId: this.locationData.Id,\r\n firstName: this.customerInfo.FirstName,\r\n lastName: this.customerInfo.LastName,\r\n accountNumber: this.achPaymentModel.AccountNumber,\r\n routingNumber: this.achPaymentModel.RoutingNumber,\r\n checkType: this.achPaymentModel.CheckType,\r\n accountType: this.achPaymentModel.AccountType,\r\n streetAddress1: this.customerAddress.StreetAddress1,\r\n city: this.customerAddress.City,\r\n state: this.customerAddress.State,\r\n postalCode: this.customerAddress.PostalCode,\r\n country: this.customerAddress.CountryCode\r\n };\r\n\r\n return new Promise((resolve, reject) => {\r\n this.customerService.addCustomerACHDetails(payload).subscribe(\r\n (res: any) => {\r\n resolve();\r\n }\r\n );\r\n })\r\n\r\n }\r\n\r\n async processPayment(): Promise {\r\n if (!this.amountToBePaid) {\r\n this.alert.alertError({ text: 'Please enter an Amount.' });\r\n return false;\r\n }\r\n\r\n if (!this.agreedToTerms) {\r\n this.alert.alertError({ text: 'Please Agree to Terms and Conditions.' });\r\n return false;\r\n }\r\n\r\n this.isProcessingPayment = true;\r\n\r\n this.achPaymentModel.Amount = this.amountToBePaid;\r\n this.achPaymentModel.InvoiceNumber = this.manualInvoice.invoiceNumber;\r\n this.achPaymentModel.TerminalId = 'MAIN';\r\n this.achPaymentModel.IsPartialPayment = this.isPartialPayment;\r\n this.achPaymentModel.Currency = 'USD';\r\n this.achPaymentModel.LocationId = this.locationData.Id;\r\n\r\n this.achPaymentModel.CustomerId = this.customerId.toString();\r\n this.achPaymentModel.StreetAddress1 = this.customerAddress.StreetAddress1;\r\n this.achPaymentModel.City = this.customerAddress.City;\r\n this.achPaymentModel.State = this.customerAddress.State;\r\n this.achPaymentModel.PostalCode = this.customerAddress.PostalCode;\r\n this.achPaymentModel.SourceComponent =\r\n this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n this.achPaymentModel.TransactionSource =\r\n this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n\r\n if(this.isSaveACH) {\r\n await this.onSaveNewACHDetail();\r\n }\r\n \r\n if(!this.isAddACH) {\r\n this.processACHonFilePayment();\r\n } else {\r\n this.achPaymentService.achCharge(this.achPaymentModel).subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.isProcessingPayment = false;\r\n this.close(true);\r\n }\r\n },\r\n (err) => {\r\n this.isProcessingPayment = false;\r\n this.alert.alertError(\r\n `Payment failed for invoice number: ${this.achPaymentModel.InvoiceNumber}`\r\n );\r\n }\r\n );\r\n }\r\n }\r\n\r\n processMultiplePayments() {\r\n if (!this.amountToBePaid) {\r\n this.alert.alertError({ text: 'Please enter an Amount.' });\r\n return false;\r\n }\r\n\r\n if (!this.agreedToTerms) {\r\n this.alert.alertError({ text: 'Please Agree to Terms and Conditions.' });\r\n return false;\r\n }\r\n\r\n this.isProcessingPayment = true;\r\n let promises = [];\r\n\r\n for (var i = 0; i < this.manualInvoices.length; i++) {\r\n this.achPaymentModel.Amount = this.isPartialPayment\r\n ? this.manualInvoices[i].ManualInvoice.requiredPartialPayment\r\n : this.manualInvoices[i].ManualInvoice.balance -\r\n this.manualInvoices[i].ManualInvoice.totalPaid;\r\n this.achPaymentModel.InvoiceNumber =\r\n this.manualInvoices[i].ManualInvoice.invoiceNumber;\r\n this.achPaymentModel.TerminalId = 'MAIN';\r\n this.achPaymentModel.IsPartialPayment = this.isPartialPayment;\r\n this.achPaymentModel.Currency = 'USD';\r\n this.achPaymentModel.LocationId = this.manualInvoices[i].locationData.Id;\r\n\r\n this.achPaymentModel.CustomerId = this.customerId.toString();\r\n this.achPaymentModel.StreetAddress1 = this.customerAddress.StreetAddress1;\r\n this.achPaymentModel.City = this.customerAddress.City;\r\n this.achPaymentModel.State = this.customerAddress.State;\r\n this.achPaymentModel.PostalCode = this.customerAddress.PostalCode;\r\n this.achPaymentModel.SourceComponent =\r\n this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n this.achPaymentModel.TransactionSource =\r\n this.isWorkOrder == true\r\n ? SourceComponent.WorkOrder\r\n : SourceComponent.ManualInvoice;\r\n\r\n promises.push(\r\n new Promise((resolve, reject) => {\r\n this.achPaymentService.achCharge(this.achPaymentModel).subscribe(\r\n (res: any) => {\r\n if (res) {\r\n resolve(res);\r\n //this.alert.alertSuccess({ title: 'Success', text: 'Successfully charged ACH account!' });\r\n }\r\n },\r\n (err) => {\r\n reject(\r\n `Payment failed for invoice number: ${this.achPaymentModel.InvoiceNumber}`\r\n );\r\n }\r\n );\r\n })\r\n );\r\n }\r\n\r\n Promise.all(promises).then((values) => {\r\n for (var i = 0; i < this.manualInvoices.length; i++) {\r\n this.manualInvoices[i].paymentResult = values[i];\r\n }\r\n this.close(this.manualInvoices);\r\n this.busy = false;\r\n });\r\n }\r\n\r\n forceMinDate(e) {\r\n if (e.target.value) {\r\n if (new Date(e.target.value) < new Date(e.target.min)) {\r\n e.target.value = e.target.min;\r\n }\r\n } else {\r\n e.target.value = e.target.min;\r\n }\r\n }\r\n\r\n openTermsAndCondition() {\r\n let achTerms = this.modalService.open(AchTcComponent, { size: 'lg' });\r\n achTerms.componentInstance.merchantName = this.merchantName;\r\n achTerms.componentInstance.contactNumber = this.contactNumber;\r\n }\r\n\r\n loadACHDetails(): void {\r\n this.isInitializing = true;\r\n this.getCustomerACHSubscription$ =\r\n this.customerService.getCustomerACHsById(this.customerId)\r\n .subscribe({\r\n next: (result: any) => {\r\n if(result) {\r\n this.customerACHDetails = result;\r\n this.getDefaultACH();\r\n }\r\n this.isInitializing = false;\r\n\r\n },\r\n error: () => {\r\n this.isInitializing = false;\r\n }\r\n })\r\n }\r\n\r\n getDefaultACH(): void {\r\n if (this.customerACHDetails.length && !this.selectedACH) {\r\n const card = this.customerACHDetails.find((e) => e.isDefault);\r\n this.onSelectACH(card?.paymentIdentifier || this.customerACHDetails[0].paymentIdentifier);\r\n }\r\n }\r\n\r\n onSelectACH(paymentIdentifier: string): void {\r\n const ach = this.customerACHDetails.find((e) => e.paymentIdentifier === paymentIdentifier);\r\n\r\n if (ach) {\r\n this.selectedACH = ach;\r\n }\r\n }\r\n\r\n onAddACH(): void {\r\n this.isAddACH = !this.isAddACH;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n Process Payment\r\n \r\n \r\n
\r\n\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n Output,\r\n ViewChild,\r\n TemplateRef,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport {\r\n NgbActiveModal,\r\n NgbModal,\r\n NgbModalRef,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { CustomerCardNumber } from '../../../models/customer.model';\r\nimport {\r\n CardInfo,\r\n CreditPayment,\r\n CustomerAddress,\r\n} from '../../../models/invoice/invoice.model';\r\nimport { InvoiceService } from '../../../services/invoice.service';\r\nimport { CustomerManagementService } from '../../../services/customer.service';\r\nimport { AuthorizationBase } from 'src/app/shared/libraries/authorize-base';\r\nimport { InvoiceNotesComponent } from './invoice-notes/invoice-notes.component';\r\nimport { CreditPaymentService } from '../../../services/creditpayment.service';\r\nimport { CustomerAddressFormComponent } from '../../customers/customer-address-form/customer-address-form.component';\r\nimport { ServiceWorkOrderService } from '../../../services/service-work-order.service';\r\nimport { SourceComponent } from '../../../models/invoice/payment.model';\r\nimport { AlertService } from '../../../../core/alert.service';\r\nimport { MerchantService } from '../../../services/merchant.service';\r\nimport { TermsconditionpolicyService } from '../../../services/termsconditionpolicy.service';\r\nimport { HeartlandCardTokenizerComponent } from '../../heartland-card-tokenizer/heartland-card-tokenizer.component';\r\nimport { PaymentService } from 'src/app/shared/services/payments.service';\r\ndeclare var $: any;\r\n\r\n@Component({\r\n selector: 'app-card-form',\r\n templateUrl: './card-form.component.html',\r\n styleUrls: ['./card-form.component.scss'],\r\n})\r\nexport class CardFormComponent extends AuthorizationBase implements OnInit {\r\n @ViewChild('container', { static: false }) tcpTemplate: TemplateRef;\r\n @ViewChild('tokenizerForm', { static: false })\r\n tokenizerForm: HeartlandCardTokenizerComponent;\r\n @Output() customerCardAdded = new EventEmitter();\r\n\r\n @Input() customerId: number;\r\n @Input() amountToBePaid: number;\r\n @Input() invoiceNumber: string;\r\n @Input() locationData: any;\r\n @Input() addressId: number = 0;\r\n @Input() addressShippingId: number = 0;\r\n @Input() policyContent: string;\r\n @Input() termsAndConditionContent: string;\r\n @Input() isPartialPayment: boolean = false;\r\n @Input() user_Id: string;\r\n @Input() merchantName: string = '';\r\n\r\n @Input() isMultipleInvoices: boolean = false;\r\n @Input() manualInvoices: any[];\r\n @Input() customerSignature: any;\r\n\r\n @Input() gratuity: number = 0;\r\n\r\n @Input() onCardAdded: any;\r\n\r\n currentModal: NgbModalRef;\r\n tcpTitle: string;\r\n tcpContent: string;\r\n\r\n agreedToTerms: boolean = false;\r\n @Input() saveCard: boolean = false;\r\n\r\n isUpdate: boolean = false;\r\n busy: boolean = false;\r\n model: CustomerCardNumber;\r\n cardToken: any;\r\n multiUseToken: any;\r\n cardInfo: CardInfo;\r\n @Output() publicAPIKey: string;\r\n\r\n customerAddressList: any[];\r\n manualInvoice: any;\r\n workOrderModel: any;\r\n\r\n customerAddress: CustomerAddress;\r\n shippingAddress: CustomerAddress;\r\n tokenReceived: boolean;\r\n\r\n processor: string;\r\n businessInfo: any;\r\n\r\n cardBrandTransactionId: string;\r\n level: string;\r\n notes: string = '';\r\n customerEmail: string;\r\n\r\n constructor(\r\n private creditService: CreditPaymentService,\r\n private alert: AlertService,\r\n public apiService: CustomerManagementService,\r\n private invoiceService: InvoiceService,\r\n private merchantService: MerchantService,\r\n private tcpService: TermsconditionpolicyService,\r\n private modalRef: NgbActiveModal,\r\n private workOrderSvc: ServiceWorkOrderService,\r\n private modalService: NgbModal,\r\n private paymentService: PaymentService,\r\n ) {\r\n super();\r\n this.model = new CustomerCardNumber();\r\n this.processor = super.getPlatform().toString();\r\n\r\n if (this.processor == 'false') {\r\n this.loadBusinessInfo();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.busy = true;\r\n this.cardInfo = new CardInfo();\r\n this.publicAPIKey = this.locationData ? this.locationData.API_Key : '';\r\n\r\n if (!this.isMultipleInvoices) {\r\n this.getManualInvoice(this.invoiceNumber);\r\n }\r\n\r\n this.customerAddress = new CustomerAddress();\r\n this.shippingAddress = new CustomerAddress();\r\n this.getCustomerAddress(this.customerId);\r\n this.getCustomerShippingAddress(this.customerId);\r\n this.getTermsPolicy();\r\n this.getCustomerInfo(this.customerId);\r\n\r\n if (!this.customerId) {\r\n this.addAddress();\r\n }\r\n }\r\n loadBusinessInfo() {\r\n this.merchantService.getMerchant('1').subscribe((response: any) => {\r\n if (response) {\r\n this.businessInfo = response;\r\n this.processor = response.Processor.toLowerCase();\r\n }\r\n });\r\n }\r\n\r\n getCustomerInfo(customerId: any) {\r\n this.apiService.getCustomer(customerId).subscribe((res: any) => {\r\n if (res) {\r\n this.customerEmail = res.EmailAddress;\r\n this.level = res.LevelProcessing ? res.LevelProcessing.toString() : '';\r\n }\r\n });\r\n }\r\n\r\n onCardTokenReceived(token) {\r\n if (this.tokenReceived) return;\r\n\r\n this.cardToken = token;\r\n\r\n if (!this.invoiceNumber) {\r\n return false;\r\n }\r\n\r\n if (!token) {\r\n this.alert.alertError({ text: 'Please input Card details first.' });\r\n this.tokenizerForm.setBusyState(false);\r\n return false;\r\n }\r\n\r\n if (!this.addressId) {\r\n this.alert.alertError({ text: 'Please select an address.' });\r\n this.tokenizerForm.setBusyState(false);\r\n return false;\r\n }\r\n\r\n if (!this.agreedToTerms) {\r\n this.alert.alertError({ text: 'Please Agree to Terms and Conditions.' });\r\n this.tokenizerForm.setBusyState(false);\r\n return false;\r\n }\r\n\r\n if (token.card_type == 'amex' && !this.customerAddress.PostalCode) {\r\n this.alert.alertError({\r\n text: 'An American Express card requires a zip code for verification and the selected address has no zip code specified. Please edit it via Customers > Edit Customer > Zip Code field.',\r\n });\r\n this.tokenizerForm.setBusyState(false);\r\n return false;\r\n }\r\n\r\n //added for transit notes requirement\r\n if (this.processor == 'tsys') {\r\n if (\r\n this.cardToken.details.cardType === 'amex' &&\r\n !this.notes &&\r\n (this.level === '2' || this.level === '3')\r\n ) {\r\n let modal = this.modalService.open(InvoiceNotesComponent, {\r\n size: 'sm',\r\n });\r\n modal.result.then((res: any) => {\r\n if (res) {\r\n this.notes = res;\r\n this.doPayment();\r\n } else {\r\n this.alert.alertError({\r\n text: 'An American Express card requires invoice notes/description for Level 2 or 3 Customers.',\r\n });\r\n return false;\r\n }\r\n });\r\n } else {\r\n this.doPayment();\r\n }\r\n } else {\r\n //continue execute payment for non transit and non level customers\r\n this.doPayment();\r\n }\r\n }\r\n\r\n doPayment() {\r\n this.tokenReceived = true;\r\n this.busy = true;\r\n this.cardInfo.token = this.cardToken.paymentReference;\r\n this.cardInfo.number = this.cardToken.details.cardLast4;\r\n this.cardInfo.cardBIN = this.cardToken.details.cardBin;\r\n this.cardInfo.expMonth = this.cardToken.details.expiryMonth;\r\n this.cardInfo.expYear = this.cardToken.details.expiryYear;\r\n this.cardInfo.cvn = this.cardToken.details.cvv;\r\n\r\n var creditData = new CreditPayment();\r\n creditData.currency = 'USD';\r\n creditData.cardInfo = this.cardInfo;\r\n creditData.amount = this.amountToBePaid;\r\n creditData.invoiceNumber = this.invoiceNumber;\r\n creditData.terminalId = 'MAIN';\r\n creditData.customerId = this.customerId;\r\n creditData.gratuity = this.gratuity || 0;\r\n if (this.processor == 'tsys') {\r\n creditData.shippingAddress = this.shippingAddress;\r\n creditData.Level = this.level ? this.level : '1';\r\n creditData.Notes = this.notes;\r\n }\r\n\r\n creditData.billingAddress = this.customerAddress;\r\n creditData.SourceComponent =\r\n this.workOrderModel == null || undefined\r\n ? SourceComponent.ManualInvoice\r\n : SourceComponent.WorkOrder;\r\n creditData.TransactionSource =\r\n this.workOrderModel == null || undefined\r\n ? SourceComponent.ManualInvoice\r\n : SourceComponent.WorkOrder;\r\n\r\n this.processPayment();\r\n }\r\n\r\n getCustomerAddress(id: number) {\r\n this.busy = true;\r\n this.apiService.getCustomerAddresses(id).subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.customerAddressList = res;\r\n let addr = res.find((addr) => {\r\n if (this.addressId != 0) {\r\n return addr.Id === this.addressId;\r\n } else {\r\n return addr.IsDefault === true;\r\n }\r\n });\r\n\r\n if (addr) {\r\n this.addressId = addr.Id;\r\n this.customerAddress.City = addr.City;\r\n this.customerAddress.State = addr.State;\r\n this.customerAddress.PostalCode = addr.ZipCode;\r\n this.customerAddress.StreetAddress1 = addr.StreetAddress;\r\n }\r\n }\r\n },\r\n (error: any) => {},\r\n () => {\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n getCustomerShippingAddress(id: number) {\r\n this.busy = true;\r\n this.apiService.getCustomerAddresses(id).subscribe(\r\n (res: any) => {\r\n if (res) {\r\n //this.customerAddressList = res;\r\n let addr1 = res.find((addr1) => {\r\n return addr1.AddressType === 3;\r\n });\r\n\r\n if (addr1) {\r\n this.addressShippingId = addr1.Id;\r\n this.shippingAddress.Id = addr1.Id;\r\n this.shippingAddress.City = addr1.City;\r\n this.shippingAddress.State = addr1.State;\r\n this.shippingAddress.PostalCode = addr1.ZipCode;\r\n this.shippingAddress.StreetAddress1 = addr1.StreetAddress;\r\n }\r\n }\r\n },\r\n (error: any) => {},\r\n () => {\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n addAddress() {\r\n let cardDiag = this.modalService.open(CustomerAddressFormComponent, {\r\n size: 'lg',\r\n });\r\n cardDiag.componentInstance.customerId = this.customerId;\r\n\r\n cardDiag.result.then((res: CustomerAddress) => {\r\n if (res) {\r\n this.customerAddressList.push(res);\r\n this.addressId = res.Id;\r\n this.addressSelected();\r\n }\r\n });\r\n }\r\n\r\n addressSelected() {\r\n var addr = this.customerAddressList.find((addr) => {\r\n return addr.Id == this.addressId;\r\n });\r\n if (addr) {\r\n this.customerAddress.City = addr.City;\r\n this.customerAddress.State = addr.State;\r\n this.customerAddress.PostalCode = addr.ZipCode;\r\n this.customerAddress.StreetAddress1 = addr.StreetAddress;\r\n }\r\n }\r\n\r\n addressShippingSelected() {\r\n var addr1 = this.customerAddressList.find((addr1) => {\r\n return addr1.Id == this.addressShippingId;\r\n });\r\n if (addr1) {\r\n this.shippingAddress.City = addr1.City;\r\n this.shippingAddress.State = addr1.State;\r\n this.shippingAddress.PostalCode = addr1.ZipCode;\r\n this.shippingAddress.StreetAddress1 = addr1.StreetAddress;\r\n }\r\n }\r\n\r\n getManualInvoice(invoiceNumber: string) {\r\n this.busy = true;\r\n this.invoiceService\r\n .getManualInvoice(invoiceNumber)\r\n .subscribe((res: any) => {\r\n if (res) {\r\n this.manualInvoice = res;\r\n this.notes = this.manualInvoice.notes; //added for transit\r\n this.workOrderSvc\r\n .getWorkOrderByInvoice(invoiceNumber)\r\n .subscribe((workOrderRes) => {\r\n if (workOrderRes) {\r\n this.workOrderModel = workOrderRes;\r\n }\r\n });\r\n }\r\n this.busy = false;\r\n });\r\n }\r\n\r\n processPayment() {\r\n if (this.isMultipleInvoices) {\r\n this.processMultiplePayment();\r\n return;\r\n }\r\n this.busy = true;\r\n /*SANDBOX PAYMENT TESTING\r\n this.cardInfo.MID = \"MyGlobalPaymentsDemo\";\r\n this.cardInfo.token = \"EN67b51NfsKEYZvAOPR1111\";\r\n this.cardInfo.secretApiKey = \"skapi_cert_MYl2AQAowiQAbLp5JesGKh7QFkcizOP2jcX9BrEMqQ\"\r\n */\r\n this.cardInfo.number = this.cardToken.details.cardLast4;\r\n this.cardInfo.cvn = this.cardToken.details.cvv;\r\n this.cardInfo.cardType = this.cardToken.details.cardType;\r\n\r\n var creditData = new CreditPayment();\r\n creditData.currency = 'USD';\r\n creditData.cardInfo = this.cardInfo;\r\n creditData.amount = this.amountToBePaid;\r\n creditData.invoiceNumber = this.invoiceNumber;\r\n creditData.terminalId = 'MAIN';\r\n creditData.customerId = this.customerId;\r\n creditData.isPartialPayment = this.isPartialPayment;\r\n creditData.gratuity = this.gratuity || 0;\r\n creditData.requestMultiUseToken = this.saveCard;\r\n\r\n if (this.processor == 'tsys') {\r\n creditData.Level = this.level ? this.level : '1';\r\n creditData.shippingAddress = this.shippingAddress;\r\n creditData.Notes = this.notes;\r\n }\r\n let locId = '';\r\n\r\n if (this.manualInvoice && this.manualInvoice.locationId != null) {\r\n locId = this.manualInvoice.locationId.toString();\r\n }\r\n\r\n creditData.billingAddress = this.customerAddress;\r\n\r\n creditData.SourceComponent =\r\n this.workOrderModel == null || undefined\r\n ? SourceComponent.ManualInvoice\r\n : SourceComponent.WorkOrder;\r\n creditData.TransactionSource =\r\n this.workOrderModel == null || undefined\r\n ? SourceComponent.ManualInvoice\r\n : SourceComponent.WorkOrder;\r\n\r\n this.busy = true;\r\n this.creditService\r\n .creditChargeOnly(\r\n creditData,\r\n this.user_Id,\r\n locId || this.locationData.Id,\r\n 'Main'\r\n )\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n if (this.customerSignature) {\r\n //save customer signature.\r\n this.invoiceService\r\n .uploadCustomersig({\r\n invoiceNumber: this.invoiceNumber,\r\n signatureUrl: this.customerSignature,\r\n createdBy: this.user_Id || '1',\r\n })\r\n .subscribe((res) => {});\r\n }\r\n\r\n //audit trail\r\n this.creditService.addAuditTrail(res).subscribe(\r\n (auditres: any) => {\r\n if (auditres) {\r\n //audit trail successful\r\n }\r\n },\r\n (err) => {\r\n this.alert.alertError({\r\n title: 'Payment successful but audit trail failed',\r\n text: err.error,\r\n });\r\n },\r\n () => {\r\n //send receipt\r\n const payload = {\r\n emailAddress: this.customerEmail,\r\n mobileNumber: null,\r\n paymentMethod: 'Credit',\r\n receiptNumber: res.receiptNumber,\r\n }\r\n\r\n this.paymentService.sendReceipt(payload).subscribe(\r\n (receiptres: any) => {\r\n if (receiptres) {\r\n //send receipt successful\r\n }\r\n },\r\n (err) => {\r\n this.alert.alertWarning({\r\n title: `Payment Successful
Sending Receipt Failed`,\r\n text: `Your payment was done successfully.
Unfortunately, there was an error encountered\r\n while sending the receipt.
\r\n

Please contact ${this.merchantName} and request for the receipt to be sent to your email.`,\r\n }).then(result => {\r\n if (result.isDismissed || result.isConfirmed) {\r\n this.processTip(res);\r\n }\r\n });\r\n },\r\n () => {\r\n this.processTip(res); \r\n }\r\n );\r\n }\r\n );\r\n }\r\n },\r\n (err) => {\r\n // this.alert.alertError({ title: \"Payment failed\", text: err.error });\r\n if (err.error.toLowerCase().indexOf('authorization') >= 0) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Authorization successful.',\r\n });\r\n if (this.saveCard) {\r\n this.saveCardToFile();\r\n this.busy = false;\r\n }\r\n } else {\r\n this.alert.alertError({\r\n title: 'Payment failed',\r\n text: err.error,\r\n });\r\n this.tokenizerForm.setBusyState(false);\r\n }\r\n this.busy = false;\r\n this.tokenReceived = false;\r\n }\r\n );\r\n }\r\n\r\n processMultiplePayment() {\r\n this.busy = true;\r\n for (var i = 0; i < this.manualInvoices.length; i++) {\r\n this.cardInfo.number = this.cardToken.details.cardLast4;\r\n this.cardInfo.cvn = this.cardToken.details.cvv;\r\n this.cardInfo.cardType = this.cardToken.details.cardType;\r\n\r\n var creditData = new CreditPayment();\r\n creditData.currency = 'USD';\r\n creditData.cardInfo = this.cardInfo;\r\n creditData.amount = this.isPartialPayment\r\n ? this.manualInvoices[i].ManualInvoice.requiredPartialPayment\r\n : this.manualInvoices[i].ManualInvoice.balance -\r\n this.manualInvoices[i].ManualInvoice.totalPaid;\r\n creditData.invoiceNumber =\r\n this.manualInvoices[i].ManualInvoice.invoiceNumber;\r\n creditData.terminalId = 'MAIN';\r\n creditData.customerId = this.customerId;\r\n creditData.isPartialPayment = this.isPartialPayment;\r\n creditData.gratuity = this.gratuity || 0;\r\n creditData.requestMultiUseToken = this.saveCard;\r\n\r\n var locId = '';\r\n\r\n if (this.manualInvoices[i].locationData.Id != null) {\r\n locId = this.manualInvoices[i].locationData.Id.toString();\r\n }\r\n if (this.processor == 'tsys') {\r\n creditData.shippingAddress = this.shippingAddress;\r\n creditData.Level = this.level ? this.level : '1';\r\n creditData.Notes = this.notes;\r\n }\r\n creditData.billingAddress = this.customerAddress;\r\n creditData.SourceComponent =\r\n this.workOrderModel == null || undefined\r\n ? SourceComponent.ManualInvoice\r\n : SourceComponent.WorkOrder;\r\n creditData.TransactionSource =\r\n this.workOrderModel == null || undefined\r\n ? SourceComponent.ManualInvoice\r\n : SourceComponent.WorkOrder;\r\n\r\n this.busy = true;\r\n this.creditService\r\n .creditChargeOnly(\r\n creditData,\r\n this.manualInvoices[i].ManualInvoice.createdBy || '1',\r\n locId || this.manualInvoices[i].locationData.Id,\r\n 'Main'\r\n )\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n if (this.customerSignature) {\r\n //save customer signature.\r\n this.invoiceService\r\n .uploadCustomersig({\r\n invoiceNumber: res.card.invoiceNumber,\r\n signatureUrl: this.customerSignature,\r\n createdBy: res.user_Id,\r\n })\r\n .subscribe((res) => {});\r\n }\r\n //audit trail\r\n this.creditService.addAuditTrail(res).subscribe(\r\n (auditres: any) => {\r\n if (auditres) {\r\n //audit trail successful\r\n }\r\n },\r\n (err) => {\r\n this.alert.alertError({\r\n title: 'Payment successful but audit trail failed',\r\n text: err.error,\r\n });\r\n },\r\n () => {\r\n //send receipt\r\n const payload = {\r\n emailAddress: this.customerEmail,\r\n mobileNumber: null,\r\n paymentMethod: 'Credit',\r\n receiptNumber: res.receiptNumber,\r\n }\r\n\r\n this.paymentService.sendReceipt(payload).subscribe(\r\n (receiptres: any) => {\r\n if (receiptres) {\r\n //send receipt successful\r\n }\r\n },\r\n (err) => {\r\n this.alert.alertWarning({\r\n title: `Payment Successful
Sending Receipt Failed`,\r\n text: `Your payment was done successfully.
Unfortunately, there was an error encountered\r\n while sending the receipt.
\r\n

Please contact ${this.merchantName} and request for the receipt to be sent to your email.`,\r\n }).then(result => {\r\n if (result.isDismissed || result.isConfirmed) {\r\n this.processTip(res);\r\n }\r\n });\r\n },\r\n () => {\r\n this.processTip(res);\r\n }\r\n );\r\n }\r\n );\r\n }\r\n },\r\n (err) => {\r\n this.alert.alertError({\r\n title: 'Payment failed',\r\n text: err.error,\r\n });\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n }\r\n\r\n processTip(data: any) {\r\n this.creditService.processTip(data).subscribe(\r\n (tipres: any) => {\r\n if (tipres) {\r\n //tip processing successful\r\n }\r\n },\r\n (err) => {\r\n this.alert.alertError({\r\n title:\r\n 'Payment successful but tip processing failed',\r\n text: err.error,\r\n });\r\n },\r\n () => {\r\n this.close(true);\r\n if (this.saveCard) {\r\n this.cardInfo.cardBrandTransactionId =\r\n data.transaction.cardBrandTransactionId;\r\n this.cardInfo.token = data.transaction.token;\r\n this.saveCardToFile();\r\n }\r\n this.busy = false;\r\n }\r\n );\r\n }\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n getTermsPolicy() {\r\n this.tcpService.getTerms().subscribe((res: any) => {\r\n if (res) {\r\n let term = res.filter((item) => {\r\n return item.Type === 1 && item.IsDefault;\r\n })[0];\r\n\r\n let policy = res.filter((item) => {\r\n return item.Type === 2 && item.IsDefault;\r\n })[0];\r\n\r\n if (term) {\r\n this.termsAndConditionContent = term.Content;\r\n }\r\n\r\n if (policy) {\r\n this.policyContent = policy.Content;\r\n }\r\n }\r\n });\r\n }\r\n\r\n openTermsAndCondition() {\r\n this.tcpTitle = 'Terms and Conditions';\r\n this.tcpContent = this.termsAndConditionContent;\r\n this.currentModal = this.modalService.open(this.tcpTemplate, {\r\n size: 'lg',\r\n });\r\n }\r\n\r\n openPolicy() {\r\n this.tcpTitle = 'Policy';\r\n this.tcpContent = this.policyContent;\r\n this.currentModal = this.modalService.open(this.tcpTemplate, {\r\n size: 'lg',\r\n });\r\n }\r\n\r\n closeCurrentDialog() {\r\n this.currentModal.close();\r\n }\r\n\r\n saveCardToFile() {\r\n this.model.Token = this.cardInfo.token;\r\n this.model.CardLast4Digits = this.cardToken.details.cardLast4;\r\n this.model.CardBrand = this.cardToken.details.cardType;\r\n this.model.ExpMonth = this.cardToken.details.expiryMonth;\r\n this.model.ExpYear = this.cardToken.details.expiryYear;\r\n this.model.CVN = this.cardToken.details.cvv;\r\n this.model.CardBrandTransactionId = this.cardInfo.cardBrandTransactionId;\r\n\r\n this.model.IsDeleted = false;\r\n this.model.CreatedBy = 2;\r\n this.model.CreatedDate = new Date();\r\n this.model.UpdatedBy = null;\r\n this.model.UpdatedDate = null;\r\n this.model.Id = 0;\r\n this.model.CustomerId = this.customerId;\r\n\r\n this.apiService.addCustomerCardNumber(this.model).subscribe((res: any) => {\r\n this.customerCardAdded.emit(res); //must emit.\r\n if (res) {\r\n this.alert.alertSuccess({\r\n title: 'Success',\r\n text: 'Successfully added card to file.',\r\n });\r\n this.busy = false;\r\n this.modalRef.close(true);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n\r\n\r\n
\r\n

{{ tcpTitle }}

\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Output, EventEmitter} from '@angular/core';\r\nimport { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AlertService } from \"../../../../../core/alert.service\";\r\n\r\n@Component({\r\n selector: 'app-invoice-notes',\r\n templateUrl: './invoice-notes.component.html',\r\n styleUrls: ['./invoice-notes.component.scss']\r\n})\r\nexport class InvoiceNotesComponent implements OnInit {\r\n public notesInfo: string;\r\n\r\n constructor( private activeModal: NgbActiveModal,\r\n private modalService: NgbModal,\r\n private alert: AlertService) { }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n saveNotes(dataInfo){\r\n if(dataInfo && dataInfo.trim().length > 0){\r\n //this.alert.alertSuccess({ title: 'Success', text : 'Thank you, payment process will continue...' });\r\n this.close(dataInfo);\r\n }else{\r\n this.alert.alertWarning({ title: 'Warning', text : 'Please provide additional Notes.' });\r\n }\r\n }\r\n\r\n close(data?: any) {\r\n this.activeModal.close(data);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
Additional Information Required!
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Please provide invoice notes/description:

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { CashPayment } from \"../../../models/invoice/cash-payment.model\";\r\nimport { AlertService } from \"../../../../core/alert.service\";\r\nimport { CustomerManagementService } from \"../../../services/customer.service\";\r\nimport { MerchantService } from \"../../../services/merchant.service\";\r\nimport { CashPaymentService } from \"./cash-payment.service\";\r\n\r\n@Component({\r\n selector: 'app-cash-payment',\r\n templateUrl: './cash-payment.component.html',\r\n styleUrls: ['./cash-payment.component.scss']\r\n})\r\nexport class CashPaymentComponent implements OnInit {\r\n @Input() invoiceModel: any;\r\n @Input() type: string = 'merchant'; // merchant or checkout\r\n @Input() canPayPartial: boolean = false;\r\n @Input() invoiceBalance: any = 0;\r\n @Input() paymentType: any = 1;\r\n\r\n\r\n paymentAmount: any;\r\n clientName: string;\r\n cashPaymentModel: CashPayment = new CashPayment();\r\n isCustomerLoading: boolean = true;\r\n busy: boolean = false;\r\n customerModel: any;\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private alert: AlertService,\r\n private customerApiService: CustomerManagementService,\r\n private merchantService: MerchantService,\r\n private cashPaymentService: CashPaymentService) { }\r\n\r\n ngOnInit() {\r\n this.getCustomer();\r\n this.loadBusinessInfo();\r\n this.cashPaymentModel.InvoiceId = this.invoiceModel.id;\r\n this.cashPaymentModel.InvoiceNumber = this.invoiceModel.invoiceNumber;\r\n this.cashPaymentModel.CustomerId = this.invoiceModel.customerId;\r\n this.cashPaymentModel.EmailReceiptToClient = true;\r\n this.paymentAmount = this.invoiceBalance === 0 ? this.invoiceModel.balance : this.invoiceBalance;\r\n\r\n this.cashPaymentModel.PaymentType = this.paymentType;\r\n }\r\n\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n getCustomer() {\r\n\r\n this.customerApiService.getCustomer(this.invoiceModel.customerId).subscribe((res: any) => {\r\n if (res) {\r\n this.customerModel = res;\r\n this.clientName = this.customerModel.CustomerTypeId === 2 ? this.customerModel.BusinessName : (this.customerModel.FirstName + \" \" + this.customerModel.LastName);\r\n this.cashPaymentModel.CustomerName = this.clientName;\r\n this.cashPaymentModel.CustomerEmail = this.customerModel.EmailAddress;\r\n\r\n if (!res.EmailAddress && res.CustomerTypeId == 2) {\r\n this.customerApiService.getCustomerContactPersons(this.invoiceModel.customerId).subscribe((list) => {\r\n let contact = list.filter((e) => { return e.IsMainContact });\r\n if (contact.length > 0) {\r\n this.cashPaymentModel.CustomerEmail = contact[0].EmailAddress;\r\n }\r\n });\r\n }\r\n\r\n this.customerApiService.getCustomerAddresses(this.invoiceModel.customerId).subscribe((addresses: any) => {\r\n // this.customerModel.CustomerAddressLoading = false;\r\n var address = addresses.filter((e) => { return e.IsDefault; });\r\n if (address.length > 0) {\r\n this.cashPaymentModel.CustomerAddress = `${(address[0].StreetAddress || '')} ${(address[0].City || '')} ${(address[0].State || '')} ${(address[0].Zip || '')}`;\r\n }\r\n }, (error: any) => {\r\n this.isCustomerLoading = false;\r\n }, () => {\r\n this.isCustomerLoading = false;\r\n });\r\n\r\n //this.manualPaymentModel.CustomerAddress =\r\n }\r\n //this.isCustomerLoading = false;\r\n });\r\n }\r\n\r\n loadBusinessInfo() {\r\n this.merchantService.getMerchant('1').subscribe((response: any) => {\r\n\r\n if (response) {\r\n this.cashPaymentModel.BusinessName = response.BusinessName;\r\n this.cashPaymentModel.BusinessLogo = response.Logo;\r\n this.cashPaymentModel.BusinessAddress = `${response.Address1 ? response.Address1 + ',' : ''} ${response.City ? response.City + ',' : ''} ${response.Province ? response.Province + ',' : ''} ${response.StateId || ''} ${response.PostalCode || ''} ${response.CountryCode || ''}`;\r\n }\r\n });\r\n }\r\n\r\n saveCashPayment() {\r\n\r\n if (this.isModelValid()) {\r\n this.cashPaymentModel.Amount = parseFloat(this.paymentAmount);\r\n\r\n this.busy = true;\r\n this.cashPaymentService.addManualPayment(this.cashPaymentModel).subscribe((res) => {\r\n this.modalRef.close(res);\r\n this.alert.alertSuccess({ title: 'Success', text: 'Successfully created cash payment!' });\r\n this.busy = false;\r\n });\r\n }\r\n return;\r\n\r\n }\r\n\r\n isModelValid() {\r\n if (this.paymentAmount === '') return false;\r\n\r\n return true;\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
Cash Payment
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Email Receipt to Client\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Process Payment\r\n \r\n \r\n
\r\n
\r\n","import { Observable } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { AuthorizationBase } from \"../../../../core/authorize-base\";\r\nimport { CashPayment } from \"../../../models/invoice/cash-payment.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class CashPaymentService extends AuthorizationBase {\r\n private accountBaseRoute: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n super();\r\n this.accountBaseRoute = environment.accountAPIRoot;\r\n\r\n }\r\n\r\n addManualPayment(payload: CashPayment) {\r\n payload.CreatedBy = parseInt(super.userId().toString());\r\n return this.httpClient.post(environment.invoiceAPIRoot + '/cashpayment', payload);\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport * as moment from 'moment';\r\nimport { ManualPayment } from \"../../../models/invoice/manual-payment.model\";\r\nimport { AlertService } from \"../../../../core/alert.service\";\r\nimport { CustomerManagementService } from \"../../../services/customer.service\";\r\nimport { InvoiceService } from \"../../../services/invoice.service\";\r\nimport { ManualPaymentService } from \"../../../services/manual-payment.service\";\r\nimport { MerchantService } from \"../../../services/merchant.service\";\r\n\r\n@Component({\r\n selector: 'app-manual-payment',\r\n templateUrl: './manual-payment.component.html',\r\n styleUrls: ['./manual-payment.component.scss']\r\n})\r\nexport class ManualPaymentComponent implements OnInit {\r\n @Input() invoiceModel: any;\r\n @Input() type: string = 'merchant'; // merchant or checkout\r\n @Input() canPayPartial: boolean = false;\r\n @Input() invoiceBalance: any = 0;\r\n @Input() paymentType: any = 1;\r\n\r\n clientName: string;\r\n manualPaymentModel: ManualPayment = new ManualPayment();\r\n paymentMethod: number = 0;\r\n paymentAmount: any;\r\n partialPaymentAmount: any;\r\n isCustomerLoading: boolean = true;\r\n isInvoicePartialPaymentSettingsLoading: boolean = true;\r\n busy: boolean = false;\r\n customerModel: any;\r\n\r\n minPaymentDate: string = moment(new Date()).format('YYYY-MM-DD');\r\n\r\n paymentDate: string;\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private alert: AlertService,\r\n private customerApiService: CustomerManagementService,\r\n private invoiceService: InvoiceService,\r\n private merchantService: MerchantService,\r\n private manualPaymentService: ManualPaymentService ) { }\r\n\r\n ngOnInit() {\r\n this.minPaymentDate = moment(new Date(this.invoiceModel.invoiceDate)).format('YYYY-MM-DD');\r\n this.getCustomer();\r\n this.loadBusinessInfo();\r\n this.invoiceBalance = this.invoiceBalance === 0 ? this.invoiceModel.balance : this.invoiceBalance;\r\n this.paymentAmount = this.invoiceBalance === 0 ? this.invoiceModel.balance : this.invoiceBalance;\r\n this.manualPaymentModel.InvoiceId = this.invoiceModel.id;\r\n this.manualPaymentModel.InvoiceNumber = this.invoiceModel.invoiceNumber;\r\n this.manualPaymentModel.PaymentType = this.paymentType;\r\n this.manualPaymentModel.CustomerId = this.invoiceModel.customerId;\r\n this.manualPaymentModel.EmailReceiptToClient = true;\r\n }\r\n\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n getCustomer() {\r\n\r\n this.customerApiService.getCustomer(this.invoiceModel.customerId).subscribe((res: any) => {\r\n if (res) {\r\n this.customerModel = res;\r\n this.clientName = this.customerModel.CustomerTypeId === 2 ? this.customerModel.BusinessName : (this.customerModel.FirstName + \" \" + this.customerModel.LastName);\r\n this.manualPaymentModel.CustomerName = this.clientName;\r\n this.manualPaymentModel.CustomerEmail = this.customerModel.EmailAddress;\r\n\r\n if (!res.EmailAddress && res.CustomerTypeId == 2) {\r\n this.customerApiService.getCustomerContactPersons(this.invoiceModel.customerId).subscribe((list) => {\r\n let contact = list.filter((e) => { return e.IsMainContact });\r\n if (contact.length > 0) {\r\n this.manualPaymentModel.CustomerEmail = contact[0].EmailAddress;\r\n }\r\n });\r\n }\r\n\r\n this.customerApiService.getCustomerAddresses(this.invoiceModel.customerId).subscribe((addresses: any) => {\r\n // this.customerModel.CustomerAddressLoading = false;\r\n var address = addresses.filter((e) => { return e.IsDefault; });\r\n if (address.length > 0) {\r\n this.manualPaymentModel.CustomerAddress = `${(address[0].StreetAddress || '')} ${(address[0].City || '')} ${(address[0].State || '')} ${(address[0].Zip || '')}`;\r\n }\r\n }, (error: any) => {\r\n this.isCustomerLoading = false;\r\n }, () => {\r\n this.isCustomerLoading = false;\r\n });\r\n\r\n //this.manualPaymentModel.CustomerAddress =\r\n }\r\n //this.isCustomerLoading = false;\r\n });\r\n }\r\n\r\n loadBusinessInfo() {\r\n this.merchantService.getMerchant('1').subscribe((response: any) => {\r\n if (response) {\r\n this.manualPaymentModel.BusinessName = response.BusinessName;\r\n this.manualPaymentModel.BusinessLogo = response.Logo;\r\n this.manualPaymentModel.BusinessAddress = `${response.Address1 ? response.Address1 + ',' : ''} ${response.City ? response.City + ',' : ''} ${response.Province ? response.Province + ',' : ''} ${response.StateId || ''} ${response.PostalCode || ''} ${response.CountryCode || ''}`;\r\n }\r\n });\r\n }\r\n\r\n setPaymentType() {\r\n this.manualPaymentModel.PaymentType = this.paymentType;\r\n this.paymentAmount = parseInt(this.paymentType) === 2 ? this.partialPaymentAmount : this.invoiceBalance;\r\n }\r\n\r\n\r\n setPaymentMethod() {\r\n this.manualPaymentModel.PaymentMethod = this.paymentMethod;\r\n }\r\n\r\n setPaymentDate(e) {\r\n this.paymentDate = e.target.value;\r\n }\r\n\r\n isValidDate() {\r\n let paymentDate = Date.parse(this.paymentDate);\r\n\r\n return !isNaN(paymentDate);\r\n }\r\n\r\n saveManualPayment() {\r\n\r\n if (this.isModelValid()) {\r\n this.manualPaymentModel.Amount = parseFloat(this.paymentAmount);\r\n this.manualPaymentModel.PaymentDate = new Date(this.paymentDate);\r\n\r\n this.busy = true;\r\n this.manualPaymentService.addManualPayment(this.manualPaymentModel).subscribe((res) => {\r\n this.modalRef.close(res);\r\n this.alert.alertSuccess({ title: 'Success', text: 'Successfully created manual payment!' });\r\n this.busy = false;\r\n });\r\n }\r\n return;\r\n\r\n }\r\n\r\n isModelValid() {\r\n if (!this.isValidDate()) return false;\r\n if (this.paymentMethod == 0) return false;\r\n if (this.paymentType == 2 && this.paymentAmount == '') return false;\r\n if(!this.manualPaymentModel.TransactionReference) return false;\r\n\r\n return true;\r\n }\r\n\r\n forceMinDate(e) {\r\n if (e.target.value) {\r\n if (new Date(e.target.value) < new Date(e.target.min)) {\r\n e.target.value = e.target.min;\r\n }\r\n } else {\r\n e.target.value = e.target.min;\r\n }\r\n }\r\n\r\n\r\n}\r\n","
\r\n
\r\n
\r\n Manual Payment\r\n {{ paymentType == 2 ? \"(Partial)\" : \"\" }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n Convert Currency\r\n
\r\n
\r\n Email Receipt to Client\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Process Payment\r\n \r\n \r\n
\r\n
\r\n","
\r\n \r\n \r\n Cash Payment\r\n \r\n \r\n\r\n \r\n \r\n Pay via Google Pay\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n I have read and agree to the\r\n Terms and Conditions. Information will be used as described here and in the\r\n Privacy Policy.\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Pay via Card\r\n \r\n \r\n \r\n \r\n Pay via ACH\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n \r\n
\r\n

{{ tcpTitle }}

\r\n \r\n ×\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n ViewChild,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport {\r\n NgbActiveModal,\r\n NgbModal,\r\n NgbModalRef,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { TermsconditionpolicyService } from 'src/app/shared/services/termsconditionpolicy.service';\r\n@Component({\r\n selector: 'app-payment-option',\r\n templateUrl: './payment-option.component.html',\r\n styleUrls: ['./payment-option.component.scss'],\r\n})\r\nexport class PaymentOptionComponent implements OnInit {\r\n @ViewChild('container', { static: false }) tcpTemplate: TemplateRef;\r\n\r\n @Input() invoiceStatus: string;\r\n @Input() hideManualPaymentOption: boolean = false;\r\n @Input() showACHPaymentOption: boolean = false;\r\n @Input() showGooglePayOption: boolean = false;\r\n @Input() showCreditCardOption: boolean = true;\r\n @Input() showCashPayment: boolean = true;\r\n @Input() customerId: number;\r\n @Input() isPartial: boolean = false;\r\n @Input() canPayPartial: boolean = true;\r\n @Input() locationData: any;\r\n @Input() amount: number;\r\n\r\n isShowPaymentMethods: boolean = false;\r\n showThirdPartySelection: boolean = false;\r\n // Third Party T&C\r\n agreedToTerms: boolean = false;\r\n currentModal: NgbModalRef;\r\n tcpTitle: string;\r\n tcpContent: string;\r\n policyContent: string;\r\n termsAndConditionContent: string;\r\n\r\n constructor(\r\n private modalRef: NgbActiveModal,\r\n private modalService: NgbModal,\r\n private tcpService: TermsconditionpolicyService\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (!this.canPayPartial) {\r\n this.isShowPaymentMethods = true;\r\n this.isPartial = false;\r\n }\r\n\r\n if (this.showGooglePayOption) {\r\n this.getTermsPolicy();\r\n }\r\n }\r\n\r\n processGooglePayResponse(response: Object) {\r\n this.modalRef.close({\r\n option: 'ProcessGooglePayment',\r\n tokenizationData: response,\r\n canPayPartial: this.canPayPartial,\r\n isPartial: this.isPartial,\r\n });\r\n }\r\n\r\n showPaymentMethods(isPartial: boolean) {\r\n this.isShowPaymentMethods = true;\r\n this.isPartial = isPartial;\r\n }\r\n\r\n selectPaymentOption(option: string) {\r\n if (option !== 'ThirdParty') {\r\n this.showThirdPartySelection = false;\r\n this.modalRef.close({\r\n option: option,\r\n canPayPartial: this.canPayPartial,\r\n isPartial: this.isPartial,\r\n });\r\n } else {\r\n this.agreedToTerms = false;\r\n this.showThirdPartySelection = true;\r\n }\r\n }\r\n\r\n processGooglePayTransaction(tokenizationData: Object) {\r\n this.modalRef.close({\r\n option: 'ProcessGooglePayment',\r\n tokenizationData: tokenizationData,\r\n canPayPartial: this.canPayPartial,\r\n isPartial: this.isPartial,\r\n });\r\n }\r\n\r\n back() {\r\n this.isShowPaymentMethods = false;\r\n }\r\n\r\n close(data?: any) {\r\n this.modalRef.close(data);\r\n }\r\n\r\n // Third Party Functions\r\n private getTermsPolicy() {\r\n this.tcpService.getTerms().subscribe((res: any) => {\r\n if (res) {\r\n let term = res.filter((item) => {\r\n return item.Type === 1 && item.IsDefault;\r\n })[0];\r\n\r\n let policy = res.filter((item) => {\r\n return item.Type === 2 && item.IsDefault;\r\n })[0];\r\n\r\n if (term) {\r\n this.termsAndConditionContent = term.Content;\r\n }\r\n\r\n if (policy) {\r\n this.policyContent = policy.Content;\r\n }\r\n }\r\n });\r\n }\r\n\r\n openTermsAndCondition() {\r\n this.tcpTitle = 'Terms and Conditions';\r\n this.tcpContent = this.termsAndConditionContent;\r\n this.currentModal = this.modalService.open(this.tcpTemplate, {\r\n size: 'lg',\r\n });\r\n }\r\n\r\n openPolicy() {\r\n this.tcpTitle = 'Policy';\r\n this.tcpContent = this.policyContent;\r\n this.currentModal = this.modalService.open(this.tcpTemplate, {\r\n size: 'lg',\r\n });\r\n }\r\n\r\n closeCurrentDialog() {\r\n this.currentModal.close();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UserBase } from 'src/app/shared/libraries/user-base';\r\nimport { AuthorizationBase } from '../../libraries/authorize-base';\r\nimport { AuthService } from \"../../../core/auth.service\";\r\nimport { AlertService } from \"../../../core/alert.service\";\r\n\r\n@Component({\r\n selector: 'app-action-password',\r\n templateUrl: './action-password.component.html',\r\n styleUrls: ['./action-password.component.scss']\r\n})\r\nexport class ActionPasswordComponent extends AuthorizationBase implements OnInit {\r\n public user: UserBase;\r\n baseUrl: string = '';\r\n clicked: boolean = false;\r\n busy: boolean = false;\r\n password: string;\r\n\r\n constructor(public authService: AuthService, private alert: AlertService, private activeModal: NgbActiveModal) {\r\n super();\r\n this.user = new UserBase();\r\n this.baseUrl = environment.accountAPIRoot;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n verifyPassword() {\r\n\r\n if (!this.password){\r\n this.alert.alertError({ text: 'Please input password.'});\r\n return false;\r\n }\r\n\r\n this.busy = true;\r\n this.authService.verifyUserActionByPassword(Number(this.userId()), this.password).subscribe((res: any) => {\r\n if (res) {\r\n this.close(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.busy = false;\r\n this.password = \"\";\r\n this.alert.alertError({ title: 'Error encountered', text: error.error });\r\n }, () => {\r\n this.busy = false;\r\n });\r\n }\r\n\r\n close(data?: any) {\r\n this.activeModal.close(data);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
Verify Action
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Verify this action by providing your password.

\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { environment } from 'src/environments/environment';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SignaturePad } from 'angular2-signaturepad';\r\nimport { AuthorizationBase } from '../../../core/authorize-base';\r\nimport { UserBase } from '../../../core/user-base';\r\nimport { AlertService } from '../../../core/alert.service';\r\nimport { AuthService } from '../../../core/auth.service';\r\n\r\n@Component({\r\n selector: 'payment-confirm-action',\r\n templateUrl: './payment-confirm-action.component.html',\r\n styleUrls: ['./payment-confirm-action.component.scss'],\r\n})\r\nexport class PaymentConfirmActionComponent\r\n extends AuthorizationBase\r\n implements OnInit\r\n{\r\n @ViewChild('signContainer', { static: false }) signContainer: ElementRef\r\n @ViewChild('SignaturePad', { static: false }) signaturePad: SignaturePad;\r\n @Input() showModalOnRight: boolean = true;\r\n\r\n public user: UserBase;\r\n public signUrl: string;\r\n public hideUserPassword: boolean = false;\r\n\r\n EmpForm: string = 'EmployeePassword';\r\n CustForm: string = 'CustomerSign';\r\n\r\n baseUrl: string = '';\r\n clicked: boolean = false;\r\n isLoading: boolean = false;\r\n isShow: boolean = false;\r\n password: string;\r\n signatureExists: boolean = false;\r\n\r\n public signaturePadOptions: any = {\r\n // passed through to szimek/signature_pad constructor\r\n minWidth: 1,\r\n canvasWidth: 500,\r\n canvasHeight: 150,\r\n velocityFilterWeight: 0.2,\r\n };\r\n activeForm: string = this.CustForm;\r\n\r\n constructor(\r\n public authService: AuthService,\r\n private alert: AlertService,\r\n private activeModal: NgbActiveModal\r\n ) {\r\n super();\r\n this.user = new UserBase();\r\n this.baseUrl = environment.accountAPIRoot;\r\n }\r\n\r\n ngOnInit() {\r\n if (this.activeForm === this.CustForm) {\r\n setTimeout(() => {\r\n this.signaturePadOptions.canvasWidth = this.signContainer.nativeElement.offsetWidth;\r\n this.isShow = true;\r\n });\r\n }\r\n }\r\n\r\n toggleActiveForm() {\r\n this.clearSign();\r\n this.isShow = false;\r\n this.activeForm = this.activeForm === this.CustForm ? this.EmpForm : this.CustForm;\r\n\r\n if (this.activeForm === this.CustForm) {\r\n setTimeout(() => {\r\n this.signaturePadOptions.canvasWidth = this.signContainer.nativeElement.offsetWidth;\r\n this.isShow = true;\r\n });\r\n }\r\n }\r\n\r\n clearSign() {\r\n this.signatureExists = false;\r\n this.signaturePad.clear();\r\n }\r\n\r\n drawComplete() {\r\n // will be notified of szimek/signature_pad's onEnd event\r\n this.signatureExists = true;\r\n this.signUrl = this.signaturePad.toDataURL();\r\n }\r\n\r\n drawStart() {\r\n // will be notified of szimek/signature_pad's onBegin event\r\n }\r\n\r\n verifyAction() {\r\n this.isLoading = true;\r\n\r\n if (this.activeForm === this.EmpForm) {\r\n this.verifyPassword();\r\n return;\r\n }\r\n\r\n this.verifySignature();\r\n }\r\n\r\n verifySignature() {\r\n if (!this.signatureExists) {\r\n this.alert.alertError({ text: 'Please enter signature.' });\r\n this.isLoading = false;\r\n return;\r\n }\r\n \r\n this.isLoading = false;\r\n this.close({ signUrl: this.signUrl });\r\n }\r\n\r\n verifyPassword() {\r\n if (!this.password) {\r\n this.alert.alertError({ text: 'Please input password.' });\r\n this.isLoading = false;\r\n return;\r\n }\r\n\r\n this.isLoading = true;\r\n this.authService\r\n .verifyUserActionByPassword(Number(this.userId()), this.password)\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.close(true);\r\n }\r\n },\r\n (error: any) => {\r\n this.isLoading = false;\r\n this.password = '';\r\n\r\n this.alert.alertError({ title: 'Error encountered', text: error.error });\r\n },\r\n () => {\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n\r\n close(data?: any) {\r\n this.activeModal.close(data);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
Payment Verification
\r\n
\r\n\r\n
\r\n
\r\n

\r\n I understand that upon signing here means that I confirm that the service has been completed by the assigned filed employee and\r\n that this work order is hereby ready for invoicing.\r\n

\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Clear\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n Password\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ activeForm === CustForm ? 'Enter employee password' : 'Customer signature' }}\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n {{ !isLoading ? 'Verify' : 'Verifying...' }}\r\n \r\n
\r\n
\r\n
","
\r\n
\r\n
Confirm Action
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Send\r\n \r\n
\r\n
\r\n","import { Input } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-sender-dialog',\r\n templateUrl: './sender-dialog.component.html',\r\n styleUrls: ['./sender-dialog.component.scss'],\r\n})\r\nexport class SenderDialogComponent implements OnInit {\r\n @Input() mode: string;\r\n\r\n @Input() email: string;\r\n @Input() phoneNumber: string;\r\n\r\n modeTxt: string;\r\n\r\n constructor(private modal: NgbActiveModal) {\r\n this.canSend();\r\n }\r\n\r\n ngOnInit() {\r\n this.modeTxt = this.mode == 'email' ? 'Email' : 'Phone Number';\r\n }\r\n\r\n send() {\r\n let recepient = this.mode == 'email' ? this.email : this.phoneNumber;\r\n this.modal.close({ data: recepient });\r\n }\r\n\r\n close() {\r\n this.modal.close(false);\r\n }\r\n\r\n canSend() {\r\n return (\r\n (this.mode == 'email' && this.email != '') ||\r\n (this.mode == 'phoneNumber' && this.phoneNumber != '')\r\n );\r\n }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-yes-no-dialog',\r\n templateUrl: './yes-no-dialog.component.html',\r\n styleUrls: ['./yes-no-dialog.component.scss']\r\n})\r\nexport class YesNoDialogComponent implements OnInit {\r\n\r\n @Input() title : string;\r\n @Input() content: string;\r\n @Input() confirmBtnText?: string;\r\n @Input() cancelBtnText?: string;\r\n\r\n constructor(private modal: NgbActiveModal) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n yes(){\r\n this.modal.close(true);\r\n }\r\n\r\n close(){\r\n this.modal.close(false);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
{{ title ? title : \"Confirmation\" }}
\r\n \r\n
\r\n
\r\n
{{ content }}
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\n@Component({\r\n selector: 'app-yes-no-remarks-dialog',\r\n templateUrl: './yes-no-remarks-dialog.component.html',\r\n styleUrls: ['./yes-no-remarks-dialog.component.scss']\r\n})\r\nexport class YesNoRemarksDialogComponent implements OnInit {\r\n\r\n @Input() title : string;\r\n @Input() content: string;\r\n @Input() remarks: string;\r\n @Input() remarksLabel: string = \"Notes\";\r\n\r\n\r\n constructor(private modal: NgbActiveModal) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n yes(){\r\n this.modal.close({remarks: this.remarks});\r\n }\r\n\r\n close(){\r\n this.modal.close(false);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
{{ title ? title : 'Confirmation' }}
\r\n \r\n
\r\n
\r\n
{{ content }}
\r\n
\r\n {{remarksLabel}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appAutofocus]',\r\n})\r\nexport class AutofocusDirective implements AfterViewInit {\r\n @Input() appAutofocus = '';\r\n\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngAfterViewInit(): void {\r\n let input = this.elementRef.nativeElement;\r\n\r\n if (input.nodeName !== 'INPUT' || this.appAutofocus) {\r\n input = input.querySelector(this.appAutofocus || 'input');\r\n }\r\n\r\n input.focus();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Output,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n @Output() clickOutside = new EventEmitter();\r\n\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n public onClick(event: MouseEvent, targetElement: HTMLElement): void {\r\n if (!targetElement) {\r\n return;\r\n }\r\n const clickedInside = this.elementRef.nativeElement.contains(targetElement);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(event);\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, forwardRef, HostListener, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[digitsOnly]',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DigitsOnlyDirective),\r\n multi: true\r\n }]\r\n})\r\nexport class DigitsOnlyDirective implements ControlValueAccessor {\r\n private onChange: (val: string) => void;\r\n private onTouched: () => void;\r\n private value: string;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2\r\n ) {\r\n }\r\n\r\n @HostListener('input', ['$event.target.value'])\r\n onInputChange(value: string) {\r\n const filteredValue: string = this.filterValue(value);\r\n this.updateTextInput(filteredValue, this.value !== filteredValue);\r\n }\r\n\r\n @HostListener('blur')\r\n onBlur() {\r\n this.onTouched();\r\n }\r\n\r\n private updateTextInput(value: string, propagateChange: boolean) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'value', value);\r\n if (propagateChange) {\r\n this.onChange(value);\r\n }\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', isDisabled);\r\n }\r\n\r\n writeValue(value: any): void {\r\n value = value ? String(value) : '';\r\n this.updateTextInput(value, false);\r\n }\r\n\r\n filterValue(value): string {\r\n return value.replace(/[^0-9\\/]*/g, '');\r\n }\r\n}\r\n","\r\nexport class CsvUpload {\r\n public UploadType : number;\r\n public Items : any;\r\n}\r\n\r\nexport class ItemCsv {\r\n public ItemName: string;\r\n public ItemDescription: string;\r\n public InOnlineStore: string;\r\n public InCheckout: string;\r\n public InAllLocations: string;\r\n public Location: number;\r\n public TaxCode: string;\r\n public ItemUnit: string;\r\n public SKU: string;\r\n public Price: number;\r\n public ImageUrl: string;\r\n public Include: number;\r\n}\r\n\r\nexport class CsvImportUpload {\r\n public ApplicationUserId : any;\r\n public Items: any;\r\n public Overwrite: boolean;\r\n}\r\n","export class RecurringFrequency {\r\n FrequencyType : FrequencyRepeatTypes = FrequencyRepeatTypes.Weekly;\r\n EndType: FrequencyEndType = FrequencyEndType.Count;\r\n Count: number = 2;\r\n Until: Date;\r\n Interval: number = 2;\r\n ByDay: string;\r\n ByDayArray: any[];\r\n ByMonth: number;\r\n ByMonthDay: number;\r\n BySetPos: number = 1;\r\n DayType: string = \"day\";\r\n}\r\n\r\nexport enum FrequencyEndType {\r\n Never = 1,\r\n Until = 2,\r\n Count = 3,\r\n}\r\n\r\nexport enum FrequencyRepeatTypes {\r\n Daily = 1,\r\n Weekly = 2,\r\n Monthly = 3,\r\n Yearly = 4,\r\n}\r\n","\r\nexport class ManualPayment {\r\n public InvoiceId: number;\r\n public InvoiceNumber: string;\r\n\tpublic PaymentType: number;\r\n public PaymentMethod: number;\r\n public Amount: number;\r\n public PaymentDate: Date;\r\n public TransactionReference: string;\r\n public PrivateNotes: string;\r\n public ConvertCCy: boolean;\r\n public EmailReceiptToClient: boolean;\r\n public CCY: string;\r\n public CreatedBy: number;\r\n public CustomerId: number;\r\n public CustomerName: string;\r\n public CustomerAddress: string;\r\n public CustomerEmail: string;\r\n public BusinessName: string;\r\n public BusinessLogo: string;\r\n public BusinessAddress: string;\r\n public LocationId: number;\r\n\r\n public ManualPayment() {\r\n this.ConvertCCy = false;\r\n this.EmailReceiptToClient = true;\r\n this.Amount = 0;\r\n this.PaymentDate = new Date();\r\n }\r\n\r\n}\r\n\r\n","export class NotificationScheduleOption {\r\n Id : number; \r\n\tFrequencyType : string;\r\n\tFrequencyValue : number;\r\n\tModuleType :string = 'Subscription';\r\n\tIsActive : boolean;\r\n\tIsDeleted: boolean;\r\n\tCreatedBy : number;\r\n\tUpdatedBy : number;\r\n saving: boolean;\r\n}\r\n","export enum WorkOrderEnum {\r\n New, //0\r\n \"In Progress\", //1\r\n \"Pending Payment\", //2\r\n Completed, //3\r\n Archived, //4\r\n Cancelled, //5\r\n Overdue, //6\r\n \"Pending Schedule\", //7\r\n}\r\n\r\nexport enum WorkOrderEnumClass {\r\n 'bg-info', //new\r\n 'bg-warning', //in progress\r\n 'bg-orangey', //pending payment\r\n 'bg-success', //completed\r\n 'bg-dark', //archived\r\n 'bg-grey', //cancelled\r\n 'bg-danger', //overdue\r\n 'bg-pinkish',//Pending Schedule\r\n}\r\n\r\nexport namespace WorkOrderStatusList {\r\n export function keys(): Array {\r\n var keys = Object.keys(WorkOrderEnum);\r\n return keys.slice(keys.length / 2, keys.length);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { PortalPermission } from 'src/app/core/permissions/portal-permission';\r\n\r\n@Pipe({\r\n name: 'permission',\r\n})\r\nexport class PermissionPipe implements PipeTransform {\r\n constructor(private permission: PortalPermission) {}\r\n transform(value: string, module: string): boolean {\r\n const method = {\r\n add: 'canAdd',\r\n delete: 'canDelete',\r\n edit: 'canEdit',\r\n view: 'canView',\r\n };\r\n\r\n return this.permission[method[value]](module);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n\r\n transform(value, type: string = 'html') {\r\n switch (type) {\r\n case 'html':\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'url':\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n }\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport {\r\n DomSanitizer,\r\n SafeHtml,\r\n SafeStyle,\r\n SafeScript,\r\n SafeUrl,\r\n SafeResourceUrl,\r\n} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe',\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n constructor(protected sanitizer: DomSanitizer) {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\n public transform(\r\n value: any,\r\n type: string\r\n ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n switch (type) {\r\n case 'html':\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style':\r\n return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script':\r\n return this.sanitizer.bypassSecurityTrustScript(value);\r\n case 'url':\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl':\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default:\r\n throw new Error(`Invalid safe type specified: ${type}`);\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'slugify',\r\n})\r\nexport class SlugifyPipe implements PipeTransform {\r\n transform(input: string): string {\r\n return input.toLowerCase().replace(' ', '-');\r\n }\r\n}\r\n","import { Observable } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { CsvImportUpload } from '../../shared/models/csv-import.model';\r\nimport { AuthorizationBase } from '../../shared/libraries/authorize-base';\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class CsvImportService extends AuthorizationBase{\r\n private accountBaseRoute: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n super();\r\n this.accountBaseRoute = environment.accountAPIRoot;\r\n\r\n }\r\n\r\n upload(payload: CsvImportUpload, type: string) {\r\n payload.ApplicationUserId = super.userId().toString();\r\n switch (type) {\r\n case \"item\":\r\n return this.httpClient.post(environment.inventoryAPIRoot + '/item/import', payload);\r\n case \"customer\":\r\n return this.httpClient.post(environment.customerAPIRoot + '/customer/import', payload);\r\n case \"invoice\":\r\n return this.httpClient.post(environment.invoiceAPIRoot + '/import', payload);\r\n }\r\n }\r\n\r\n runningimports(type: string) {\r\n return this.httpClient.get(environment.accountAPIRoot + '/' + type + '/import/in-progress/count/' + super.userId());\r\n }\r\n\r\n completedimports(type: string) {\r\n return this.httpClient.get(environment.accountAPIRoot + '/' + type + '/import/completed/count/' + super.userId());\r\n }\r\n\r\n importResults(type: string) {\r\n return this.httpClient.get(environment.accountAPIRoot + '/' + type + '/import/completed/' + super.userId());\r\n }\r\n\r\n importQueueResults(queueId: number) {\r\n return this.httpClient.get(environment.accountAPIRoot + '/import/results/' + queueId);\r\n }\r\n\r\n validateCsv(payload: any, type: string, headerRow: number){\r\n return this.httpClient.post(environment.accountAPIRoot + `/dataimport/csv/read/${type}?headerRow=${headerRow}`, payload);\r\n }\r\n\r\n importColumns(type: string) {\r\n return this.httpClient.get(environment.accountAPIRoot + `/import/columns/${type}`);\r\n }\r\n\r\n importInvoiceDBColumns() {\r\n return this.httpClient.get(environment.accountAPIRoot + '/import/invoice/columns/');\r\n }\r\n\r\n mapCsvDBColumns(payload: any, type: string, headerRow: number, id: string){\r\n return this.httpClient.post(environment.accountAPIRoot + `/dataimport/csv/mapping/read/${type}?headerRow=${headerRow}&id=${id}`, payload);\r\n }\r\n \r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { AuthorizationBase } from \"../../core/authorize-base\";\r\nimport { ManualPayment } from \"../models/invoice/manual-payment.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ManualPaymentService extends AuthorizationBase {\r\n private accountBaseRoute: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n super();\r\n this.accountBaseRoute = environment.accountAPIRoot;\r\n\r\n }\r\n\r\n addManualPayment(payload: ManualPayment) {\r\n payload.CreatedBy = parseInt(super.userId().toString());\r\n return this.httpClient.post(environment.invoiceAPIRoot + '/manualpayment', payload);\r\n }\r\n\r\n\r\n}\r\n","import { Observable } from \"rxjs\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ServiceWorkOrderService {\r\n private baseRoute: string;\r\n private inventoryRoute: string;\r\n private employeesRoute: string;\r\n private customersRoute: string;\r\n\r\n constructor(private httpClient: HttpClient) {\r\n this.baseRoute = environment.serviceworkorderAPIRoot;\r\n this.inventoryRoute = environment.inventoryAPIRoot;\r\n this.employeesRoute = environment.accountAPIRoot;\r\n this.customersRoute = environment.customerAPIRoot;\r\n }\r\n\r\n getAllServiceWorkOrder(): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/getall`);\r\n }\r\n\r\n //ACTUAL DATA\r\n //LIBRARIES\r\n getAllCustomers(): Observable {\r\n return this.httpClient.get(`${this.customersRoute}/customer/getall`);\r\n }\r\n\r\n getAllEmployees(): Observable {\r\n return this.httpClient.get(`${this.employeesRoute}/getallemployees`);\r\n }\r\n\r\n getAllServices(): Observable {\r\n return this.httpClient.get(`${this.inventoryRoute}/service/getall`);\r\n }\r\n\r\n searchServices(): Observable {\r\n return this.httpClient.get(`${this.inventoryRoute}/service/search`);\r\n }\r\n\r\n //WORK ORDER\r\n getWorkOrderId(): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/main/getid`);\r\n }\r\n\r\n getWorkOrders(locationId: number): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/main/getall?locationId=${locationId}`);\r\n }\r\n\r\n getWorkOrder(workOrderId: string): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/main/get/${workOrderId}`);\r\n }\r\n\r\n saveWorkOrder(payload: any): Observable {\r\n return this.httpClient.post(`${this.baseRoute}/main/save`, payload);\r\n }\r\n\r\n deleteWorkOrder(workOrderId: string): Observable {\r\n return this.httpClient.delete(`${this.baseRoute}/main/delete/${workOrderId}`);\r\n }\r\n\r\n statusUpdate(workOrderId: string, status: number, userId: number): Observable {\r\n return this.httpClient.post(`${this.baseRoute}/main/status/update/${workOrderId}/${status}/${userId}`, {});\r\n }\r\n\r\n verifyWorkOrderClient(workOrderId: string, emailAddress: string): Observable {\r\n return this.httpClient.post(`${this.baseRoute}/main/verifyworkordercustomer/${workOrderId}/${emailAddress}`, {});\r\n }\r\n\r\n checkEmployeeScheduleConflict(startDate: string, endDate: string, employeeId: number, id: number) {\r\n return this.httpClient.get(`${this.baseRoute}/employee/checkschedule/${startDate}/${endDate}/${employeeId}/${id}`);\r\n }\r\n\r\n saveInvoiceWorkOrder(workOrderId: string, invoiceNumber: string): Observable {\r\n return this.httpClient.post(`${this.baseRoute}/main/saveinvoiceworkorder/${workOrderId}/${invoiceNumber}`, {});\r\n }\r\n\r\n getInvoiceWorkOrder(workOrderId: string): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/main/getinvoiceworkorder/${workOrderId}`);\r\n }\r\n\r\n getWorkOrderCustomerAndEmployeeInfo(workOrderId: string): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/main/getworkordercustomerandemployeeinfo/${workOrderId}`);\r\n }\r\n\r\n getWorkOrderByInvoice(invoiceNumber: string): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/main/getworkorderbyinvoice/${invoiceNumber}`);\r\n }\r\n\r\n getSettingsWorkOrder(): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/settings/getsettingsworkorder`);\r\n }\r\n\r\n upsertSettingsWorkOrder(settings:any): Observable {\r\n return this.httpClient.post(`${this.baseRoute}/settings/upsertsettingsworkorder`, settings);\r\n }\r\n\r\n getCustomerSigByWorkOrderId(workOrderId: string): Observable{\r\n return this.httpClient.get(`${this.baseRoute}/main/getcustomersigbyworkorderid/${workOrderId}`);\r\n }\r\n\r\n getEmailStatusSendingConfig(): Observable {\r\n return this.httpClient.get(`${this.baseRoute}/settings/getemailstatussendingconfig`);\r\n }\r\n\r\n upsertEmailStatusSendingConfig(settings:any): Observable {\r\n return this.httpClient.post(`${this.baseRoute}/settings/upsertemailstatussendingconfig`, settings);\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserService {\r\n\r\n private baseRoute: string;\r\n constructor(private httpClient: HttpClient) {\r\n this.baseRoute = environment.rootAPI;\r\n }\r\n\r\n getUserDatabyId(id: number): Observable {\r\n return this.httpClient.get(`${environment.formbuilderAPIUrlRoot}/getdatabyid/${id}`);\r\n }\r\n\r\n getMerchant(id: string): Observable {\r\n return this.httpClient.get(`${this.baseRoute}account/api/merchantowner/getbyid?id=${id}`);\r\n }\r\n}\r\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CJGridComponent } from './components/cj-grid/cj-grid.component';\r\nimport { LoaderComponent } from './components/loader/loader.component';\r\nimport { ModalLoaderComponent } from './components/modal-loader/modal-loader.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ActionPasswordComponent } from './dialogs/action-password/action-password.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SafeHtmlPipe } from './pipes/safe-html.pipe';\r\nimport { CustomerLookupAgGridControlComponent } from './components/ag-grid-controls/customer-lookup-ag-grid-control/customer-lookup-ag-grid-control.component';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AddCustomerComponent } from './components/customers/add-customer/add-customer.component';\r\nimport { YesNoDialogComponent } from './dialogs/yes-no-dialog/yes-no-dialog.component';\r\nimport { YesNoRemarksDialogComponent } from './dialogs/yes-no-remarks-dialog/yes-no-remarks-dialog.component';\r\nimport { PaymentOptionComponent } from './components/payment/payment-option/payment-option.component';\r\nimport { ManualPaymentComponent } from './components/payment/manual-payment/manual-payment.component';\r\nimport { PaymentConfirmActionComponent } from './dialogs/payment-confirm-action/payment-confirm-action.component';\r\nimport { CashPaymentComponent } from './components/payment/cash-payment/cash-payment.component';\r\nimport { AchTcComponent } from './components/payment/ach-payment/ach-tc/ach-tc.component';\r\nimport { ACHPaymentComponent } from './components/payment/ach-payment/ach-payment.component';\r\nimport { CustomerAddressFormComponent } from './components/customers/customer-address-form/customer-address-form.component';\r\nimport { CardFormComponent } from './components/payment/card-form/card-form.component';\r\nimport { InvoiceNotesComponent } from './components/payment/card-form/invoice-notes/invoice-notes.component';\r\nimport { HeartlandCardTokenizerComponent } from './components/heartland-card-tokenizer/heartland-card-tokenizer.component';\r\nimport { CsvImportWizardComponent } from './components/csv-import/csv-import-wizard-component/csv-import-wizard-component';\r\nimport { CsvColumnMappingComponent } from './components/csv-import/csv-column-mapping/csv-column-mapping.component';\r\nimport { CsvImportValidationComponent } from './components/csv-import/csv-import-validation-component/csv-import-validation.component';\r\nimport { AgGridModule } from 'ag-grid-angular';\r\nimport { CsvImportResultsComponent } from './components/csv-import/csv-import-results-component/csv-import-results.component';\r\nimport { ItemLookupAgGridControlComponent } from './components/ag-grid-controls/item-lookup-ag-grid-control/item-lookup-ag-grid-control.component';\r\nimport { FrequencyFormComponent } from './components/frequency-form/frequency-form.component';\r\nimport { CustomerCardDataComponent } from './components/customers/customercarddata-form/customercarddata-form.component';\r\nimport { NotificationScheduleOptionsComponent } from './components/notification-schedule-options/notification-schedule-options.component';\r\nimport { SenderDialogComponent } from './dialogs/sender-dialog/sender-dialog.component';\r\nimport { FilterComponent } from './components/filter/filter.component';\r\nimport { SlugifyPipe } from './pipes/slugify.pipe';\r\nimport { SignaturePadModule } from 'angular2-signaturepad';\r\nimport { AutofocusDirective } from './directives/autofocus.directive';\r\nimport { InputMaskModule } from '@ngneat/input-mask';\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\nimport { InputCurrencyComponent } from './components/input-currency/input-currency.component';\r\nimport { SafePipe } from './pipes/safe.pipe';\r\nimport { ContactFormComponent } from './components/customers/contact-form/contact-form.component';\r\nimport { SearchComponent } from './components/customers/search/search.component';\r\nimport { AndroidMobileUrlComponent } from './components/android-mobile-url/android-mobile-url.component';\r\nimport { IosMobileUrlComponent } from './components/ios-mobile-url/ios-mobile-url.component';\r\nimport { GooglePayButtonComponent } from './components/google-pay-button/google-pay-button.component';\r\nimport { GooglePayButtonModule } from '@google-pay/button-angular';\r\nimport { GPayDisabledDirective } from './directives/g-pay-disabled.directive';\r\nimport { PaymentOptionsComponent } from './components/payment-options_revamp/payment-options.component';\r\nimport { ManualPayComponent } from './components/payment-options_revamp/manual-pay/manual-pay.component';\r\nimport { CashPayComponent } from './components/payment-options_revamp/cash-pay/cash-pay.component';\r\nimport { CardPayComponent } from './components/payment-options_revamp/card-pay/card-pay.component';\r\nimport { ACHPayComponent } from './components/payment-options_revamp/ach-pay/ach-pay.component';\r\nimport { AchPayTcComponent } from './components/payment-options_revamp/ach-pay/ach-pay-tc/ach-pay-tc.component';\r\nimport { PaymentTermsComponent } from './components/payment-options_revamp/payment-terms/payment-terms.component';\r\nimport { CjSvgIconComponent } from './components/cj-svg-icon/cj-svg-icon.component';\r\n\r\nimport {\r\n CjLayoutModule,\r\n CjSidebarModule,\r\n CjMenuModule,\r\n CjIconModule,\r\n CjTooltipModule,\r\n CjButtonModule,\r\n CjInputModule,\r\n CjFormFieldModule,\r\n CjCheckboxModule,\r\n CjRadioModule,\r\n CjTabsetModule,\r\n} from '@cashjar-dev/ui';\r\nimport { CJTypeahead } from './components/cj-typeahead/cj-typeahead.component';\r\nimport { CJTagsComponent } from './components/cj-tags/cj-tags.component';\r\nimport { ClickOutsideDirective } from 'src/app/shared/directives/click-outside.directive';\r\nimport { AmountToggleComponent } from './components/amount-toggle/amount-toggle.component';\r\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\r\nimport { BreadcrumbModule } from 'xng-breadcrumb';\r\nimport { ForbiddemAccessComponent } from 'src/app/shared/components/forbiddem-access/forbiddem-access.component';\r\nimport { PermissionPipe } from './pipes/permission.pipe';\r\nimport { CardUpdateFormComponent } from './components/customers/card-update-form/card-update-form.component';\r\nimport { DigitsOnlyDirective } from './directives/digits-only.directive';\r\n\r\nconst CJ_COMPONENTS = [\r\n CjLayoutModule,\r\n CjSidebarModule,\r\n CjMenuModule,\r\n CjIconModule,\r\n CjTooltipModule,\r\n CjButtonModule,\r\n CjInputModule,\r\n CjFormFieldModule,\r\n CjCheckboxModule,\r\n CjRadioModule,\r\n CjTabsetModule,\r\n];\r\n\r\nconst COMPONENT_REVAMPS = [\r\n PaymentOptionsComponent,\r\n ManualPayComponent,\r\n CashPayComponent,\r\n CardPayComponent,\r\n ACHPayComponent,\r\n AchPayTcComponent,\r\n CjSvgIconComponent,\r\n PaymentTermsComponent,\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n CJGridComponent,\r\n LoaderComponent,\r\n ModalLoaderComponent,\r\n ActionPasswordComponent,\r\n SafeHtmlPipe,\r\n AddCustomerComponent,\r\n CustomerLookupAgGridControlComponent,\r\n YesNoDialogComponent,\r\n YesNoRemarksDialogComponent,\r\n PaymentOptionComponent,\r\n ManualPaymentComponent,\r\n PaymentConfirmActionComponent,\r\n CashPaymentComponent,\r\n AchTcComponent,\r\n ACHPaymentComponent,\r\n CustomerAddressFormComponent,\r\n CardFormComponent,\r\n InvoiceNotesComponent,\r\n HeartlandCardTokenizerComponent,\r\n CsvImportWizardComponent,\r\n CsvColumnMappingComponent,\r\n CsvImportValidationComponent,\r\n CsvImportResultsComponent,\r\n ItemLookupAgGridControlComponent,\r\n FrequencyFormComponent,\r\n SenderDialogComponent,\r\n CustomerCardDataComponent,\r\n NotificationScheduleOptionsComponent,\r\n FilterComponent,\r\n SlugifyPipe,\r\n AutofocusDirective,\r\n InputCurrencyComponent,\r\n SafePipe,\r\n ContactFormComponent,\r\n SearchComponent,\r\n AndroidMobileUrlComponent,\r\n IosMobileUrlComponent,\r\n GooglePayButtonComponent,\r\n GPayDisabledDirective,\r\n CJTypeahead,\r\n CJTagsComponent,\r\n ClickOutsideDirective,\r\n ...COMPONENT_REVAMPS,\r\n AmountToggleComponent,\r\n BreadcrumbComponent,\r\n ForbiddemAccessComponent,\r\n PermissionPipe,\r\n CardUpdateFormComponent,\r\n DigitsOnlyDirective,\r\n ],\r\n entryComponents: [ActionPasswordComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n NgbModule,\r\n ReactiveFormsModule,\r\n AgGridModule,\r\n SignaturePadModule,\r\n InputMaskModule,\r\n NgxChartsModule,\r\n GooglePayButtonModule,\r\n // CashJar UI\r\n ...CJ_COMPONENTS,\r\n BreadcrumbModule,\r\n ],\r\n exports: [\r\n CJGridComponent,\r\n LoaderComponent,\r\n ModalLoaderComponent,\r\n SafeHtmlPipe,\r\n FrequencyFormComponent,\r\n NotificationScheduleOptionsComponent,\r\n FilterComponent,\r\n SlugifyPipe,\r\n AutofocusDirective,\r\n InputCurrencyComponent,\r\n SafePipe,\r\n InputMaskModule,\r\n NgxChartsModule,\r\n SearchComponent,\r\n AndroidMobileUrlComponent,\r\n IosMobileUrlComponent,\r\n GooglePayButtonComponent,\r\n GPayDisabledDirective,\r\n CJTypeahead,\r\n CJTagsComponent,\r\n ClickOutsideDirective,\r\n PaymentOptionComponent,\r\n AmountToggleComponent,\r\n // CashJar UI\r\n ...CJ_COMPONENTS,\r\n BreadcrumbComponent,\r\n ForbiddemAccessComponent,\r\n PermissionPipe,\r\n CjSvgIconComponent,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class SharedModule {}\r\n","export enum CountryZipCode {\r\n US = 230,\r\n UK = 229,\r\n Canada = 38\r\n}\r\n\r\nexport class ZipCodeValidator {\r\n\r\n isValid(countryCode: CountryZipCode, val: string) {\r\n switch (countryCode) {\r\n case CountryZipCode.US:\r\n return this.validateUSZipCode(val);\r\n case CountryZipCode.UK:\r\n return this.validateUKZipCode(val);\r\n case CountryZipCode.US:\r\n return this.validateCanadaZipCode(val);\r\n default:\r\n return true;\r\n }\r\n\r\n }\r\n\r\n private validateUSZipCode(val) {\r\n return /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/.test(val);\r\n }\r\n\r\n private validateUKZipCode(val) {\r\n return /^[A-Z]{1,2}[0-9][A-Z0-9]? ?[0-9][A-Z]{2}$/i.test(val);\r\n }\r\n\r\n private validateCanadaZipCode(val) {\r\n return /[a-zA-Z][0-9][a-zA-Z](-| |)[0-9][a-zA-Z][0-9]/.test(val);\r\n }\r\n}\r\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Component, ViewEncapsulation, Inject, Input, ViewChild, HostBinding, HostListener, Injectable, ChangeDetectionStrategy, EventEmitter, Output, Directive, NgModule, ContentChild } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { isPlatformBrowser, isPlatformServer, CommonModule } from '@angular/common';\nimport { __decorate } from 'tslib';\nimport { DomPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { trigger, transition, style, animate } from '@angular/animations';\nimport { select } from 'd3-selection';\nimport { brushX } from 'd3-brush';\nimport { scaleTime, scaleLinear, scalePoint, scaleOrdinal, scaleQuantile, scaleBand } from 'd3-scale';\nimport { area, curveLinear, line, arc, lineRadial, curveCardinalClosed, pie } from 'd3-shape';\nimport { range, min, max, quantile } from 'd3-array';\nimport { interpolate } from 'd3-interpolate';\nimport { easeSinInOut } from 'd3-ease';\nimport cloneDeep from 'clone-deep';\nimport { format } from 'd3-format';\nimport * as d3_color from 'd3-color';\nimport { treemap, stratify } from 'd3-hierarchy';\nimport { timeFormat } from 'd3-time-format';\n\n/**\n * Throttle a function\n *\n */\nfunction throttle(func, wait, options) {\n options = options || {};\n let context;\n let args;\n let result;\n let timeout = null;\n let previous = 0;\n function later() {\n previous = options.leading === false ? 0 : +new Date();\n timeout = null;\n result = func.apply(context, args);\n }\n return function () {\n const now = +new Date();\n if (!previous && options.leading === false) {\n previous = now;\n }\n const remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n result = func.apply(context, args);\n }\n else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n}\n/**\n * Throttle decorator\n *\n * class MyClass {\n * throttleable(10)\n * myFn() { ... }\n * }\n */\nfunction throttleable(duration, options) {\n return function innerDecorator(target, key, descriptor) {\n return {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: function getter() {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: descriptor.enumerable,\n value: throttle(descriptor.value, duration, options)\n });\n return this[key];\n }\n };\n };\n}\n\nvar PlacementTypes;\n(function (PlacementTypes) {\n PlacementTypes[\"Top\"] = \"top\";\n PlacementTypes[\"Bottom\"] = \"bottom\";\n PlacementTypes[\"Left\"] = \"left\";\n PlacementTypes[\"Right\"] = \"right\";\n PlacementTypes[\"Center\"] = \"center\";\n})(PlacementTypes || (PlacementTypes = {}));\n\nconst caretOffset = 7;\nfunction verticalPosition(elDimensions, popoverDimensions, alignment) {\n if (alignment === PlacementTypes.Top) {\n return elDimensions.top - caretOffset;\n }\n if (alignment === PlacementTypes.Bottom) {\n return elDimensions.top + elDimensions.height - popoverDimensions.height + caretOffset;\n }\n if (alignment === PlacementTypes.Center) {\n return elDimensions.top + elDimensions.height / 2 - popoverDimensions.height / 2;\n }\n return undefined;\n}\nfunction horizontalPosition(elDimensions, popoverDimensions, alignment) {\n if (alignment === PlacementTypes.Left) {\n return elDimensions.left - caretOffset;\n }\n if (alignment === PlacementTypes.Right) {\n return elDimensions.left + elDimensions.width - popoverDimensions.width + caretOffset;\n }\n if (alignment === PlacementTypes.Center) {\n return elDimensions.left + elDimensions.width / 2 - popoverDimensions.width / 2;\n }\n return undefined;\n}\n/**\n * Position helper for the popover directive.\n *\n * @export\n */\nclass PositionHelper {\n /**\n * Calculate vertical alignment position\n *\n * @memberOf PositionHelper\n */\n static calculateVerticalAlignment(elDimensions, popoverDimensions, alignment) {\n let result = verticalPosition(elDimensions, popoverDimensions, alignment);\n if (result + popoverDimensions.height > window.innerHeight) {\n result = window.innerHeight - popoverDimensions.height;\n }\n return result;\n }\n /**\n * Calculate vertical caret position\n *\n * @memberOf PositionHelper\n */\n static calculateVerticalCaret(elDimensions, popoverDimensions, caretDimensions, alignment) {\n let result;\n if (alignment === PlacementTypes.Top) {\n result = elDimensions.height / 2 - caretDimensions.height / 2 + caretOffset;\n }\n if (alignment === PlacementTypes.Bottom) {\n result = popoverDimensions.height - elDimensions.height / 2 - caretDimensions.height / 2 - caretOffset;\n }\n if (alignment === PlacementTypes.Center) {\n result = popoverDimensions.height / 2 - caretDimensions.height / 2;\n }\n const popoverPosition = verticalPosition(elDimensions, popoverDimensions, alignment);\n if (popoverPosition + popoverDimensions.height > window.innerHeight) {\n result += popoverPosition + popoverDimensions.height - window.innerHeight;\n }\n return result;\n }\n /**\n * Calculate horz alignment position\n *\n * @memberOf PositionHelper\n */\n static calculateHorizontalAlignment(elDimensions, popoverDimensions, alignment) {\n let result = horizontalPosition(elDimensions, popoverDimensions, alignment);\n if (result + popoverDimensions.width > window.innerWidth) {\n result = window.innerWidth - popoverDimensions.width;\n }\n return result;\n }\n /**\n * Calculate horz caret position\n *\n * @memberOf PositionHelper\n */\n static calculateHorizontalCaret(elDimensions, popoverDimensions, caretDimensions, alignment) {\n let result;\n if (alignment === PlacementTypes.Left) {\n result = elDimensions.width / 2 - caretDimensions.width / 2 + caretOffset;\n }\n if (alignment === PlacementTypes.Right) {\n result = popoverDimensions.width - elDimensions.width / 2 - caretDimensions.width / 2 - caretOffset;\n }\n if (alignment === PlacementTypes.Center) {\n result = popoverDimensions.width / 2 - caretDimensions.width / 2;\n }\n const popoverPosition = horizontalPosition(elDimensions, popoverDimensions, alignment);\n if (popoverPosition + popoverDimensions.width > window.innerWidth) {\n result += popoverPosition + popoverDimensions.width - window.innerWidth;\n }\n return result;\n }\n /**\n * Checks if the element's position should be flipped\n *\n * @memberOf PositionHelper\n */\n static shouldFlip(elDimensions, popoverDimensions, placement, spacing) {\n let flip = false;\n if (placement === PlacementTypes.Right) {\n if (elDimensions.left + elDimensions.width + popoverDimensions.width + spacing > window.innerWidth) {\n flip = true;\n }\n }\n if (placement === PlacementTypes.Left) {\n if (elDimensions.left - popoverDimensions.width - spacing < 0) {\n flip = true;\n }\n }\n if (placement === PlacementTypes.Top) {\n if (elDimensions.top - popoverDimensions.height - spacing < 0) {\n flip = true;\n }\n }\n if (placement === PlacementTypes.Bottom) {\n if (elDimensions.top + elDimensions.height + popoverDimensions.height + spacing > window.innerHeight) {\n flip = true;\n }\n }\n return flip;\n }\n /**\n * Position caret\n *\n * @memberOf PositionHelper\n */\n static positionCaret(placement, elmDim, hostDim, caretDimensions, alignment) {\n let top = 0;\n let left = 0;\n if (placement === PlacementTypes.Right) {\n left = -7;\n top = PositionHelper.calculateVerticalCaret(hostDim, elmDim, caretDimensions, alignment);\n }\n else if (placement === PlacementTypes.Left) {\n left = elmDim.width;\n top = PositionHelper.calculateVerticalCaret(hostDim, elmDim, caretDimensions, alignment);\n }\n else if (placement === PlacementTypes.Top) {\n top = elmDim.height;\n left = PositionHelper.calculateHorizontalCaret(hostDim, elmDim, caretDimensions, alignment);\n }\n else if (placement === PlacementTypes.Bottom) {\n top = -7;\n left = PositionHelper.calculateHorizontalCaret(hostDim, elmDim, caretDimensions, alignment);\n }\n return { top, left };\n }\n /**\n * Position content\n *\n * @memberOf PositionHelper\n */\n static positionContent(placement, elmDim, hostDim, spacing, alignment) {\n let top = 0;\n let left = 0;\n if (placement === PlacementTypes.Right) {\n left = hostDim.left + hostDim.width + spacing;\n top = PositionHelper.calculateVerticalAlignment(hostDim, elmDim, alignment);\n }\n else if (placement === PlacementTypes.Left) {\n left = hostDim.left - elmDim.width - spacing;\n top = PositionHelper.calculateVerticalAlignment(hostDim, elmDim, alignment);\n }\n else if (placement === PlacementTypes.Top) {\n top = hostDim.top - elmDim.height - spacing;\n left = PositionHelper.calculateHorizontalAlignment(hostDim, elmDim, alignment);\n }\n else if (placement === PlacementTypes.Bottom) {\n top = hostDim.top + hostDim.height + spacing;\n left = PositionHelper.calculateHorizontalAlignment(hostDim, elmDim, alignment);\n }\n return { top, left };\n }\n /**\n * Determine placement based on flip\n *\n * @memberOf PositionHelper\n */\n static determinePlacement(placement, elmDim, hostDim, spacing) {\n const shouldFlip = PositionHelper.shouldFlip(hostDim, elmDim, placement, spacing);\n if (shouldFlip) {\n if (placement === PlacementTypes.Right) {\n return PlacementTypes.Left;\n }\n else if (placement === PlacementTypes.Left) {\n return PlacementTypes.Right;\n }\n else if (placement === PlacementTypes.Top) {\n return PlacementTypes.Bottom;\n }\n else if (placement === PlacementTypes.Bottom) {\n return PlacementTypes.Top;\n }\n }\n return placement;\n }\n}\n\nclass TooltipContentComponent {\n constructor(element, renderer, platformId) {\n this.element = element;\n this.renderer = renderer;\n this.platformId = platformId;\n }\n get cssClasses() {\n let clz = 'ngx-charts-tooltip-content';\n clz += ` position-${this.placement}`;\n clz += ` type-${this.type}`;\n clz += ` ${this.cssClass}`;\n return clz;\n }\n ngAfterViewInit() {\n setTimeout(this.position.bind(this));\n }\n position() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const nativeElm = this.element.nativeElement;\n const hostDim = this.host.nativeElement.getBoundingClientRect();\n // if no dims were found, never show\n if (!hostDim.height && !hostDim.width)\n return;\n const elmDim = nativeElm.getBoundingClientRect();\n this.checkFlip(hostDim, elmDim);\n this.positionContent(nativeElm, hostDim, elmDim);\n if (this.showCaret) {\n this.positionCaret(hostDim, elmDim);\n }\n // animate its entry\n setTimeout(() => this.renderer.addClass(nativeElm, 'animate'), 1);\n }\n positionContent(nativeElm, hostDim, elmDim) {\n const { top, left } = PositionHelper.positionContent(this.placement, elmDim, hostDim, this.spacing, this.alignment);\n this.renderer.setStyle(nativeElm, 'top', `${top}px`);\n this.renderer.setStyle(nativeElm, 'left', `${left}px`);\n }\n positionCaret(hostDim, elmDim) {\n const caretElm = this.caretElm.nativeElement;\n const caretDimensions = caretElm.getBoundingClientRect();\n const { top, left } = PositionHelper.positionCaret(this.placement, elmDim, hostDim, caretDimensions, this.alignment);\n this.renderer.setStyle(caretElm, 'top', `${top}px`);\n this.renderer.setStyle(caretElm, 'left', `${left}px`);\n }\n checkFlip(hostDim, elmDim) {\n this.placement = PositionHelper.determinePlacement(this.placement, elmDim, hostDim, this.spacing);\n }\n onWindowResize() {\n this.position();\n }\n}\nTooltipContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipContentComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nTooltipContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: TooltipContentComponent, selector: \"ngx-tooltip-content\", inputs: { host: \"host\", showCaret: \"showCaret\", type: \"type\", placement: \"placement\", alignment: \"alignment\", spacing: \"spacing\", cssClass: \"cssClass\", title: \"title\", template: \"template\", context: \"context\" }, host: { listeners: { \"window:resize\": \"onWindowResize()\" }, properties: { \"class\": \"this.cssClasses\" } }, viewQueries: [{ propertyName: \"caretElm\", first: true, predicate: [\"caretElm\"], descendants: true }], ngImport: i0, template: `\n
\n \n
\n \n \n \n \n
\n
\n `, isInline: true, styles: [\".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\\n\"], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }], encapsulation: i0.ViewEncapsulation.None });\n__decorate([\n throttleable(100)\n], TooltipContentComponent.prototype, \"onWindowResize\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-tooltip-content', template: `\n
\n \n
\n \n \n \n \n
\n
\n `, encapsulation: ViewEncapsulation.None, styles: [\".ngx-charts-tooltip-content{position:fixed;border-radius:3px;z-index:5000;display:block;font-weight:400;opacity:0;pointer-events:none!important}.ngx-charts-tooltip-content.type-popover{background:#fff;color:#060709;border:1px solid #72809b;box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;font-size:13px;padding:4px}.ngx-charts-tooltip-content.type-popover .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid #fff}.ngx-charts-tooltip-content.type-popover .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #fff}.ngx-charts-tooltip-content.type-tooltip{color:#fff;background:rgba(0,0,0,.75);font-size:12px;padding:0 10px;text-align:center;pointer-events:auto}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-left{border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-top{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-right{border-top:7px solid transparent;border-bottom:7px solid transparent;border-right:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content.type-tooltip .tooltip-caret.position-bottom{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid rgba(0,0,0,.75)}.ngx-charts-tooltip-content .tooltip-label{display:block;line-height:1em;padding:8px 5px 5px;font-size:1em}.ngx-charts-tooltip-content .tooltip-val{display:block;font-size:1.3em;line-height:1em;padding:0 5px 8px}.ngx-charts-tooltip-content .tooltip-caret{position:absolute;z-index:5001;width:0;height:0}.ngx-charts-tooltip-content.position-right{transform:translate(10px)}.ngx-charts-tooltip-content.position-left{transform:translate(-10px)}.ngx-charts-tooltip-content.position-top{transform:translateY(-10px)}.ngx-charts-tooltip-content.position-bottom{transform:translateY(10px)}.ngx-charts-tooltip-content.animate{opacity:1;transition:opacity .3s,transform .3s;transform:translate(0);pointer-events:auto}.area-tooltip-container{padding:5px 0;pointer-events:none}.tooltip-item{text-align:left;line-height:1.2em;padding:5px 0}.tooltip-item .tooltip-item-color{display:inline-block;height:12px;width:12px;margin-right:5px;color:#5b646b;border-radius:3px}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { host: [{\n type: Input\n }], showCaret: [{\n type: Input\n }], type: [{\n type: Input\n }], placement: [{\n type: Input\n }], alignment: [{\n type: Input\n }], spacing: [{\n type: Input\n }], cssClass: [{\n type: Input\n }], title: [{\n type: Input\n }], template: [{\n type: Input\n }], context: [{\n type: Input\n }], caretElm: [{\n type: ViewChild,\n args: ['caretElm']\n }], cssClasses: [{\n type: HostBinding,\n args: ['class']\n }], onWindowResize: [{\n type: HostListener,\n args: ['window:resize']\n }] } });\n\nclass InjectionRegisteryService {\n constructor(injectionService) {\n this.injectionService = injectionService;\n this.defaults = {};\n this.components = new Map();\n }\n getByType(type = this.type) {\n return this.components.get(type);\n }\n create(bindings) {\n return this.createByType(this.type, bindings);\n }\n createByType(type, bindings) {\n bindings = this.assignDefaults(bindings);\n const component = this.injectComponent(type, bindings);\n this.register(type, component);\n return component;\n }\n destroy(instance) {\n const compsByType = this.components.get(instance.componentType);\n if (compsByType && compsByType.length) {\n const idx = compsByType.indexOf(instance);\n if (idx > -1) {\n const component = compsByType[idx];\n component.destroy();\n compsByType.splice(idx, 1);\n }\n }\n }\n destroyAll() {\n this.destroyByType(this.type);\n }\n destroyByType(type) {\n const comps = this.components.get(type);\n if (comps && comps.length) {\n let i = comps.length - 1;\n while (i >= 0) {\n this.destroy(comps[i--]);\n }\n }\n }\n injectComponent(type, bindings) {\n return this.injectionService.appendComponent(type, bindings);\n }\n assignDefaults(bindings) {\n const inputs = { ...this.defaults.inputs };\n const outputs = { ...this.defaults.outputs };\n if (!bindings.inputs && !bindings.outputs) {\n bindings = { inputs: bindings };\n }\n if (inputs) {\n bindings.inputs = { ...inputs, ...bindings.inputs };\n }\n if (outputs) {\n bindings.outputs = { ...outputs, ...bindings.outputs };\n }\n return bindings;\n }\n register(type, component) {\n if (!this.components.has(type)) {\n this.components.set(type, []);\n }\n const types = this.components.get(type);\n types.push(component);\n }\n}\n\nfunction isViewContainerRef(x) {\n return x.element;\n}\n/**\n * Injection service is a helper to append components\n * dynamically to a known location in the DOM, most\n * noteably for dialogs/tooltips appending to body.\n *\n * @export\n */\nclass InjectionService {\n constructor(applicationRef, componentFactoryResolver, injector) {\n this.applicationRef = applicationRef;\n this.componentFactoryResolver = componentFactoryResolver;\n this.injector = injector;\n }\n /**\n * Sets a default global root view container. This is useful for\n * things like ngUpgrade that doesn't have a ApplicationRef root.\n *\n * @param container\n */\n static setGlobalRootViewContainer(container) {\n InjectionService.globalRootViewContainer = container;\n }\n /**\n * Gets the root view container to inject the component to.\n *\n * @memberOf InjectionService\n */\n getRootViewContainer() {\n if (this._container)\n return this._container;\n if (InjectionService.globalRootViewContainer)\n return InjectionService.globalRootViewContainer;\n if (this.applicationRef.components.length)\n return this.applicationRef.components[0];\n throw new Error('View Container not found! ngUpgrade needs to manually set this via setRootViewContainer or setGlobalRootViewContainer.');\n }\n /**\n * Overrides the default root view container. This is useful for\n * things like ngUpgrade that doesn't have a ApplicationRef root.\n *\n * @param container\n *\n * @memberOf InjectionService\n */\n setRootViewContainer(container) {\n this._container = container;\n }\n /**\n * Gets the html element for a component ref.\n *\n * @param componentRef\n *\n * @memberOf InjectionService\n */\n getComponentRootNode(component) {\n if (isViewContainerRef(component)) {\n return component.element.nativeElement;\n }\n if (component.hostView && component.hostView.rootNodes.length > 0) {\n return component.hostView.rootNodes[0];\n }\n // the top most component root node has no `hostView`\n return component.location.nativeElement;\n }\n /**\n * Gets the root component container html element.\n *\n * @memberOf InjectionService\n */\n getRootViewContainerNode(component) {\n return this.getComponentRootNode(component);\n }\n /**\n * Projects the bindings onto the component\n *\n * @param component\n * @param options\n *\n * @memberOf InjectionService\n */\n projectComponentBindings(component, bindings) {\n if (bindings) {\n if (bindings.inputs !== undefined) {\n const bindingKeys = Object.getOwnPropertyNames(bindings.inputs);\n for (const bindingName of bindingKeys) {\n component.instance[bindingName] = bindings.inputs[bindingName];\n }\n }\n if (bindings.outputs !== undefined) {\n const eventKeys = Object.getOwnPropertyNames(bindings.outputs);\n for (const eventName of eventKeys) {\n component.instance[eventName] = bindings.outputs[eventName];\n }\n }\n }\n return component;\n }\n /**\n * Appends a component to a adjacent location\n *\n * @param componentClass\n * @param [options={}]\n * @param [location]\n *\n * @memberOf InjectionService\n */\n appendComponent(componentClass, bindings = {}, location) {\n if (!location)\n location = this.getRootViewContainer();\n const appendLocation = this.getComponentRootNode(location);\n const portalHost = new DomPortalOutlet(appendLocation, this.componentFactoryResolver, this.applicationRef, this.injector);\n const portal = new ComponentPortal(componentClass);\n const componentRef = portalHost.attach(portal);\n this.projectComponentBindings(componentRef, bindings);\n return componentRef;\n }\n}\nInjectionService.globalRootViewContainer = null;\nInjectionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: InjectionService, deps: [{ token: i0.ApplicationRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });\nInjectionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: InjectionService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: InjectionService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.ApplicationRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; } });\n\nclass TooltipService extends InjectionRegisteryService {\n constructor(injectionService) {\n super(injectionService);\n this.type = TooltipContentComponent;\n }\n}\nTooltipService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipService, deps: [{ token: InjectionService }], target: i0.ɵɵFactoryTarget.Injectable });\nTooltipService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: InjectionService }]; } });\n\nvar LegendPosition;\n(function (LegendPosition) {\n LegendPosition[\"Right\"] = \"right\";\n LegendPosition[\"Below\"] = \"below\";\n})(LegendPosition || (LegendPosition = {}));\nvar LegendType;\n(function (LegendType) {\n LegendType[\"ScaleLegend\"] = \"scaleLegend\";\n LegendType[\"Legend\"] = \"legend\";\n})(LegendType || (LegendType = {}));\n\nvar ScaleType;\n(function (ScaleType) {\n ScaleType[\"Time\"] = \"time\";\n ScaleType[\"Linear\"] = \"linear\";\n ScaleType[\"Ordinal\"] = \"ordinal\";\n ScaleType[\"Quantile\"] = \"quantile\";\n})(ScaleType || (ScaleType = {}));\n\nclass ScaleLegendComponent {\n constructor() {\n this.horizontal = false;\n }\n ngOnChanges(changes) {\n const gradientValues = this.gradientString(this.colors.range(), this.colors.domain());\n const direction = this.horizontal ? 'right' : 'bottom';\n this.gradient = `linear-gradient(to ${direction}, ${gradientValues})`;\n }\n /**\n * Generates the string used in the gradient stylesheet properties\n * @param colors array of colors\n * @param splits array of splits on a scale of (0, 1)\n */\n gradientString(colors, splits) {\n // add the 100%\n splits.push(1);\n const pairs = [];\n colors.reverse().forEach((c, i) => {\n pairs.push(`${c} ${Math.round(splits[i] * 100)}%`);\n });\n return pairs.join(', ');\n }\n}\nScaleLegendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: ScaleLegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nScaleLegendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: ScaleLegendComponent, selector: \"ngx-charts-scale-legend\", inputs: { valueRange: \"valueRange\", colors: \"colors\", height: \"height\", width: \"width\", horizontal: \"horizontal\" }, usesOnChanges: true, ngImport: i0, template: `\n \n
\n {{ valueRange[1].toLocaleString() }}\n
\n
\n
\n {{ valueRange[0].toLocaleString() }}\n
\n \n `, isInline: true, styles: [\".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: ScaleLegendComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-scale-legend', template: `\n \n
\n {{ valueRange[1].toLocaleString() }}\n
\n
\n
\n {{ valueRange[0].toLocaleString() }}\n
\n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .scale-legend{text-align:center;display:flex;flex-direction:column}.chart-legend .scale-legend-wrap{display:inline-block;flex:1;width:30px;border-radius:5px;margin:0 auto}.chart-legend .scale-legend-label{font-size:12px}.chart-legend .horizontal-legend.scale-legend{flex-direction:row}.chart-legend .horizontal-legend .scale-legend-wrap{width:auto;height:30px;margin:0 16px}\\n\"] }]\n }], propDecorators: { valueRange: [{\n type: Input\n }], colors: [{\n type: Input\n }], height: [{\n type: Input\n }], width: [{\n type: Input\n }], horizontal: [{\n type: Input\n }] } });\n\n/**\n * Formats a label given a date, number or string.\n *\n * @export\n */\nfunction formatLabel(label) {\n if (label instanceof Date) {\n label = label.toLocaleDateString();\n }\n else {\n label = label.toLocaleString();\n }\n return label;\n}\n/**\n * Escapes a label.\n *\n * @export\n */\nfunction escapeLabel(label) {\n return label.toLocaleString().replace(/[&'`\"<>]/g, match => {\n return {\n '&': '&',\n // tslint:disable-next-line: quotemark\n \"'\": ''',\n '`': '`',\n '\"': '"',\n '<': '<',\n '>': '>'\n }[match];\n });\n}\n\nclass LegendEntryComponent {\n constructor() {\n this.isActive = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.toggle = new EventEmitter();\n }\n get trimmedLabel() {\n return this.formattedLabel || '(empty)';\n }\n onMouseEnter() {\n this.activate.emit({ name: this.label });\n }\n onMouseLeave() {\n this.deactivate.emit({ name: this.label });\n }\n}\nLegendEntryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LegendEntryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nLegendEntryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: LegendEntryComponent, selector: \"ngx-charts-legend-entry\", inputs: { color: \"color\", label: \"label\", formattedLabel: \"formattedLabel\", isActive: \"isActive\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\", toggle: \"toggle\" }, host: { listeners: { \"mouseenter\": \"onMouseEnter()\", \"mouseleave\": \"onMouseLeave()\" } }, ngImport: i0, template: `\n \n \n \n {{ trimmedLabel }}\n \n \n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LegendEntryComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'ngx-charts-legend-entry',\n template: `\n \n \n \n {{ trimmedLabel }}\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { color: [{\n type: Input\n }], label: [{\n type: Input\n }], formattedLabel: [{\n type: Input\n }], isActive: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], toggle: [{\n type: Output\n }], onMouseEnter: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseLeave: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nclass LegendComponent {\n constructor(cd) {\n this.cd = cd;\n this.horizontal = false;\n this.labelClick = new EventEmitter();\n this.labelActivate = new EventEmitter();\n this.labelDeactivate = new EventEmitter();\n this.legendEntries = [];\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.cd.markForCheck();\n this.legendEntries = this.getLegendEntries();\n }\n getLegendEntries() {\n const items = [];\n for (const label of this.data) {\n const formattedLabel = formatLabel(label);\n const idx = items.findIndex(i => {\n return i.label === formattedLabel;\n });\n if (idx === -1) {\n items.push({\n label,\n formattedLabel,\n color: this.colors.getColor(label)\n });\n }\n }\n return items;\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.label === d.name;\n });\n return item !== undefined;\n }\n activate(item) {\n this.labelActivate.emit(item);\n }\n deactivate(item) {\n this.labelDeactivate.emit(item);\n }\n trackBy(index, item) {\n return item.label;\n }\n}\nLegendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LegendComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nLegendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: LegendComponent, selector: \"ngx-charts-legend\", inputs: { data: \"data\", title: \"title\", colors: \"colors\", height: \"height\", width: \"width\", activeEntries: \"activeEntries\", horizontal: \"horizontal\" }, outputs: { labelClick: \"labelClick\", labelActivate: \"labelActivate\", labelDeactivate: \"labelDeactivate\" }, usesOnChanges: true, ngImport: i0, template: `\n
\n
0\">\n {{ title }}\n
\n
\n
    \n
  • \n \n \n
  • \n
\n
\n
\n `, isInline: true, styles: [\".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\\n\"], components: [{ type: LegendEntryComponent, selector: \"ngx-charts-legend-entry\", inputs: [\"color\", \"label\", \"formattedLabel\", \"isActive\"], outputs: [\"select\", \"activate\", \"deactivate\", \"toggle\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LegendComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-legend', template: `\n
\n
0\">\n {{ title }}\n
\n
\n
    \n
  • \n \n \n
  • \n
\n
\n
\n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".chart-legend{display:inline-block;padding:0;width:auto!important}.chart-legend .legend-title{white-space:nowrap;overflow:hidden;margin-left:10px;margin-bottom:5px;font-size:14px;font-weight:700}.chart-legend ul,.chart-legend li{padding:0;margin:0;list-style:none}.chart-legend .horizontal-legend li{display:inline-block}.chart-legend .legend-wrap{width:calc(100% - 10px)}.chart-legend .legend-labels{line-height:85%;list-style:none;text-align:left;float:left;width:100%;border-radius:3px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;background:rgba(0,0,0,.05)}.chart-legend .legend-label{cursor:pointer;font-size:90%;margin:8px;color:#afb7c8}.chart-legend .legend-label:hover{color:#000;transition:.2s}.chart-legend .legend-label .active .legend-label-text{color:#000}.chart-legend .legend-label-color{display:inline-block;height:15px;width:15px;margin-right:5px;color:#5b646b;border-radius:3px}.chart-legend .legend-label-text{display:inline-block;vertical-align:top;line-height:15px;font-size:12px;width:calc(100% - 20px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chart-legend .legend-title-text{vertical-align:bottom;display:inline-block;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{\n type: Input\n }], title: [{\n type: Input\n }], colors: [{\n type: Input\n }], height: [{\n type: Input\n }], width: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], horizontal: [{\n type: Input\n }], labelClick: [{\n type: Output\n }], labelActivate: [{\n type: Output\n }], labelDeactivate: [{\n type: Output\n }] } });\n\nclass ChartComponent {\n constructor() {\n this.showLegend = false;\n this.animations = true;\n this.legendLabelClick = new EventEmitter();\n this.legendLabelActivate = new EventEmitter();\n this.legendLabelDeactivate = new EventEmitter();\n this.LegendPosition = LegendPosition;\n this.LegendType = LegendType;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n let legendColumns = 0;\n if (this.showLegend) {\n this.legendType = this.getLegendType();\n if (!this.legendOptions || this.legendOptions.position === LegendPosition.Right) {\n if (this.legendType === LegendType.ScaleLegend) {\n legendColumns = 1;\n }\n else {\n legendColumns = 2;\n }\n }\n }\n const chartColumns = 12 - legendColumns;\n this.chartWidth = Math.floor((this.view[0] * chartColumns) / 12.0);\n this.legendWidth =\n !this.legendOptions || this.legendOptions.position === LegendPosition.Right\n ? Math.floor((this.view[0] * legendColumns) / 12.0)\n : this.chartWidth;\n }\n getLegendType() {\n return this.legendOptions.scaleType === ScaleType.Linear ? LegendType.ScaleLegend : LegendType.Legend;\n }\n}\nChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: ChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: ChartComponent, selector: \"ngx-charts-chart\", inputs: { view: \"view\", showLegend: \"showLegend\", legendOptions: \"legendOptions\", legendType: \"legendType\", activeEntries: \"activeEntries\", animations: \"animations\" }, outputs: { legendLabelClick: \"legendLabelClick\", legendLabelActivate: \"legendLabelActivate\", legendLabelDeactivate: \"legendLabelDeactivate\" }, providers: [TooltipService], usesOnChanges: true, ngImport: i0, template: `\n
\n \n \n \n \n \n \n \n
\n `, isInline: true, components: [{ type: ScaleLegendComponent, selector: \"ngx-charts-scale-legend\", inputs: [\"valueRange\", \"colors\", \"height\", \"width\", \"horizontal\"] }, { type: LegendComponent, selector: \"ngx-charts-legend\", inputs: [\"data\", \"title\", \"colors\", \"height\", \"width\", \"activeEntries\", \"horizontal\"], outputs: [\"labelClick\", \"labelActivate\", \"labelDeactivate\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: ChartComponent, decorators: [{\n type: Component,\n args: [{\n providers: [TooltipService],\n selector: 'ngx-charts-chart',\n template: `\n
\n \n \n \n \n \n \n \n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { view: [{\n type: Input\n }], showLegend: [{\n type: Input\n }], legendOptions: [{\n type: Input\n }], legendType: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], animations: [{\n type: Input\n }], legendLabelClick: [{\n type: Output\n }], legendLabelActivate: [{\n type: Output\n }], legendLabelDeactivate: [{\n type: Output\n }] } });\n\n/**\n * Visibility Observer\n */\nclass VisibilityObserver {\n constructor(element, zone) {\n this.element = element;\n this.zone = zone;\n this.visible = new EventEmitter();\n this.isVisible = false;\n this.runCheck();\n }\n destroy() {\n clearTimeout(this.timeout);\n }\n onVisibilityChange() {\n // trigger zone recalc for columns\n this.zone.run(() => {\n this.isVisible = true;\n this.visible.emit(true);\n });\n }\n runCheck() {\n const check = () => {\n if (!this.element) {\n return;\n }\n // https://davidwalsh.name/offsetheight-visibility\n const { offsetHeight, offsetWidth } = this.element.nativeElement;\n if (offsetHeight && offsetWidth) {\n clearTimeout(this.timeout);\n this.onVisibilityChange();\n }\n else {\n clearTimeout(this.timeout);\n this.zone.runOutsideAngular(() => {\n this.timeout = setTimeout(() => check(), 100);\n });\n }\n };\n this.zone.runOutsideAngular(() => {\n this.timeout = setTimeout(() => check());\n });\n }\n}\nVisibilityObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: VisibilityObserver, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nVisibilityObserver.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.1.0\", type: VisibilityObserver, selector: \"visibility-observer\", outputs: { visible: \"visible\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: VisibilityObserver, decorators: [{\n type: Directive,\n args: [{\n selector: 'visibility-observer'\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { visible: [{\n type: Output\n }] } });\n\nfunction isDate(value) {\n return toString.call(value) === '[object Date]';\n}\nfunction isNumber(value) {\n return typeof value === 'number';\n}\n\nclass BaseChartComponent {\n constructor(chartElement, zone, cd, platformId) {\n this.chartElement = chartElement;\n this.zone = zone;\n this.cd = cd;\n this.platformId = platformId;\n this.scheme = 'cool';\n this.schemeType = ScaleType.Ordinal;\n this.animations = true;\n this.select = new EventEmitter();\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.animations = false;\n }\n }\n ngAfterViewInit() {\n this.bindWindowResizeEvent();\n // listen for visibility of the element for hidden by default scenario\n this.visibilityObserver = new VisibilityObserver(this.chartElement, this.zone);\n this.visibilityObserver.visible.subscribe(this.update.bind(this));\n }\n ngOnDestroy() {\n this.unbindEvents();\n if (this.visibilityObserver) {\n this.visibilityObserver.visible.unsubscribe();\n this.visibilityObserver.destroy();\n }\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n if (this.results) {\n this.results = this.cloneData(this.results);\n }\n else {\n this.results = [];\n }\n if (this.view) {\n this.width = this.view[0];\n this.height = this.view[1];\n }\n else {\n const dims = this.getContainerDims();\n if (dims) {\n this.width = dims.width;\n this.height = dims.height;\n }\n }\n // default values if width or height are 0 or undefined\n if (!this.width) {\n this.width = 600;\n }\n if (!this.height) {\n this.height = 400;\n }\n this.width = Math.floor(this.width);\n this.height = Math.floor(this.height);\n if (this.cd) {\n this.cd.markForCheck();\n }\n }\n getContainerDims() {\n let width;\n let height;\n const hostElem = this.chartElement.nativeElement;\n if (isPlatformBrowser(this.platformId) && hostElem.parentNode !== null) {\n // Get the container dimensions\n const dims = hostElem.parentNode.getBoundingClientRect();\n width = dims.width;\n height = dims.height;\n }\n if (width && height) {\n return { width, height };\n }\n return null;\n }\n /**\n * Converts all date objects that appear as name\n * into formatted date strings\n */\n formatDates() {\n for (let i = 0; i < this.results.length; i++) {\n const g = this.results[i];\n g.label = g.name;\n if (isDate(g.label)) {\n g.label = g.label.toLocaleDateString();\n }\n if (g.series) {\n for (let j = 0; j < g.series.length; j++) {\n const d = g.series[j];\n d.label = d.name;\n if (isDate(d.label)) {\n d.label = d.label.toLocaleDateString();\n }\n }\n }\n }\n }\n unbindEvents() {\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n bindWindowResizeEvent() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const source = fromEvent(window, 'resize');\n const subscription = source.pipe(debounceTime(200)).subscribe(e => {\n this.update();\n if (this.cd) {\n this.cd.markForCheck();\n }\n });\n this.resizeSubscription = subscription;\n }\n /**\n * Clones the data into a new object\n *\n * @memberOf BaseChart\n */\n cloneData(data) {\n const results = [];\n for (const item of data) {\n const copy = {\n name: item['name']\n };\n if (item['value'] !== undefined) {\n copy['value'] = item['value'];\n }\n if (item['series'] !== undefined) {\n copy['series'] = [];\n for (const seriesItem of item['series']) {\n const seriesItemCopy = Object.assign({}, seriesItem);\n copy['series'].push(seriesItemCopy);\n }\n }\n if (item['extra'] !== undefined) {\n copy['extra'] = JSON.parse(JSON.stringify(item['extra']));\n }\n results.push(copy);\n }\n return results;\n }\n}\nBaseChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BaseChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nBaseChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BaseChartComponent, selector: \"base-chart\", inputs: { results: \"results\", view: \"view\", scheme: \"scheme\", schemeType: \"schemeType\", customColors: \"customColors\", animations: \"animations\" }, outputs: { select: \"select\" }, usesOnChanges: true, ngImport: i0, template: `
`, isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BaseChartComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'base-chart',\n template: `
`\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { results: [{\n type: Input\n }], view: [{\n type: Input\n }], scheme: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], customColors: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }] } });\n\nvar Orientation;\n(function (Orientation) {\n Orientation[\"Top\"] = \"top\";\n Orientation[\"Bottom\"] = \"bottom\";\n Orientation[\"Left\"] = \"left\";\n Orientation[\"Right\"] = \"right\";\n})(Orientation || (Orientation = {}));\n\nclass AxisLabelComponent {\n constructor(element) {\n this.textHeight = 25;\n this.margin = 5;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.strokeWidth = '0.01';\n this.textAnchor = 'middle';\n this.transform = '';\n switch (this.orient) {\n case Orientation.Top:\n this.y = this.offset;\n this.x = this.width / 2;\n break;\n case Orientation.Bottom:\n this.y = this.offset;\n this.x = this.width / 2;\n break;\n case Orientation.Left:\n this.y = -(this.offset + this.textHeight + this.margin);\n this.x = -this.height / 2;\n this.transform = 'rotate(270)';\n break;\n case Orientation.Right:\n this.y = this.offset + this.margin;\n this.x = -this.height / 2;\n this.transform = 'rotate(270)';\n break;\n default:\n }\n }\n}\nAxisLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AxisLabelComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nAxisLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: AxisLabelComponent, selector: \"g[ngx-charts-axis-label]\", inputs: { orient: \"orient\", label: \"label\", offset: \"offset\", width: \"width\", height: \"height\" }, usesOnChanges: true, ngImport: i0, template: `\n \n {{ label }}\n \n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AxisLabelComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-axis-label]',\n template: `\n \n {{ label }}\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { orient: [{\n type: Input\n }], label: [{\n type: Input\n }], offset: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }] } });\n\nfunction trimLabel(s, max = 16) {\n if (typeof s !== 'string') {\n if (typeof s === 'number') {\n return s + '';\n }\n else {\n return '';\n }\n }\n s = s.trim();\n if (s.length <= max) {\n return s;\n }\n else {\n return `${s.slice(0, max)}...`;\n }\n}\n\nfunction reduceTicks(ticks, maxTicks) {\n if (ticks.length > maxTicks) {\n const reduced = [];\n const modulus = Math.floor(ticks.length / maxTicks);\n for (let i = 0; i < ticks.length; i++) {\n if (i % modulus === 0) {\n reduced.push(ticks[i]);\n }\n }\n ticks = reduced;\n }\n return ticks;\n}\n\nvar TextAnchor;\n(function (TextAnchor) {\n TextAnchor[\"Start\"] = \"start\";\n TextAnchor[\"Middle\"] = \"middle\";\n TextAnchor[\"End\"] = \"end\";\n})(TextAnchor || (TextAnchor = {}));\n\nclass XAxisTicksComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.tickArguments = [5];\n this.tickStroke = '#ccc';\n this.trimTicks = true;\n this.maxTickLength = 16;\n this.showGridLines = false;\n this.rotateTicks = true;\n this.dimensionsChanged = new EventEmitter();\n this.verticalSpacing = 20;\n this.rotateLabels = false;\n this.innerTickSize = 6;\n this.outerTickSize = 6;\n this.tickPadding = 3;\n this.textAnchor = TextAnchor.Middle;\n this.maxTicksLength = 0;\n this.maxAllowedLength = 16;\n this.height = 0;\n this.approxHeight = 10;\n }\n ngOnChanges(changes) {\n this.update();\n }\n ngAfterViewInit() {\n setTimeout(() => this.updateDims());\n }\n updateDims() {\n if (!isPlatformBrowser(this.platformId)) {\n // for SSR, use approximate value instead of measured\n this.dimensionsChanged.emit({ height: this.approxHeight });\n return;\n }\n const height = parseInt(this.ticksElement.nativeElement.getBoundingClientRect().height, 10);\n if (height !== this.height) {\n this.height = height;\n this.dimensionsChanged.emit({ height: this.height });\n setTimeout(() => this.updateDims());\n }\n }\n update() {\n const scale = this.scale;\n this.ticks = this.getTicks();\n if (this.tickFormatting) {\n this.tickFormat = this.tickFormatting;\n }\n else if (scale.tickFormat) {\n this.tickFormat = scale.tickFormat.apply(scale, this.tickArguments);\n }\n else {\n this.tickFormat = function (d) {\n if (d.constructor.name === 'Date') {\n return d.toLocaleDateString();\n }\n return d.toLocaleString();\n };\n }\n const angle = this.rotateTicks ? this.getRotationAngle(this.ticks) : null;\n this.adjustedScale = this.scale.bandwidth\n ? function (d) {\n return this.scale(d) + this.scale.bandwidth() * 0.5;\n }\n : this.scale;\n this.textTransform = '';\n if (angle && angle !== 0) {\n this.textTransform = `rotate(${angle})`;\n this.textAnchor = TextAnchor.End;\n this.verticalSpacing = 10;\n }\n else {\n this.textAnchor = TextAnchor.Middle;\n }\n setTimeout(() => this.updateDims());\n }\n getRotationAngle(ticks) {\n let angle = 0;\n this.maxTicksLength = 0;\n for (let i = 0; i < ticks.length; i++) {\n const tick = this.tickFormat(ticks[i]).toString();\n let tickLength = tick.length;\n if (this.trimTicks) {\n tickLength = this.tickTrim(tick).length;\n }\n if (tickLength > this.maxTicksLength) {\n this.maxTicksLength = tickLength;\n }\n }\n const len = Math.min(this.maxTicksLength, this.maxAllowedLength);\n const charWidth = 7; // need to measure this\n const wordWidth = len * charWidth;\n let baseWidth = wordWidth;\n const maxBaseWidth = Math.floor(this.width / ticks.length);\n // calculate optimal angle\n while (baseWidth > maxBaseWidth && angle > -90) {\n angle -= 30;\n baseWidth = Math.cos(angle * (Math.PI / 180)) * wordWidth;\n }\n this.approxHeight = Math.max(Math.abs(Math.sin(angle * (Math.PI / 180)) * wordWidth), 10);\n return angle;\n }\n getTicks() {\n let ticks;\n const maxTicks = this.getMaxTicks(20);\n const maxScaleTicks = this.getMaxTicks(100);\n if (this.tickValues) {\n ticks = this.tickValues;\n }\n else if (this.scale.ticks) {\n ticks = this.scale.ticks.apply(this.scale, [maxScaleTicks]);\n }\n else {\n ticks = this.scale.domain();\n ticks = reduceTicks(ticks, maxTicks);\n }\n return ticks;\n }\n getMaxTicks(tickWidth) {\n return Math.floor(this.width / tickWidth);\n }\n tickTransform(tick) {\n return 'translate(' + this.adjustedScale(tick) + ',' + this.verticalSpacing + ')';\n }\n gridLineTransform() {\n return `translate(0,${-this.verticalSpacing - 5})`;\n }\n tickTrim(label) {\n return this.trimTicks ? trimLabel(label, this.maxTickLength) : label;\n }\n}\nXAxisTicksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: XAxisTicksComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nXAxisTicksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: XAxisTicksComponent, selector: \"g[ngx-charts-x-axis-ticks]\", inputs: { scale: \"scale\", orient: \"orient\", tickArguments: \"tickArguments\", tickValues: \"tickValues\", tickStroke: \"tickStroke\", trimTicks: \"trimTicks\", maxTickLength: \"maxTickLength\", tickFormatting: \"tickFormatting\", showGridLines: \"showGridLines\", gridLineHeight: \"gridLineHeight\", width: \"width\", rotateTicks: \"rotateTicks\" }, outputs: { dimensionsChanged: \"dimensionsChanged\" }, viewQueries: [{ propertyName: \"ticksElement\", first: true, predicate: [\"ticksel\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n \n \n {{ tickFormat(tick) }}\n \n {{ tickTrim(tickFormat(tick)) }}\n \n \n \n\n \n \n \n \n \n `, isInline: true, directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: XAxisTicksComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-x-axis-ticks]',\n template: `\n \n \n {{ tickFormat(tick) }}\n \n {{ tickTrim(tickFormat(tick)) }}\n \n \n \n\n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { scale: [{\n type: Input\n }], orient: [{\n type: Input\n }], tickArguments: [{\n type: Input\n }], tickValues: [{\n type: Input\n }], tickStroke: [{\n type: Input\n }], trimTicks: [{\n type: Input\n }], maxTickLength: [{\n type: Input\n }], tickFormatting: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], gridLineHeight: [{\n type: Input\n }], width: [{\n type: Input\n }], rotateTicks: [{\n type: Input\n }], dimensionsChanged: [{\n type: Output\n }], ticksElement: [{\n type: ViewChild,\n args: ['ticksel']\n }] } });\n\nclass XAxisComponent {\n constructor() {\n this.rotateTicks = true;\n this.showGridLines = false;\n this.xOrient = Orientation.Bottom;\n this.xAxisOffset = 0;\n this.dimensionsChanged = new EventEmitter();\n this.xAxisClassName = 'x axis';\n this.labelOffset = 0;\n this.fill = 'none';\n this.stroke = 'stroke';\n this.tickStroke = '#ccc';\n this.strokeWidth = 'none';\n this.padding = 5;\n this.orientation = Orientation;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.transform = `translate(0,${this.xAxisOffset + this.padding + this.dims.height})`;\n if (typeof this.xAxisTickCount !== 'undefined') {\n this.tickArguments = [this.xAxisTickCount];\n }\n }\n emitTicksHeight({ height }) {\n const newLabelOffset = height + 25 + 5;\n if (newLabelOffset !== this.labelOffset) {\n this.labelOffset = newLabelOffset;\n setTimeout(() => {\n this.dimensionsChanged.emit({ height });\n }, 0);\n }\n }\n}\nXAxisComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: XAxisComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nXAxisComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: { xScale: \"xScale\", dims: \"dims\", trimTicks: \"trimTicks\", rotateTicks: \"rotateTicks\", maxTickLength: \"maxTickLength\", tickFormatting: \"tickFormatting\", showGridLines: \"showGridLines\", showLabel: \"showLabel\", labelText: \"labelText\", ticks: \"ticks\", xAxisTickCount: \"xAxisTickCount\", xOrient: \"xOrient\", xAxisOffset: \"xAxisOffset\" }, outputs: { dimensionsChanged: \"dimensionsChanged\" }, viewQueries: [{ propertyName: \"ticksComponent\", first: true, predicate: XAxisTicksComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n `, isInline: true, components: [{ type: XAxisTicksComponent, selector: \"g[ngx-charts-x-axis-ticks]\", inputs: [\"scale\", \"orient\", \"tickArguments\", \"tickValues\", \"tickStroke\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"gridLineHeight\", \"width\", \"rotateTicks\"], outputs: [\"dimensionsChanged\"] }, { type: AxisLabelComponent, selector: \"g[ngx-charts-axis-label]\", inputs: [\"orient\", \"label\", \"offset\", \"width\", \"height\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: XAxisComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-x-axis]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { xScale: [{\n type: Input\n }], dims: [{\n type: Input\n }], trimTicks: [{\n type: Input\n }], rotateTicks: [{\n type: Input\n }], maxTickLength: [{\n type: Input\n }], tickFormatting: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], showLabel: [{\n type: Input\n }], labelText: [{\n type: Input\n }], ticks: [{\n type: Input\n }], xAxisTickCount: [{\n type: Input\n }], xOrient: [{\n type: Input\n }], xAxisOffset: [{\n type: Input\n }], dimensionsChanged: [{\n type: Output\n }], ticksComponent: [{\n type: ViewChild,\n args: [XAxisTicksComponent]\n }] } });\n\n/**\n * Generates a rounded rectanglar path\n *\n * @export\n * @param x, y, w, h, r, tl, tr, bl, br\n */\nfunction roundedRect(x, y, w, h, r, [tl, tr, bl, br]) {\n let retval = '';\n w = Math.floor(w);\n h = Math.floor(h);\n w = w === 0 ? 1 : w;\n h = h === 0 ? 1 : h;\n retval = `M${[x + r, y]}`;\n retval += `h${w - 2 * r}`;\n if (tr) {\n retval += `a${[r, r]} 0 0 1 ${[r, r]}`;\n }\n else {\n retval += `h${r}v${r}`;\n }\n retval += `v${h - 2 * r}`;\n if (br) {\n retval += `a${[r, r]} 0 0 1 ${[-r, r]}`;\n }\n else {\n retval += `v${r}h${-r}`;\n }\n retval += `h${2 * r - w}`;\n if (bl) {\n retval += `a${[r, r]} 0 0 1 ${[-r, -r]}`;\n }\n else {\n retval += `h${-r}v${-r}`;\n }\n retval += `v${2 * r - h}`;\n if (tl) {\n retval += `a${[r, r]} 0 0 1 ${[r, -r]}`;\n }\n else {\n retval += `v${-r}h${r}`;\n }\n retval += `z`;\n return retval;\n}\n\nclass YAxisTicksComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.tickArguments = [5];\n this.tickStroke = '#ccc';\n this.trimTicks = true;\n this.maxTickLength = 16;\n this.showGridLines = false;\n this.showRefLabels = false;\n this.showRefLines = false;\n this.dimensionsChanged = new EventEmitter();\n this.innerTickSize = 6;\n this.tickPadding = 3;\n this.verticalSpacing = 20;\n this.textAnchor = TextAnchor.Middle;\n this.width = 0;\n this.outerTickSize = 6;\n this.rotateLabels = false;\n this.referenceLineLength = 0;\n this.Orientation = Orientation;\n }\n ngOnChanges(changes) {\n this.update();\n }\n ngAfterViewInit() {\n setTimeout(() => this.updateDims());\n }\n updateDims() {\n if (!isPlatformBrowser(this.platformId)) {\n // for SSR, use approximate value instead of measured\n this.width = this.getApproximateAxisWidth();\n this.dimensionsChanged.emit({ width: this.width });\n return;\n }\n const width = parseInt(this.ticksElement.nativeElement.getBoundingClientRect().width, 10);\n if (width !== this.width) {\n this.width = width;\n this.dimensionsChanged.emit({ width });\n setTimeout(() => this.updateDims());\n }\n }\n update() {\n let scale;\n const sign = this.orient === Orientation.Top || this.orient === Orientation.Right ? -1 : 1;\n this.tickSpacing = Math.max(this.innerTickSize, 0) + this.tickPadding;\n scale = this.scale;\n this.ticks = this.getTicks();\n if (this.tickFormatting) {\n this.tickFormat = this.tickFormatting;\n }\n else if (scale.tickFormat) {\n this.tickFormat = scale.tickFormat.apply(scale, this.tickArguments);\n }\n else {\n this.tickFormat = function (d) {\n if (d.constructor.name === 'Date') {\n return d.toLocaleDateString();\n }\n return d.toLocaleString();\n };\n }\n this.adjustedScale = scale.bandwidth\n ? function (d) {\n return scale(d) + scale.bandwidth() * 0.5;\n }\n : scale;\n if (this.showRefLines && this.referenceLines) {\n this.setReferencelines();\n }\n switch (this.orient) {\n case Orientation.Top:\n this.transform = function (tick) {\n return 'translate(' + this.adjustedScale(tick) + ',0)';\n };\n this.textAnchor = TextAnchor.Middle;\n this.y2 = this.innerTickSize * sign;\n this.y1 = this.tickSpacing * sign;\n this.dy = sign < 0 ? '0em' : '.71em';\n break;\n case Orientation.Bottom:\n this.transform = function (tick) {\n return 'translate(' + this.adjustedScale(tick) + ',0)';\n };\n this.textAnchor = TextAnchor.Middle;\n this.y2 = this.innerTickSize * sign;\n this.y1 = this.tickSpacing * sign;\n this.dy = sign < 0 ? '0em' : '.71em';\n break;\n case Orientation.Left:\n this.transform = function (tick) {\n return 'translate(0,' + this.adjustedScale(tick) + ')';\n };\n this.textAnchor = TextAnchor.End;\n this.x2 = this.innerTickSize * -sign;\n this.x1 = this.tickSpacing * -sign;\n this.dy = '.32em';\n break;\n case Orientation.Right:\n this.transform = function (tick) {\n return 'translate(0,' + this.adjustedScale(tick) + ')';\n };\n this.textAnchor = TextAnchor.Start;\n this.x2 = this.innerTickSize * -sign;\n this.x1 = this.tickSpacing * -sign;\n this.dy = '.32em';\n break;\n default:\n }\n setTimeout(() => this.updateDims());\n }\n setReferencelines() {\n this.refMin = this.adjustedScale(Math.min.apply(null, this.referenceLines.map(item => item.value)));\n this.refMax = this.adjustedScale(Math.max.apply(null, this.referenceLines.map(item => item.value)));\n this.referenceLineLength = this.referenceLines.length;\n this.referenceAreaPath = roundedRect(0, this.refMax, this.gridLineWidth, this.refMin - this.refMax, 0, [\n false,\n false,\n false,\n false\n ]);\n }\n getTicks() {\n let ticks;\n const maxTicks = this.getMaxTicks(20);\n const maxScaleTicks = this.getMaxTicks(50);\n if (this.tickValues) {\n ticks = this.tickValues;\n }\n else if (this.scale.ticks) {\n ticks = this.scale.ticks.apply(this.scale, [maxScaleTicks]);\n }\n else {\n ticks = this.scale.domain();\n ticks = reduceTicks(ticks, maxTicks);\n }\n return ticks;\n }\n getMaxTicks(tickHeight) {\n return Math.floor(this.height / tickHeight);\n }\n tickTransform(tick) {\n return `translate(${this.adjustedScale(tick)},${this.verticalSpacing})`;\n }\n gridLineTransform() {\n return `translate(5,0)`;\n }\n tickTrim(label) {\n return this.trimTicks ? trimLabel(label, this.maxTickLength) : label;\n }\n getApproximateAxisWidth() {\n const maxChars = Math.max(...this.ticks.map(t => this.tickTrim(this.tickFormat(t)).length));\n const charWidth = 7;\n return maxChars * charWidth;\n }\n}\nYAxisTicksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: YAxisTicksComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nYAxisTicksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: YAxisTicksComponent, selector: \"g[ngx-charts-y-axis-ticks]\", inputs: { scale: \"scale\", orient: \"orient\", tickArguments: \"tickArguments\", tickValues: \"tickValues\", tickStroke: \"tickStroke\", trimTicks: \"trimTicks\", maxTickLength: \"maxTickLength\", tickFormatting: \"tickFormatting\", showGridLines: \"showGridLines\", gridLineWidth: \"gridLineWidth\", height: \"height\", referenceLines: \"referenceLines\", showRefLabels: \"showRefLabels\", showRefLines: \"showRefLines\" }, outputs: { dimensionsChanged: \"dimensionsChanged\" }, viewQueries: [{ propertyName: \"ticksElement\", first: true, predicate: [\"ticksel\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n \n \n {{ tickFormat(tick) }}\n \n {{ tickTrim(tickFormat(tick)) }}\n \n \n \n\n 1 && refMax && refMin && showRefLines\"\n class=\"reference-area\"\n [attr.d]=\"referenceAreaPath\"\n [attr.transform]=\"gridLineTransform()\"\n />\n \n \n \n \n \n \n\n \n \n \n \n {{ tickTrim(tickFormat(refLine.value)) }}\n \n {{ refLine.name }}\n \n \n \n \n `, isInline: true, directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: YAxisTicksComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-y-axis-ticks]',\n template: `\n \n \n {{ tickFormat(tick) }}\n \n {{ tickTrim(tickFormat(tick)) }}\n \n \n \n\n 1 && refMax && refMin && showRefLines\"\n class=\"reference-area\"\n [attr.d]=\"referenceAreaPath\"\n [attr.transform]=\"gridLineTransform()\"\n />\n \n \n \n \n \n \n\n \n \n \n \n {{ tickTrim(tickFormat(refLine.value)) }}\n \n {{ refLine.name }}\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { scale: [{\n type: Input\n }], orient: [{\n type: Input\n }], tickArguments: [{\n type: Input\n }], tickValues: [{\n type: Input\n }], tickStroke: [{\n type: Input\n }], trimTicks: [{\n type: Input\n }], maxTickLength: [{\n type: Input\n }], tickFormatting: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], gridLineWidth: [{\n type: Input\n }], height: [{\n type: Input\n }], referenceLines: [{\n type: Input\n }], showRefLabels: [{\n type: Input\n }], showRefLines: [{\n type: Input\n }], dimensionsChanged: [{\n type: Output\n }], ticksElement: [{\n type: ViewChild,\n args: ['ticksel']\n }] } });\n\nclass YAxisComponent {\n constructor() {\n this.showGridLines = false;\n this.yOrient = Orientation.Left;\n this.yAxisOffset = 0;\n this.dimensionsChanged = new EventEmitter();\n this.yAxisClassName = 'y axis';\n this.labelOffset = 15;\n this.fill = 'none';\n this.stroke = '#CCC';\n this.tickStroke = '#CCC';\n this.strokeWidth = 1;\n this.padding = 5;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.offset = -(this.yAxisOffset + this.padding);\n if (this.yOrient === Orientation.Right) {\n this.labelOffset = 65;\n this.transform = `translate(${this.offset + this.dims.width} , 0)`;\n }\n else {\n this.offset = this.offset;\n this.transform = `translate(${this.offset} , 0)`;\n }\n if (this.yAxisTickCount !== undefined) {\n this.tickArguments = [this.yAxisTickCount];\n }\n }\n emitTicksWidth({ width }) {\n if (width !== this.labelOffset && this.yOrient === Orientation.Right) {\n this.labelOffset = width + this.labelOffset;\n setTimeout(() => {\n this.dimensionsChanged.emit({ width });\n }, 0);\n }\n else if (width !== this.labelOffset) {\n this.labelOffset = width;\n setTimeout(() => {\n this.dimensionsChanged.emit({ width });\n }, 0);\n }\n }\n}\nYAxisComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: YAxisComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nYAxisComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: { yScale: \"yScale\", dims: \"dims\", trimTicks: \"trimTicks\", maxTickLength: \"maxTickLength\", tickFormatting: \"tickFormatting\", ticks: \"ticks\", showGridLines: \"showGridLines\", showLabel: \"showLabel\", labelText: \"labelText\", yAxisTickCount: \"yAxisTickCount\", yOrient: \"yOrient\", referenceLines: \"referenceLines\", showRefLines: \"showRefLines\", showRefLabels: \"showRefLabels\", yAxisOffset: \"yAxisOffset\" }, outputs: { dimensionsChanged: \"dimensionsChanged\" }, viewQueries: [{ propertyName: \"ticksComponent\", first: true, predicate: YAxisTicksComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n \n \n\n \n \n `, isInline: true, components: [{ type: YAxisTicksComponent, selector: \"g[ngx-charts-y-axis-ticks]\", inputs: [\"scale\", \"orient\", \"tickArguments\", \"tickValues\", \"tickStroke\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"gridLineWidth\", \"height\", \"referenceLines\", \"showRefLabels\", \"showRefLines\"], outputs: [\"dimensionsChanged\"] }, { type: AxisLabelComponent, selector: \"g[ngx-charts-axis-label]\", inputs: [\"orient\", \"label\", \"offset\", \"width\", \"height\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: YAxisComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-y-axis]',\n template: `\n \n \n\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { yScale: [{\n type: Input\n }], dims: [{\n type: Input\n }], trimTicks: [{\n type: Input\n }], maxTickLength: [{\n type: Input\n }], tickFormatting: [{\n type: Input\n }], ticks: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], showLabel: [{\n type: Input\n }], labelText: [{\n type: Input\n }], yAxisTickCount: [{\n type: Input\n }], yOrient: [{\n type: Input\n }], referenceLines: [{\n type: Input\n }], showRefLines: [{\n type: Input\n }], showRefLabels: [{\n type: Input\n }], yAxisOffset: [{\n type: Input\n }], dimensionsChanged: [{\n type: Output\n }], ticksComponent: [{\n type: ViewChild,\n args: [YAxisTicksComponent]\n }] } });\n\nclass AxesModule {\n}\nAxesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AxesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nAxesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AxesModule, declarations: [AxisLabelComponent, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent], imports: [CommonModule], exports: [AxisLabelComponent, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent] });\nAxesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AxesModule, imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AxesModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [AxisLabelComponent, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent],\n exports: [AxisLabelComponent, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent]\n }]\n }] });\n\nvar StyleTypes;\n(function (StyleTypes) {\n StyleTypes[\"popover\"] = \"popover\";\n StyleTypes[\"tooltip\"] = \"tooltip\";\n})(StyleTypes || (StyleTypes = {}));\n\nvar ShowTypes;\n(function (ShowTypes) {\n ShowTypes[ShowTypes[\"all\"] = 'all'] = \"all\";\n ShowTypes[ShowTypes[\"focus\"] = 'focus'] = \"focus\";\n ShowTypes[ShowTypes[\"mouseover\"] = 'mouseover'] = \"mouseover\";\n})(ShowTypes || (ShowTypes = {}));\n\nclass TooltipDirective {\n constructor(tooltipService, viewContainerRef, renderer) {\n this.tooltipService = tooltipService;\n this.viewContainerRef = viewContainerRef;\n this.renderer = renderer;\n this.tooltipCssClass = '';\n this.tooltipAppendToBody = true;\n this.tooltipSpacing = 10;\n this.tooltipDisabled = false;\n this.tooltipShowCaret = true;\n this.tooltipPlacement = PlacementTypes.Top;\n this.tooltipAlignment = PlacementTypes.Center;\n this.tooltipType = StyleTypes.popover;\n this.tooltipCloseOnClickOutside = true;\n this.tooltipCloseOnMouseLeave = true;\n this.tooltipHideTimeout = 300;\n this.tooltipShowTimeout = 100;\n this.tooltipShowEvent = ShowTypes.all;\n this.tooltipImmediateExit = false;\n this.show = new EventEmitter();\n this.hide = new EventEmitter();\n }\n get listensForFocus() {\n return this.tooltipShowEvent === ShowTypes.all || this.tooltipShowEvent === ShowTypes.focus;\n }\n get listensForHover() {\n return this.tooltipShowEvent === ShowTypes.all || this.tooltipShowEvent === ShowTypes.mouseover;\n }\n ngOnDestroy() {\n this.hideTooltip(true);\n }\n onFocus() {\n if (this.listensForFocus) {\n this.showTooltip();\n }\n }\n onBlur() {\n if (this.listensForFocus) {\n this.hideTooltip(true);\n }\n }\n onMouseEnter() {\n if (this.listensForHover) {\n this.showTooltip();\n }\n }\n onMouseLeave(target) {\n if (this.listensForHover && this.tooltipCloseOnMouseLeave) {\n clearTimeout(this.timeout);\n if (this.component) {\n const contentDom = this.component.instance.element.nativeElement;\n const contains = contentDom.contains(target);\n if (contains)\n return;\n }\n this.hideTooltip(this.tooltipImmediateExit);\n }\n }\n onMouseClick() {\n if (this.listensForHover) {\n this.hideTooltip(true);\n }\n }\n showTooltip(immediate) {\n if (this.component || this.tooltipDisabled)\n return;\n const time = immediate\n ? 0\n : this.tooltipShowTimeout + (navigator.userAgent.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/) ? 300 : 0);\n clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.tooltipService.destroyAll();\n const options = this.createBoundOptions();\n this.component = this.tooltipService.create(options);\n // add a tiny timeout to avoid event re-triggers\n setTimeout(() => {\n if (this.component) {\n this.addHideListeners(this.component.instance.element.nativeElement);\n }\n }, 10);\n this.show.emit(true);\n }, time);\n }\n addHideListeners(tooltip) {\n // on mouse enter, cancel the hide triggered by the leave\n this.mouseEnterContentEvent = this.renderer.listen(tooltip, 'mouseenter', () => {\n clearTimeout(this.timeout);\n });\n // content mouse leave listener\n if (this.tooltipCloseOnMouseLeave) {\n this.mouseLeaveContentEvent = this.renderer.listen(tooltip, 'mouseleave', () => {\n this.hideTooltip(this.tooltipImmediateExit);\n });\n }\n // content close on click outside\n if (this.tooltipCloseOnClickOutside) {\n this.documentClickEvent = this.renderer.listen('window', 'click', event => {\n const contains = tooltip.contains(event.target);\n if (!contains)\n this.hideTooltip();\n });\n }\n }\n hideTooltip(immediate = false) {\n if (!this.component)\n return;\n const destroyFn = () => {\n // remove events\n if (this.mouseLeaveContentEvent)\n this.mouseLeaveContentEvent();\n if (this.mouseEnterContentEvent)\n this.mouseEnterContentEvent();\n if (this.documentClickEvent)\n this.documentClickEvent();\n // emit events\n this.hide.emit(true);\n // destroy component\n this.tooltipService.destroy(this.component);\n this.component = undefined;\n };\n clearTimeout(this.timeout);\n if (!immediate) {\n this.timeout = setTimeout(destroyFn, this.tooltipHideTimeout);\n }\n else {\n destroyFn();\n }\n }\n createBoundOptions() {\n return {\n title: this.tooltipTitle,\n template: this.tooltipTemplate,\n host: this.viewContainerRef.element,\n placement: this.tooltipPlacement,\n alignment: this.tooltipAlignment,\n type: this.tooltipType,\n showCaret: this.tooltipShowCaret,\n cssClass: this.tooltipCssClass,\n spacing: this.tooltipSpacing,\n context: this.tooltipContext\n };\n }\n}\nTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipDirective, deps: [{ token: TooltipService }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.1.0\", type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: { tooltipCssClass: \"tooltipCssClass\", tooltipTitle: \"tooltipTitle\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipSpacing: \"tooltipSpacing\", tooltipDisabled: \"tooltipDisabled\", tooltipShowCaret: \"tooltipShowCaret\", tooltipPlacement: \"tooltipPlacement\", tooltipAlignment: \"tooltipAlignment\", tooltipType: \"tooltipType\", tooltipCloseOnClickOutside: \"tooltipCloseOnClickOutside\", tooltipCloseOnMouseLeave: \"tooltipCloseOnMouseLeave\", tooltipHideTimeout: \"tooltipHideTimeout\", tooltipShowTimeout: \"tooltipShowTimeout\", tooltipTemplate: \"tooltipTemplate\", tooltipShowEvent: \"tooltipShowEvent\", tooltipContext: \"tooltipContext\", tooltipImmediateExit: \"tooltipImmediateExit\" }, outputs: { show: \"show\", hide: \"hide\" }, host: { listeners: { \"focusin\": \"onFocus()\", \"blur\": \"onBlur()\", \"mouseenter\": \"onMouseEnter()\", \"mouseleave\": \"onMouseLeave($event.target)\", \"click\": \"onMouseClick()\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[ngx-tooltip]' }]\n }], ctorParameters: function () { return [{ type: TooltipService }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }]; }, propDecorators: { tooltipCssClass: [{\n type: Input\n }], tooltipTitle: [{\n type: Input\n }], tooltipAppendToBody: [{\n type: Input\n }], tooltipSpacing: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipShowCaret: [{\n type: Input\n }], tooltipPlacement: [{\n type: Input\n }], tooltipAlignment: [{\n type: Input\n }], tooltipType: [{\n type: Input\n }], tooltipCloseOnClickOutside: [{\n type: Input\n }], tooltipCloseOnMouseLeave: [{\n type: Input\n }], tooltipHideTimeout: [{\n type: Input\n }], tooltipShowTimeout: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], tooltipShowEvent: [{\n type: Input\n }], tooltipContext: [{\n type: Input\n }], tooltipImmediateExit: [{\n type: Input\n }], show: [{\n type: Output\n }], hide: [{\n type: Output\n }], onFocus: [{\n type: HostListener,\n args: ['focusin']\n }], onBlur: [{\n type: HostListener,\n args: ['blur']\n }], onMouseEnter: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseLeave: [{\n type: HostListener,\n args: ['mouseleave', ['$event.target']]\n }], onMouseClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n\nclass TooltipModule {\n}\nTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipModule, declarations: [TooltipContentComponent, TooltipDirective], imports: [CommonModule], exports: [TooltipContentComponent, TooltipDirective] });\nTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipModule, providers: [InjectionService, TooltipService], imports: [[CommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [TooltipContentComponent, TooltipDirective],\n providers: [InjectionService, TooltipService],\n exports: [TooltipContentComponent, TooltipDirective],\n imports: [CommonModule],\n entryComponents: [TooltipContentComponent]\n }]\n }] });\n\nconst cache = {};\n/**\n * Generates a short id.\n *\n * Description:\n * A 4-character alphanumeric sequence (364 = 1.6 million)\n * This should only be used for JavaScript specific models.\n * http://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js\n *\n * Example: `ebgf`\n */\nfunction id() {\n let newId = ('0000' + ((Math.random() * Math.pow(36, 4)) << 0).toString(36)).slice(-4);\n // append a 'a' because neo gets mad\n newId = `a${newId}`;\n // ensure not already used\n if (!cache[newId]) {\n cache[newId] = true;\n return newId;\n }\n return id();\n}\n\nvar BarOrientation;\n(function (BarOrientation) {\n BarOrientation[\"Vertical\"] = \"vertical\";\n BarOrientation[\"Horizontal\"] = \"horizontal\";\n})(BarOrientation || (BarOrientation = {}));\n\nclass SvgLinearGradientComponent {\n constructor() {\n this.orientation = BarOrientation.Vertical;\n }\n ngOnChanges(changes) {\n this.x1 = '0%';\n this.x2 = '0%';\n this.y1 = '0%';\n this.y2 = '0%';\n if (this.orientation === BarOrientation.Horizontal) {\n this.x2 = '100%';\n }\n else if (this.orientation === BarOrientation.Vertical) {\n this.y1 = '100%';\n }\n }\n}\nSvgLinearGradientComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: SvgLinearGradientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nSvgLinearGradientComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: SvgLinearGradientComponent, selector: \"g[ngx-charts-svg-linear-gradient]\", inputs: { orientation: \"orientation\", name: \"name\", stops: \"stops\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n `, isInline: true, directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: SvgLinearGradientComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-svg-linear-gradient]',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { orientation: [{\n type: Input\n }], name: [{\n type: Input\n }], stops: [{\n type: Input\n }] } });\n\nclass CircleComponent {\n constructor() {\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n }\n onClick() {\n this.select.emit(this.data);\n }\n onMouseEnter() {\n this.activate.emit(this.data);\n }\n onMouseLeave() {\n this.deactivate.emit(this.data);\n }\n ngOnChanges(changes) {\n this.classNames = Array.isArray(this.classNames) ? this.classNames.join(' ') : '';\n this.classNames += 'circle';\n }\n}\nCircleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CircleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCircleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: CircleComponent, selector: \"g[ngx-charts-circle]\", inputs: { cx: \"cx\", cy: \"cy\", r: \"r\", fill: \"fill\", stroke: \"stroke\", data: \"data\", classNames: \"classNames\", circleOpacity: \"circleOpacity\", pointerEvents: \"pointerEvents\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"click\": \"onClick()\", \"mouseenter\": \"onMouseEnter()\", \"mouseleave\": \"onMouseLeave()\" } }, usesOnChanges: true, ngImport: i0, template: `\n \n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CircleComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-circle]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { cx: [{\n type: Input\n }], cy: [{\n type: Input\n }], r: [{\n type: Input\n }], fill: [{\n type: Input\n }], stroke: [{\n type: Input\n }], data: [{\n type: Input\n }], classNames: [{\n type: Input\n }], circleOpacity: [{\n type: Input\n }], pointerEvents: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], onClick: [{\n type: HostListener,\n args: ['click']\n }], onMouseEnter: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseLeave: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nvar SeriesType;\n(function (SeriesType) {\n SeriesType[\"Standard\"] = \"standard\";\n SeriesType[\"Stacked\"] = \"stacked\";\n})(SeriesType || (SeriesType = {}));\nclass CircleSeriesComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.type = SeriesType.Standard;\n this.tooltipDisabled = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.barVisible = false;\n this.barOrientation = BarOrientation;\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n this.isSSR = false;\n }\n ngOnInit() {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n ngOnChanges() {\n this.update();\n }\n update() {\n this.circle = this.getActiveCircle();\n }\n getActiveCircle() {\n const indexActiveDataPoint = this.data.series.findIndex(d => {\n const label = d.name;\n return label && this.visibleValue && label.toString() === this.visibleValue.toString() && d.value !== undefined;\n });\n if (indexActiveDataPoint === -1) {\n // No valid point is 'active/hovered over' at this moment.\n return undefined;\n }\n return this.mapDataPointToCircle(this.data.series[indexActiveDataPoint], indexActiveDataPoint);\n }\n mapDataPointToCircle(d, i) {\n const seriesName = this.data.name;\n const value = d.value;\n const label = d.name;\n const tooltipLabel = formatLabel(label);\n let cx;\n if (this.scaleType === ScaleType.Time) {\n cx = this.xScale(label);\n }\n else if (this.scaleType === ScaleType.Linear) {\n cx = this.xScale(Number(label));\n }\n else {\n cx = this.xScale(label);\n }\n const cy = this.yScale(this.type === SeriesType.Standard ? value : d.d1);\n const radius = 5;\n const height = this.yScale.range()[0] - cy;\n const opacity = 1;\n let color;\n if (this.colors.scaleType === ScaleType.Linear) {\n if (this.type === SeriesType.Standard) {\n color = this.colors.getColor(value);\n }\n else {\n color = this.colors.getColor(d.d1);\n }\n }\n else {\n color = this.colors.getColor(seriesName);\n }\n const data = Object.assign({}, d, {\n series: seriesName,\n value,\n name: label\n });\n return {\n classNames: [`circle-data-${i}`],\n value,\n label,\n data,\n cx,\n cy,\n radius,\n height,\n tooltipLabel,\n color,\n opacity,\n seriesName,\n gradientStops: this.getGradientStops(color),\n min: d.min,\n max: d.max\n };\n }\n getTooltipText({ tooltipLabel, value, seriesName, min, max }) {\n return `\n ${escapeLabel(seriesName)} • ${escapeLabel(tooltipLabel)}\n ${value.toLocaleString()}${this.getTooltipMinMaxText(min, max)}\n `;\n }\n getTooltipMinMaxText(min, max) {\n if (min !== undefined || max !== undefined) {\n let result = ' (';\n if (min !== undefined) {\n if (max === undefined) {\n result += '≥';\n }\n result += min.toLocaleString();\n if (max !== undefined) {\n result += ' - ';\n }\n }\n else if (max !== undefined) {\n result += '≤';\n }\n if (max !== undefined) {\n result += max.toLocaleString();\n }\n result += ')';\n return result;\n }\n else {\n return '';\n }\n }\n getGradientStops(color) {\n return [\n {\n offset: 0,\n color,\n opacity: 0.2\n },\n {\n offset: 100,\n color,\n opacity: 1\n }\n ];\n }\n onClick(data) {\n this.select.emit(data);\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n activateCircle() {\n this.barVisible = true;\n this.activate.emit({ name: this.data.name });\n }\n deactivateCircle() {\n this.barVisible = false;\n this.circle.opacity = 0;\n this.deactivate.emit({ name: this.data.name });\n }\n}\nCircleSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CircleSeriesComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nCircleSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: CircleSeriesComponent, selector: \"g[ngx-charts-circle-series]\", inputs: { data: \"data\", type: \"type\", xScale: \"xScale\", yScale: \"yScale\", colors: \"colors\", scaleType: \"scaleType\", visibleValue: \"visibleValue\", activeEntries: \"activeEntries\", tooltipDisabled: \"tooltipDisabled\", tooltipTemplate: \"tooltipTemplate\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n `, isInline: true, components: [{ type: SvgLinearGradientComponent, selector: \"g[ngx-charts-svg-linear-gradient]\", inputs: [\"orientation\", \"name\", \"stops\"] }, { type: CircleComponent, selector: \"g[ngx-charts-circle]\", inputs: [\"cx\", \"cy\", \"r\", \"fill\", \"stroke\", \"data\", \"classNames\", \"circleOpacity\", \"pointerEvents\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n opacity: 0\n }),\n animate(250, style({ opacity: 1 }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CircleSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-circle-series]',\n template: `\n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n opacity: 0\n }),\n animate(250, style({ opacity: 1 }))\n ])\n ])\n ]\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { data: [{\n type: Input\n }], type: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], colors: [{\n type: Input\n }], scaleType: [{\n type: Input\n }], visibleValue: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }] } });\n\nclass GridPanelComponent {\n}\nGridPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GridPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nGridPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: GridPanelComponent, selector: \"g[ngx-charts-grid-panel]\", inputs: { width: \"width\", height: \"height\", x: \"x\", y: \"y\" }, ngImport: i0, template: `\n \n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GridPanelComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-grid-panel]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { width: [{\n type: Input\n }], height: [{\n type: Input\n }], x: [{\n type: Input\n }], y: [{\n type: Input\n }] } });\n\nvar ClassEnum;\n(function (ClassEnum) {\n ClassEnum[\"Odd\"] = \"odd\";\n ClassEnum[\"Even\"] = \"even\";\n})(ClassEnum || (ClassEnum = {}));\nclass GridPanelSeriesComponent {\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.gridPanels = this.getGridPanels();\n }\n getGridPanels() {\n return this.data.map(d => {\n let offset;\n let width;\n let height;\n let x;\n let y;\n let className = ClassEnum.Odd;\n if (this.orient === BarOrientation.Vertical) {\n const position = this.xScale(d.name);\n const positionIndex = Number.parseInt((position / this.xScale.step()).toString(), 10);\n if (positionIndex % 2 === 1) {\n className = ClassEnum.Even;\n }\n offset = this.xScale.bandwidth() * this.xScale.paddingInner();\n width = this.xScale.bandwidth() + offset;\n height = this.dims.height;\n x = this.xScale(d.name) - offset / 2;\n y = 0;\n }\n else if (this.orient === BarOrientation.Horizontal) {\n const position = this.yScale(d.name);\n const positionIndex = Number.parseInt((position / this.yScale.step()).toString(), 10);\n if (positionIndex % 2 === 1) {\n className = ClassEnum.Even;\n }\n offset = this.yScale.bandwidth() * this.yScale.paddingInner();\n width = this.dims.width;\n height = this.yScale.bandwidth() + offset;\n x = 0;\n y = this.yScale(d.name) - offset / 2;\n }\n return {\n name: d.name,\n class: className,\n height,\n width,\n x,\n y\n };\n });\n }\n}\nGridPanelSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GridPanelSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nGridPanelSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: GridPanelSeriesComponent, selector: \"g[ngx-charts-grid-panel-series]\", inputs: { data: \"data\", dims: \"dims\", xScale: \"xScale\", yScale: \"yScale\", orient: \"orient\" }, usesOnChanges: true, ngImport: i0, template: `\n \n `, isInline: true, components: [{ type: GridPanelComponent, selector: \"g[ngx-charts-grid-panel]\", inputs: [\"width\", \"height\", \"x\", \"y\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GridPanelSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-grid-panel-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { data: [{\n type: Input\n }], dims: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], orient: [{\n type: Input\n }] } });\n\nclass SvgRadialGradientComponent {\n constructor() {\n this.endOpacity = 1;\n this.cx = 0;\n this.cy = 0;\n }\n get stops() {\n return this.stopsInput || this.stopsDefault;\n }\n set stops(value) {\n this.stopsInput = value;\n }\n ngOnChanges(changes) {\n this.r = '30%';\n if ('color' in changes || 'startOpacity' in changes || 'endOpacity' in changes) {\n this.stopsDefault = [\n {\n offset: 0,\n color: this.color,\n opacity: this.startOpacity\n },\n {\n offset: 100,\n color: this.color,\n opacity: this.endOpacity\n }\n ];\n }\n }\n}\nSvgRadialGradientComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: SvgRadialGradientComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nSvgRadialGradientComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: SvgRadialGradientComponent, selector: \"g[ngx-charts-svg-radial-gradient]\", inputs: { color: \"color\", name: \"name\", startOpacity: \"startOpacity\", endOpacity: \"endOpacity\", cx: \"cx\", cy: \"cy\", stops: \"stops\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n `, isInline: true, directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: SvgRadialGradientComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-svg-radial-gradient]',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { color: [{\n type: Input\n }], name: [{\n type: Input\n }], startOpacity: [{\n type: Input\n }], endOpacity: [{\n type: Input\n }], cx: [{\n type: Input\n }], cy: [{\n type: Input\n }], stops: [{\n type: Input\n }] } });\n\nclass AreaComponent {\n constructor(element) {\n this.opacity = 1;\n this.startOpacity = 0.5;\n this.endOpacity = 1;\n this.gradient = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.animationsLoaded = false;\n this.hasGradient = false;\n this.barOrientation = BarOrientation;\n this.element = element.nativeElement;\n }\n ngOnChanges() {\n this.update();\n if (!this.animationsLoaded) {\n this.loadAnimation();\n this.animationsLoaded = true;\n }\n }\n update() {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n if (this.gradient || this.stops) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n }\n else {\n this.hasGradient = false;\n }\n this.updatePathEl();\n }\n loadAnimation() {\n this.areaPath = this.startingPath;\n setTimeout(this.updatePathEl.bind(this), 100);\n }\n updatePathEl() {\n const node = select(this.element).select('.area');\n if (this.animations) {\n node.transition().duration(750).attr('d', this.path);\n }\n else {\n node.attr('d', this.path);\n }\n }\n getGradient() {\n if (this.stops) {\n return this.stops;\n }\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: this.startOpacity\n },\n {\n offset: 100,\n color: this.fill,\n opacity: this.endOpacity\n }\n ];\n }\n}\nAreaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nAreaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: AreaComponent, selector: \"g[ngx-charts-area]\", inputs: { data: \"data\", path: \"path\", startingPath: \"startingPath\", fill: \"fill\", opacity: \"opacity\", startOpacity: \"startOpacity\", endOpacity: \"endOpacity\", gradient: \"gradient\", stops: \"stops\", animations: \"animations\" }, outputs: { select: \"select\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n `, isInline: true, components: [{ type: SvgLinearGradientComponent, selector: \"g[ngx-charts-svg-linear-gradient]\", inputs: [\"orientation\", \"name\", \"stops\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-area]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { data: [{\n type: Input\n }], path: [{\n type: Input\n }], startingPath: [{\n type: Input\n }], fill: [{\n type: Input\n }], opacity: [{\n type: Input\n }], startOpacity: [{\n type: Input\n }], endOpacity: [{\n type: Input\n }], gradient: [{\n type: Input\n }], stops: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }] } });\n\n// Robert Penner's easeOutExpo\nfunction easeOutExpo(t, b, c, d) {\n return (c * (-Math.pow(2, (-10 * t) / d) + 1) * 1024) / 1023 + b;\n}\n/**\n * Counts from a number to the end incrementally.\n */\nfunction count(countFrom, countTo, countDecimals, countDuration, callback) {\n const startVal = Number(countFrom);\n const endVal = Number(countTo);\n const countDown = startVal > endVal;\n const decimals = Math.max(0, countDecimals);\n const dec = Math.pow(10, decimals);\n const duration = Number(countDuration) * 1000;\n let startTime;\n function runCount(timestamp) {\n let frameVal;\n const progress = timestamp - startTime;\n if (countDown) {\n frameVal = startVal - easeOutExpo(progress, 0, startVal - endVal, duration);\n }\n else {\n frameVal = easeOutExpo(progress, startVal, endVal - startVal, duration);\n }\n if (countDown) {\n frameVal = frameVal < endVal ? endVal : frameVal;\n }\n else {\n frameVal = frameVal > endVal ? endVal : frameVal;\n }\n frameVal = Math.round(frameVal * dec) / dec;\n const tick = progress < duration;\n callback({\n value: frameVal,\n progress,\n timestamp,\n finished: !tick\n });\n if (tick) {\n return requestAnimationFrame(val => runCount(val));\n }\n }\n return requestAnimationFrame(timestamp => {\n startTime = timestamp;\n return runCount(timestamp);\n });\n}\n/**\n * Determine decimals places\n *\n * @export\n */\nfunction decimalChecker(countTo) {\n const endVal = Number(countTo);\n if (endVal % 1 !== 0 && Math.abs(endVal) <= 10) {\n return 2;\n }\n return 0;\n}\n\n/**\n * Count up component\n *\n * Loosely inspired by:\n * - https://github.com/izupet/angular2-counto\n * - https://inorganik.github.io/countUp.js/\n *\n * @export\n */\nclass CountUpDirective {\n constructor(cd, element) {\n this.cd = cd;\n this.countDuration = 1;\n this.countPrefix = '';\n this.countSuffix = '';\n this.countChange = new EventEmitter();\n this.countFinish = new EventEmitter();\n this.value = '';\n this._countDecimals = 0;\n this._countTo = 0;\n this._countFrom = 0;\n this.nativeElement = element.nativeElement;\n }\n set countDecimals(val) {\n this._countDecimals = val;\n }\n get countDecimals() {\n if (this._countDecimals)\n return this._countDecimals;\n return decimalChecker(this.countTo);\n }\n set countTo(val) {\n this._countTo = parseFloat(val);\n this.start();\n }\n get countTo() {\n return this._countTo;\n }\n set countFrom(val) {\n this._countFrom = parseFloat(val);\n this.start();\n }\n get countFrom() {\n return this._countFrom;\n }\n ngOnDestroy() {\n cancelAnimationFrame(this.animationReq);\n }\n start() {\n cancelAnimationFrame(this.animationReq);\n const valueFormatting = this.valueFormatting || (value => `${this.countPrefix}${value.toLocaleString()}${this.countSuffix}`);\n const callback = ({ value, progress, finished }) => {\n this.value = valueFormatting(value);\n this.cd.markForCheck();\n if (!finished)\n this.countChange.emit({ value: this.value, progress });\n if (finished)\n this.countFinish.emit({ value: this.value, progress });\n };\n this.animationReq = count(this.countFrom, this.countTo, this.countDecimals, this.countDuration, callback);\n }\n}\nCountUpDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CountUpDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nCountUpDirective.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: CountUpDirective, selector: \"[ngx-charts-count-up]\", inputs: { countDuration: \"countDuration\", countPrefix: \"countPrefix\", countSuffix: \"countSuffix\", valueFormatting: \"valueFormatting\", countDecimals: \"countDecimals\", countTo: \"countTo\", countFrom: \"countFrom\" }, outputs: { countChange: \"countChange\", countFinish: \"countFinish\" }, ngImport: i0, template: ` {{ value }} `, isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CountUpDirective, decorators: [{\n type: Component,\n args: [{\n selector: '[ngx-charts-count-up]',\n template: ` {{ value }} `\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { countDuration: [{\n type: Input\n }], countPrefix: [{\n type: Input\n }], countSuffix: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], countDecimals: [{\n type: Input\n }], countTo: [{\n type: Input\n }], countFrom: [{\n type: Input\n }], countChange: [{\n type: Output\n }], countFinish: [{\n type: Output\n }] } });\n\n// If we don't check whether 'window' and 'global' variables are defined,\n// code will fail in browser/node with 'variable is undefined' error.\nlet root;\nif (typeof window !== 'undefined') {\n root = window;\n}\nelse if (typeof global !== 'undefined') {\n root = global;\n}\n// tslint:disable-next-line:variable-name\nconst MouseEvent = root.MouseEvent;\nfunction createMouseEvent(name, bubbles = false, cancelable = true) {\n // Calling new of an event does not work correctly on IE. The following is a tested workaround\n // See https://stackoverflow.com/questions/27176983/dispatchevent-not-working-in-ie11\n if (typeof MouseEvent === 'function') {\n // Sane browsers\n return new MouseEvent(name, { bubbles, cancelable });\n }\n else {\n // IE\n const event = document.createEvent('MouseEvent');\n event.initEvent(name, bubbles, cancelable);\n return event;\n }\n}\n\nclass TooltipArea {\n constructor(platformId) {\n this.platformId = platformId;\n this.anchorOpacity = 0;\n this.anchorPos = -1;\n this.anchorValues = [];\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n this.showPercentage = false;\n this.tooltipDisabled = false;\n this.hover = new EventEmitter();\n }\n getValues(xVal) {\n const results = [];\n for (const group of this.results) {\n const item = group.series.find(d => d.name.toString() === xVal.toString());\n let groupName = group.name;\n if (groupName instanceof Date) {\n groupName = groupName.toLocaleDateString();\n }\n if (item) {\n const label = item.name;\n let val = item.value;\n if (this.showPercentage) {\n val = (item.d1 - item.d0).toFixed(2) + '%';\n }\n let color;\n if (this.colors.scaleType === ScaleType.Linear) {\n let v = val;\n if (item.d1) {\n v = item.d1;\n }\n color = this.colors.getColor(v);\n }\n else {\n color = this.colors.getColor(group.name);\n }\n const data = Object.assign({}, item, {\n value: val,\n name: label,\n series: groupName,\n min: item.min,\n max: item.max,\n color\n });\n results.push(data);\n }\n }\n return results;\n }\n mouseMove(event) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const xPos = event.pageX - event.target.getBoundingClientRect().left;\n const closestIndex = this.findClosestPointIndex(xPos);\n const closestPoint = this.xSet[closestIndex];\n this.anchorPos = this.xScale(closestPoint);\n this.anchorPos = Math.max(0, this.anchorPos);\n this.anchorPos = Math.min(this.dims.width, this.anchorPos);\n this.anchorValues = this.getValues(closestPoint);\n if (this.anchorPos !== this.lastAnchorPos) {\n const ev = createMouseEvent('mouseleave');\n this.tooltipAnchor.nativeElement.dispatchEvent(ev);\n this.anchorOpacity = 0.7;\n this.hover.emit({\n value: closestPoint\n });\n this.showTooltip();\n this.lastAnchorPos = this.anchorPos;\n }\n }\n findClosestPointIndex(xPos) {\n let minIndex = 0;\n let maxIndex = this.xSet.length - 1;\n let minDiff = Number.MAX_VALUE;\n let closestIndex = 0;\n while (minIndex <= maxIndex) {\n const currentIndex = ((minIndex + maxIndex) / 2) | 0;\n const currentElement = this.xScale(this.xSet[currentIndex]);\n const curDiff = Math.abs(currentElement - xPos);\n if (curDiff < minDiff) {\n minDiff = curDiff;\n closestIndex = currentIndex;\n }\n if (currentElement < xPos) {\n minIndex = currentIndex + 1;\n }\n else if (currentElement > xPos) {\n maxIndex = currentIndex - 1;\n }\n else {\n minDiff = 0;\n closestIndex = currentIndex;\n break;\n }\n }\n return closestIndex;\n }\n showTooltip() {\n const event = createMouseEvent('mouseenter');\n this.tooltipAnchor.nativeElement.dispatchEvent(event);\n }\n hideTooltip() {\n const event = createMouseEvent('mouseleave');\n this.tooltipAnchor.nativeElement.dispatchEvent(event);\n this.anchorOpacity = 0;\n this.lastAnchorPos = -1;\n }\n getToolTipText(tooltipItem) {\n let result = '';\n if (tooltipItem.series !== undefined) {\n result += tooltipItem.series;\n }\n else {\n result += '???';\n }\n result += ': ';\n if (tooltipItem.value !== undefined) {\n result += tooltipItem.value.toLocaleString();\n }\n if (tooltipItem.min !== undefined || tooltipItem.max !== undefined) {\n result += ' (';\n if (tooltipItem.min !== undefined) {\n if (tooltipItem.max === undefined) {\n result += '≥';\n }\n result += tooltipItem.min.toLocaleString();\n if (tooltipItem.max !== undefined) {\n result += ' - ';\n }\n }\n else if (tooltipItem.max !== undefined) {\n result += '≤';\n }\n if (tooltipItem.max !== undefined) {\n result += tooltipItem.max.toLocaleString();\n }\n result += ')';\n }\n return result;\n }\n}\nTooltipArea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipArea, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nTooltipArea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: TooltipArea, selector: \"g[ngx-charts-tooltip-area]\", inputs: { dims: \"dims\", xSet: \"xSet\", xScale: \"xScale\", yScale: \"yScale\", results: \"results\", colors: \"colors\", showPercentage: \"showPercentage\", tooltipDisabled: \"tooltipDisabled\", tooltipTemplate: \"tooltipTemplate\" }, outputs: { hover: \"hover\" }, viewQueries: [{ propertyName: \"tooltipAnchor\", first: true, predicate: [\"tooltipAnchor\"], descendants: true }], ngImport: i0, template: `\n \n \n \n \n \n \n {{ getToolTipText(tooltipItem) }}\n \n \n \n \n \n `, isInline: true, directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], animations: [\n trigger('animationState', [\n transition('inactive => active', [\n style({\n opacity: 0\n }),\n animate(250, style({ opacity: 0.7 }))\n ]),\n transition('active => inactive', [\n style({\n opacity: 0.7\n }),\n animate(250, style({ opacity: 0 }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TooltipArea, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-tooltip-area]',\n template: `\n \n \n \n \n \n \n {{ getToolTipText(tooltipItem) }}\n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition('inactive => active', [\n style({\n opacity: 0\n }),\n animate(250, style({ opacity: 0.7 }))\n ]),\n transition('active => inactive', [\n style({\n opacity: 0.7\n }),\n animate(250, style({ opacity: 0 }))\n ])\n ])\n ]\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { dims: [{\n type: Input\n }], xSet: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], results: [{\n type: Input\n }], colors: [{\n type: Input\n }], showPercentage: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], hover: [{\n type: Output\n }], tooltipAnchor: [{\n type: ViewChild,\n args: ['tooltipAnchor', { static: false }]\n }] } });\n\nclass Timeline {\n constructor(element, cd) {\n this.cd = cd;\n this.height = 50;\n this.select = new EventEmitter();\n this.onDomainChange = new EventEmitter();\n this.initialized = false;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n if (!this.initialized) {\n this.addBrush();\n this.initialized = true;\n }\n }\n update() {\n this.dims = this.getDims();\n this.height = this.dims.height;\n const offsetY = this.view[1] - this.height;\n this.xDomain = this.getXDomain();\n this.xScale = this.getXScale();\n if (this.brush) {\n this.updateBrush();\n }\n this.transform = `translate(0 , ${offsetY})`;\n this.filterId = 'filter' + id().toString();\n this.filter = `url(#${this.filterId})`;\n this.cd.markForCheck();\n }\n getXDomain() {\n let values = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.name)) {\n values.push(d.name);\n }\n }\n }\n let domain = [];\n if (this.scaleType === ScaleType.Time) {\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n }\n else if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n }\n else {\n domain = values;\n }\n return domain;\n }\n getXScale() {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime().range([0, this.dims.width]).domain(this.xDomain);\n }\n else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear().range([0, this.dims.width]).domain(this.xDomain);\n }\n else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().range([0, this.dims.width]).padding(0.1).domain(this.xDomain);\n }\n return scale;\n }\n addBrush() {\n if (this.brush)\n return;\n const height = this.height;\n const width = this.view[0];\n this.brush = brushX()\n .extent([\n [0, 0],\n [width, height]\n ])\n .on('brush end', ({ selection }) => {\n const newSelection = selection || this.xScale.range();\n const newDomain = newSelection.map(this.xScale.invert);\n this.onDomainChange.emit(newDomain);\n this.cd.markForCheck();\n });\n select(this.element).select('.brush').call(this.brush);\n }\n updateBrush() {\n if (!this.brush)\n return;\n const height = this.height;\n const width = this.view[0];\n this.brush.extent([\n [0, 0],\n [width, height]\n ]);\n select(this.element).select('.brush').call(this.brush);\n // clear hardcoded properties so they can be defined by CSS\n select(this.element)\n .select('.selection')\n .attr('fill', undefined)\n .attr('stroke', undefined)\n .attr('fill-opacity', undefined);\n this.cd.markForCheck();\n }\n getDims() {\n const width = this.view[0];\n const dims = {\n width,\n height: this.height\n };\n return dims;\n }\n}\nTimeline.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: Timeline, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nTimeline.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: Timeline, selector: \"g[ngx-charts-timeline]\", inputs: { view: \"view\", results: \"results\", scheme: \"scheme\", customColors: \"customColors\", legend: \"legend\", autoScale: \"autoScale\", scaleType: \"scaleType\", height: \"height\" }, outputs: { select: \"select\", onDomainChange: \"onDomainChange\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".timeline .brush-background{fill:#0000000d}.timeline .brush .selection{fill:#0000001a;stroke-width:1px;stroke:#888}.timeline .brush .handle{fill-opacity:0}.timeline .embedded-chart{opacity:.6}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: Timeline, decorators: [{\n type: Component,\n args: [{ selector: 'g[ngx-charts-timeline]', template: `\n \n \n \n \n \n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".timeline .brush-background{fill:#0000000d}.timeline .brush .selection{fill:#0000001a;stroke-width:1px;stroke:#888}.timeline .brush .handle{fill-opacity:0}.timeline .embedded-chart{opacity:.6}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { view: [{\n type: Input\n }], results: [{\n type: Input\n }], scheme: [{\n type: Input\n }], customColors: [{\n type: Input\n }], legend: [{\n type: Input\n }], autoScale: [{\n type: Input\n }], scaleType: [{\n type: Input\n }], height: [{\n type: Input\n }], select: [{\n type: Output\n }], onDomainChange: [{\n type: Output\n }] } });\n\nclass AdvancedLegendComponent {\n constructor() {\n this.label = 'Total';\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.legendItems = [];\n this.labelFormatting = label => label;\n this.percentageFormatting = percentage => percentage;\n this.defaultValueFormatting = value => value.toLocaleString();\n }\n ngOnChanges(changes) {\n this.update();\n }\n getTotal() {\n return this.data.map(d => Number(d.value)).reduce((sum, d) => sum + d, 0);\n }\n update() {\n this.total = this.getTotal();\n this.roundedTotal = this.total;\n this.legendItems = this.getLegendItems();\n }\n getLegendItems() {\n return this.data.map(d => {\n const label = formatLabel(d.name);\n const value = d.value;\n const color = this.colors.getColor(label);\n const percentage = this.total > 0 ? (value / this.total) * 100 : 0;\n const formattedLabel = typeof this.labelFormatting === 'function' ? this.labelFormatting(label) : label;\n return {\n _value: value,\n data: d,\n value,\n color,\n label: formattedLabel,\n displayLabel: trimLabel(formattedLabel, 20),\n origialLabel: d.name,\n percentage: this.percentageFormatting ? this.percentageFormatting(percentage) : percentage.toLocaleString()\n };\n });\n }\n trackBy(index, item) {\n return item.label;\n }\n}\nAdvancedLegendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AdvancedLegendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nAdvancedLegendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: AdvancedLegendComponent, selector: \"ngx-charts-advanced-legend\", inputs: { width: \"width\", data: \"data\", colors: \"colors\", label: \"label\", animations: \"animations\", valueFormatting: \"valueFormatting\", labelFormatting: \"labelFormatting\", percentageFormatting: \"percentageFormatting\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, usesOnChanges: true, ngImport: i0, template: `\n
\n
\n
\n {{ valueFormatting ? valueFormatting(roundedTotal) : defaultValueFormatting(roundedTotal) }}\n
\n
\n {{ label }}\n
\n
\n
\n \n
\n
\n
\n {{ valueFormatting ? valueFormatting(legendItem.value) : defaultValueFormatting(legendItem.value) }}\n
\n
{{ legendItem.displayLabel }}
\n
\n
{{ legendItem.percentage.toLocaleString() }}%
\n \n \n \n \n `, isInline: true, styles: [\".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\\n\"], components: [{ type: CountUpDirective, selector: \"[ngx-charts-count-up]\", inputs: [\"countDuration\", \"countPrefix\", \"countSuffix\", \"valueFormatting\", \"countDecimals\", \"countTo\", \"countFrom\"], outputs: [\"countChange\", \"countFinish\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AdvancedLegendComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-advanced-legend', template: `\n
\n
\n
\n {{ valueFormatting ? valueFormatting(roundedTotal) : defaultValueFormatting(roundedTotal) }}\n
\n
\n {{ label }}\n
\n
\n
\n \n
\n
\n
\n {{ valueFormatting ? valueFormatting(legendItem.value) : defaultValueFormatting(legendItem.value) }}\n
\n
{{ legendItem.displayLabel }}
\n
\n
{{ legendItem.percentage.toLocaleString() }}%
\n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".advanced-pie-legend{float:left;position:relative;top:50%;transform:translateY(-50%)}.advanced-pie-legend .total-value{font-size:36px}.advanced-pie-legend .total-label{font-size:24px;margin-bottom:19px}.advanced-pie-legend .legend-items-container{width:100%}.advanced-pie-legend .legend-items-container .legend-items{white-space:nowrap;overflow:auto}.advanced-pie-legend .legend-items-container .legend-items .legend-item{margin-right:20px;display:inline-block;cursor:pointer}.advanced-pie-legend .legend-items-container .legend-items .legend-item:focus{outline:none}.advanced-pie-legend .legend-items-container .legend-items .legend-item:hover{color:#000;transition:.2s}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-value{font-size:24px;margin-top:-6px;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-label{font-size:14px;opacity:.7;margin-left:11px;margin-top:-6px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-percent{font-size:24px;opacity:.7;margin-left:11px}.advanced-pie-legend .legend-items-container .legend-items .legend-item .item-color{border-left:4px solid;width:4px;height:42px;float:left;margin-right:7px}\\n\"] }]\n }], propDecorators: { width: [{\n type: Input\n }], data: [{\n type: Input\n }], colors: [{\n type: Input\n }], label: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], valueFormatting: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], percentageFormatting: [{\n type: Input\n }] } });\n\nconst COMPONENTS = [\n AreaComponent,\n BaseChartComponent,\n CountUpDirective,\n TooltipArea,\n ChartComponent,\n LegendComponent,\n LegendEntryComponent,\n ScaleLegendComponent,\n CircleComponent,\n CircleSeriesComponent,\n GridPanelComponent,\n GridPanelSeriesComponent,\n SvgLinearGradientComponent,\n SvgRadialGradientComponent,\n Timeline,\n AdvancedLegendComponent\n];\nclass ChartCommonModule {\n}\nChartCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: ChartCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nChartCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: ChartCommonModule, declarations: [AreaComponent,\n BaseChartComponent,\n CountUpDirective,\n TooltipArea,\n ChartComponent,\n LegendComponent,\n LegendEntryComponent,\n ScaleLegendComponent,\n CircleComponent,\n CircleSeriesComponent,\n GridPanelComponent,\n GridPanelSeriesComponent,\n SvgLinearGradientComponent,\n SvgRadialGradientComponent,\n Timeline,\n AdvancedLegendComponent, VisibilityObserver], imports: [CommonModule, AxesModule, TooltipModule], exports: [CommonModule, AxesModule, TooltipModule, AreaComponent,\n BaseChartComponent,\n CountUpDirective,\n TooltipArea,\n ChartComponent,\n LegendComponent,\n LegendEntryComponent,\n ScaleLegendComponent,\n CircleComponent,\n CircleSeriesComponent,\n GridPanelComponent,\n GridPanelSeriesComponent,\n SvgLinearGradientComponent,\n SvgRadialGradientComponent,\n Timeline,\n AdvancedLegendComponent, VisibilityObserver] });\nChartCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: ChartCommonModule, imports: [[CommonModule, AxesModule, TooltipModule], CommonModule, AxesModule, TooltipModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: ChartCommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, AxesModule, TooltipModule],\n declarations: [...COMPONENTS, VisibilityObserver],\n exports: [CommonModule, AxesModule, TooltipModule, ...COMPONENTS, VisibilityObserver]\n }]\n }] });\n\nfunction calculateViewDimensions({ width, height, margins, showXAxis = false, showYAxis = false, xAxisHeight = 0, yAxisWidth = 0, showXLabel = false, showYLabel = false, showLegend = false, legendType = ScaleType.Ordinal, legendPosition = LegendPosition.Right, columns = 12 }) {\n let xOffset = margins[3];\n let chartWidth = width;\n let chartHeight = height - margins[0] - margins[2];\n if (showLegend && legendPosition === LegendPosition.Right) {\n if (legendType === ScaleType.Ordinal) {\n columns -= 2;\n }\n else {\n columns -= 1;\n }\n }\n chartWidth = (chartWidth * columns) / 12;\n chartWidth = chartWidth - margins[1] - margins[3];\n if (showXAxis) {\n chartHeight -= 5;\n chartHeight -= xAxisHeight;\n if (showXLabel) {\n // text height + spacing between axis label and tick labels\n const offset = 25 + 5;\n chartHeight -= offset;\n }\n }\n if (showYAxis) {\n chartWidth -= 5;\n chartWidth -= yAxisWidth;\n xOffset += yAxisWidth;\n xOffset += 10;\n if (showYLabel) {\n // text height + spacing between axis label and tick labels\n const offset = 25 + 5;\n chartWidth -= offset;\n xOffset += offset;\n }\n }\n chartWidth = Math.max(0, chartWidth);\n chartHeight = Math.max(0, chartHeight);\n return {\n width: Math.floor(chartWidth),\n height: Math.floor(chartHeight),\n xOffset: Math.floor(xOffset)\n };\n}\n\nlet colorSets = [\n {\n name: 'vivid',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\n '#647c8a',\n '#3f51b5',\n '#2196f3',\n '#00b862',\n '#afdf0a',\n '#a7b61a',\n '#f3e562',\n '#ff9800',\n '#ff5722',\n '#ff4514'\n ]\n },\n {\n name: 'natural',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\n '#bf9d76',\n '#e99450',\n '#d89f59',\n '#f2dfa7',\n '#a5d7c6',\n '#7794b1',\n '#afafaf',\n '#707160',\n '#ba9383',\n '#d9d5c3'\n ]\n },\n {\n name: 'cool',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: [\n '#a8385d',\n '#7aa3e5',\n '#a27ea8',\n '#aae3f5',\n '#adcded',\n '#a95963',\n '#8796c0',\n '#7ed3ed',\n '#50abcc',\n '#ad6886'\n ]\n },\n {\n name: 'fire',\n selectable: true,\n group: ScaleType.Ordinal,\n domain: ['#ff3d00', '#bf360c', '#ff8f00', '#ff6f00', '#ff5722', '#e65100', '#ffca28', '#ffab00']\n },\n {\n name: 'solar',\n selectable: true,\n group: ScaleType.Linear,\n domain: [\n '#fff8e1',\n '#ffecb3',\n '#ffe082',\n '#ffd54f',\n '#ffca28',\n '#ffc107',\n '#ffb300',\n '#ffa000',\n '#ff8f00',\n '#ff6f00'\n ]\n },\n {\n name: 'air',\n selectable: true,\n group: ScaleType.Linear,\n domain: [\n '#e1f5fe',\n '#b3e5fc',\n '#81d4fa',\n '#4fc3f7',\n '#29b6f6',\n '#03a9f4',\n '#039be5',\n '#0288d1',\n '#0277bd',\n '#01579b'\n ]\n },\n {\n name: 'aqua',\n selectable: true,\n group: ScaleType.Linear,\n domain: [\n '#e0f7fa',\n '#b2ebf2',\n '#80deea',\n '#4dd0e1',\n '#26c6da',\n '#00bcd4',\n '#00acc1',\n '#0097a7',\n '#00838f',\n '#006064'\n ]\n },\n {\n name: 'flame',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#A10A28',\n '#D3342D',\n '#EF6D49',\n '#FAAD67',\n '#FDDE90',\n '#DBED91',\n '#A9D770',\n '#6CBA67',\n '#2C9653',\n '#146738'\n ]\n },\n {\n name: 'ocean',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#1D68FB',\n '#33C0FC',\n '#4AFFFE',\n '#AFFFFF',\n '#FFFC63',\n '#FDBD2D',\n '#FC8A25',\n '#FA4F1E',\n '#FA141B',\n '#BA38D1'\n ]\n },\n {\n name: 'forest',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#55C22D',\n '#C1F33D',\n '#3CC099',\n '#AFFFFF',\n '#8CFC9D',\n '#76CFFA',\n '#BA60FB',\n '#EE6490',\n '#C42A1C',\n '#FC9F32'\n ]\n },\n {\n name: 'horizon',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#2597FB',\n '#65EBFD',\n '#99FDD0',\n '#FCEE4B',\n '#FEFCFA',\n '#FDD6E3',\n '#FCB1A8',\n '#EF6F7B',\n '#CB96E8',\n '#EFDEE0'\n ]\n },\n {\n name: 'neons',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#FF3333',\n '#FF33FF',\n '#CC33FF',\n '#0000FF',\n '#33CCFF',\n '#33FFFF',\n '#33FF66',\n '#CCFF33',\n '#FFCC00',\n '#FF6600'\n ]\n },\n {\n name: 'picnic',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#FAC51D',\n '#66BD6D',\n '#FAA026',\n '#29BB9C',\n '#E96B56',\n '#55ACD2',\n '#B7332F',\n '#2C83C9',\n '#9166B8',\n '#92E7E8'\n ]\n },\n {\n name: 'night',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#2B1B5A',\n '#501356',\n '#183356',\n '#28203F',\n '#391B3C',\n '#1E2B3C',\n '#120634',\n '#2D0432',\n '#051932',\n '#453080',\n '#75267D',\n '#2C507D',\n '#4B3880',\n '#752F7D',\n '#35547D'\n ]\n },\n {\n name: 'nightLights',\n selectable: false,\n group: ScaleType.Ordinal,\n domain: [\n '#4e31a5',\n '#9c25a7',\n '#3065ab',\n '#57468b',\n '#904497',\n '#46648b',\n '#32118d',\n '#a00fb3',\n '#1052a2',\n '#6e51bd',\n '#b63cc3',\n '#6c97cb',\n '#8671c1',\n '#b455be',\n '#7496c3'\n ]\n }\n];\n\nclass ColorHelper {\n constructor(scheme, type, domain, customColors) {\n if (typeof scheme === 'string') {\n scheme = colorSets.find(cs => {\n return cs.name === scheme;\n });\n }\n this.colorDomain = scheme.domain;\n this.scaleType = type;\n this.domain = domain;\n this.customColors = customColors;\n this.scale = this.generateColorScheme(scheme, type, this.domain);\n }\n generateColorScheme(scheme, type, domain) {\n if (typeof scheme === 'string') {\n scheme = colorSets.find(cs => {\n return cs.name === scheme;\n });\n }\n let colorScale;\n switch (type) {\n case ScaleType.Quantile:\n colorScale = scaleQuantile()\n .range(scheme.domain)\n .domain(domain);\n break;\n case ScaleType.Ordinal:\n colorScale = scaleOrdinal()\n .range(scheme.domain)\n .domain(domain);\n break;\n case ScaleType.Linear:\n {\n const colorDomain = [...scheme.domain];\n if (colorDomain.length === 1) {\n colorDomain.push(colorDomain[0]);\n this.colorDomain = colorDomain;\n }\n const points = range(0, 1, 1.0 / colorDomain.length);\n colorScale = scaleLinear()\n .range(colorDomain)\n .domain(points);\n }\n break;\n default:\n break;\n }\n return colorScale;\n }\n getColor(value) {\n if (value === undefined || value === null) {\n throw new Error('Value can not be null');\n }\n if (this.scaleType === ScaleType.Linear) {\n const valueScale = scaleLinear()\n .domain(this.domain)\n .range([0, 1]);\n return this.scale(valueScale(value));\n }\n else {\n if (typeof this.customColors === 'function') {\n return this.customColors(value);\n }\n const formattedValue = value.toString();\n let found; // todo type customColors\n if (this.customColors && this.customColors.length > 0) {\n found = this.customColors.find(mapping => {\n return mapping.name.toLowerCase() === formattedValue.toLowerCase();\n });\n }\n if (found) {\n return found.value;\n }\n else {\n return this.scale(value);\n }\n }\n }\n getLinearGradientStops(value, start) {\n if (start === undefined) {\n start = this.domain[0];\n }\n const valueScale = scaleLinear()\n .domain(this.domain)\n .range([0, 1]);\n const colorValueScale = scaleBand().domain(this.colorDomain).range([0, 1]);\n const endColor = this.getColor(value);\n // generate the stops\n const startVal = valueScale(start);\n const startColor = this.getColor(start);\n const endVal = valueScale(value);\n let i = 1;\n let currentVal = startVal;\n const stops = [];\n stops.push({\n color: startColor,\n offset: startVal,\n originalOffset: startVal,\n opacity: 1\n });\n while (currentVal < endVal && i < this.colorDomain.length) {\n const color = this.colorDomain[i];\n const offset = colorValueScale(color);\n if (offset <= startVal) {\n i++;\n continue;\n }\n if (offset.toFixed(4) >= (endVal - colorValueScale.bandwidth()).toFixed(4)) {\n break;\n }\n stops.push({\n color,\n offset,\n opacity: 1\n });\n currentVal = offset;\n i++;\n }\n if (stops[stops.length - 1].offset < 100) {\n stops.push({\n color: endColor,\n offset: endVal,\n opacity: 1\n });\n }\n if (endVal === startVal) {\n stops[0].offset = 0;\n stops[1].offset = 100;\n }\n else {\n // normalize the offsets into percentages\n if (stops[stops.length - 1].offset !== 100) {\n for (const s of stops) {\n s.offset = ((s.offset - startVal) / (endVal - startVal)) * 100;\n }\n }\n }\n return stops;\n }\n}\n\n/**\n * Based on the data, return an array with unique values.\n *\n * @export\n * @returns array\n */\nfunction getUniqueXDomainValues(results) {\n const valueSet = new Set();\n for (const result of results) {\n for (const d of result.series) {\n valueSet.add(d.name);\n }\n }\n return Array.from(valueSet);\n}\n/**\n * Get the scaleType of enumerable of values.\n * @returns 'time', 'linear' or 'ordinal'\n */\nfunction getScaleType(values, checkDateType = true) {\n if (checkDateType) {\n const allDates = values.every(value => value instanceof Date);\n if (allDates) {\n return ScaleType.Time;\n }\n }\n const allNumbers = values.every(value => typeof value === 'number');\n if (allNumbers) {\n return ScaleType.Linear;\n }\n return ScaleType.Ordinal;\n}\nfunction getXDomainArray(values, xScaleMin, xScaleMax) {\n const scaleType = getScaleType(values);\n let xSet = [];\n let domain = [];\n if (scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n let min;\n let max;\n if (scaleType === ScaleType.Time || scaleType === ScaleType.Linear) {\n const mappedValues = values.map(v => Number(v));\n min = xScaleMin ? xScaleMin : Math.min(...mappedValues);\n max = xScaleMax ? xScaleMax : Math.max(...mappedValues);\n }\n if (scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate)\n return 1;\n if (bDate > aDate)\n return -1;\n return 0;\n });\n }\n else if (scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n xSet = [...values].sort((a, b) => a - b);\n }\n else {\n domain = values;\n xSet = values;\n }\n return { domain, xSet, scaleType };\n}\n\nfunction sortLinear(data, property, direction = 'asc') {\n return data.sort((a, b) => {\n if (direction === 'asc') {\n return a[property] - b[property];\n }\n else {\n return b[property] - a[property];\n }\n });\n}\nfunction sortByDomain(data, property, direction = 'asc', domain) {\n return data.sort((a, b) => {\n const aVal = a[property];\n const bVal = b[property];\n const aIdx = domain.indexOf(aVal);\n const bIdx = domain.indexOf(bVal);\n if (direction === 'asc') {\n return aIdx - bIdx;\n }\n else {\n return bIdx - aIdx;\n }\n });\n}\nfunction sortByTime(data, property, direction = 'asc') {\n return data.sort((a, b) => {\n const aDate = a[property].getTime();\n const bDate = b[property].getTime();\n if (direction === 'asc') {\n if (aDate > bDate)\n return 1;\n if (bDate > aDate)\n return -1;\n return 0;\n }\n else {\n if (aDate > bDate)\n return -1;\n if (bDate > aDate)\n return 1;\n return 0;\n }\n });\n}\n\nclass AreaSeriesComponent {\n constructor() {\n this.baseValue = 'auto';\n this.stacked = false;\n this.normalized = false;\n this.animations = true;\n this.select = new EventEmitter();\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateGradient();\n let currentArea;\n let startingArea;\n const xProperty = d => {\n const label = d.name;\n return this.xScale(label);\n };\n if (this.stacked || this.normalized) {\n currentArea = area()\n .x(xProperty)\n .y0((d, i) => this.yScale(d.d0))\n .y1((d, i) => this.yScale(d.d1));\n startingArea = area()\n .x(xProperty)\n .y0(d => this.yScale.range()[0])\n .y1(d => this.yScale.range()[0]);\n }\n else {\n currentArea = area()\n .x(xProperty)\n .y0(() => (this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue)))\n .y1(d => this.yScale(d.value));\n startingArea = area()\n .x(xProperty)\n .y0(d => (this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue)))\n .y1(d => (this.baseValue === 'auto' ? this.yScale.range()[0] : this.yScale(this.baseValue)));\n }\n currentArea.curve(this.curve);\n startingArea.curve(this.curve);\n this.opacity = 0.8;\n let data = this.data.series;\n if (this.scaleType === ScaleType.Linear) {\n data = sortLinear(data, 'name');\n }\n else if (this.scaleType === ScaleType.Time) {\n data = sortByTime(data, 'name');\n }\n else {\n data = sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n this.path = currentArea(data);\n this.startingPath = startingArea(data);\n }\n updateGradient() {\n if (this.colors.scaleType === ScaleType.Linear) {\n this.hasGradient = true;\n if (this.stacked || this.normalized) {\n const d0values = this.data.series.map(d => d.d0);\n const d1values = this.data.series.map(d => d.d1);\n const max = Math.max(...d1values);\n const min = Math.min(...d0values);\n this.gradientStops = this.colors.getLinearGradientStops(max, min);\n }\n else {\n const values = this.data.series.map(d => d.value);\n const max = Math.max(...values);\n this.gradientStops = this.colors.getLinearGradientStops(max);\n }\n }\n else {\n this.hasGradient = false;\n this.gradientStops = undefined;\n }\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n isInactive(entry) {\n if (!this.activeEntries || this.activeEntries.length === 0)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item === undefined;\n }\n}\nAreaSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nAreaSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: AreaSeriesComponent, selector: \"g[ngx-charts-area-series]\", inputs: { data: \"data\", xScale: \"xScale\", yScale: \"yScale\", baseValue: \"baseValue\", colors: \"colors\", scaleType: \"scaleType\", stacked: \"stacked\", normalized: \"normalized\", gradient: \"gradient\", curve: \"curve\", activeEntries: \"activeEntries\", animations: \"animations\" }, outputs: { select: \"select\" }, usesOnChanges: true, ngImport: i0, template: `\n \n `, isInline: true, components: [{ type: AreaComponent, selector: \"g[ngx-charts-area]\", inputs: [\"data\", \"path\", \"startingPath\", \"fill\", \"opacity\", \"startOpacity\", \"endOpacity\", \"gradient\", \"stops\", \"animations\"], outputs: [\"select\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-area-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { data: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], baseValue: [{\n type: Input\n }], colors: [{\n type: Input\n }], scaleType: [{\n type: Input\n }], stacked: [{\n type: Input\n }], normalized: [{\n type: Input\n }], gradient: [{\n type: Input\n }], curve: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }] } });\n\nclass AreaChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.xAxis = false;\n this.yAxis = false;\n this.baseValue = 'auto';\n this.autoScale = false;\n this.timeline = false;\n this.showGridLines = true;\n this.curve = curveLinear;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.timelineHeight = 50;\n this.timelinePadding = 10;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n this.updateTimeline();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset}, ${this.margin[0]})`;\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n updateTimeline() {\n if (this.timeline) {\n this.timelineWidth = this.dims.width;\n this.timelineXDomain = this.getXDomain();\n this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n }\n }\n getXDomain() {\n let values = getUniqueXDomainValues(this.results);\n this.scaleType = getScaleType(values);\n let domain = [];\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n if (this.scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n this.xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate)\n return 1;\n if (bDate > aDate)\n return -1;\n return 0;\n });\n }\n else if (this.scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n this.xSet = [...values].sort((a, b) => a - b);\n }\n else {\n domain = values;\n this.xSet = values;\n }\n return domain;\n }\n getYDomain() {\n const domain = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (!domain.includes(d.value)) {\n domain.push(d.value);\n }\n }\n }\n const values = [...domain];\n if (!this.autoScale) {\n values.push(0);\n }\n if (this.baseValue !== 'auto') {\n values.push(this.baseValue);\n }\n const min = this.yScaleMin ? this.yScaleMin : Math.min(...values);\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...values);\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n }\n else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n }\n else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n scale.range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getScaleType(values) {\n let date = true;\n let num = true;\n for (const value of values) {\n if (isDate(value)) {\n date = false;\n }\n if (isNumber(value)) {\n num = false;\n }\n }\n if (date) {\n return ScaleType.Time;\n }\n if (num) {\n return ScaleType.Linear;\n }\n return ScaleType.Ordinal;\n }\n updateDomain(domain) {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n hideCircles() {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n }\n else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n}\nAreaChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nAreaChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: AreaChartComponent, selector: \"ngx-charts-area-chart\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", baseValue: \"baseValue\", autoScale: \"autoScale\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", timeline: \"timeline\", gradient: \"gradient\", showGridLines: \"showGridLines\", curve: \"curve\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", roundDomains: \"roundDomains\", tooltipDisabled: \"tooltipDisabled\", xScaleMin: \"xScaleMin\", xScaleMax: \"xScaleMax\", yScaleMin: \"yScaleMin\", yScaleMax: \"yScaleMax\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"mouseleave\": \"hideCircles()\" } }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }, { propertyName: \"seriesTooltipTemplate\", first: true, predicate: [\"seriesTooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: AreaSeriesComponent, selector: \"g[ngx-charts-area-series]\", inputs: [\"data\", \"xScale\", \"yScale\", \"baseValue\", \"colors\", \"scaleType\", \"stacked\", \"normalized\", \"gradient\", \"curve\", \"activeEntries\", \"animations\"], outputs: [\"select\"] }, { type: TooltipArea, selector: \"g[ngx-charts-tooltip-area]\", inputs: [\"dims\", \"xSet\", \"xScale\", \"yScale\", \"results\", \"colors\", \"showPercentage\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"hover\"] }, { type: CircleSeriesComponent, selector: \"g[ngx-charts-circle-series]\", inputs: [\"data\", \"type\", \"xScale\", \"yScale\", \"colors\", \"scaleType\", \"visibleValue\", \"activeEntries\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"select\", \"activate\", \"deactivate\"] }, { type: Timeline, selector: \"g[ngx-charts-timeline]\", inputs: [\"view\", \"results\", \"scheme\", \"customColors\", \"legend\", \"autoScale\", \"scaleType\", \"height\"], outputs: [\"select\", \"onDomainChange\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-area-chart', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], baseValue: [{\n type: Input\n }], autoScale: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], timeline: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], curve: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], xScaleMin: [{\n type: Input\n }], xScaleMax: [{\n type: Input\n }], yScaleMin: [{\n type: Input\n }], yScaleMax: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }], seriesTooltipTemplate: [{\n type: ContentChild,\n args: ['seriesTooltipTemplate']\n }], hideCircles: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nclass AreaChartNormalizedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.showXAxisLabel = false;\n this.showYAxisLabel = false;\n this.showGridLines = true;\n this.curve = curveLinear;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.yDomain = [0, 100];\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.seriesType = SeriesType;\n this.timelineHeight = 50;\n this.timelinePadding = 10;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n for (let i = 0; i < this.xSet.length; i++) {\n const val = this.xSet[i];\n let d0 = 0;\n let total = 0;\n for (const group of this.results) {\n const d = group.series.find(item => {\n let a = item.name;\n let b = val;\n if (this.scaleType === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n if (d) {\n total += d.value;\n }\n }\n for (const group of this.results) {\n let d = group.series.find(item => {\n let a = item.name;\n let b = val;\n if (this.scaleType === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n if (d) {\n d.d0 = d0;\n d.d1 = d0 + d.value;\n d0 += d.value;\n }\n else {\n d = {\n name: val,\n value: 0,\n d0,\n d1: d0\n };\n group.series.push(d);\n }\n if (total > 0) {\n d.d0 = (d.d0 * 100) / total;\n d.d1 = (d.d1 * 100) / total;\n }\n else {\n d.d0 = 0;\n d.d1 = 0;\n }\n }\n }\n this.updateTimeline();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n updateTimeline() {\n if (this.timeline) {\n this.timelineWidth = this.dims.width;\n this.timelineXDomain = this.getXDomain();\n this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n }\n }\n getXDomain() {\n let values = getUniqueXDomainValues(this.results);\n this.scaleType = getScaleType(values);\n let domain = [];\n if (this.scaleType === ScaleType.Time) {\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [new Date(min), new Date(max)];\n this.xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate)\n return 1;\n if (bDate > aDate)\n return -1;\n return 0;\n });\n }\n else if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n const min = Math.min(...values);\n const max = Math.max(...values);\n domain = [min, max];\n // Use compare function to sort numbers numerically\n this.xSet = [...values].sort((a, b) => a - b);\n }\n else {\n domain = values;\n this.xSet = values;\n }\n return domain;\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n }\n else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n }\n else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n scale.range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n updateDomain(domain) {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n hideCircles() {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n }\n else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n}\nAreaChartNormalizedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartNormalizedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nAreaChartNormalizedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: AreaChartNormalizedComponent, selector: \"ngx-charts-area-chart-normalized\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", timeline: \"timeline\", gradient: \"gradient\", showGridLines: \"showGridLines\", curve: \"curve\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", roundDomains: \"roundDomains\", tooltipDisabled: \"tooltipDisabled\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"mouseleave\": \"hideCircles()\" } }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }, { propertyName: \"seriesTooltipTemplate\", first: true, predicate: [\"seriesTooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: AreaSeriesComponent, selector: \"g[ngx-charts-area-series]\", inputs: [\"data\", \"xScale\", \"yScale\", \"baseValue\", \"colors\", \"scaleType\", \"stacked\", \"normalized\", \"gradient\", \"curve\", \"activeEntries\", \"animations\"], outputs: [\"select\"] }, { type: TooltipArea, selector: \"g[ngx-charts-tooltip-area]\", inputs: [\"dims\", \"xSet\", \"xScale\", \"yScale\", \"results\", \"colors\", \"showPercentage\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"hover\"] }, { type: CircleSeriesComponent, selector: \"g[ngx-charts-circle-series]\", inputs: [\"data\", \"type\", \"xScale\", \"yScale\", \"colors\", \"scaleType\", \"visibleValue\", \"activeEntries\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"select\", \"activate\", \"deactivate\"] }, { type: Timeline, selector: \"g[ngx-charts-timeline]\", inputs: [\"view\", \"results\", \"scheme\", \"customColors\", \"legend\", \"autoScale\", \"scaleType\", \"height\"], outputs: [\"select\", \"onDomainChange\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartNormalizedComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-area-chart-normalized', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], timeline: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], curve: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }], seriesTooltipTemplate: [{\n type: ContentChild,\n args: ['seriesTooltipTemplate']\n }], hideCircles: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nclass AreaChartStackedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.xAxis = false;\n this.yAxis = false;\n this.timeline = false;\n this.showGridLines = true;\n this.curve = curveLinear;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.timelineHeight = 50;\n this.timelinePadding = 10;\n this.seriesType = SeriesType;\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n for (let i = 0; i < this.xSet.length; i++) {\n const val = this.xSet[i];\n let d0 = 0;\n for (const group of this.results) {\n let d = group.series.find(item => {\n let a = item.name;\n let b = val;\n if (this.scaleType === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n if (d) {\n d.d0 = d0;\n d.d1 = d0 + d.value;\n d0 += d.value;\n }\n else {\n d = {\n name: val,\n value: 0,\n d0,\n d1: d0\n };\n group.series.push(d);\n }\n }\n }\n this.updateTimeline();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n updateTimeline() {\n if (this.timeline) {\n this.timelineWidth = this.dims.width;\n this.timelineXDomain = this.getXDomain();\n this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n }\n }\n getXDomain() {\n let values = getUniqueXDomainValues(this.results);\n this.scaleType = getScaleType(values);\n let domain = [];\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n if (this.scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n this.xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate)\n return 1;\n if (bDate > aDate)\n return -1;\n return 0;\n });\n }\n else if (this.scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n this.xSet = [...values].sort((a, b) => a - b);\n }\n else {\n domain = values;\n this.xSet = values;\n }\n return domain;\n }\n getYDomain() {\n const domain = [];\n for (let i = 0; i < this.xSet.length; i++) {\n const val = this.xSet[i];\n let sum = 0;\n for (const group of this.results) {\n const d = group.series.find(item => {\n let a = item.name;\n let b = val;\n if (this.scaleType === ScaleType.Time) {\n a = a.valueOf();\n b = b.valueOf();\n }\n return a === b;\n });\n if (d) {\n sum += d.value;\n }\n }\n domain.push(sum);\n }\n const min = this.yScaleMin ? this.yScaleMin : Math.min(0, ...domain);\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...domain);\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime();\n }\n else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear();\n }\n else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().padding(0.1);\n }\n scale.range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n updateDomain(domain) {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n hideCircles() {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n trackBy(index, item) {\n return `${item.name}`;\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n }\n else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n}\nAreaChartStackedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartStackedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nAreaChartStackedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: AreaChartStackedComponent, selector: \"ngx-charts-area-chart-stacked\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", timeline: \"timeline\", gradient: \"gradient\", showGridLines: \"showGridLines\", curve: \"curve\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", roundDomains: \"roundDomains\", tooltipDisabled: \"tooltipDisabled\", xScaleMin: \"xScaleMin\", xScaleMax: \"xScaleMax\", yScaleMin: \"yScaleMin\", yScaleMax: \"yScaleMax\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"mouseleave\": \"hideCircles()\" } }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }, { propertyName: \"seriesTooltipTemplate\", first: true, predicate: [\"seriesTooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: AreaSeriesComponent, selector: \"g[ngx-charts-area-series]\", inputs: [\"data\", \"xScale\", \"yScale\", \"baseValue\", \"colors\", \"scaleType\", \"stacked\", \"normalized\", \"gradient\", \"curve\", \"activeEntries\", \"animations\"], outputs: [\"select\"] }, { type: TooltipArea, selector: \"g[ngx-charts-tooltip-area]\", inputs: [\"dims\", \"xSet\", \"xScale\", \"yScale\", \"results\", \"colors\", \"showPercentage\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"hover\"] }, { type: CircleSeriesComponent, selector: \"g[ngx-charts-circle-series]\", inputs: [\"data\", \"type\", \"xScale\", \"yScale\", \"colors\", \"scaleType\", \"visibleValue\", \"activeEntries\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"select\", \"activate\", \"deactivate\"] }, { type: Timeline, selector: \"g[ngx-charts-timeline]\", inputs: [\"view\", \"results\", \"scheme\", \"customColors\", \"legend\", \"autoScale\", \"scaleType\", \"height\"], outputs: [\"select\", \"onDomainChange\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartStackedComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-area-chart-stacked', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], timeline: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], curve: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], xScaleMin: [{\n type: Input\n }], xScaleMax: [{\n type: Input\n }], yScaleMin: [{\n type: Input\n }], yScaleMax: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }], seriesTooltipTemplate: [{\n type: ContentChild,\n args: ['seriesTooltipTemplate']\n }], hideCircles: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nclass AreaChartModule {\n}\nAreaChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nAreaChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartModule, declarations: [AreaChartComponent, AreaChartNormalizedComponent, AreaChartStackedComponent, AreaSeriesComponent], imports: [ChartCommonModule], exports: [AreaChartComponent, AreaChartNormalizedComponent, AreaChartStackedComponent, AreaSeriesComponent] });\nAreaChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AreaChartModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [AreaChartComponent, AreaChartNormalizedComponent, AreaChartStackedComponent, AreaSeriesComponent],\n exports: [AreaChartComponent, AreaChartNormalizedComponent, AreaChartStackedComponent, AreaSeriesComponent]\n }]\n }] });\n\nclass BarComponent {\n constructor(element) {\n this.roundEdges = true;\n this.gradient = false;\n this.offset = 0;\n this.isActive = false;\n this.animations = true;\n this.noBarWhenZero = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.hasGradient = false;\n this.hideBar = false;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes.roundEdges) {\n this.loadAnimation();\n }\n this.update();\n }\n update() {\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n if (this.gradient || this.stops) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n }\n else {\n this.hasGradient = false;\n }\n this.updatePathEl();\n this.checkToHideBar();\n }\n loadAnimation() {\n this.path = this.getStartingPath();\n setTimeout(this.update.bind(this), 100);\n }\n updatePathEl() {\n const node = select(this.element).select('.bar');\n const path = this.getPath();\n if (this.animations) {\n node.transition().duration(500).attr('d', path);\n }\n else {\n node.attr('d', path);\n }\n }\n getGradient() {\n if (this.stops) {\n return this.stops;\n }\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: this.getStartOpacity()\n },\n {\n offset: 100,\n color: this.fill,\n opacity: 1\n }\n ];\n }\n getStartingPath() {\n if (!this.animations) {\n return this.getPath();\n }\n let radius = this.getRadius();\n let path;\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.Vertical) {\n radius = Math.min(this.height, radius);\n path = roundedRect(this.x, this.y + this.height, this.width, 1, 0, this.edges);\n }\n else if (this.orientation === BarOrientation.Horizontal) {\n radius = Math.min(this.width, radius);\n path = roundedRect(this.x, this.y, 1, this.height, 0, this.edges);\n }\n }\n else {\n if (this.orientation === BarOrientation.Vertical) {\n path = roundedRect(this.x, this.y + this.height, this.width, 1, 0, this.edges);\n }\n else if (this.orientation === BarOrientation.Horizontal) {\n path = roundedRect(this.x, this.y, 1, this.height, 0, this.edges);\n }\n }\n return path;\n }\n getPath() {\n let radius = this.getRadius();\n let path;\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.Vertical) {\n radius = Math.min(this.height, radius);\n path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n }\n else if (this.orientation === BarOrientation.Horizontal) {\n radius = Math.min(this.width, radius);\n path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n }\n }\n else {\n path = roundedRect(this.x, this.y, this.width, this.height, radius, this.edges);\n }\n return path;\n }\n getRadius() {\n let radius = 0;\n if (this.roundEdges && this.height > 5 && this.width > 5) {\n radius = Math.floor(Math.min(5, this.height / 2, this.width / 2));\n }\n return radius;\n }\n getStartOpacity() {\n if (this.roundEdges) {\n return 0.2;\n }\n else {\n return 0.5;\n }\n }\n get edges() {\n let edges = [false, false, false, false];\n if (this.roundEdges) {\n if (this.orientation === BarOrientation.Vertical) {\n if (this.data.value > 0) {\n edges = [true, true, false, false];\n }\n else {\n edges = [false, false, true, true];\n }\n }\n else if (this.orientation === BarOrientation.Horizontal) {\n if (this.data.value > 0) {\n edges = [false, true, false, true];\n }\n else {\n edges = [true, false, true, false];\n }\n }\n }\n return edges;\n }\n onMouseEnter() {\n this.activate.emit(this.data);\n }\n onMouseLeave() {\n this.deactivate.emit(this.data);\n }\n checkToHideBar() {\n this.hideBar =\n this.noBarWhenZero &&\n ((this.orientation === BarOrientation.Vertical && this.height === 0) ||\n (this.orientation === BarOrientation.Horizontal && this.width === 0));\n }\n}\nBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarComponent, selector: \"g[ngx-charts-bar]\", inputs: { fill: \"fill\", data: \"data\", width: \"width\", height: \"height\", x: \"x\", y: \"y\", orientation: \"orientation\", roundEdges: \"roundEdges\", gradient: \"gradient\", offset: \"offset\", isActive: \"isActive\", stops: \"stops\", animations: \"animations\", ariaLabel: \"ariaLabel\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"mouseenter\": \"onMouseEnter()\", \"mouseleave\": \"onMouseLeave()\" } }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n `, isInline: true, components: [{ type: SvgLinearGradientComponent, selector: \"g[ngx-charts-svg-linear-gradient]\", inputs: [\"orientation\", \"name\", \"stops\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-bar]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fill: [{\n type: Input\n }], data: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], x: [{\n type: Input\n }], y: [{\n type: Input\n }], orientation: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], gradient: [{\n type: Input\n }], offset: [{\n type: Input\n }], isActive: [{\n type: Input\n }], stops: [{\n type: Input\n }], animations: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], onMouseEnter: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseLeave: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nvar BarChartType;\n(function (BarChartType) {\n BarChartType[\"Standard\"] = \"standard\";\n BarChartType[\"Normalized\"] = \"normalized\";\n BarChartType[\"Stacked\"] = \"stacked\";\n})(BarChartType || (BarChartType = {}));\n\nvar D0Types;\n(function (D0Types) {\n D0Types[\"positive\"] = \"positive\";\n D0Types[\"negative\"] = \"negative\";\n})(D0Types || (D0Types = {}));\n\nclass BarLabelComponent {\n constructor(element) {\n this.dimensionsChanged = new EventEmitter();\n this.horizontalPadding = 2;\n this.verticalPadding = 5;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n getSize() {\n const h = this.element.getBoundingClientRect().height;\n const w = this.element.getBoundingClientRect().width;\n return { height: h, width: w, negative: this.value < 0 };\n }\n ngAfterViewInit() {\n this.dimensionsChanged.emit(this.getSize());\n }\n update() {\n if (this.valueFormatting) {\n this.formatedValue = this.valueFormatting(this.value);\n }\n else {\n this.formatedValue = formatLabel(this.value);\n }\n if (this.orientation === 'horizontal') {\n this.x = this.barX + this.barWidth;\n // if the value is negative then it's on the left of the x0.\n // we need to put the data label in front of the bar\n if (this.value < 0) {\n this.x = this.x - this.horizontalPadding;\n this.textAnchor = 'end';\n }\n else {\n this.x = this.x + this.horizontalPadding;\n this.textAnchor = 'start';\n }\n this.y = this.barY + this.barHeight / 2;\n }\n else {\n // orientation must be \"vertical\"\n this.x = this.barX + this.barWidth / 2;\n this.y = this.barY + this.barHeight;\n if (this.value < 0) {\n this.y = this.y + this.verticalPadding;\n this.textAnchor = 'end';\n }\n else {\n this.y = this.y - this.verticalPadding;\n this.textAnchor = 'start';\n }\n this.transform = `rotate(-45, ${this.x} , ${this.y})`;\n }\n }\n}\nBarLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarLabelComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nBarLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarLabelComponent, selector: \"g[ngx-charts-bar-label]\", inputs: { value: \"value\", valueFormatting: \"valueFormatting\", barX: \"barX\", barY: \"barY\", barWidth: \"barWidth\", barHeight: \"barHeight\", orientation: \"orientation\" }, outputs: { dimensionsChanged: \"dimensionsChanged\" }, usesOnChanges: true, ngImport: i0, template: `\n \n {{ formatedValue }}\n \n `, isInline: true, styles: [\".textDataLabel{font-size:11px}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarLabelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'g[ngx-charts-bar-label]', template: `\n \n {{ formatedValue }}\n \n `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".textDataLabel{font-size:11px}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { value: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], barX: [{\n type: Input\n }], barY: [{\n type: Input\n }], barWidth: [{\n type: Input\n }], barHeight: [{\n type: Input\n }], orientation: [{\n type: Input\n }], dimensionsChanged: [{\n type: Output\n }] } });\n\nclass SeriesHorizontal {\n constructor() {\n this.type = BarChartType.Standard;\n this.tooltipDisabled = false;\n this.animations = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.dataLabelWidthChanged = new EventEmitter();\n this.barsForDataLabels = [];\n this.barOrientation = BarOrientation;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateTooltipSettings();\n const d0 = {\n [D0Types.positive]: 0,\n [D0Types.negative]: 0\n };\n let d0Type;\n d0Type = D0Types.positive;\n let total;\n if (this.type === BarChartType.Normalized) {\n total = this.series.map(d => d.value).reduce((sum, d) => sum + d, 0);\n }\n const xScaleMin = Math.max(this.xScale.domain()[0], 0);\n this.bars = this.series.map(d => {\n let value = d.value;\n const label = this.getLabel(d);\n const formattedLabel = formatLabel(label);\n const roundEdges = this.roundEdges;\n d0Type = value > 0 ? D0Types.positive : D0Types.negative;\n const bar = {\n value,\n label,\n roundEdges,\n data: d,\n formattedLabel\n };\n bar.height = this.yScale.bandwidth();\n if (this.type === BarChartType.Standard) {\n bar.width = Math.abs(this.xScale(value) - this.xScale(xScaleMin));\n if (value < 0) {\n bar.x = this.xScale(value);\n }\n else {\n bar.x = this.xScale(xScaleMin);\n }\n bar.y = this.yScale(label);\n }\n else if (this.type === BarChartType.Stacked) {\n const offset0 = d0[d0Type];\n const offset1 = offset0 + value;\n d0[d0Type] += value;\n bar.width = this.xScale(offset1) - this.xScale(offset0);\n bar.x = this.xScale(offset0);\n bar.y = 0;\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n }\n else if (this.type === BarChartType.Normalized) {\n let offset0 = d0[d0Type];\n let offset1 = offset0 + value;\n d0[d0Type] += value;\n if (total > 0) {\n offset0 = (offset0 * 100) / total;\n offset1 = (offset1 * 100) / total;\n }\n else {\n offset0 = 0;\n offset1 = 0;\n }\n bar.width = this.xScale(offset1) - this.xScale(offset0);\n bar.x = this.xScale(offset0);\n bar.y = 0;\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n value = (offset1 - offset0).toFixed(2) + '%';\n }\n if (this.colors.scaleType === ScaleType.Ordinal) {\n bar.color = this.colors.getColor(label);\n }\n else {\n if (this.type === BarChartType.Standard) {\n bar.color = this.colors.getColor(value);\n bar.gradientStops = this.colors.getLinearGradientStops(value);\n }\n else {\n bar.color = this.colors.getColor(bar.offset1);\n bar.gradientStops = this.colors.getLinearGradientStops(bar.offset1, bar.offset0);\n }\n }\n let tooltipLabel = formattedLabel;\n bar.ariaLabel = formattedLabel + ' ' + value.toLocaleString();\n if (this.seriesName !== null && this.seriesName !== undefined) {\n tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n bar.data.series = this.seriesName;\n bar.ariaLabel = this.seriesName + ' ' + bar.ariaLabel;\n }\n bar.tooltipText = this.tooltipDisabled\n ? undefined\n : `\n ${escapeLabel(tooltipLabel)}\n ${this.dataLabelFormatting ? this.dataLabelFormatting(value) : value.toLocaleString()}\n `;\n return bar;\n });\n this.updateDataLabels();\n }\n updateDataLabels() {\n if (this.type === BarChartType.Stacked) {\n this.barsForDataLabels = [];\n const section = {};\n section.series = this.seriesName;\n const totalPositive = this.series.map(d => d.value).reduce((sum, d) => (d > 0 ? sum + d : sum), 0);\n const totalNegative = this.series.map(d => d.value).reduce((sum, d) => (d < 0 ? sum + d : sum), 0);\n section.total = totalPositive + totalNegative;\n section.x = 0;\n section.y = 0;\n // if total is positive then we show it on the right, otherwise on the left\n if (section.total > 0) {\n section.width = this.xScale(totalPositive);\n }\n else {\n section.width = this.xScale(totalNegative);\n }\n section.height = this.yScale.bandwidth();\n this.barsForDataLabels.push(section);\n }\n else {\n this.barsForDataLabels = this.series.map(d => {\n const section = {};\n section.series = this.seriesName ?? d.label;\n section.total = d.value;\n section.x = this.xScale(0);\n section.y = this.yScale(d.label);\n section.width = this.xScale(section.total) - this.xScale(0);\n section.height = this.yScale.bandwidth();\n return section;\n });\n }\n }\n updateTooltipSettings() {\n this.tooltipPlacement = this.tooltipDisabled ? undefined : PlacementTypes.Top;\n this.tooltipType = this.tooltipDisabled ? undefined : StyleTypes.tooltip;\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(active => {\n return entry.name === active.name && entry.value === active.value;\n });\n return item !== undefined;\n }\n getLabel(dataItem) {\n if (dataItem.label) {\n return dataItem.label;\n }\n return dataItem.name;\n }\n trackBy(index, bar) {\n return bar.label;\n }\n trackDataLabelBy(index, barLabel) {\n return index + '#' + barLabel.series + '#' + barLabel.total;\n }\n click(data) {\n this.select.emit(data);\n }\n}\nSeriesHorizontal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: SeriesHorizontal, deps: [], target: i0.ɵɵFactoryTarget.Component });\nSeriesHorizontal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: SeriesHorizontal, selector: \"g[ngx-charts-series-horizontal]\", inputs: { dims: \"dims\", type: \"type\", series: \"series\", xScale: \"xScale\", yScale: \"yScale\", colors: \"colors\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\", activeEntries: \"activeEntries\", seriesName: \"seriesName\", tooltipTemplate: \"tooltipTemplate\", roundEdges: \"roundEdges\", animations: \"animations\", showDataLabel: \"showDataLabel\", dataLabelFormatting: \"dataLabelFormatting\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\", dataLabelWidthChanged: \"dataLabelWidthChanged\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n `, isInline: true, components: [{ type: BarComponent, selector: \"g[ngx-charts-bar]\", inputs: [\"fill\", \"data\", \"width\", \"height\", \"x\", \"y\", \"orientation\", \"roundEdges\", \"gradient\", \"offset\", \"isActive\", \"stops\", \"animations\", \"ariaLabel\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\"] }, { type: BarLabelComponent, selector: \"g[ngx-charts-bar-label]\", inputs: [\"value\", \"valueFormatting\", \"barX\", \"barY\", \"barWidth\", \"barHeight\", \"orientation\"], outputs: [\"dimensionsChanged\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }, { type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: SeriesHorizontal, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-series-horizontal]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ]\n }]\n }], propDecorators: { dims: [{\n type: Input\n }], type: [{\n type: Input\n }], series: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], colors: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], seriesName: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], animations: [{\n type: Input\n }], showDataLabel: [{\n type: Input\n }], dataLabelFormatting: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], dataLabelWidthChanged: [{\n type: Output\n }] } });\n\nclass BarHorizontalComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.roundEdges = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n }\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n this.formatDates();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getXScale() {\n this.xDomain = this.getXDomain();\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.xDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getYScale() {\n this.yDomain = this.getYDomain();\n const spacing = this.yDomain.length / (this.dims.height / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.yDomain);\n }\n getXDomain() {\n const values = this.results.map(d => d.value);\n const min = this.xScaleMin ? Math.min(this.xScaleMin, ...values) : Math.min(0, ...values);\n const max = this.xScaleMax ? Math.max(this.xScaleMax, ...values) : Math.max(0, ...values);\n return [min, max];\n }\n getYDomain() {\n return this.results.map(d => d.label);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.yDomain;\n }\n else {\n domain = this.xDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === 'ordinal') {\n opts.domain = this.yDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.xDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onDataLabelMaxWidthChanged(event) {\n if (event.size.negative) {\n this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n }\n else {\n this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n }\n if (event.index === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n onActivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nBarHorizontalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarHorizontalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBarHorizontalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarHorizontalComponent, selector: \"ngx-charts-bar-horizontal\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\", showGridLines: \"showGridLines\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", barPadding: \"barPadding\", roundDomains: \"roundDomains\", roundEdges: \"roundEdges\", xScaleMax: \"xScaleMax\", xScaleMin: \"xScaleMin\", showDataLabel: \"showDataLabel\", dataLabelFormatting: \"dataLabelFormatting\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: SeriesHorizontal, selector: \"g[ngx-charts-series-horizontal]\", inputs: [\"dims\", \"type\", \"series\", \"xScale\", \"yScale\", \"colors\", \"tooltipDisabled\", \"gradient\", \"activeEntries\", \"seriesName\", \"tooltipTemplate\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dataLabelWidthChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarHorizontalComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bar-horizontal', template: `\n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], barPadding: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], xScaleMax: [{\n type: Input\n }], xScaleMin: [{\n type: Input\n }], showDataLabel: [{\n type: Input\n }], dataLabelFormatting: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass BarHorizontal2DComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.groupPadding = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.roundEdges = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n this.isSSR = false;\n this.barOrientation = BarOrientation;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n }\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n this.groupScale = this.getGroupScale();\n this.innerScale = this.getInnerScale();\n this.valueScale = this.getValueScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getGroupScale() {\n const spacing = this.groupDomain.length / (this.dims.height / this.groupPadding + 1);\n return scaleBand()\n .rangeRound([0, this.dims.height])\n .paddingInner(spacing)\n .paddingOuter(spacing / 2)\n .domain(this.groupDomain);\n }\n getInnerScale() {\n const height = this.groupScale.bandwidth();\n const spacing = this.innerDomain.length / (height / this.barPadding + 1);\n return scaleBand().rangeRound([0, height]).paddingInner(spacing).domain(this.innerDomain);\n }\n getValueScale() {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getGroupDomain() {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n return domain;\n }\n getInnerDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n return domain;\n }\n getValueDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.value)) {\n domain.push(d.value);\n }\n }\n }\n const min = Math.min(0, ...domain);\n const max = this.xScaleMax ? Math.max(this.xScaleMax, ...domain) : Math.max(0, ...domain);\n return [min, max];\n }\n groupTransform(group) {\n return `translate(0, ${this.groupScale(group.label)})`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n }\n else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onDataLabelMaxWidthChanged(event, groupIndex) {\n if (event.size.negative) {\n this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n }\n else {\n this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n }\n if (groupIndex === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n }\n else {\n return i.name === item.name && i.series === item.series;\n }\n });\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n }\n else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nBarHorizontal2DComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarHorizontal2DComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBarHorizontal2DComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarHorizontal2DComponent, selector: \"ngx-charts-bar-horizontal-2d\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\", showGridLines: \"showGridLines\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", groupPadding: \"groupPadding\", barPadding: \"barPadding\", roundDomains: \"roundDomains\", roundEdges: \"roundEdges\", xScaleMax: \"xScaleMax\", showDataLabel: \"showDataLabel\", dataLabelFormatting: \"dataLabelFormatting\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: GridPanelSeriesComponent, selector: \"g[ngx-charts-grid-panel-series]\", inputs: [\"data\", \"dims\", \"xScale\", \"yScale\", \"orient\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: SeriesHorizontal, selector: \"g[ngx-charts-series-horizontal]\", inputs: [\"dims\", \"type\", \"series\", \"xScale\", \"yScale\", \"colors\", \"tooltipDisabled\", \"gradient\", \"activeEntries\", \"seriesName\", \"tooltipTemplate\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dataLabelWidthChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarHorizontal2DComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bar-horizontal-2d', template: `\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], groupPadding: [{\n type: Input\n }], barPadding: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], xScaleMax: [{\n type: Input\n }], showDataLabel: [{\n type: Input\n }], dataLabelFormatting: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass BarHorizontalNormalizedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.noBarWhenZero = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.valueDomain = [0, 100];\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.barChartType = BarChartType;\n this.isSSR = false;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getGroupDomain() {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n return domain;\n }\n getInnerDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n return domain;\n }\n getYScale() {\n const spacing = this.groupDomain.length / (this.dims.height / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.groupDomain);\n }\n getXScale() {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n groupTransform(group) {\n return `translate(0, ${this.yScale(group.name)})`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n }\n else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n }\n else {\n return i.name === item.name && i.series === item.series;\n }\n });\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n }\n else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nBarHorizontalNormalizedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarHorizontalNormalizedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBarHorizontalNormalizedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarHorizontalNormalizedComponent, selector: \"ngx-charts-bar-horizontal-normalized\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\", showGridLines: \"showGridLines\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", barPadding: \"barPadding\", roundDomains: \"roundDomains\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: SeriesHorizontal, selector: \"g[ngx-charts-series-horizontal]\", inputs: [\"dims\", \"type\", \"series\", \"xScale\", \"yScale\", \"colors\", \"tooltipDisabled\", \"gradient\", \"activeEntries\", \"seriesName\", \"tooltipTemplate\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dataLabelWidthChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarHorizontalNormalizedComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bar-horizontal-normalized', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], barPadding: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass BarHorizontalStackedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n this.barChartType = BarChartType;\n this.isSSR = false;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxWidth = { negative: 0, positive: 0 };\n }\n this.margin = [10, 20 + this.dataLabelMaxWidth.positive, 10, 20 + this.dataLabelMaxWidth.negative];\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getGroupDomain() {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n return domain;\n }\n getInnerDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n return domain;\n }\n getValueDomain() {\n const domain = [];\n let smallest = 0;\n let biggest = 0;\n for (const group of this.results) {\n let smallestSum = 0;\n let biggestSum = 0;\n for (const d of group.series) {\n if (d.value < 0) {\n smallestSum += d.value;\n }\n else {\n biggestSum += d.value;\n }\n smallest = d.value < smallest ? d.value : smallest;\n biggest = d.value > biggest ? d.value : biggest;\n }\n domain.push(smallestSum);\n domain.push(biggestSum);\n }\n domain.push(smallest);\n domain.push(biggest);\n const min = Math.min(0, ...domain);\n const max = this.xScaleMax ? Math.max(this.xScaleMax, ...domain) : Math.max(...domain);\n return [min, max];\n }\n getYScale() {\n const spacing = this.groupDomain.length / (this.dims.height / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.height]).paddingInner(spacing).domain(this.groupDomain);\n }\n getXScale() {\n const scale = scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n groupTransform(group) {\n return `translate(0, ${this.yScale(group.name)})`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n }\n else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onDataLabelMaxWidthChanged(event, groupIndex) {\n if (event.size.negative) {\n this.dataLabelMaxWidth.negative = Math.max(this.dataLabelMaxWidth.negative, event.size.width);\n }\n else {\n this.dataLabelMaxWidth.positive = Math.max(this.dataLabelMaxWidth.positive, event.size.width);\n }\n if (groupIndex === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n }\n else {\n return i.name === item.name && i.series === item.series;\n }\n });\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n }\n else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nBarHorizontalStackedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarHorizontalStackedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBarHorizontalStackedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarHorizontalStackedComponent, selector: \"ngx-charts-bar-horizontal-stacked\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\", showGridLines: \"showGridLines\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", barPadding: \"barPadding\", roundDomains: \"roundDomains\", xScaleMax: \"xScaleMax\", showDataLabel: \"showDataLabel\", dataLabelFormatting: \"dataLabelFormatting\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: SeriesHorizontal, selector: \"g[ngx-charts-series-horizontal]\", inputs: [\"dims\", \"type\", \"series\", \"xScale\", \"yScale\", \"colors\", \"tooltipDisabled\", \"gradient\", \"activeEntries\", \"seriesName\", \"tooltipTemplate\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dataLabelWidthChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarHorizontalStackedComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bar-horizontal-stacked', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], barPadding: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], xScaleMax: [{\n type: Input\n }], showDataLabel: [{\n type: Input\n }], dataLabelFormatting: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass SeriesVerticalComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.type = BarChartType.Standard;\n this.tooltipDisabled = false;\n this.animations = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.dataLabelHeightChanged = new EventEmitter();\n this.barsForDataLabels = [];\n this.barOrientation = BarOrientation;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateTooltipSettings();\n let width;\n if (this.series.length) {\n width = this.xScale.bandwidth();\n }\n width = Math.round(width);\n const yScaleMin = Math.max(this.yScale.domain()[0], 0);\n const d0 = {\n [D0Types.positive]: 0,\n [D0Types.negative]: 0\n };\n let d0Type = D0Types.positive;\n let total;\n if (this.type === BarChartType.Normalized) {\n total = this.series.map(d => d.value).reduce((sum, d) => sum + d, 0);\n }\n this.bars = this.series.map((d, index) => {\n let value = d.value;\n const label = this.getLabel(d);\n const formattedLabel = formatLabel(label);\n const roundEdges = this.roundEdges;\n d0Type = value > 0 ? D0Types.positive : D0Types.negative;\n const bar = {\n value,\n label,\n roundEdges,\n data: d,\n width,\n formattedLabel,\n height: 0,\n x: 0,\n y: 0\n };\n if (this.type === BarChartType.Standard) {\n bar.height = Math.abs(this.yScale(value) - this.yScale(yScaleMin));\n bar.x = this.xScale(label);\n if (value < 0) {\n bar.y = this.yScale(0);\n }\n else {\n bar.y = this.yScale(value);\n }\n }\n else if (this.type === BarChartType.Stacked) {\n const offset0 = d0[d0Type];\n const offset1 = offset0 + value;\n d0[d0Type] += value;\n bar.height = this.yScale(offset0) - this.yScale(offset1);\n bar.x = 0;\n bar.y = this.yScale(offset1);\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n }\n else if (this.type === BarChartType.Normalized) {\n let offset0 = d0[d0Type];\n let offset1 = offset0 + value;\n d0[d0Type] += value;\n if (total > 0) {\n offset0 = (offset0 * 100) / total;\n offset1 = (offset1 * 100) / total;\n }\n else {\n offset0 = 0;\n offset1 = 0;\n }\n bar.height = this.yScale(offset0) - this.yScale(offset1);\n bar.x = 0;\n bar.y = this.yScale(offset1);\n bar.offset0 = offset0;\n bar.offset1 = offset1;\n value = (offset1 - offset0).toFixed(2) + '%';\n }\n if (this.colors.scaleType === ScaleType.Ordinal) {\n bar.color = this.colors.getColor(label);\n }\n else {\n if (this.type === BarChartType.Standard) {\n bar.color = this.colors.getColor(value);\n bar.gradientStops = this.colors.getLinearGradientStops(value);\n }\n else {\n bar.color = this.colors.getColor(bar.offset1);\n bar.gradientStops = this.colors.getLinearGradientStops(bar.offset1, bar.offset0);\n }\n }\n let tooltipLabel = formattedLabel;\n bar.ariaLabel = formattedLabel + ' ' + value.toLocaleString();\n if (this.seriesName !== null && this.seriesName !== undefined) {\n tooltipLabel = `${this.seriesName} • ${formattedLabel}`;\n bar.data.series = this.seriesName;\n bar.ariaLabel = this.seriesName + ' ' + bar.ariaLabel;\n }\n bar.tooltipText = this.tooltipDisabled\n ? undefined\n : `\n ${escapeLabel(tooltipLabel)}\n ${this.dataLabelFormatting ? this.dataLabelFormatting(value) : value.toLocaleString()}\n `;\n return bar;\n });\n this.updateDataLabels();\n }\n updateDataLabels() {\n if (this.type === BarChartType.Stacked) {\n this.barsForDataLabels = [];\n const section = {};\n section.series = this.seriesName;\n const totalPositive = this.series.map(d => d.value).reduce((sum, d) => (d > 0 ? sum + d : sum), 0);\n const totalNegative = this.series.map(d => d.value).reduce((sum, d) => (d < 0 ? sum + d : sum), 0);\n section.total = totalPositive + totalNegative;\n section.x = 0;\n section.y = 0;\n if (section.total > 0) {\n section.height = this.yScale(totalPositive);\n }\n else {\n section.height = this.yScale(totalNegative);\n }\n section.width = this.xScale.bandwidth();\n this.barsForDataLabels.push(section);\n }\n else {\n this.barsForDataLabels = this.series.map(d => {\n const section = {};\n section.series = this.seriesName ?? d.label;\n section.total = d.value;\n section.x = this.xScale(d.label);\n section.y = this.yScale(0);\n section.height = this.yScale(section.total) - this.yScale(0);\n section.width = this.xScale.bandwidth();\n return section;\n });\n }\n }\n updateTooltipSettings() {\n this.tooltipPlacement = this.tooltipDisabled ? undefined : PlacementTypes.Top;\n this.tooltipType = this.tooltipDisabled ? undefined : StyleTypes.tooltip;\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(active => {\n return entry.name === active.name && entry.value === active.value;\n });\n return item !== undefined;\n }\n onClick(data) {\n this.select.emit(data);\n }\n getLabel(dataItem) {\n if (dataItem.label) {\n return dataItem.label;\n }\n return dataItem.name;\n }\n trackBy(index, bar) {\n return bar.label;\n }\n trackDataLabelBy(index, barLabel) {\n return index + '#' + barLabel.series + '#' + barLabel.total;\n }\n}\nSeriesVerticalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: SeriesVerticalComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nSeriesVerticalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: SeriesVerticalComponent, selector: \"g[ngx-charts-series-vertical]\", inputs: { dims: \"dims\", type: \"type\", series: \"series\", xScale: \"xScale\", yScale: \"yScale\", colors: \"colors\", gradient: \"gradient\", activeEntries: \"activeEntries\", seriesName: \"seriesName\", tooltipDisabled: \"tooltipDisabled\", tooltipTemplate: \"tooltipTemplate\", roundEdges: \"roundEdges\", animations: \"animations\", showDataLabel: \"showDataLabel\", dataLabelFormatting: \"dataLabelFormatting\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\", dataLabelHeightChanged: \"dataLabelHeightChanged\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n `, isInline: true, components: [{ type: BarComponent, selector: \"g[ngx-charts-bar]\", inputs: [\"fill\", \"data\", \"width\", \"height\", \"x\", \"y\", \"orientation\", \"roundEdges\", \"gradient\", \"offset\", \"isActive\", \"stops\", \"animations\", \"ariaLabel\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\"] }, { type: BarLabelComponent, selector: \"g[ngx-charts-bar-label]\", inputs: [\"value\", \"valueFormatting\", \"barX\", \"barY\", \"barWidth\", \"barHeight\", \"orientation\"], outputs: [\"dimensionsChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: SeriesVerticalComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-series-vertical]',\n template: `\n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ]\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { dims: [{\n type: Input\n }], type: [{\n type: Input\n }], series: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], colors: [{\n type: Input\n }], gradient: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], seriesName: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], animations: [{\n type: Input\n }], showDataLabel: [{\n type: Input\n }], dataLabelFormatting: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], dataLabelHeightChanged: [{\n type: Output\n }] } });\n\nclass BarVerticalComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.roundEdges = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n this.formatDates();\n if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n }\n getXScale() {\n this.xDomain = this.getXDomain();\n const spacing = this.xDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().range([0, this.dims.width]).paddingInner(spacing).domain(this.xDomain);\n }\n getYScale() {\n this.yDomain = this.getYDomain();\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.yDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getXDomain() {\n return this.results.map(d => d.label);\n }\n getYDomain() {\n const values = this.results.map(d => d.value);\n let min = this.yScaleMin ? Math.min(this.yScaleMin, ...values) : Math.min(0, ...values);\n if (this.yAxisTicks && !this.yAxisTicks.some(isNaN)) {\n min = Math.min(min, ...this.yAxisTicks);\n }\n let max = this.yScaleMax ? Math.max(this.yScaleMax, ...values) : Math.max(0, ...values);\n if (this.yAxisTicks && !this.yAxisTicks.some(isNaN)) {\n max = Math.max(max, ...this.yAxisTicks);\n }\n return [min, max];\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.xDomain;\n }\n else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.xDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onDataLabelMaxHeightChanged(event) {\n if (event.size.negative) {\n this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n }\n else {\n this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n }\n if (event.index === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n onActivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nBarVerticalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarVerticalComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBarVerticalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarVerticalComponent, selector: \"ngx-charts-bar-vertical\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\", showGridLines: \"showGridLines\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", barPadding: \"barPadding\", roundDomains: \"roundDomains\", roundEdges: \"roundEdges\", yScaleMax: \"yScaleMax\", yScaleMin: \"yScaleMin\", showDataLabel: \"showDataLabel\", dataLabelFormatting: \"dataLabelFormatting\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: SeriesVerticalComponent, selector: \"g[ngx-charts-series-vertical]\", inputs: [\"dims\", \"type\", \"series\", \"xScale\", \"yScale\", \"colors\", \"gradient\", \"activeEntries\", \"seriesName\", \"tooltipDisabled\", \"tooltipTemplate\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dataLabelHeightChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarVerticalComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bar-vertical', template: `\n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], barPadding: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], yScaleMax: [{\n type: Input\n }], yScaleMin: [{\n type: Input\n }], showDataLabel: [{\n type: Input\n }], dataLabelFormatting: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass BarVertical2DComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.scaleType = ScaleType.Ordinal;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.groupPadding = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.roundEdges = true;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n this.isSSR = false;\n this.barOrientation = BarOrientation;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n this.groupScale = this.getGroupScale();\n this.innerScale = this.getInnerScale();\n this.valueScale = this.getValueScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n }\n onDataLabelMaxHeightChanged(event, groupIndex) {\n if (event.size.negative) {\n this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n }\n else {\n this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n }\n if (groupIndex === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n getGroupScale() {\n const spacing = this.groupDomain.length / (this.dims.height / this.groupPadding + 1);\n return scaleBand()\n .rangeRound([0, this.dims.width])\n .paddingInner(spacing)\n .paddingOuter(spacing / 2)\n .domain(this.groupDomain);\n }\n getInnerScale() {\n const width = this.groupScale.bandwidth();\n const spacing = this.innerDomain.length / (width / this.barPadding + 1);\n return scaleBand().rangeRound([0, width]).paddingInner(spacing).domain(this.innerDomain);\n }\n getValueScale() {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getGroupDomain() {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n return domain;\n }\n getInnerDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n return domain;\n }\n getValueDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.value)) {\n domain.push(d.value);\n }\n }\n }\n const min = Math.min(0, ...domain);\n const max = this.yScaleMax ? Math.max(this.yScaleMax, ...domain) : Math.max(0, ...domain);\n return [min, max];\n }\n groupTransform(group) {\n return `translate(${this.groupScale(group.label)}, 0)`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n }\n else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n }\n else {\n return i.name === item.name && i.series === item.series;\n }\n });\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n }\n else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nBarVertical2DComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarVertical2DComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBarVertical2DComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarVertical2DComponent, selector: \"ngx-charts-bar-vertical-2d\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", scaleType: \"scaleType\", gradient: \"gradient\", showGridLines: \"showGridLines\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", groupPadding: \"groupPadding\", barPadding: \"barPadding\", roundDomains: \"roundDomains\", roundEdges: \"roundEdges\", yScaleMax: \"yScaleMax\", showDataLabel: \"showDataLabel\", dataLabelFormatting: \"dataLabelFormatting\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: GridPanelSeriesComponent, selector: \"g[ngx-charts-grid-panel-series]\", inputs: [\"data\", \"dims\", \"xScale\", \"yScale\", \"orient\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: SeriesVerticalComponent, selector: \"g[ngx-charts-series-vertical]\", inputs: [\"dims\", \"type\", \"series\", \"xScale\", \"yScale\", \"colors\", \"gradient\", \"activeEntries\", \"seriesName\", \"tooltipDisabled\", \"tooltipTemplate\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dataLabelHeightChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarVertical2DComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bar-vertical-2d', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], scaleType: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], groupPadding: [{\n type: Input\n }], barPadding: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], yScaleMax: [{\n type: Input\n }], showDataLabel: [{\n type: Input\n }], dataLabelFormatting: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass BarVerticalNormalizedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.noBarWhenZero = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.valueDomain = [0, 100];\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.isSSR = false;\n this.barChartType = BarChartType;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getGroupDomain() {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n return domain;\n }\n getInnerDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n return domain;\n }\n getXScale() {\n const spacing = this.groupDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.width]).paddingInner(spacing).domain(this.groupDomain);\n }\n getYScale() {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n groupTransform(group) {\n return `translate(${this.xScale(group.name)}, 0)`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n }\n else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n }\n else {\n return i.name === item.name && i.series === item.series;\n }\n });\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n }\n else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nBarVerticalNormalizedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarVerticalNormalizedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBarVerticalNormalizedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarVerticalNormalizedComponent, selector: \"ngx-charts-bar-vertical-normalized\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\", showGridLines: \"showGridLines\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", barPadding: \"barPadding\", roundDomains: \"roundDomains\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: SeriesVerticalComponent, selector: \"g[ngx-charts-series-vertical]\", inputs: [\"dims\", \"type\", \"series\", \"xScale\", \"yScale\", \"colors\", \"gradient\", \"activeEntries\", \"seriesName\", \"tooltipDisabled\", \"tooltipTemplate\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dataLabelHeightChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarVerticalNormalizedComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bar-vertical-normalized', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], barPadding: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass BarVerticalStackedComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.tooltipDisabled = false;\n this.showGridLines = true;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.barPadding = 8;\n this.roundDomains = false;\n this.showDataLabel = false;\n this.noBarWhenZero = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n this.isSSR = false;\n this.barChartType = BarChartType;\n this.trackBy = (index, item) => {\n return item.name;\n };\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n if (!this.showDataLabel) {\n this.dataLabelMaxHeight = { negative: 0, positive: 0 };\n }\n this.margin = [10 + this.dataLabelMaxHeight.positive, 20, 10 + this.dataLabelMaxHeight.negative, 20];\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n if (this.showDataLabel) {\n this.dims.height -= this.dataLabelMaxHeight.negative;\n }\n this.formatDates();\n this.groupDomain = this.getGroupDomain();\n this.innerDomain = this.getInnerDomain();\n this.valueDomain = this.getValueDomain();\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0] + this.dataLabelMaxHeight.negative})`;\n }\n getGroupDomain() {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.label)) {\n domain.push(group.label);\n }\n }\n return domain;\n }\n getInnerDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.label)) {\n domain.push(d.label);\n }\n }\n }\n return domain;\n }\n getValueDomain() {\n const domain = [];\n let smallest = 0;\n let biggest = 0;\n for (const group of this.results) {\n let smallestSum = 0;\n let biggestSum = 0;\n for (const d of group.series) {\n if (d.value < 0) {\n smallestSum += d.value;\n }\n else {\n biggestSum += d.value;\n }\n smallest = d.value < smallest ? d.value : smallest;\n biggest = d.value > biggest ? d.value : biggest;\n }\n domain.push(smallestSum);\n domain.push(biggestSum);\n }\n domain.push(smallest);\n domain.push(biggest);\n const min = Math.min(0, ...domain);\n const max = this.yScaleMax ? Math.max(this.yScaleMax, ...domain) : Math.max(...domain);\n return [min, max];\n }\n getXScale() {\n const spacing = this.groupDomain.length / (this.dims.width / this.barPadding + 1);\n return scaleBand().rangeRound([0, this.dims.width]).paddingInner(spacing).domain(this.groupDomain);\n }\n getYScale() {\n const scale = scaleLinear().range([this.dims.height, 0]).domain(this.valueDomain);\n return this.roundDomains ? scale.nice() : scale;\n }\n onDataLabelMaxHeightChanged(event, groupIndex) {\n if (event.size.negative) {\n this.dataLabelMaxHeight.negative = Math.max(this.dataLabelMaxHeight.negative, event.size.height);\n }\n else {\n this.dataLabelMaxHeight.positive = Math.max(this.dataLabelMaxHeight.positive, event.size.height);\n }\n if (groupIndex === this.results.length - 1) {\n setTimeout(() => this.update());\n }\n }\n groupTransform(group) {\n return `translate(${this.xScale(group.name) || 0}, 0)`;\n }\n onClick(data, group) {\n if (group) {\n data.series = group.name;\n }\n this.select.emit(data);\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.innerDomain;\n }\n else {\n domain = this.valueDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.innerDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.valueDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n }\n else {\n return i.name === item.name && i.series === item.series;\n }\n });\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n }\n else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nBarVerticalStackedComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarVerticalStackedComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBarVerticalStackedComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BarVerticalStackedComponent, selector: \"ngx-charts-bar-vertical-stacked\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\", showGridLines: \"showGridLines\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", barPadding: \"barPadding\", roundDomains: \"roundDomains\", yScaleMax: \"yScaleMax\", showDataLabel: \"showDataLabel\", dataLabelFormatting: \"dataLabelFormatting\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: SeriesVerticalComponent, selector: \"g[ngx-charts-series-vertical]\", inputs: [\"dims\", \"type\", \"series\", \"xScale\", \"yScale\", \"colors\", \"gradient\", \"activeEntries\", \"seriesName\", \"tooltipDisabled\", \"tooltipTemplate\", \"roundEdges\", \"animations\", \"showDataLabel\", \"dataLabelFormatting\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dataLabelHeightChanged\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarVerticalStackedComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bar-vertical-stacked', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1,\n transform: '*'\n }),\n animate(500, style({ opacity: 0, transform: 'scale(0)' }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], barPadding: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], yScaleMax: [{\n type: Input\n }], showDataLabel: [{\n type: Input\n }], dataLabelFormatting: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass BarChartModule {\n}\nBarChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBarChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarChartModule, declarations: [BarComponent,\n BarHorizontalComponent,\n BarHorizontal2DComponent,\n BarHorizontalNormalizedComponent,\n BarHorizontalStackedComponent,\n BarVerticalComponent,\n BarVertical2DComponent,\n BarVerticalNormalizedComponent,\n BarVerticalStackedComponent,\n BarLabelComponent,\n SeriesHorizontal,\n SeriesVerticalComponent], imports: [ChartCommonModule], exports: [BarComponent,\n BarHorizontalComponent,\n BarHorizontal2DComponent,\n BarHorizontalNormalizedComponent,\n BarHorizontalStackedComponent,\n BarVerticalComponent,\n BarVertical2DComponent,\n BarVerticalNormalizedComponent,\n BarVerticalStackedComponent,\n BarLabelComponent,\n SeriesHorizontal,\n SeriesVerticalComponent] });\nBarChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarChartModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BarChartModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [\n BarComponent,\n BarHorizontalComponent,\n BarHorizontal2DComponent,\n BarHorizontalNormalizedComponent,\n BarHorizontalStackedComponent,\n BarVerticalComponent,\n BarVertical2DComponent,\n BarVerticalNormalizedComponent,\n BarVerticalStackedComponent,\n BarLabelComponent,\n SeriesHorizontal,\n SeriesVerticalComponent\n ],\n exports: [\n BarComponent,\n BarHorizontalComponent,\n BarHorizontal2DComponent,\n BarHorizontalNormalizedComponent,\n BarHorizontalStackedComponent,\n BarVerticalComponent,\n BarVertical2DComponent,\n BarVerticalNormalizedComponent,\n BarVerticalStackedComponent,\n BarLabelComponent,\n SeriesHorizontal,\n SeriesVerticalComponent\n ]\n }]\n }] });\n\nclass BoxComponent {\n constructor(element, cd) {\n this.cd = cd;\n this.roundEdges = true;\n this.gradient = false;\n this.offset = 0;\n this.isActive = false;\n this.animations = true;\n this.noBarWhenZero = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.BarOrientation = BarOrientation;\n this.initialized = false;\n this.hasGradient = false;\n this.hideBar = false;\n this.nativeElm = element.nativeElement;\n }\n ngOnChanges(changes) {\n if (!this.initialized) {\n this.loadAnimation();\n this.initialized = true;\n }\n else {\n this.update();\n }\n }\n update() {\n this.boxStrokeWidth = Math.max(this.strokeWidth, 1);\n this.whiskerStrokeWidth = Math.max(this.strokeWidth / 2, 1);\n this.medianLineWidth = 1.5 * this.strokeWidth;\n this.gradientId = 'grad' + id().toString();\n this.gradientFill = `url(#${this.gradientId})`;\n if (this.gradient) {\n this.gradientStops = this.getGradient();\n this.hasGradient = true;\n }\n else {\n this.hasGradient = false;\n }\n this.updateLineEl();\n this.updatePathEl();\n this.checkToHideBar();\n this.maskLineId = 'mask' + id().toString();\n this.maskLine = `url(#${this.maskLineId})`;\n if (this.cd) {\n this.cd.markForCheck();\n }\n }\n loadAnimation() {\n this.boxPath = this.oldPath = this.getStartingPath();\n this.oldLineCoordinates = this.getStartingLineCoordinates();\n setTimeout(this.update.bind(this), 100);\n }\n updatePathEl() {\n const nodeBar = select(this.nativeElm).selectAll('.bar');\n const path = this.getPath();\n if (this.animations) {\n nodeBar\n .attr('d', this.oldPath)\n .transition()\n .ease(easeSinInOut)\n .duration(500)\n .attrTween('d', this.pathTween(path, 4));\n }\n else {\n nodeBar.attr('d', path);\n }\n this.oldPath = path;\n }\n updateLineEl() {\n const lineEl = select(this.nativeElm).selectAll('.bar-line');\n const lineCoordinates = this.lineCoordinates;\n const oldLineCoordinates = this.oldLineCoordinates;\n if (this.animations) {\n lineEl\n .attr('x1', (_, index) => oldLineCoordinates[index].v1.x)\n .attr('y1', (_, index) => oldLineCoordinates[index].v1.y)\n .attr('x2', (_, index) => oldLineCoordinates[index].v2.x)\n .attr('y2', (_, index) => oldLineCoordinates[index].v2.y)\n .transition()\n .ease(easeSinInOut)\n .duration(500)\n .attr('x1', (_, index) => lineCoordinates[index].v1.x)\n .attr('y1', (_, index) => lineCoordinates[index].v1.y)\n .attr('x2', (_, index) => lineCoordinates[index].v2.x)\n .attr('y2', (_, index) => lineCoordinates[index].v2.y);\n }\n else {\n lineEl\n .attr('x1', (_, index) => lineCoordinates[index].v1.x)\n .attr('y1', (_, index) => lineCoordinates[index].v1.y)\n .attr('x2', (_, index) => lineCoordinates[index].v2.x)\n .attr('y2', (_, index) => lineCoordinates[index].v2.y);\n }\n this.oldLineCoordinates = [...lineCoordinates];\n }\n /**\n * See [D3 Selections](https://www.d3indepth.com/selections/)\n * @param d The joined data.\n * @param index The index of the element within the selection\n * @param node The node element (Line).\n */\n lineTween(attr, d, index, node) {\n const nodeLineEl = node[index];\n return nodeLineEl[attr].baseVal.value;\n }\n // TODO: Refactor into another .ts file if https://github.com/swimlane/ngx-charts/pull/1179 gets merged.\n pathTween(d1, precision) {\n return function () {\n // tslint:disable-next-line: no-this-assignment\n const path0 = this;\n const path1 = this.cloneNode();\n path1.setAttribute('d', d1);\n const n0 = path0?.getTotalLength();\n const n1 = path1?.getTotalLength();\n // Uniform sampling of distance based on specified precision.\n const distances = [0];\n let i = 0;\n const dt = precision / Math.max(n0, n1);\n while (i < 1) {\n distances.push(i);\n i += dt;\n }\n distances.push(1);\n // Compute point-interpolators at each distance.\n const points = distances.map((t) => {\n const p0 = path0.getPointAtLength(t * n0);\n const p1 = path1.getPointAtLength(t * n1);\n return interpolate([p0.x, p0.y], [p1.x, p1.y]);\n });\n // 't': T is the fraction of time (between 0 and 1) since the transition began.\n return (t) => {\n return t < 1 ? 'M' + points.map((p) => p(t)).join('L') : d1;\n };\n };\n }\n getStartingPath() {\n if (!this.animations) {\n return this.getPath();\n }\n const radius = this.roundEdges ? 1 : 0;\n const { x, y } = this.lineCoordinates[2].v1;\n return roundedRect(x - this.width, y - 1, this.width, 2, radius, this.edges);\n }\n getPath() {\n const radius = this.getRadius();\n let path = '';\n path = roundedRect(this.x, this.y, this.width, this.height, Math.min(this.height, radius), this.edges);\n return path;\n }\n getStartingLineCoordinates() {\n if (!this.animations) {\n return [...this.lineCoordinates];\n }\n const lineCoordinates = cloneDeep(this.lineCoordinates);\n lineCoordinates[1].v1.y = lineCoordinates[1].v2.y = lineCoordinates[3].v1.y = lineCoordinates[3].v2.y = lineCoordinates[0].v1.y = lineCoordinates[0].v2.y =\n lineCoordinates[2].v1.y;\n return lineCoordinates;\n }\n getRadius() {\n let radius = 0;\n if (this.roundEdges && this.height > 5 && this.width > 5) {\n radius = Math.floor(Math.min(5, this.height / 2, this.width / 2));\n }\n return radius;\n }\n getGradient() {\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: this.getStartOpacity()\n },\n {\n offset: 100,\n color: this.fill,\n opacity: 1\n }\n ];\n }\n getStartOpacity() {\n if (this.roundEdges) {\n return 0.2;\n }\n else {\n return 0.5;\n }\n }\n get edges() {\n let edges = [false, false, false, false];\n if (this.roundEdges) {\n edges = [true, true, true, true];\n }\n return edges;\n }\n onMouseEnter() {\n this.activate.emit(this.data);\n }\n onMouseLeave() {\n this.deactivate.emit(this.data);\n }\n checkToHideBar() {\n this.hideBar = this.noBarWhenZero && this.height === 0;\n }\n}\nBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\nBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BoxComponent, selector: \"g[ngx-charts-box]\", inputs: { strokeColor: \"strokeColor\", strokeWidth: \"strokeWidth\", fill: \"fill\", data: \"data\", width: \"width\", height: \"height\", x: \"x\", y: \"y\", lineCoordinates: \"lineCoordinates\", roundEdges: \"roundEdges\", gradient: \"gradient\", gradientStops: \"gradientStops\", offset: \"offset\", isActive: \"isActive\", animations: \"animations\", ariaLabel: \"ariaLabel\", noBarWhenZero: \"noBarWhenZero\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"mouseenter\": \"onMouseEnter()\", \"mouseleave\": \"onMouseLeave()\" } }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, components: [{ type: SvgLinearGradientComponent, selector: \"g[ngx-charts-svg-linear-gradient]\", inputs: [\"orientation\", \"name\", \"stops\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-box]',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { strokeColor: [{\n type: Input\n }], strokeWidth: [{\n type: Input\n }], fill: [{\n type: Input\n }], data: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], x: [{\n type: Input\n }], y: [{\n type: Input\n }], lineCoordinates: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], gradient: [{\n type: Input\n }], gradientStops: [{\n type: Input\n }], offset: [{\n type: Input\n }], isActive: [{\n type: Input\n }], animations: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], noBarWhenZero: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], onMouseEnter: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseLeave: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nclass BoxSeriesComponent {\n constructor() {\n this.animations = true;\n this.tooltipDisabled = false;\n this.gradient = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n }\n ngOnChanges(changes) {\n this.update();\n }\n onClick(data) {\n this.select.emit(data);\n }\n update() {\n this.updateTooltipSettings();\n const width = this.series && this.series.series.length ? Math.round(this.xScale.bandwidth()) : null;\n const seriesName = this.series.name;\n // Calculate Quantile and Whiskers for each box serie.\n this.counts = this.series.series;\n const mappedCounts = this.counts.map(serie => Number(serie.value));\n this.whiskers = [min(mappedCounts), max(mappedCounts)];\n // We get the group count and must sort it in order to retrieve quantiles.\n const groupCounts = this.counts.map(item => item.value).sort((a, b) => Number(a) - Number(b));\n this.quartiles = this.getBoxQuantiles(groupCounts);\n this.lineCoordinates = this.getLinesCoordinates(seriesName.toString(), this.whiskers, this.quartiles, width);\n const value = this.quartiles[1];\n const formattedLabel = formatLabel(seriesName);\n const box = {\n value,\n data: this.counts,\n label: seriesName,\n formattedLabel,\n width,\n height: 0,\n x: 0,\n y: 0,\n roundEdges: this.roundEdges,\n quartiles: this.quartiles,\n lineCoordinates: this.lineCoordinates\n };\n box.height = Math.abs(this.yScale(this.quartiles[0]) - this.yScale(this.quartiles[2]));\n box.x = this.xScale(seriesName.toString());\n box.y = this.yScale(this.quartiles[2]);\n box.ariaLabel = formattedLabel + ' - Median: ' + value.toLocaleString();\n if (this.colors.scaleType === ScaleType.Ordinal) {\n box.color = this.colors.getColor(seriesName);\n }\n else {\n box.color = this.colors.getColor(this.quartiles[1]);\n box.gradientStops = this.colors.getLinearGradientStops(this.quartiles[0], this.quartiles[2]);\n }\n const tooltipLabel = formattedLabel;\n const formattedTooltipLabel = `\n ${escapeLabel(tooltipLabel)}\n \n • Q1: ${this.quartiles[0]} • Q2: ${this.quartiles[1]} • Q3: ${this.quartiles[2]}
\n • Min: ${this.whiskers[0]} • Max: ${this.whiskers[1]}\n
`;\n box.tooltipText = this.tooltipDisabled ? undefined : formattedTooltipLabel;\n this.tooltipTitle = this.tooltipDisabled ? undefined : box.tooltipText;\n this.box = box;\n }\n getBoxQuantiles(inputData) {\n return [quantile(inputData, 0.25), quantile(inputData, 0.5), quantile(inputData, 0.75)];\n }\n getLinesCoordinates(seriesName, whiskers, quartiles, barWidth) {\n // The X value is not being centered, so had to sum half the width to align it.\n const commonX = this.xScale(seriesName);\n const offsetX = commonX + barWidth / 2;\n const medianLineWidth = Math.max(barWidth + 4 * this.strokeWidth, 1);\n const whiskerLineWidth = Math.max(barWidth / 3, 1);\n const whiskerZero = this.yScale(whiskers[0]);\n const whiskerOne = this.yScale(whiskers[1]);\n const median = this.yScale(quartiles[1]);\n const topLine = {\n v1: { x: offsetX + whiskerLineWidth / 2, y: whiskerZero },\n v2: { x: offsetX - whiskerLineWidth / 2, y: whiskerZero }\n };\n const medianLine = {\n v1: { x: offsetX + medianLineWidth / 2, y: median },\n v2: { x: offsetX - medianLineWidth / 2, y: median }\n };\n const bottomLine = {\n v1: { x: offsetX + whiskerLineWidth / 2, y: whiskerOne },\n v2: { x: offsetX - whiskerLineWidth / 2, y: whiskerOne }\n };\n const verticalLine = {\n v1: { x: offsetX, y: whiskerZero },\n v2: { x: offsetX, y: whiskerOne }\n };\n return [verticalLine, topLine, medianLine, bottomLine];\n }\n updateTooltipSettings() {\n if (this.tooltipDisabled) {\n this.tooltipPlacement = undefined;\n this.tooltipType = undefined;\n }\n else {\n if (!this.tooltipPlacement) {\n this.tooltipPlacement = PlacementTypes.Top;\n }\n if (!this.tooltipType) {\n this.tooltipType = StyleTypes.tooltip;\n }\n }\n }\n}\nBoxSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nBoxSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BoxSeriesComponent, selector: \"g[ngx-charts-box-series]\", inputs: { dims: \"dims\", series: \"series\", xScale: \"xScale\", yScale: \"yScale\", colors: \"colors\", animations: \"animations\", strokeColor: \"strokeColor\", strokeWidth: \"strokeWidth\", tooltipDisabled: \"tooltipDisabled\", tooltipTemplate: \"tooltipTemplate\", tooltipPlacement: \"tooltipPlacement\", tooltipType: \"tooltipType\", roundEdges: \"roundEdges\", gradient: \"gradient\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, usesOnChanges: true, ngImport: i0, template: `\n \n `, isInline: true, components: [{ type: BoxComponent, selector: \"g[ngx-charts-box]\", inputs: [\"strokeColor\", \"strokeWidth\", \"fill\", \"data\", \"width\", \"height\", \"x\", \"y\", \"lineCoordinates\", \"roundEdges\", \"gradient\", \"gradientStops\", \"offset\", \"isActive\", \"animations\", \"ariaLabel\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-box-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({ opacity: 0 }))\n ])\n ])\n ]\n }]\n }], propDecorators: { dims: [{\n type: Input\n }], series: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], colors: [{\n type: Input\n }], animations: [{\n type: Input\n }], strokeColor: [{\n type: Input\n }], strokeWidth: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], tooltipPlacement: [{\n type: Input\n }], tooltipType: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], gradient: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }] } });\n\nclass BoxChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n /** Show or hide the legend. */\n this.legend = false;\n this.legendPosition = LegendPosition.Right;\n this.legendTitle = 'Legend';\n this.showGridLines = true;\n this.xAxis = true;\n this.yAxis = true;\n this.showXAxisLabel = true;\n this.showYAxisLabel = true;\n this.roundDomains = false;\n this.roundEdges = true;\n this.strokeColor = '#FFFFFF';\n this.strokeWidth = 2;\n this.tooltipDisabled = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n /** Chart Margins (For each side, counterclock wise). */\n this.margin = [10, 20, 10, 20];\n /** Chart X axis dimension. */\n this.xAxisHeight = 0;\n /** Chart Y axis dimension. */\n this.yAxisWidth = 0;\n }\n trackBy(index, item) {\n return item.name;\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendPosition: this.legendPosition\n });\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.setScales();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n setColors() {\n let domain = [];\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n }\n else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n setScales() {\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n }\n getXScale(domain, width) {\n const scale = scaleBand()\n .domain(domain.map(d => d.toString()))\n .rangeRound([0, width])\n .padding(0.5);\n return scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().domain(domain).range([height, 0]);\n return this.roundDomains ? scale.nice() : scale;\n }\n getUniqueBoxChartXDomainValues(results) {\n const valueSet = new Set();\n for (const result of results) {\n valueSet.add(result.name);\n }\n return Array.from(valueSet);\n }\n getXDomain() {\n let domain = [];\n const values = this.getUniqueBoxChartXDomainValues(this.results);\n let min;\n let max;\n if (typeof values[0] === 'string') {\n domain = values.map(val => val.toString());\n }\n else if (typeof values[0] === 'number') {\n const mappedValues = values.map(v => Number(v));\n min = Math.min(...mappedValues);\n max = Math.max(...mappedValues);\n domain = [min, max];\n }\n else {\n const mappedValues = values.map(v => Number(new Date(v)));\n min = Math.min(...mappedValues);\n max = Math.max(...mappedValues);\n domain = [new Date(min), new Date(max)];\n }\n return domain;\n }\n getYDomain() {\n const domain = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n }\n }\n const values = [...domain];\n const mappedValues = values.map(v => Number(v));\n const min = Math.min(...mappedValues);\n const max = Math.max(...mappedValues);\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => `${d.name}`);\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onClick(data) {\n this.select.emit(data);\n }\n onActivate(data) {\n this.activate.emit(data);\n }\n onDeactivate(data) {\n this.deactivate.emit(data);\n }\n getLegendOptions() {\n const legendOpts = {\n scaleType: this.schemeType,\n colors: this.colors,\n domain: [],\n position: this.legendPosition,\n title: this.legendTitle\n };\n if (this.schemeType === ScaleType.Ordinal) {\n legendOpts.domain = this.xDomain;\n legendOpts.colors = this.colors;\n }\n else {\n legendOpts.domain = this.yDomain;\n legendOpts.colors = this.colors.scale;\n }\n return legendOpts;\n }\n}\nBoxChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBoxChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BoxChartComponent, selector: \"ngx-charts-box-chart\", inputs: { legend: \"legend\", legendPosition: \"legendPosition\", legendTitle: \"legendTitle\", legendOptionsConfig: \"legendOptionsConfig\", showGridLines: \"showGridLines\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", roundDomains: \"roundDomains\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", roundEdges: \"roundEdges\", strokeColor: \"strokeColor\", strokeWidth: \"strokeWidth\", tooltipDisabled: \"tooltipDisabled\", gradient: \"gradient\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: BoxSeriesComponent, selector: \"g[ngx-charts-box-series]\", inputs: [\"dims\", \"series\", \"xScale\", \"yScale\", \"colors\", \"animations\", \"strokeColor\", \"strokeWidth\", \"tooltipDisabled\", \"tooltipTemplate\", \"tooltipPlacement\", \"tooltipType\", \"roundEdges\", \"gradient\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-box-chart', template: `\n \n \n \n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendOptionsConfig: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], roundEdges: [{\n type: Input\n }], strokeColor: [{\n type: Input\n }], strokeWidth: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], gradient: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate', { static: false }]\n }] } });\n\nclass BoxChartModule {\n}\nBoxChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBoxChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxChartModule, declarations: [BoxChartComponent, BoxSeriesComponent, BoxComponent], imports: [ChartCommonModule], exports: [BoxChartComponent, BoxSeriesComponent, BoxComponent] });\nBoxChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxChartModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BoxChartModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [BoxChartComponent, BoxSeriesComponent, BoxComponent],\n exports: [BoxChartComponent, BoxSeriesComponent, BoxComponent]\n }]\n }] });\n\nfunction getDomain(values, scaleType, autoScale, minVal, maxVal) {\n let domain = [];\n if (scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n if (!autoScale) {\n values.push(0);\n }\n }\n if (scaleType === ScaleType.Time || scaleType === ScaleType.Linear) {\n const min = minVal ? minVal : Math.min(...values);\n const max = maxVal ? maxVal : Math.max(...values);\n domain = [min, max];\n }\n else {\n domain = values;\n }\n return domain;\n}\nfunction getScale(domain, range, scaleType, roundDomains) {\n switch (scaleType) {\n case ScaleType.Time:\n return scaleTime().range(range).domain(domain);\n case ScaleType.Linear: {\n const scale = scaleLinear().range(range).domain(domain);\n if (roundDomains) {\n return scale.nice();\n }\n return scale;\n }\n case ScaleType.Ordinal:\n return scalePoint()\n .range([range[0], range[1]])\n .domain(domain.map(r => r.toString()));\n default:\n return undefined;\n }\n}\n\nclass BubbleSeriesComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.tooltipDisabled = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.circles = this.getCircles();\n }\n getCircles() {\n const seriesName = this.data.name;\n return this.data.series\n .map((d, i) => {\n if (typeof d.y !== 'undefined' && typeof d.x !== 'undefined') {\n const y = d.y;\n const x = d.x;\n const r = d.r;\n const radius = this.rScale(r || 1);\n const tooltipLabel = formatLabel(d.name);\n const cx = this.xScaleType === ScaleType.Linear ? this.xScale(Number(x)) : this.xScale(x);\n const cy = this.yScaleType === ScaleType.Linear ? this.yScale(Number(y)) : this.yScale(y);\n const color = this.colors.scaleType === ScaleType.Linear ? this.colors.getColor(r) : this.colors.getColor(seriesName);\n const isActive = !this.activeEntries.length ? true : this.isActive({ name: seriesName });\n const opacity = isActive ? 1 : 0.3;\n const data = Object.assign({}, d, {\n series: seriesName,\n name: d.name,\n value: d.y,\n x: d.x,\n radius: d.r\n });\n return {\n data,\n x,\n y,\n r,\n classNames: [`circle-data-${i}`],\n value: y,\n label: x,\n cx,\n cy,\n radius,\n tooltipLabel,\n color,\n opacity,\n seriesName,\n isActive,\n transform: `translate(${cx},${cy})`\n };\n }\n })\n .filter(circle => circle !== undefined);\n }\n getTooltipText(circle) {\n const hasRadius = typeof circle.r !== 'undefined';\n const hasTooltipLabel = circle.tooltipLabel && circle.tooltipLabel.length;\n const hasSeriesName = circle.seriesName && circle.seriesName.length;\n const radiusValue = hasRadius ? formatLabel(circle.r) : '';\n const xAxisLabel = this.xAxisLabel && this.xAxisLabel !== '' ? `${this.xAxisLabel}:` : '';\n const yAxisLabel = this.yAxisLabel && this.yAxisLabel !== '' ? `${this.yAxisLabel}:` : '';\n const x = formatLabel(circle.x);\n const y = formatLabel(circle.y);\n const name = hasSeriesName && hasTooltipLabel\n ? `${circle.seriesName} • ${circle.tooltipLabel}`\n : circle.seriesName + circle.tooltipLabel;\n const tooltipTitle = hasSeriesName || hasTooltipLabel ? `${escapeLabel(name)}` : '';\n return `\n ${tooltipTitle}\n \n ${escapeLabel(x)}
\n ${escapeLabel(y)}\n
\n \n ${escapeLabel(radiusValue)}\n \n `;\n }\n onClick(data) {\n this.select.emit(data);\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n isVisible(circle) {\n if (this.activeEntries.length > 0) {\n return this.isActive({ name: circle.seriesName });\n }\n return circle.opacity !== 0;\n }\n activateCircle(circle) {\n circle.barVisible = true;\n this.activate.emit({ name: this.data.name });\n }\n deactivateCircle(circle) {\n circle.barVisible = false;\n this.deactivate.emit({ name: this.data.name });\n }\n trackBy(index, circle) {\n return `${circle.data.series} ${circle.data.name}`;\n }\n}\nBubbleSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BubbleSeriesComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nBubbleSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BubbleSeriesComponent, selector: \"g[ngx-charts-bubble-series]\", inputs: { data: \"data\", xScale: \"xScale\", yScale: \"yScale\", rScale: \"rScale\", xScaleType: \"xScaleType\", yScaleType: \"yScaleType\", colors: \"colors\", visibleValue: \"visibleValue\", activeEntries: \"activeEntries\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", tooltipDisabled: \"tooltipDisabled\", tooltipTemplate: \"tooltipTemplate\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, components: [{ type: CircleComponent, selector: \"g[ngx-charts-circle]\", inputs: [\"cx\", \"cy\", \"r\", \"fill\", \"stroke\", \"data\", \"classNames\", \"circleOpacity\", \"pointerEvents\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'scale(0)'\n }),\n animate(250, style({ opacity: 1, transform: 'scale(1)' }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BubbleSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-bubble-series]',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n opacity: 0,\n transform: 'scale(0)'\n }),\n animate(250, style({ opacity: 1, transform: 'scale(1)' }))\n ])\n ])\n ]\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { data: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], rScale: [{\n type: Input\n }], xScaleType: [{\n type: Input\n }], yScaleType: [{\n type: Input\n }], colors: [{\n type: Input\n }], visibleValue: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }] } });\n\nclass BubbleChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.showGridLines = true;\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.xAxis = true;\n this.yAxis = true;\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.maxRadius = 10;\n this.minRadius = 3;\n this.schemeType = ScaleType.Ordinal;\n this.tooltipDisabled = false;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.scaleType = ScaleType.Linear;\n this.margin = [10, 20, 10, 20];\n this.bubblePadding = [0, 0, 0, 0];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.activeEntries = [];\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n this.seriesDomain = this.results.map(d => d.name);\n this.rDomain = this.getRDomain();\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n this.transform = `translate(${this.dims.xOffset},${this.margin[0]})`;\n const colorDomain = this.schemeType === ScaleType.Ordinal ? this.seriesDomain : this.rDomain;\n this.colors = new ColorHelper(this.scheme, this.schemeType, colorDomain, this.customColors);\n this.data = this.results;\n this.minRadius = Math.max(this.minRadius, 1);\n this.maxRadius = Math.max(this.maxRadius, 1);\n this.rScale = this.getRScale(this.rDomain, [this.minRadius, this.maxRadius]);\n this.bubblePadding = [0, 0, 0, 0];\n this.setScales();\n this.bubblePadding = this.getBubblePadding();\n this.setScales();\n this.legendOptions = this.getLegendOptions();\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n hideCircles() {\n this.deactivateAll();\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n getBubblePadding() {\n let yMin = 0;\n let xMin = 0;\n let yMax = this.dims.height;\n let xMax = this.dims.width;\n for (const s of this.data) {\n for (const d of s.series) {\n const r = this.rScale(d.r);\n const cx = this.xScaleType === ScaleType.Linear ? this.xScale(Number(d.x)) : this.xScale(d.x);\n const cy = this.yScaleType === ScaleType.Linear ? this.yScale(Number(d.y)) : this.yScale(d.y);\n xMin = Math.max(r - cx, xMin);\n yMin = Math.max(r - cy, yMin);\n yMax = Math.max(cy + r, yMax);\n xMax = Math.max(cx + r, xMax);\n }\n }\n xMax = Math.max(xMax - this.dims.width, 0);\n yMax = Math.max(yMax - this.dims.height, 0);\n return [yMin, xMax, yMax, xMin];\n }\n setScales() {\n let width = this.dims.width;\n if (this.xScaleMin === undefined && this.xScaleMax === undefined) {\n width = width - this.bubblePadding[1];\n }\n let height = this.dims.height;\n if (this.yScaleMin === undefined && this.yScaleMax === undefined) {\n height = height - this.bubblePadding[2];\n }\n this.xScale = this.getXScale(this.xDomain, width);\n this.yScale = this.getYScale(this.yDomain, height);\n }\n getYScale(domain, height) {\n return getScale(domain, [height, this.bubblePadding[0]], this.yScaleType, this.roundDomains);\n }\n getXScale(domain, width) {\n return getScale(domain, [this.bubblePadding[3], width], this.xScaleType, this.roundDomains);\n }\n getRScale(domain, range) {\n const scale = scaleLinear().range(range).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n position: this.legendPosition,\n title: undefined\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.rDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n getXDomain() {\n const values = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.x)) {\n values.push(d.x);\n }\n }\n }\n this.xScaleType = getScaleType(values);\n return getDomain(values, this.xScaleType, this.autoScale, this.xScaleMin, this.xScaleMax);\n }\n getYDomain() {\n const values = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.y)) {\n values.push(d.y);\n }\n }\n }\n this.yScaleType = getScaleType(values);\n return getDomain(values, this.yScaleType, this.autoScale, this.yScaleMin, this.yScaleMax);\n }\n getRDomain() {\n let min = Infinity;\n let max = -Infinity;\n for (const results of this.results) {\n for (const d of results.series) {\n const value = Number(d.r) || 1;\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n return [min, max];\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n trackBy(index, item) {\n return `${item.name}`;\n }\n}\nBubbleChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BubbleChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nBubbleChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: BubbleChartComponent, selector: \"ngx-charts-bubble-chart\", inputs: { showGridLines: \"showGridLines\", legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", roundDomains: \"roundDomains\", maxRadius: \"maxRadius\", minRadius: \"minRadius\", autoScale: \"autoScale\", schemeType: \"schemeType\", tooltipDisabled: \"tooltipDisabled\", xScaleMin: \"xScaleMin\", xScaleMax: \"xScaleMax\", yScaleMin: \"yScaleMin\", yScaleMax: \"yScaleMax\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"mouseleave\": \"hideCircles()\" } }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: BubbleSeriesComponent, selector: \"g[ngx-charts-bubble-series]\", inputs: [\"data\", \"xScale\", \"yScale\", \"rScale\", \"xScaleType\", \"yScaleType\", \"colors\", \"visibleValue\", \"activeEntries\", \"xAxisLabel\", \"yAxisLabel\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({\n opacity: 0\n }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BubbleChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-bubble-chart', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({\n opacity: 0\n }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { showGridLines: [{\n type: Input\n }], legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], maxRadius: [{\n type: Input\n }], minRadius: [{\n type: Input\n }], autoScale: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], xScaleMin: [{\n type: Input\n }], xScaleMax: [{\n type: Input\n }], yScaleMin: [{\n type: Input\n }], yScaleMax: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }], hideCircles: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nclass BubbleChartModule {\n}\nBubbleChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BubbleChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBubbleChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BubbleChartModule, declarations: [BubbleChartComponent, BubbleSeriesComponent], imports: [ChartCommonModule], exports: [BubbleChartComponent, BubbleSeriesComponent] });\nBubbleChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BubbleChartModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: BubbleChartModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [BubbleChartComponent, BubbleSeriesComponent],\n exports: [BubbleChartComponent, BubbleSeriesComponent]\n }]\n }] });\n\nclass HeatMapCellComponent {\n constructor(element) {\n this.gradient = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.barOrientation = BarOrientation;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.transform = `translate(${this.x} , ${this.y})`;\n this.startOpacity = 0.3;\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n this.gradientStops = this.getGradientStops();\n if (this.animations) {\n this.loadAnimation();\n }\n }\n getGradientStops() {\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: this.startOpacity\n },\n {\n offset: 100,\n color: this.fill,\n opacity: 1\n }\n ];\n }\n loadAnimation() {\n const node = select(this.element).select('.cell');\n node.attr('opacity', 0);\n this.animateToCurrentForm();\n }\n animateToCurrentForm() {\n const node = select(this.element).select('.cell');\n node.transition().duration(750).attr('opacity', 1);\n }\n onClick() {\n this.select.emit(this.data);\n }\n onMouseEnter() {\n this.activate.emit(this.data);\n }\n onMouseLeave() {\n this.deactivate.emit(this.data);\n }\n}\nHeatMapCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatMapCellComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nHeatMapCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: HeatMapCellComponent, selector: \"g[ngx-charts-heat-map-cell]\", inputs: { fill: \"fill\", x: \"x\", y: \"y\", width: \"width\", height: \"height\", data: \"data\", gradient: \"gradient\", animations: \"animations\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"mouseenter\": \"onMouseEnter()\", \"mouseleave\": \"onMouseLeave()\" } }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, components: [{ type: SvgLinearGradientComponent, selector: \"g[ngx-charts-svg-linear-gradient]\", inputs: [\"orientation\", \"name\", \"stops\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatMapCellComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-heat-map-cell]',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fill: [{\n type: Input\n }], x: [{\n type: Input\n }], y: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], data: [{\n type: Input\n }], gradient: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], onMouseEnter: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseLeave: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nclass HeatCellSeriesComponent {\n constructor() {\n this.tooltipDisabled = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n ngOnInit() {\n if (!this.tooltipText) {\n this.tooltipText = this.getTooltipText;\n }\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.cells = this.getCells();\n }\n getCells() {\n const cells = [];\n this.data.map(row => {\n row.series.map(cell => {\n const value = cell.value;\n cell.series = row.name;\n cells.push({\n row,\n cell,\n x: this.xScale(row.name),\n y: this.yScale(cell.name),\n width: this.xScale.bandwidth(),\n height: this.yScale.bandwidth(),\n fill: this.colors.getColor(value),\n data: value,\n label: formatLabel(cell.name),\n series: row.name\n });\n });\n });\n return cells;\n }\n getTooltipText({ label, data, series }) {\n return `\n ${escapeLabel(series)} • ${escapeLabel(label)}\n ${data.toLocaleString()}\n `;\n }\n trackBy(index, item) {\n return item.label;\n }\n onClick(data) {\n this.select.emit(data);\n }\n}\nHeatCellSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatCellSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nHeatCellSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: HeatCellSeriesComponent, selector: \"g[ngx-charts-heat-map-cell-series]\", inputs: { data: \"data\", colors: \"colors\", xScale: \"xScale\", yScale: \"yScale\", gradient: \"gradient\", tooltipDisabled: \"tooltipDisabled\", tooltipText: \"tooltipText\", tooltipTemplate: \"tooltipTemplate\", animations: \"animations\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, usesOnChanges: true, ngImport: i0, template: `\n \n `, isInline: true, components: [{ type: HeatMapCellComponent, selector: \"g[ngx-charts-heat-map-cell]\", inputs: [\"fill\", \"x\", \"y\", \"width\", \"height\", \"data\", \"gradient\", \"animations\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatCellSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-heat-map-cell-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { data: [{\n type: Input\n }], colors: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], gradient: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipText: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }] } });\n\nclass HeatMapComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.innerPadding = 8;\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.tooltipDisabled = false;\n this.activeEntries = [];\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.scaleType = ScaleType.Linear;\n }\n update() {\n super.update();\n this.formatDates();\n this.xDomain = this.getXDomain();\n this.yDomain = this.getYDomain();\n this.valueDomain = this.getValueDomain();\n this.scaleType = getScaleType(this.valueDomain, false);\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.scaleType,\n legendPosition: this.legendPosition\n });\n if (this.scaleType === ScaleType.Linear) {\n let min = this.min;\n let max = this.max;\n if (!this.min) {\n min = Math.min(0, ...this.valueDomain);\n }\n if (!this.max) {\n max = Math.max(...this.valueDomain);\n }\n this.valueDomain = [min, max];\n }\n this.xScale = this.getXScale();\n this.yScale = this.getYScale();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.rects = this.getRects();\n }\n getXDomain() {\n const domain = [];\n for (const group of this.results) {\n if (!domain.includes(group.name)) {\n domain.push(group.name);\n }\n }\n return domain;\n }\n getYDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.name)) {\n domain.push(d.name);\n }\n }\n }\n return domain;\n }\n getValueDomain() {\n const domain = [];\n for (const group of this.results) {\n for (const d of group.series) {\n if (!domain.includes(d.value)) {\n domain.push(d.value);\n }\n }\n }\n return domain;\n }\n /**\n * Converts the input to gap paddingInner in fraction\n * Supports the following inputs:\n * Numbers: 8\n * Strings: \"8\", \"8px\", \"8%\"\n * Arrays: [8,2], \"8,2\", \"[8,2]\"\n * Mixed: [8,\"2%\"], [\"8px\",\"2%\"], \"8,2%\", \"[8,2%]\"\n *\n * @memberOf HeatMapComponent\n */\n getDimension(value, index = 0, N, L) {\n if (typeof value === 'string') {\n value = value\n .replace('[', '')\n .replace(']', '')\n .replace('px', '')\n // tslint:disable-next-line: quotemark\n .replace(\"'\", '');\n if (value.includes(',')) {\n value = value.split(',');\n }\n }\n if (Array.isArray(value) && typeof index === 'number') {\n return this.getDimension(value[index], null, N, L);\n }\n if (typeof value === 'string' && value.includes('%')) {\n return +value.replace('%', '') / 100;\n }\n return N / (L / +value + 1);\n }\n getXScale() {\n const f = this.getDimension(this.innerPadding, 0, this.xDomain.length, this.dims.width);\n return scaleBand().rangeRound([0, this.dims.width]).domain(this.xDomain).paddingInner(f);\n }\n getYScale() {\n const f = this.getDimension(this.innerPadding, 1, this.yDomain.length, this.dims.height);\n return scaleBand().rangeRound([this.dims.height, 0]).domain(this.yDomain).paddingInner(f);\n }\n getRects() {\n const rects = [];\n this.xDomain.map(xVal => {\n this.yDomain.map(yVal => {\n rects.push({\n x: this.xScale(xVal),\n y: this.yScale(yVal),\n rx: 3,\n width: this.xScale.bandwidth(),\n height: this.yScale.bandwidth(),\n fill: 'rgba(200,200,200,0.03)'\n });\n });\n });\n return rects;\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, this.scaleType, this.valueDomain);\n }\n getLegendOptions() {\n return {\n scaleType: this.scaleType,\n domain: this.valueDomain,\n colors: this.scaleType === ScaleType.Ordinal ? this.colors : this.colors.scale,\n title: this.scaleType === ScaleType.Ordinal ? this.legendTitle : undefined,\n position: this.legendPosition\n };\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n const items = this.results\n .map(g => g.series)\n .flat()\n .filter(i => {\n if (fromLegend) {\n return i.label === item.name;\n }\n else {\n return i.name === item.name && i.series === item.series;\n }\n });\n this.activeEntries = [...items];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(event, group, fromLegend = false) {\n const item = Object.assign({}, event);\n if (group) {\n item.series = group.name;\n }\n this.activeEntries = this.activeEntries.filter(i => {\n if (fromLegend) {\n return i.label !== item.name;\n }\n else {\n return !(i.name === item.name && i.series === item.series);\n }\n });\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nHeatMapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatMapComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nHeatMapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: HeatMapComponent, selector: \"ngx-charts-heat-map\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", gradient: \"gradient\", innerPadding: \"innerPadding\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", tooltipDisabled: \"tooltipDisabled\", tooltipText: \"tooltipText\", min: \"min\", max: \"max\", activeEntries: \"activeEntries\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: HeatCellSeriesComponent, selector: \"g[ngx-charts-heat-map-cell-series]\", inputs: [\"data\", \"colors\", \"xScale\", \"yScale\", \"gradient\", \"tooltipDisabled\", \"tooltipText\", \"tooltipTemplate\", \"animations\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatMapComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-heat-map', template: `\n \n \n \n \n \n \n \n \n `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], gradient: [{\n type: Input\n }], innerPadding: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipText: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass HeatMapModule {\n}\nHeatMapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHeatMapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatMapModule, declarations: [HeatMapCellComponent, HeatCellSeriesComponent, HeatMapComponent], imports: [ChartCommonModule], exports: [HeatMapCellComponent, HeatCellSeriesComponent, HeatMapComponent] });\nHeatMapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatMapModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: HeatMapModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [HeatMapCellComponent, HeatCellSeriesComponent, HeatMapComponent],\n exports: [HeatMapCellComponent, HeatCellSeriesComponent, HeatMapComponent]\n }]\n }] });\n\nclass LineComponent {\n constructor(element, platformId) {\n this.element = element;\n this.platformId = platformId;\n this.fill = 'none';\n this.animations = true;\n // @Output() select = new EventEmitter();\n this.initialized = false;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n ngOnChanges(changes) {\n if (!this.initialized) {\n this.initialized = true;\n this.initialPath = this.path;\n }\n else {\n this.updatePathEl();\n }\n }\n updatePathEl() {\n const node = select(this.element.nativeElement).select('.line');\n if (this.animations) {\n node.transition().duration(750).attr('d', this.path);\n }\n else {\n node.attr('d', this.path);\n }\n }\n}\nLineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineComponent, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nLineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: LineComponent, selector: \"g[ngx-charts-line]\", inputs: { path: \"path\", stroke: \"stroke\", data: \"data\", fill: \"fill\", animations: \"animations\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n strokeDasharray: 2000,\n strokeDashoffset: 2000\n }),\n animate(1000, style({\n strokeDashoffset: 0\n }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-line]',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('animationState', [\n transition(':enter', [\n style({\n strokeDasharray: 2000,\n strokeDashoffset: 2000\n }),\n animate(1000, style({\n strokeDashoffset: 0\n }))\n ])\n ])\n ]\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { path: [{\n type: Input\n }], stroke: [{\n type: Input\n }], data: [{\n type: Input\n }], fill: [{\n type: Input\n }], animations: [{\n type: Input\n }] } });\n\nclass LineSeriesComponent {\n constructor() {\n this.animations = true;\n this.barOrientation = BarOrientation;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateGradients();\n const data = this.sortData(this.data.series);\n const lineGen = this.getLineGenerator();\n this.path = lineGen(data) || '';\n const areaGen = this.getAreaGenerator();\n this.areaPath = areaGen(data) || '';\n if (this.hasRange) {\n const range = this.getRangeGenerator();\n this.outerPath = range(data) || '';\n }\n if (this.hasGradient) {\n this.stroke = this.gradientUrl;\n const values = this.data.series.map(d => d.value);\n const max = Math.max(...values);\n const min = Math.min(...values);\n if (max === min) {\n this.stroke = this.colors.getColor(max);\n }\n }\n else {\n this.stroke = this.colors.getColor(this.data.name);\n }\n }\n getLineGenerator() {\n return line()\n .x(d => {\n const label = d.name;\n let value;\n if (this.scaleType === ScaleType.Time) {\n value = this.xScale(label);\n }\n else if (this.scaleType === ScaleType.Linear) {\n value = this.xScale(Number(label));\n }\n else {\n value = this.xScale(label);\n }\n return value;\n })\n .y(d => this.yScale(d.value))\n .curve(this.curve);\n }\n getRangeGenerator() {\n return area()\n .x(d => {\n const label = d.name;\n let value;\n if (this.scaleType === ScaleType.Time) {\n value = this.xScale(label);\n }\n else if (this.scaleType === ScaleType.Linear) {\n value = this.xScale(Number(label));\n }\n else {\n value = this.xScale(label);\n }\n return value;\n })\n .y0(d => this.yScale(typeof d.min === 'number' ? d.min : d.value))\n .y1(d => this.yScale(typeof d.max === 'number' ? d.max : d.value))\n .curve(this.curve);\n }\n getAreaGenerator() {\n const xProperty = d => {\n const label = d.name;\n return this.xScale(label);\n };\n return area()\n .x(xProperty)\n .y0(() => this.yScale.range()[0])\n .y1(d => this.yScale(d.value))\n .curve(this.curve);\n }\n sortData(data) {\n if (this.scaleType === ScaleType.Linear) {\n data = sortLinear(data, 'name');\n }\n else if (this.scaleType === ScaleType.Time) {\n data = sortByTime(data, 'name');\n }\n else {\n data = sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n return data;\n }\n updateGradients() {\n if (this.colors.scaleType === ScaleType.Linear) {\n this.hasGradient = true;\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n const values = this.data.series.map(d => d.value);\n const max = Math.max(...values);\n const min = Math.min(...values);\n this.gradientStops = this.colors.getLinearGradientStops(max, min);\n this.areaGradientStops = this.colors.getLinearGradientStops(max);\n }\n else {\n this.hasGradient = false;\n this.gradientStops = undefined;\n this.areaGradientStops = undefined;\n }\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n isInactive(entry) {\n if (!this.activeEntries || this.activeEntries.length === 0)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item === undefined;\n }\n}\nLineSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nLineSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: LineSeriesComponent, selector: \"g[ngx-charts-line-series]\", inputs: { data: \"data\", xScale: \"xScale\", yScale: \"yScale\", colors: \"colors\", scaleType: \"scaleType\", curve: \"curve\", activeEntries: \"activeEntries\", rangeFillOpacity: \"rangeFillOpacity\", hasRange: \"hasRange\", animations: \"animations\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n `, isInline: true, components: [{ type: SvgLinearGradientComponent, selector: \"g[ngx-charts-svg-linear-gradient]\", inputs: [\"orientation\", \"name\", \"stops\"] }, { type: AreaComponent, selector: \"g[ngx-charts-area]\", inputs: [\"data\", \"path\", \"startingPath\", \"fill\", \"opacity\", \"startOpacity\", \"endOpacity\", \"gradient\", \"stops\", \"animations\"], outputs: [\"select\"] }, { type: LineComponent, selector: \"g[ngx-charts-line]\", inputs: [\"path\", \"stroke\", \"data\", \"fill\", \"animations\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-line-series]',\n template: `\n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { data: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], colors: [{\n type: Input\n }], scaleType: [{\n type: Input\n }], curve: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], rangeFillOpacity: [{\n type: Input\n }], hasRange: [{\n type: Input\n }], animations: [{\n type: Input\n }] } });\n\nclass LineChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.showGridLines = true;\n this.curve = curveLinear;\n this.activeEntries = [];\n this.trimXAxisTicks = true;\n this.trimYAxisTicks = true;\n this.rotateXAxisTicks = true;\n this.maxXAxisTickLength = 16;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.showRefLines = false;\n this.showRefLabels = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.timelineHeight = 50;\n this.timelinePadding = 10;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n if (this.timeline) {\n this.dims.height -= this.timelineHeight + this.margin[2] + this.timelinePadding;\n }\n this.xDomain = this.getXDomain();\n if (this.filteredDomain) {\n this.xDomain = this.filteredDomain;\n }\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n this.yScale = this.getYScale(this.yDomain, this.dims.height);\n this.updateTimeline();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n this.clipPathId = 'clip' + id().toString();\n this.clipPath = `url(#${this.clipPathId})`;\n }\n updateTimeline() {\n if (this.timeline) {\n this.timelineWidth = this.dims.width;\n this.timelineXDomain = this.getXDomain();\n this.timelineXScale = this.getXScale(this.timelineXDomain, this.timelineWidth);\n this.timelineYScale = this.getYScale(this.yDomain, this.timelineHeight);\n this.timelineTransform = `translate(${this.dims.xOffset}, ${-this.margin[2]})`;\n }\n }\n getXDomain() {\n let values = getUniqueXDomainValues(this.results);\n this.scaleType = getScaleType(values);\n let domain = [];\n if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n }\n let min;\n let max;\n if (this.scaleType === ScaleType.Time || this.scaleType === ScaleType.Linear) {\n min = this.xScaleMin ? this.xScaleMin : Math.min(...values);\n max = this.xScaleMax ? this.xScaleMax : Math.max(...values);\n }\n if (this.scaleType === ScaleType.Time) {\n domain = [new Date(min), new Date(max)];\n this.xSet = [...values].sort((a, b) => {\n const aDate = a.getTime();\n const bDate = b.getTime();\n if (aDate > bDate)\n return 1;\n if (bDate > aDate)\n return -1;\n return 0;\n });\n }\n else if (this.scaleType === ScaleType.Linear) {\n domain = [min, max];\n // Use compare function to sort numbers numerically\n this.xSet = [...values].sort((a, b) => a - b);\n }\n else {\n domain = values;\n this.xSet = values;\n }\n return domain;\n }\n getYDomain() {\n const domain = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n if (d.min !== undefined) {\n this.hasRange = true;\n if (domain.indexOf(d.min) < 0) {\n domain.push(d.min);\n }\n }\n if (d.max !== undefined) {\n this.hasRange = true;\n if (domain.indexOf(d.max) < 0) {\n domain.push(d.max);\n }\n }\n }\n }\n const values = [...domain];\n if (!this.autoScale) {\n values.push(0);\n }\n const min = this.yScaleMin ? this.yScaleMin : Math.min(...values);\n const max = this.yScaleMax ? this.yScaleMax : Math.max(...values);\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n let scale;\n if (this.scaleType === ScaleType.Time) {\n scale = scaleTime().range([0, width]).domain(domain);\n }\n else if (this.scaleType === ScaleType.Linear) {\n scale = scaleLinear().range([0, width]).domain(domain);\n if (this.roundDomains) {\n scale = scale.nice();\n }\n }\n else if (this.scaleType === ScaleType.Ordinal) {\n scale = scalePoint().range([0, width]).padding(0.1).domain(domain);\n }\n return scale;\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([height, 0]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n updateDomain(domain) {\n this.filteredDomain = domain;\n this.xDomain = this.filteredDomain;\n this.xScale = this.getXScale(this.xDomain, this.dims.width);\n }\n updateHoveredVertical(item) {\n this.hoveredVertical = item.value;\n this.deactivateAll();\n }\n hideCircles() {\n this.hoveredVertical = null;\n this.deactivateAll();\n }\n onClick(data) {\n this.select.emit(data);\n }\n trackBy(index, item) {\n return `${item.name}`;\n }\n setColors() {\n let domain;\n if (this.schemeType === ScaleType.Ordinal) {\n domain = this.seriesDomain;\n }\n else {\n domain = this.yDomain;\n }\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n const opts = {\n scaleType: this.schemeType,\n colors: undefined,\n domain: [],\n title: undefined,\n position: this.legendPosition\n };\n if (opts.scaleType === ScaleType.Ordinal) {\n opts.domain = this.seriesDomain;\n opts.colors = this.colors;\n opts.title = this.legendTitle;\n }\n else {\n opts.domain = this.yDomain;\n opts.colors = this.colors.scale;\n }\n return opts;\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(item) {\n this.deactivateAll();\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n}\nLineChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nLineChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: LineChartComponent, selector: \"ngx-charts-line-chart\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", autoScale: \"autoScale\", timeline: \"timeline\", gradient: \"gradient\", showGridLines: \"showGridLines\", curve: \"curve\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", rangeFillOpacity: \"rangeFillOpacity\", trimXAxisTicks: \"trimXAxisTicks\", trimYAxisTicks: \"trimYAxisTicks\", rotateXAxisTicks: \"rotateXAxisTicks\", maxXAxisTickLength: \"maxXAxisTickLength\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", xAxisTicks: \"xAxisTicks\", yAxisTicks: \"yAxisTicks\", roundDomains: \"roundDomains\", tooltipDisabled: \"tooltipDisabled\", showRefLines: \"showRefLines\", referenceLines: \"referenceLines\", showRefLabels: \"showRefLabels\", xScaleMin: \"xScaleMin\", xScaleMax: \"xScaleMax\", yScaleMin: \"yScaleMin\", yScaleMax: \"yScaleMax\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, host: { listeners: { \"mouseleave\": \"hideCircles()\" } }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }, { propertyName: \"seriesTooltipTemplate\", first: true, predicate: [\"seriesTooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: XAxisComponent, selector: \"g[ngx-charts-x-axis]\", inputs: [\"xScale\", \"dims\", \"trimTicks\", \"rotateTicks\", \"maxTickLength\", \"tickFormatting\", \"showGridLines\", \"showLabel\", \"labelText\", \"ticks\", \"xAxisTickCount\", \"xOrient\", \"xAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: LineSeriesComponent, selector: \"g[ngx-charts-line-series]\", inputs: [\"data\", \"xScale\", \"yScale\", \"colors\", \"scaleType\", \"curve\", \"activeEntries\", \"rangeFillOpacity\", \"hasRange\", \"animations\"] }, { type: TooltipArea, selector: \"g[ngx-charts-tooltip-area]\", inputs: [\"dims\", \"xSet\", \"xScale\", \"yScale\", \"results\", \"colors\", \"showPercentage\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"hover\"] }, { type: CircleSeriesComponent, selector: \"g[ngx-charts-circle-series]\", inputs: [\"data\", \"type\", \"xScale\", \"yScale\", \"colors\", \"scaleType\", \"visibleValue\", \"activeEntries\", \"tooltipDisabled\", \"tooltipTemplate\"], outputs: [\"select\", \"activate\", \"deactivate\"] }, { type: Timeline, selector: \"g[ngx-charts-timeline]\", inputs: [\"view\", \"results\", \"scheme\", \"customColors\", \"legend\", \"autoScale\", \"scaleType\", \"height\"], outputs: [\"select\", \"onDomainChange\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({\n opacity: 0\n }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-line-chart', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({\n opacity: 0\n }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], autoScale: [{\n type: Input\n }], timeline: [{\n type: Input\n }], gradient: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], curve: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], rangeFillOpacity: [{\n type: Input\n }], trimXAxisTicks: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], rotateXAxisTicks: [{\n type: Input\n }], maxXAxisTickLength: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], xAxisTicks: [{\n type: Input\n }], yAxisTicks: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], showRefLines: [{\n type: Input\n }], referenceLines: [{\n type: Input\n }], showRefLabels: [{\n type: Input\n }], xScaleMin: [{\n type: Input\n }], xScaleMax: [{\n type: Input\n }], yScaleMin: [{\n type: Input\n }], yScaleMax: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }], seriesTooltipTemplate: [{\n type: ContentChild,\n args: ['seriesTooltipTemplate']\n }], hideCircles: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nclass LineChartModule {\n}\nLineChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nLineChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineChartModule, declarations: [LineComponent, LineChartComponent, LineSeriesComponent], imports: [ChartCommonModule], exports: [LineComponent, LineChartComponent, LineSeriesComponent] });\nLineChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineChartModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LineChartModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [LineComponent, LineChartComponent, LineSeriesComponent],\n exports: [LineComponent, LineChartComponent, LineSeriesComponent]\n }]\n }] });\n\nclass PieLabelComponent {\n constructor(platformId) {\n this.platformId = platformId;\n this.animations = true;\n this.labelTrim = true;\n this.labelTrimSize = 10;\n this.trimLabel = trimLabel;\n }\n ngOnChanges(changes) {\n this.setTransforms();\n this.update();\n }\n setTransforms() {\n if (isPlatformServer(this.platformId)) {\n this.styleTransform = `translate3d(${this.textX}px,${this.textY}px, 0)`;\n this.attrTransform = `translate(${this.textX},${this.textY})`;\n this.textTransition = !this.animations ? null : 'transform 0.75s';\n }\n else {\n const isIE = /(edge|msie|trident)/i.test(navigator.userAgent);\n this.styleTransform = isIE ? null : `translate3d(${this.textX}px,${this.textY}px, 0)`;\n this.attrTransform = !isIE ? null : `translate(${this.textX},${this.textY})`;\n this.textTransition = isIE || !this.animations ? null : 'transform 0.75s';\n }\n }\n update() {\n let startRadius = this.radius;\n if (this.explodeSlices) {\n startRadius = (this.radius * this.value) / this.max;\n }\n const innerArc = arc().innerRadius(startRadius).outerRadius(startRadius);\n // Calculate innerPos then scale outer position to match label position\n const innerPos = innerArc.centroid(this.data);\n let scale = this.data.pos[1] / innerPos[1];\n if (this.data.pos[1] === 0 || innerPos[1] === 0) {\n scale = 1;\n }\n const outerPos = [scale * innerPos[0], scale * innerPos[1]];\n this.line = `M${innerPos}L${outerPos}L${this.data.pos}`;\n }\n get textX() {\n return this.data.pos[0];\n }\n get textY() {\n return this.data.pos[1];\n }\n textAnchor() {\n return this.midAngle(this.data) < Math.PI ? TextAnchor.Start : TextAnchor.End;\n }\n midAngle(d) {\n return d.startAngle + (d.endAngle - d.startAngle) / 2;\n }\n}\nPieLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieLabelComponent, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nPieLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: PieLabelComponent, selector: \"g[ngx-charts-pie-label]\", inputs: { data: \"data\", radius: \"radius\", label: \"label\", color: \"color\", max: \"max\", value: \"value\", explodeSlices: \"explodeSlices\", animations: \"animations\", labelTrim: \"labelTrim\", labelTrimSize: \"labelTrimSize\" }, usesOnChanges: true, ngImport: i0, template: `\n {{ label }}\n \n \n {{ labelTrim ? trimLabel(label, labelTrimSize) : label }}\n \n \n
\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieLabelComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-pie-label]',\n template: `\n {{ label }}\n \n \n {{ labelTrim ? trimLabel(label, labelTrimSize) : label }}\n \n \n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { data: [{\n type: Input\n }], radius: [{\n type: Input\n }], label: [{\n type: Input\n }], color: [{\n type: Input\n }], max: [{\n type: Input\n }], value: [{\n type: Input\n }], explodeSlices: [{\n type: Input\n }], animations: [{\n type: Input\n }], labelTrim: [{\n type: Input\n }], labelTrimSize: [{\n type: Input\n }] } });\n\nclass PolarSeriesComponent {\n constructor() {\n this.tooltipDisabled = false;\n this.gradient = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.circleRadius = 3;\n this.barOrientation = BarOrientation;\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.updateGradients();\n const line = this.getLineGenerator();\n const data = this.sortData(this.data.series);\n const seriesName = this.data.name;\n const linearScaleType = this.colors.scaleType === ScaleType.Linear;\n const min = this.yScale.domain()[0];\n this.seriesColor = this.colors.getColor(linearScaleType ? min : seriesName);\n this.path = line(data) || '';\n this.circles = data.map(d => {\n const a = this.getAngle(d);\n const r = this.getRadius(d);\n const value = d.value;\n const color = this.colors.getColor(linearScaleType ? Math.abs(value) : seriesName);\n const cData = Object.assign({}, d, {\n series: seriesName,\n value,\n name: d.name\n });\n return {\n data: cData,\n cx: r * Math.sin(a),\n cy: -r * Math.cos(a),\n value,\n color,\n label: d.name\n };\n });\n this.active = this.isActive(this.data);\n this.inactive = this.isInactive(this.data);\n this.tooltipText = this.tooltipText || (c => this.defaultTooltipText(c));\n }\n getAngle(d) {\n const label = d.name;\n if (this.scaleType === ScaleType.Time) {\n return this.xScale(label);\n }\n else if (this.scaleType === ScaleType.Linear) {\n return this.xScale(Number(label));\n }\n return this.xScale(label);\n }\n getRadius(d) {\n return this.yScale(d.value);\n }\n getLineGenerator() {\n return lineRadial()\n .angle(d => this.getAngle(d))\n .radius(d => this.getRadius(d))\n .curve(this.curve);\n }\n sortData(data) {\n if (this.scaleType === ScaleType.Linear) {\n return sortLinear(data, 'name');\n }\n else if (this.scaleType === ScaleType.Time) {\n return sortByTime(data, 'name');\n }\n return sortByDomain(data, 'name', 'asc', this.xScale.domain());\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item !== undefined;\n }\n isInactive(entry) {\n if (!this.activeEntries || this.activeEntries.length === 0)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name;\n });\n return item === undefined;\n }\n defaultTooltipText({ label, value }) {\n return `\n ${escapeLabel(this.data.name)} • ${escapeLabel(label)}\n ${value.toLocaleString()}\n `;\n }\n updateGradients() {\n this.hasGradient = this.gradient || this.colors.scaleType === ScaleType.Linear;\n if (!this.hasGradient) {\n return;\n }\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n if (this.colors.scaleType === ScaleType.Linear) {\n const values = this.data.series.map(d => d.value);\n const max = Math.max(...values);\n const min = Math.min(...values);\n this.gradientStops = this.colors.getLinearGradientStops(max, min);\n }\n else {\n this.gradientStops = undefined;\n }\n }\n}\nPolarSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PolarSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nPolarSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: PolarSeriesComponent, selector: \"g[ngx-charts-polar-series]\", inputs: { name: \"name\", data: \"data\", xScale: \"xScale\", yScale: \"yScale\", colors: \"colors\", scaleType: \"scaleType\", curve: \"curve\", activeEntries: \"activeEntries\", rangeFillOpacity: \"rangeFillOpacity\", tooltipDisabled: \"tooltipDisabled\", tooltipText: \"tooltipText\", gradient: \"gradient\", tooltipTemplate: \"tooltipTemplate\", animations: \"animations\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n `, isInline: true, components: [{ type: SvgRadialGradientComponent, selector: \"g[ngx-charts-svg-radial-gradient]\", inputs: [\"color\", \"name\", \"startOpacity\", \"endOpacity\", \"cx\", \"cy\", \"stops\"] }, { type: LineComponent, selector: \"g[ngx-charts-line]\", inputs: [\"path\", \"stroke\", \"data\", \"fill\", \"animations\"] }, { type: CircleComponent, selector: \"g[ngx-charts-circle]\", inputs: [\"cx\", \"cy\", \"r\", \"fill\", \"stroke\", \"data\", \"classNames\", \"circleOpacity\", \"pointerEvents\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PolarSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-polar-series]',\n template: `\n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { name: [{\n type: Input\n }], data: [{\n type: Input\n }], xScale: [{\n type: Input\n }], yScale: [{\n type: Input\n }], colors: [{\n type: Input\n }], scaleType: [{\n type: Input\n }], curve: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], rangeFillOpacity: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipText: [{\n type: Input\n }], gradient: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }] } });\n\nconst twoPI = 2 * Math.PI;\nclass PolarChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.showGridLines = true;\n this.curve = curveCardinalClosed;\n this.activeEntries = [];\n this.rangeFillOpacity = 0.15;\n this.trimYAxisTicks = true;\n this.maxYAxisTickLength = 16;\n this.roundDomains = false;\n this.tooltipDisabled = false;\n this.showSeriesOnHover = true;\n this.gradient = false;\n this.yAxisMinScale = 0;\n this.labelTrim = true;\n this.labelTrimSize = 10;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n // series: any; // ???\n this.margin = [10, 20, 10, 20];\n this.xAxisHeight = 0;\n this.yAxisWidth = 0;\n this.orientation = Orientation;\n this.isSSR = false;\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.isSSR = true;\n }\n }\n update() {\n super.update();\n this.setDims();\n this.setScales();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n this.setTicks();\n }\n setDims() {\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showXAxis: this.xAxis,\n showYAxis: this.yAxis,\n xAxisHeight: this.xAxisHeight,\n yAxisWidth: this.yAxisWidth,\n showXLabel: this.showXAxisLabel,\n showYLabel: this.showYAxisLabel,\n showLegend: this.legend,\n legendType: this.schemeType,\n legendPosition: this.legendPosition\n });\n const halfWidth = Math.floor(this.dims.width / 2);\n const halfHeight = Math.floor(this.dims.height / 2);\n const outerRadius = (this.outerRadius = Math.min(halfHeight / 1.5, halfWidth / 1.5));\n const yOffset = Math.max(0, halfHeight - outerRadius);\n this.yAxisDims = {\n ...this.dims,\n width: halfWidth\n };\n this.transform = `translate(${this.dims.xOffset}, ${this.margin[0]})`;\n this.transformYAxis = `translate(0, ${yOffset})`;\n this.labelOffset = this.dims.height + 40;\n this.transformPlot = `translate(${halfWidth}, ${halfHeight})`;\n }\n setScales() {\n const xValues = this.getXValues();\n this.scaleType = getScaleType(xValues);\n this.xDomain = this.filteredDomain || this.getXDomain(xValues);\n this.yDomain = this.getYDomain();\n this.seriesDomain = this.getSeriesDomain();\n this.xScale = this.getXScale(this.xDomain, twoPI);\n this.yScale = this.getYScale(this.yDomain, this.outerRadius);\n this.yAxisScale = this.getYScale(this.yDomain.reverse(), this.outerRadius);\n }\n setTicks() {\n let tickFormat;\n if (this.xAxisTickFormatting) {\n tickFormat = this.xAxisTickFormatting;\n }\n else if (this.xScale.tickFormat) {\n tickFormat = this.xScale.tickFormat.apply(this.xScale, [5]);\n }\n else {\n tickFormat = d => {\n if (isDate(d)) {\n return d.toLocaleDateString();\n }\n return d.toLocaleString();\n };\n }\n const outerRadius = this.outerRadius;\n const s = 1.1;\n this.thetaTicks = this.xDomain.map(d => {\n const startAngle = this.xScale(d);\n const dd = s * outerRadius * (startAngle > Math.PI ? -1 : 1);\n const label = tickFormat(d);\n const startPos = [outerRadius * Math.sin(startAngle), -outerRadius * Math.cos(startAngle)];\n const pos = [dd, s * startPos[1]];\n return {\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle: startAngle,\n value: outerRadius,\n label,\n startPos,\n pos\n };\n });\n const minDistance = 10;\n /* from pie chart, abstract out -*/\n for (let i = 0; i < this.thetaTicks.length - 1; i++) {\n const a = this.thetaTicks[i];\n for (let j = i + 1; j < this.thetaTicks.length; j++) {\n const b = this.thetaTicks[j];\n // if they're on the same side\n if (b.pos[0] * a.pos[0] > 0) {\n // if they're overlapping\n const o = minDistance - Math.abs(b.pos[1] - a.pos[1]);\n if (o > 0) {\n // push the second up or down\n b.pos[1] += Math.sign(b.pos[0]) * o;\n }\n }\n }\n }\n this.radiusTicks = this.yAxisScale.ticks(Math.floor(this.dims.height / 50)).map(d => this.yScale(d));\n }\n getXValues() {\n const values = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (!values.includes(d.name)) {\n values.push(d.name);\n }\n }\n }\n return values;\n }\n getXDomain(values = this.getXValues()) {\n if (this.scaleType === ScaleType.Time) {\n const min = Math.min(...values);\n const max = Math.max(...values);\n return [min, max];\n }\n else if (this.scaleType === ScaleType.Linear) {\n values = values.map(v => Number(v));\n const min = Math.min(...values);\n const max = Math.max(...values);\n return [min, max];\n }\n return values;\n }\n getYValues() {\n const domain = [];\n for (const results of this.results) {\n for (const d of results.series) {\n if (domain.indexOf(d.value) < 0) {\n domain.push(d.value);\n }\n if (d.min !== undefined) {\n if (domain.indexOf(d.min) < 0) {\n domain.push(d.min);\n }\n }\n if (d.max !== undefined) {\n if (domain.indexOf(d.max) < 0) {\n domain.push(d.max);\n }\n }\n }\n }\n return domain;\n }\n getYDomain(domain = this.getYValues()) {\n let min = Math.min(...domain);\n const max = Math.max(this.yAxisMinScale, ...domain);\n min = Math.max(0, min);\n if (!this.autoScale) {\n min = Math.min(0, min);\n }\n return [min, max];\n }\n getSeriesDomain() {\n return this.results.map(d => d.name);\n }\n getXScale(domain, width) {\n switch (this.scaleType) {\n case ScaleType.Time:\n return scaleTime().range([0, width]).domain(domain);\n case ScaleType.Linear:\n const scale = scaleLinear().range([0, width]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n default:\n return scalePoint()\n .range([0, width - twoPI / domain.length])\n .padding(0)\n .domain(domain);\n }\n }\n getYScale(domain, height) {\n const scale = scaleLinear().range([0, height]).domain(domain);\n return this.roundDomains ? scale.nice() : scale;\n }\n onClick(data, series) {\n if (series) {\n data.series = series.name;\n }\n this.select.emit(data);\n }\n setColors() {\n const domain = this.schemeType === ScaleType.Ordinal ? this.seriesDomain : this.yDomain.reverse();\n this.colors = new ColorHelper(this.scheme, this.schemeType, domain, this.customColors);\n }\n getLegendOptions() {\n if (this.schemeType === ScaleType.Ordinal) {\n return {\n scaleType: this.schemeType,\n colors: this.colors,\n domain: this.seriesDomain,\n title: this.legendTitle,\n position: this.legendPosition\n };\n }\n return {\n scaleType: this.schemeType,\n colors: this.colors.scale,\n domain: this.yDomain,\n title: undefined,\n position: this.legendPosition\n };\n }\n updateYAxisWidth({ width }) {\n this.yAxisWidth = width;\n this.update();\n }\n updateXAxisHeight({ height }) {\n this.xAxisHeight = height;\n this.update();\n }\n onActivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = this.showSeriesOnHover ? [item, ...this.activeEntries] : this.activeEntries;\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n deactivateAll() {\n this.activeEntries = [...this.activeEntries];\n for (const entry of this.activeEntries) {\n this.deactivate.emit({ value: entry, entries: [] });\n }\n this.activeEntries = [];\n }\n trackBy(index, item) {\n return `${item.name}`;\n }\n}\nPolarChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PolarChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nPolarChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: PolarChartComponent, selector: \"ngx-charts-polar-chart\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", xAxis: \"xAxis\", yAxis: \"yAxis\", showXAxisLabel: \"showXAxisLabel\", showYAxisLabel: \"showYAxisLabel\", xAxisLabel: \"xAxisLabel\", yAxisLabel: \"yAxisLabel\", autoScale: \"autoScale\", showGridLines: \"showGridLines\", curve: \"curve\", activeEntries: \"activeEntries\", schemeType: \"schemeType\", rangeFillOpacity: \"rangeFillOpacity\", trimYAxisTicks: \"trimYAxisTicks\", maxYAxisTickLength: \"maxYAxisTickLength\", xAxisTickFormatting: \"xAxisTickFormatting\", yAxisTickFormatting: \"yAxisTickFormatting\", roundDomains: \"roundDomains\", tooltipDisabled: \"tooltipDisabled\", showSeriesOnHover: \"showSeriesOnHover\", gradient: \"gradient\", yAxisMinScale: \"yAxisMinScale\", labelTrim: \"labelTrim\", labelTrimSize: \"labelTrimSize\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".pie-label{font-size:11px}.pie-label.animation{-webkit-animation:.75s ease-in fadeIn;animation:.75s ease-in fadeIn}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pie-label-line{stroke-dasharray:100%}.pie-label-line.animation{-webkit-animation:3s linear drawOut;animation:3s linear drawOut;transition:d .75s}@-webkit-keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}@keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}\\n\", \".polar-chart .polar-chart-background{fill:none}.polar-chart .radial-gridline-path{stroke-dasharray:10 10;fill:none}.polar-chart .pie-label-line{stroke:#2f3646}.polar-charts-series .polar-series-area,.polar-series-path{pointer-events:none}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: PieLabelComponent, selector: \"g[ngx-charts-pie-label]\", inputs: [\"data\", \"radius\", \"label\", \"color\", \"max\", \"value\", \"explodeSlices\", \"animations\", \"labelTrim\", \"labelTrimSize\"] }, { type: YAxisComponent, selector: \"g[ngx-charts-y-axis]\", inputs: [\"yScale\", \"dims\", \"trimTicks\", \"maxTickLength\", \"tickFormatting\", \"ticks\", \"showGridLines\", \"showLabel\", \"labelText\", \"yAxisTickCount\", \"yOrient\", \"referenceLines\", \"showRefLines\", \"showRefLabels\", \"yAxisOffset\"], outputs: [\"dimensionsChanged\"] }, { type: AxisLabelComponent, selector: \"g[ngx-charts-axis-label]\", inputs: [\"orient\", \"label\", \"offset\", \"width\", \"height\"] }, { type: PolarSeriesComponent, selector: \"g[ngx-charts-polar-series]\", inputs: [\"name\", \"data\", \"xScale\", \"yScale\", \"colors\", \"scaleType\", \"curve\", \"activeEntries\", \"rangeFillOpacity\", \"tooltipDisabled\", \"tooltipText\", \"gradient\", \"tooltipTemplate\", \"animations\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({\n opacity: 0\n }))\n ])\n ])\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PolarChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-polar-chart', template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [\n trigger('animationState', [\n transition(':leave', [\n style({\n opacity: 1\n }),\n animate(500, style({\n opacity: 0\n }))\n ])\n ])\n ], styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".pie-label{font-size:11px}.pie-label.animation{-webkit-animation:.75s ease-in fadeIn;animation:.75s ease-in fadeIn}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pie-label-line{stroke-dasharray:100%}.pie-label-line.animation{-webkit-animation:3s linear drawOut;animation:3s linear drawOut;transition:d .75s}@-webkit-keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}@keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}\\n\", \".polar-chart .polar-chart-background{fill:none}.polar-chart .radial-gridline-path{stroke-dasharray:10 10;fill:none}.polar-chart .pie-label-line{stroke:#2f3646}.polar-charts-series .polar-series-area,.polar-series-path{pointer-events:none}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], xAxis: [{\n type: Input\n }], yAxis: [{\n type: Input\n }], showXAxisLabel: [{\n type: Input\n }], showYAxisLabel: [{\n type: Input\n }], xAxisLabel: [{\n type: Input\n }], yAxisLabel: [{\n type: Input\n }], autoScale: [{\n type: Input\n }], showGridLines: [{\n type: Input\n }], curve: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], schemeType: [{\n type: Input\n }], rangeFillOpacity: [{\n type: Input\n }], trimYAxisTicks: [{\n type: Input\n }], maxYAxisTickLength: [{\n type: Input\n }], xAxisTickFormatting: [{\n type: Input\n }], yAxisTickFormatting: [{\n type: Input\n }], roundDomains: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], showSeriesOnHover: [{\n type: Input\n }], gradient: [{\n type: Input\n }], yAxisMinScale: [{\n type: Input\n }], labelTrim: [{\n type: Input\n }], labelTrimSize: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass PieArcComponent {\n constructor(element) {\n this.startAngle = 0;\n this.endAngle = Math.PI * 2;\n this.cornerRadius = 0;\n this.explodeSlices = false;\n this.gradient = false;\n this.animate = true;\n this.pointerEvents = true;\n this.isActive = false;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.dblclick = new EventEmitter();\n this.barOrientation = BarOrientation;\n this.initialized = false;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n getGradient() {\n return this.gradient ? this.gradientFill : this.fill;\n }\n getPointerEvents() {\n return this.pointerEvents ? 'auto' : 'none';\n }\n update() {\n const calc = this.calculateArc();\n this.startOpacity = 0.5;\n this.radialGradientId = 'linearGrad' + id().toString();\n this.gradientFill = `url(#${this.radialGradientId})`;\n if (this.animate) {\n if (this.initialized) {\n this.updateAnimation();\n }\n else {\n this.loadAnimation();\n this.initialized = true;\n }\n }\n else {\n this.path = calc.startAngle(this.startAngle).endAngle(this.endAngle)();\n }\n }\n calculateArc() {\n let outerRadius = this.outerRadius;\n if (this.explodeSlices && this.innerRadius === 0) {\n outerRadius = (this.outerRadius * this.value) / this.max;\n }\n return arc().innerRadius(this.innerRadius).outerRadius(outerRadius).cornerRadius(this.cornerRadius);\n }\n loadAnimation() {\n const node = select(this.element)\n .selectAll('.arc')\n .data([{ startAngle: this.startAngle, endAngle: this.endAngle }]);\n const calc = this.calculateArc();\n node\n .transition()\n .attrTween('d', function (d) {\n this._current = this._current || d;\n const copyOfD = Object.assign({}, d);\n copyOfD.endAngle = copyOfD.startAngle;\n const interpolater = interpolate(copyOfD, copyOfD);\n this._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n })\n .transition()\n .duration(750)\n .attrTween('d', function (d) {\n this._current = this._current || d;\n const interpolater = interpolate(this._current, d);\n this._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n });\n }\n updateAnimation() {\n const node = select(this.element)\n .selectAll('.arc')\n .data([{ startAngle: this.startAngle, endAngle: this.endAngle }]);\n const calc = this.calculateArc();\n node\n .transition()\n .duration(750)\n .attrTween('d', function (d) {\n this._current = this._current || d;\n const interpolater = interpolate(this._current, d);\n this._current = interpolater(0);\n return function (t) {\n return calc(interpolater(t));\n };\n });\n }\n onClick() {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(() => this.select.emit(this.data), 200);\n }\n onDblClick(event) {\n event.preventDefault();\n event.stopPropagation();\n clearTimeout(this._timeout);\n this.dblclick.emit({\n data: this.data,\n nativeEvent: event\n });\n }\n}\nPieArcComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieArcComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nPieArcComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: PieArcComponent, selector: \"g[ngx-charts-pie-arc]\", inputs: { fill: \"fill\", startAngle: \"startAngle\", endAngle: \"endAngle\", innerRadius: \"innerRadius\", outerRadius: \"outerRadius\", cornerRadius: \"cornerRadius\", value: \"value\", max: \"max\", data: \"data\", explodeSlices: \"explodeSlices\", gradient: \"gradient\", animate: \"animate\", pointerEvents: \"pointerEvents\", isActive: \"isActive\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\", dblclick: \"dblclick\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, components: [{ type: SvgRadialGradientComponent, selector: \"g[ngx-charts-svg-radial-gradient]\", inputs: [\"color\", \"name\", \"startOpacity\", \"endOpacity\", \"cx\", \"cy\", \"stops\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieArcComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-pie-arc]',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fill: [{\n type: Input\n }], startAngle: [{\n type: Input\n }], endAngle: [{\n type: Input\n }], innerRadius: [{\n type: Input\n }], outerRadius: [{\n type: Input\n }], cornerRadius: [{\n type: Input\n }], value: [{\n type: Input\n }], max: [{\n type: Input\n }], data: [{\n type: Input\n }], explodeSlices: [{\n type: Input\n }], gradient: [{\n type: Input\n }], animate: [{\n type: Input\n }], pointerEvents: [{\n type: Input\n }], isActive: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], dblclick: [{\n type: Output\n }] } });\n\nclass PieSeriesComponent {\n constructor() {\n this.series = [];\n this.innerRadius = 60;\n this.outerRadius = 80;\n this.trimLabels = true;\n this.maxLabelLength = 10;\n this.tooltipDisabled = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.dblclick = new EventEmitter();\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n const pieGenerator = pie()\n .value(d => d.value)\n .sort(null);\n const arcData = pieGenerator(this.series);\n this.max = max(arcData, d => {\n return d.value;\n });\n this.data = this.calculateLabelPositions(arcData);\n this.tooltipText = this.tooltipText || this.defaultTooltipText;\n }\n midAngle(d) {\n return d.startAngle + (d.endAngle - d.startAngle) / 2;\n }\n outerArc() {\n const factor = 1.5;\n return arc()\n .innerRadius(this.outerRadius * factor)\n .outerRadius(this.outerRadius * factor);\n }\n calculateLabelPositions(pieData) {\n const factor = 1.5;\n const minDistance = 10;\n const labelPositions = pieData;\n labelPositions.forEach(d => {\n d.pos = this.outerArc().centroid(d);\n d.pos[0] = factor * this.outerRadius * (this.midAngle(d) < Math.PI ? 1 : -1);\n });\n for (let i = 0; i < labelPositions.length - 1; i++) {\n const a = labelPositions[i];\n if (!this.labelVisible(a)) {\n continue;\n }\n for (let j = i + 1; j < labelPositions.length; j++) {\n const b = labelPositions[j];\n if (!this.labelVisible(b)) {\n continue;\n }\n // if they're on the same side\n if (b.pos[0] * a.pos[0] > 0) {\n // if they're overlapping\n const o = minDistance - Math.abs(b.pos[1] - a.pos[1]);\n if (o > 0) {\n // push the second up or down\n b.pos[1] += Math.sign(b.pos[0]) * o;\n }\n }\n }\n }\n return labelPositions;\n }\n labelVisible(myArc) {\n return this.showLabels && myArc.endAngle - myArc.startAngle > Math.PI / 30;\n }\n getTooltipTitle(a) {\n return this.tooltipTemplate ? undefined : this.tooltipText(a);\n }\n labelText(myArc) {\n if (this.labelFormatting) {\n return this.labelFormatting(myArc.data.name);\n }\n return this.label(myArc);\n }\n label(myArc) {\n return formatLabel(myArc.data.name);\n }\n defaultTooltipText(myArc) {\n const label = this.label(myArc);\n const val = formatLabel(myArc.data.value);\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n color(myArc) {\n return this.colors.getColor(this.label(myArc));\n }\n trackBy(index, item) {\n return item.data.name;\n }\n onClick(data) {\n this.select.emit(data);\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name && entry.series === d.series;\n });\n return item !== undefined;\n }\n}\nPieSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nPieSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: PieSeriesComponent, selector: \"g[ngx-charts-pie-series]\", inputs: { colors: \"colors\", series: \"series\", dims: \"dims\", innerRadius: \"innerRadius\", outerRadius: \"outerRadius\", explodeSlices: \"explodeSlices\", showLabels: \"showLabels\", gradient: \"gradient\", activeEntries: \"activeEntries\", labelFormatting: \"labelFormatting\", trimLabels: \"trimLabels\", maxLabelLength: \"maxLabelLength\", tooltipText: \"tooltipText\", tooltipDisabled: \"tooltipDisabled\", tooltipTemplate: \"tooltipTemplate\", animations: \"animations\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\", dblclick: \"dblclick\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n `, isInline: true, components: [{ type: PieLabelComponent, selector: \"g[ngx-charts-pie-label]\", inputs: [\"data\", \"radius\", \"label\", \"color\", \"max\", \"value\", \"explodeSlices\", \"animations\", \"labelTrim\", \"labelTrimSize\"] }, { type: PieArcComponent, selector: \"g[ngx-charts-pie-arc]\", inputs: [\"fill\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"cornerRadius\", \"value\", \"max\", \"data\", \"explodeSlices\", \"gradient\", \"animate\", \"pointerEvents\", \"isActive\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dblclick\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-pie-series]',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { colors: [{\n type: Input\n }], series: [{\n type: Input\n }], dims: [{\n type: Input\n }], innerRadius: [{\n type: Input\n }], outerRadius: [{\n type: Input\n }], explodeSlices: [{\n type: Input\n }], showLabels: [{\n type: Input\n }], gradient: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], trimLabels: [{\n type: Input\n }], maxLabelLength: [{\n type: Input\n }], tooltipText: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], dblclick: [{\n type: Output\n }] } });\n\nclass AdvancedPieChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.activeEntries = [];\n this.tooltipDisabled = false;\n this.label = 'Total';\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [20, 20, 20, 20];\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: (this.width * 4) / 12.0,\n height: this.height,\n margins: this.margin\n });\n this.formatDates();\n this.domain = this.getDomain();\n this.setColors();\n const xOffset = this.dims.width / 2;\n const yOffset = this.margin[0] + this.dims.height / 2;\n this.legendWidth = this.width - this.dims.width - this.margin[1];\n this.outerRadius = Math.min(this.dims.width, this.dims.height) / 2.5;\n this.innerRadius = this.outerRadius * 0.75;\n this.transform = `translate(${xOffset} , ${yOffset})`;\n }\n getDomain() {\n return this.results.map(d => d.label);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n onActivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nAdvancedPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AdvancedPieChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nAdvancedPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: AdvancedPieChartComponent, selector: \"ngx-charts-advanced-pie-chart\", inputs: { gradient: \"gradient\", activeEntries: \"activeEntries\", tooltipDisabled: \"tooltipDisabled\", tooltipText: \"tooltipText\", label: \"label\", valueFormatting: \"valueFormatting\", nameFormatting: \"nameFormatting\", percentageFormatting: \"percentageFormatting\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
\n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: PieSeriesComponent, selector: \"g[ngx-charts-pie-series]\", inputs: [\"colors\", \"series\", \"dims\", \"innerRadius\", \"outerRadius\", \"explodeSlices\", \"showLabels\", \"gradient\", \"activeEntries\", \"labelFormatting\", \"trimLabels\", \"maxLabelLength\", \"tooltipText\", \"tooltipDisabled\", \"tooltipTemplate\", \"animations\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dblclick\"] }, { type: AdvancedLegendComponent, selector: \"ngx-charts-advanced-legend\", inputs: [\"width\", \"data\", \"colors\", \"label\", \"animations\", \"valueFormatting\", \"labelFormatting\", \"percentageFormatting\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: AdvancedPieChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-advanced-pie-chart', template: `\n
\n
\n \n \n \n \n \n
\n
\n \n \n
\n
\n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".advanced-pie{display:inline-block;float:left}.advanced-pie-legend-wrapper{display:inline-block}\\n\"] }]\n }], propDecorators: { gradient: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipText: [{\n type: Input\n }], label: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }], valueFormatting: [{\n type: Input\n }], nameFormatting: [{\n type: Input\n }], percentageFormatting: [{\n type: Input\n }] } });\n\nclass PieChartComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.labels = false;\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.explodeSlices = false;\n this.doughnut = false;\n this.arcWidth = 0.25;\n this.activeEntries = [];\n this.tooltipDisabled = false;\n this.trimLabels = true;\n this.maxLabelLength = 10;\n this.dblclick = new EventEmitter();\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n }\n update() {\n super.update();\n if (this.labels && this.hasNoOptionalMarginsSet()) {\n this.margins = [30, 80, 30, 80];\n }\n else if (!this.labels && this.hasNoOptionalMarginsSet()) {\n // default value for margins\n this.margins = [20, 20, 20, 20];\n }\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margins,\n showLegend: this.legend,\n legendPosition: this.legendPosition\n });\n this.formatDates();\n const xOffset = this.margins[3] + this.dims.width / 2;\n const yOffset = this.margins[0] + this.dims.height / 2;\n this.translation = `translate(${xOffset}, ${yOffset})`;\n this.outerRadius = Math.min(this.dims.width, this.dims.height);\n if (this.labels) {\n // make room for labels\n this.outerRadius /= 3;\n }\n else {\n this.outerRadius /= 2;\n }\n this.innerRadius = 0;\n if (this.doughnut) {\n this.innerRadius = this.outerRadius * (1 - this.arcWidth);\n }\n this.domain = this.getDomain();\n // sort data according to domain\n this.data = this.results.sort((a, b) => {\n return this.domain.indexOf(a.name) - this.domain.indexOf(b.name);\n });\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n }\n getDomain() {\n return this.results.map(d => d.label);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n getLegendOptions() {\n return {\n scaleType: ScaleType.Ordinal,\n domain: this.domain,\n colors: this.colors,\n title: this.legendTitle,\n position: this.legendPosition\n };\n }\n onActivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n hasNoOptionalMarginsSet() {\n return !this.margins || this.margins.length <= 0;\n }\n}\nPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: PieChartComponent, selector: \"ngx-charts-pie-chart\", inputs: { labels: \"labels\", legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", explodeSlices: \"explodeSlices\", doughnut: \"doughnut\", arcWidth: \"arcWidth\", gradient: \"gradient\", activeEntries: \"activeEntries\", tooltipDisabled: \"tooltipDisabled\", labelFormatting: \"labelFormatting\", trimLabels: \"trimLabels\", maxLabelLength: \"maxLabelLength\", tooltipText: \"tooltipText\", margins: \"margins\" }, outputs: { dblclick: \"dblclick\", select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".pie-label{font-size:11px}.pie-label.animation{-webkit-animation:.75s ease-in fadeIn;animation:.75s ease-in fadeIn}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pie-label-line{stroke-dasharray:100%}.pie-label-line.animation{-webkit-animation:3s linear drawOut;animation:3s linear drawOut;transition:d .75s}@-webkit-keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}@keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: PieSeriesComponent, selector: \"g[ngx-charts-pie-series]\", inputs: [\"colors\", \"series\", \"dims\", \"innerRadius\", \"outerRadius\", \"explodeSlices\", \"showLabels\", \"gradient\", \"activeEntries\", \"labelFormatting\", \"trimLabels\", \"maxLabelLength\", \"tooltipText\", \"tooltipDisabled\", \"tooltipTemplate\", \"animations\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dblclick\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieChartComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-pie-chart', template: `\n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".pie-label{font-size:11px}.pie-label.animation{-webkit-animation:.75s ease-in fadeIn;animation:.75s ease-in fadeIn}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pie-label-line{stroke-dasharray:100%}.pie-label-line.animation{-webkit-animation:3s linear drawOut;animation:3s linear drawOut;transition:d .75s}@-webkit-keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}@keyframes drawOut{0%{stroke-dashoffset:100%}to{stroke-dashoffset:0}}\\n\"] }]\n }], propDecorators: { labels: [{\n type: Input\n }], legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], explodeSlices: [{\n type: Input\n }], doughnut: [{\n type: Input\n }], arcWidth: [{\n type: Input\n }], gradient: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], trimLabels: [{\n type: Input\n }], maxLabelLength: [{\n type: Input\n }], tooltipText: [{\n type: Input\n }], dblclick: [{\n type: Output\n }], margins: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nfunction gridSize(dims, len, minWidth) {\n let rows = 1;\n let cols = len;\n const width = dims.width;\n if (width > minWidth) {\n while (width / cols < minWidth) {\n rows += 1;\n cols = Math.ceil(len / rows);\n }\n }\n return [cols, rows];\n}\nfunction gridLayout(dims, data, minWidth, designatedTotal) {\n const xScale = scaleBand();\n const yScale = scaleBand();\n const width = dims.width;\n const height = dims.height;\n const [columns, rows] = gridSize(dims, data.length, minWidth);\n const xDomain = [];\n const yDomain = [];\n for (let i = 0; i < rows; i++) {\n yDomain.push(i);\n }\n for (let i = 0; i < columns; i++) {\n xDomain.push(i);\n }\n xScale.domain(xDomain);\n yScale.domain(yDomain);\n xScale.rangeRound([0, width], 0.1);\n yScale.rangeRound([0, height], 0.1);\n const res = [];\n const total = designatedTotal ? designatedTotal : getTotal(data);\n const cardWidth = xScale.bandwidth();\n const cardHeight = yScale.bandwidth();\n for (let i = 0; i < data.length; i++) {\n res[i] = {};\n res[i].data = {\n name: data[i] ? data[i].name : '',\n value: data[i] ? data[i].value : undefined,\n extra: data[i] ? data[i].extra : undefined,\n label: data[i] ? data[i].label : ''\n };\n res[i].x = xScale(i % columns);\n res[i].y = yScale(Math.floor(i / columns));\n res[i].width = cardWidth;\n res[i].height = cardHeight;\n res[i].data.percent = total > 0 ? res[i].data.value / total : 0;\n res[i].data.total = total;\n }\n return res;\n}\nfunction getTotal(results) {\n return results.map(d => (d ? d.value : 0)).reduce((sum, val) => sum + val, 0);\n}\n\nclass PieGridSeriesComponent {\n constructor(element) {\n this.innerRadius = 70;\n this.outerRadius = 80;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.layout = pie()\n .value(d => d.data.value)\n .sort(null);\n this.arcs = this.getArcs();\n }\n getArcs() {\n return this.layout(this.data).map((arc, index) => {\n const label = arc.data.data.name;\n const other = arc.data.data.other;\n if (index === 0) {\n arc.startAngle = 0;\n }\n const color = this.colors(label);\n return {\n data: arc.data.data,\n class: 'arc ' + 'arc' + index,\n fill: color,\n startAngle: other ? 0 : arc.startAngle,\n endAngle: arc.endAngle,\n animate: this.animations && !other,\n pointerEvents: !other\n };\n });\n }\n onClick(data) {\n this.select.emit(this.data[0].data);\n }\n trackBy(index, item) {\n return item.data.name;\n }\n label(arc) {\n return arc.data.name;\n }\n color(arc) {\n return this.colors(this.label(arc));\n }\n}\nPieGridSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieGridSeriesComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nPieGridSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: PieGridSeriesComponent, selector: \"g[ngx-charts-pie-grid-series]\", inputs: { colors: \"colors\", data: \"data\", innerRadius: \"innerRadius\", outerRadius: \"outerRadius\", animations: \"animations\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n `, isInline: true, components: [{ type: PieArcComponent, selector: \"g[ngx-charts-pie-arc]\", inputs: [\"fill\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"cornerRadius\", \"value\", \"max\", \"data\", \"explodeSlices\", \"gradient\", \"animate\", \"pointerEvents\", \"isActive\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dblclick\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieGridSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-pie-grid-series]',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { colors: [{\n type: Input\n }], data: [{\n type: Input\n }], innerRadius: [{\n type: Input\n }], outerRadius: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }] } });\n\nclass PieGridComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.tooltipDisabled = false;\n this.label = 'Total';\n this.minWidth = 150;\n this.activeEntries = [];\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.margin = [20, 20, 20, 20];\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n this.formatDates();\n this.domain = this.getDomain();\n this.data = gridLayout(this.dims, this.results, this.minWidth, this.designatedTotal);\n this.transform = `translate(${this.margin[3]} , ${this.margin[0]})`;\n this.series = this.getSeries();\n this.setColors();\n this.tooltipText = this.tooltipText || this.defaultTooltipText;\n }\n defaultTooltipText({ data }) {\n const label = trimLabel(formatLabel(data.name));\n const val = data.value.toLocaleString();\n return `\n ${label}\n ${val}\n `;\n }\n getDomain() {\n return this.results.map(d => d.label);\n }\n getSeries() {\n const total = this.designatedTotal ? this.designatedTotal : this.getTotal();\n return this.data.map(d => {\n const baselineLabelHeight = 20;\n const padding = 10;\n const name = d.data.name;\n const label = formatLabel(name);\n const value = d.data.value;\n const radius = min([d.width - padding, d.height - baselineLabelHeight]) / 2 - 5;\n const innerRadius = radius * 0.9;\n let count = 0;\n const colors = () => {\n count += 1;\n if (count === 1) {\n return 'rgba(100,100,100,0.3)';\n }\n else {\n return this.colorScale.getColor(label);\n }\n };\n const xPos = d.x + (d.width - padding) / 2;\n const yPos = d.y + (d.height - baselineLabelHeight) / 2;\n return {\n transform: `translate(${xPos}, ${yPos})`,\n colors,\n innerRadius,\n outerRadius: radius,\n name,\n label: trimLabel(label),\n total: value,\n value,\n percent: format('.1%')(d.data.percent),\n data: [\n d,\n {\n data: {\n other: true,\n value: total - value,\n name: d.data.name\n }\n }\n ]\n };\n });\n }\n getTotal() {\n return this.results.map(d => d.value).reduce((sum, d) => sum + d, 0);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colorScale = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n onActivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item, fromLegend = false) {\n item = this.results.find(d => {\n if (fromLegend) {\n return d.label === item.name;\n }\n else {\n return d.name === item.name;\n }\n });\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value && d.series === item.series;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n}\nPieGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieGridComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nPieGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: PieGridComponent, selector: \"ngx-charts-pie-grid\", inputs: { designatedTotal: \"designatedTotal\", tooltipDisabled: \"tooltipDisabled\", tooltipText: \"tooltipText\", label: \"label\", minWidth: \"minWidth\", activeEntries: \"activeEntries\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n {{ series.percent.toLocaleString() }}\n \n \n {{ series.label }}\n \n \n \n {{ label }}: {{ series.total.toLocaleString() }}\n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".pie-grid .arc1{opacity:.4}.pie-grid .percent-label{font-size:16px;font-weight:400}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: PieGridSeriesComponent, selector: \"g[ngx-charts-pie-grid-series]\", inputs: [\"colors\", \"data\", \"innerRadius\", \"outerRadius\", \"animations\"], outputs: [\"select\", \"activate\", \"deactivate\"] }, { type: CountUpDirective, selector: \"[ngx-charts-count-up]\", inputs: [\"countDuration\", \"countPrefix\", \"countSuffix\", \"valueFormatting\", \"countDecimals\", \"countTo\", \"countFrom\"], outputs: [\"countChange\", \"countFinish\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }, { type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieGridComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-pie-grid', template: `\n \n \n \n \n \n \n {{ series.percent.toLocaleString() }}\n \n \n {{ series.label }}\n \n \n \n {{ label }}: {{ series.total.toLocaleString() }}\n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".pie-grid .arc1{opacity:.4}.pie-grid .percent-label{font-size:16px;font-weight:400}\\n\"] }]\n }], propDecorators: { designatedTotal: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipText: [{\n type: Input\n }], label: [{\n type: Input\n }], minWidth: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass PieChartModule {\n}\nPieChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPieChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieChartModule, declarations: [AdvancedPieChartComponent,\n PieLabelComponent,\n PieArcComponent,\n PieChartComponent,\n PieGridComponent,\n PieGridSeriesComponent,\n PieSeriesComponent], imports: [ChartCommonModule], exports: [AdvancedPieChartComponent,\n PieLabelComponent,\n PieArcComponent,\n PieChartComponent,\n PieGridComponent,\n PieGridSeriesComponent,\n PieSeriesComponent] });\nPieChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieChartModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PieChartModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [\n AdvancedPieChartComponent,\n PieLabelComponent,\n PieArcComponent,\n PieChartComponent,\n PieGridComponent,\n PieGridSeriesComponent,\n PieSeriesComponent\n ],\n exports: [\n AdvancedPieChartComponent,\n PieLabelComponent,\n PieArcComponent,\n PieChartComponent,\n PieGridComponent,\n PieGridSeriesComponent,\n PieSeriesComponent\n ]\n }]\n }] });\n\nclass PolarChartModule {\n}\nPolarChartModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PolarChartModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nPolarChartModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PolarChartModule, declarations: [PolarChartComponent, PolarSeriesComponent], imports: [ChartCommonModule, PieChartModule, LineChartModule], exports: [PolarChartComponent, PolarSeriesComponent] });\nPolarChartModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PolarChartModule, imports: [[ChartCommonModule, PieChartModule, LineChartModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: PolarChartModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule, PieChartModule, LineChartModule],\n declarations: [PolarChartComponent, PolarSeriesComponent],\n exports: [PolarChartComponent, PolarSeriesComponent]\n }]\n }] });\n\nfunction calculateTextWidth(fontFamilyKey, text, defaultWidth = 8) {\n return text.split('').reduce((acc, curr) => {\n const width = fontFamilyKey[curr] || defaultWidth;\n return acc + width;\n }, 0);\n}\n\nconst VERDANA_FONT_WIDTHS_16_PX = {\n '0': 10,\n '1': 10,\n '2': 10,\n '3': 10,\n '4': 10,\n '5': 10,\n '6': 10,\n '7': 10,\n '8': 10,\n '9': 10,\n A: 11,\n B: 11,\n C: 11,\n D: 12,\n E: 10,\n F: 9,\n G: 12,\n H: 12,\n I: 7,\n J: 7,\n K: 11,\n L: 9,\n M: 13,\n N: 12,\n O: 13,\n P: 10,\n Q: 13,\n R: 11,\n S: 11,\n T: 10,\n U: 12,\n V: 11,\n W: 16,\n X: 11,\n Y: 10,\n Z: 11,\n a: 10,\n b: 10,\n c: 8,\n d: 10,\n e: 10,\n f: 6,\n g: 10,\n h: 10,\n i: 4,\n j: 6,\n k: 9,\n l: 4,\n m: 16,\n n: 10,\n o: 10,\n p: 10,\n q: 10,\n r: 7,\n s: 8,\n t: 6,\n u: 10,\n v: 9,\n w: 13,\n x: 9,\n y: 9,\n z: 8,\n '!': 6,\n '@': 16,\n '#': 13,\n $: 10,\n '%': 17,\n '^': 13,\n '&': 12,\n '*': 10,\n '(': 7,\n ')': 7,\n _: 10,\n '-': 7,\n '+': 13,\n '=': 13,\n ',': 6,\n '.': 6,\n '/': 7,\n \"'\": 4,\n ':': 7,\n '|': 7,\n '?': 9,\n ';': 7,\n '<': 13,\n '>': 13\n};\n\nclass CardComponent {\n constructor(element, cd, zone, platformId) {\n this.cd = cd;\n this.zone = zone;\n this.platformId = platformId;\n this.animations = true;\n this.select = new EventEmitter();\n this.value = '';\n this.textFontSize = 12;\n this.textTransform = '';\n this.initialized = false;\n this.bandHeight = 10;\n this.textPadding = [10, 20, 5, 20];\n this.labelFontSize = 15;\n this.element = element.nativeElement;\n }\n ngOnChanges(changes) {\n this.update();\n }\n ngOnInit() {\n if (isPlatformServer(this.platformId)) {\n this.scaleTextSSR();\n }\n }\n ngOnDestroy() {\n if (isPlatformBrowser(this.platformId)) {\n cancelAnimationFrame(this.animationReq);\n }\n }\n update() {\n this.zone.run(() => {\n const hasValue = this.data && typeof this.data.value !== 'undefined';\n const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n const labelFormatting = this.labelFormatting || (card => escapeLabel(trimLabel(card.label, 55)));\n this.transform = `translate(${this.x} , ${this.y})`;\n this.textWidth = Math.max(0, this.width) - this.textPadding[1] - this.textPadding[3];\n this.cardWidth = Math.max(0, this.width);\n this.cardHeight = Math.max(0, this.height);\n this.label = this.label ? this.label : this.data.name;\n const cardData = {\n label: this.label,\n data: this.data,\n value: this.data.value\n };\n this.formattedLabel = labelFormatting(cardData);\n this.transformBand = `translate(0 , ${this.cardHeight - this.bandHeight})`;\n const value = hasValue ? valueFormatting(cardData) : '';\n this.value = this.paddedValue(value);\n this.setPadding();\n this.bandPath = roundedRect(0, 0, this.cardWidth, this.bandHeight, 3, [false, false, true, true]);\n setTimeout(() => {\n if (isPlatformBrowser(this.platformId)) {\n this.scaleText();\n }\n this.value = value;\n if (hasValue && !this.initialized) {\n setTimeout(() => this.startCount(), 20);\n }\n }, 8);\n });\n }\n paddedValue(value) {\n if (this.medianSize && this.medianSize > value.length) {\n value += '\\u2007'.repeat(this.medianSize - value.length);\n }\n return value;\n }\n startCount() {\n if (!this.initialized && this.animations) {\n cancelAnimationFrame(this.animationReq);\n const val = this.data.value;\n const decs = decimalChecker(val);\n const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n const callback = ({ value, finished }) => {\n this.zone.run(() => {\n value = finished ? val : value;\n this.value = valueFormatting({ label: this.label, data: this.data, value });\n if (!finished) {\n this.value = this.paddedValue(this.value);\n }\n this.cd.markForCheck();\n });\n };\n this.animationReq = count(0, val, decs, 1, callback);\n this.initialized = true;\n }\n }\n scaleText() {\n this.zone.run(() => {\n const { width, height } = this.textEl.nativeElement.getBoundingClientRect();\n if (width === 0 || height === 0) {\n return;\n }\n const textPadding = (this.textPadding[1] = this.textPadding[3] = this.cardWidth / 8);\n const availableWidth = this.cardWidth - 2 * textPadding;\n const availableHeight = this.cardHeight / 3;\n const resizeScale = Math.min(availableWidth / width, availableHeight / height);\n this.textFontSize = Math.floor(this.textFontSize * resizeScale);\n this.labelFontSize = Math.min(this.textFontSize, 15);\n this.setPadding();\n this.cd.markForCheck();\n });\n }\n scaleTextSSR() {\n const width = calculateTextWidth(VERDANA_FONT_WIDTHS_16_PX, this.value, 10);\n const height = 18;\n const textPadding = (this.textPadding[1] = this.textPadding[3] = this.cardWidth / 8);\n const availableWidth = this.cardWidth - 2 * textPadding;\n const availableHeight = this.cardHeight / 3;\n const resizeScale = Math.min(availableWidth / width, availableHeight / height);\n this.textFontSize = Math.floor(this.textFontSize * resizeScale);\n this.labelFontSize = Math.min(this.textFontSize, 15);\n this.setPadding();\n }\n setPadding() {\n this.textPadding[1] = this.textPadding[3] = this.cardWidth / 8;\n const padding = this.cardHeight / 2;\n this.textPadding[0] = padding - this.textFontSize - this.labelFontSize / 2;\n this.textPadding[2] = padding - this.labelFontSize;\n }\n onClick() {\n this.select.emit(this.data);\n }\n}\nCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CardComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Component });\nCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: CardComponent, selector: \"g[ngx-charts-card]\", inputs: { color: \"color\", bandColor: \"bandColor\", textColor: \"textColor\", x: \"x\", y: \"y\", width: \"width\", height: \"height\", label: \"label\", data: \"data\", medianSize: \"medianSize\", valueFormatting: \"valueFormatting\", labelFormatting: \"labelFormatting\", animations: \"animations\" }, outputs: { select: \"select\" }, viewQueries: [{ propertyName: \"textEl\", first: true, predicate: [\"textEl\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n \n \n \n {{ label }}\n \n \n \n \n \n {{ value }}\n \n \n `, isInline: true, directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CardComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-card]',\n template: `\n \n \n \n {{ label }}\n \n \n \n \n \n {{ value }}\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { color: [{\n type: Input\n }], bandColor: [{\n type: Input\n }], textColor: [{\n type: Input\n }], x: [{\n type: Input\n }], y: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], label: [{\n type: Input\n }], data: [{\n type: Input\n }], medianSize: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }], textEl: [{\n type: ViewChild,\n args: ['textEl', { static: false }]\n }] } });\n\n/**\n * Converts a hex to RGB\n *\n * @export\n */\nfunction hexToRgb(value) {\n // deprecated, use d3.color()\n return d3_color.rgb(value);\n}\n/**\n * Accepts a color (string) and returns a inverted hex color (string)\n * http://stackoverflow.com/questions/9600295/automatically-change-text-color-to-assure-readability\n *\n * @export\n */\nfunction invertColor(value) {\n const color = d3_color.rgb(value);\n const { r, g, b, opacity } = color;\n if (opacity === 0) {\n return color.toString();\n }\n const yiq = (r * 299 + g * 587 + b * 114) / 1000;\n const depth = yiq >= 128 ? -0.8 : 0.8;\n return shadeRGBColor(color, depth);\n}\n/**\n * Given a rgb, it will darken/lighten\n * http://stackoverflow.com/questions/5560248/programmatically-lighten-or-darken-a-hex-color-or-rgb-and-blend-colors\n *\n * @export\n * @param \\{ r, g, b }\n */\nfunction shadeRGBColor({ r, g, b }, percent) {\n const t = percent < 0 ? 0 : 255;\n const p = percent < 0 ? percent * -1 : percent;\n r = Math.round((t - r) * p) + r;\n g = Math.round((t - g) * p) + g;\n b = Math.round((t - b) * p) + b;\n return `rgb(${r}, ${g}, ${b})`;\n}\n\nclass CardSeriesComponent {\n constructor() {\n this.innerPadding = 15;\n this.emptyColor = 'rgba(0, 0, 0, 0)';\n this.animations = true;\n this.select = new EventEmitter();\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n if (this.data.length > 2) {\n const valueFormatting = this.valueFormatting || (card => card.value.toLocaleString());\n const sortedLengths = this.data\n .map(d => {\n const hasValue = d && d.data && typeof d.data.value !== 'undefined' && d.data.value !== null;\n return hasValue\n ? valueFormatting({\n data: d.data,\n label: d ? d.data.name : '',\n value: d && d.data ? d.data.value : ''\n }).length\n : 0;\n })\n .sort((a, b) => b - a);\n const idx = Math.ceil(this.data.length / 2);\n this.medianSize = sortedLengths[idx];\n }\n const cards = this.getCards();\n this.cards = cards.filter(d => d.data.value !== null);\n this.emptySlots = cards.filter(d => d.data.value === null);\n }\n getCards() {\n const yPadding = typeof this.innerPadding === 'number' ? this.innerPadding : this.innerPadding[0] + this.innerPadding[2];\n const xPadding = typeof this.innerPadding === 'number' ? this.innerPadding : this.innerPadding[1] + this.innerPadding[3];\n return this.data.map((d, index) => {\n let label = d.data.name;\n if (label && label.constructor.name === 'Date') {\n label = label.toLocaleDateString();\n }\n else {\n label = label ? label.toLocaleString() : label;\n }\n const value = d.data.value;\n const valueColor = label ? this.colors.getColor(label) : this.emptyColor;\n const color = this.cardColor || valueColor || '#000';\n return {\n x: d.x,\n y: d.y,\n width: d.width - xPadding,\n height: d.height - yPadding,\n color,\n bandColor: this.bandColor || valueColor,\n textColor: this.textColor || invertColor(color),\n label,\n data: d.data,\n tooltipText: `${label}: ${value}`\n };\n });\n }\n trackBy(index, card) {\n return card.label;\n }\n onClick(data) {\n this.select.emit(data);\n }\n}\nCardSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CardSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCardSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: CardSeriesComponent, selector: \"g[ngx-charts-card-series]\", inputs: { data: \"data\", dims: \"dims\", colors: \"colors\", innerPadding: \"innerPadding\", cardColor: \"cardColor\", bandColor: \"bandColor\", emptyColor: \"emptyColor\", textColor: \"textColor\", valueFormatting: \"valueFormatting\", labelFormatting: \"labelFormatting\", animations: \"animations\" }, outputs: { select: \"select\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n `, isInline: true, components: [{ type: CardComponent, selector: \"g[ngx-charts-card]\", inputs: [\"color\", \"bandColor\", \"textColor\", \"x\", \"y\", \"width\", \"height\", \"label\", \"data\", \"medianSize\", \"valueFormatting\", \"labelFormatting\", \"animations\"], outputs: [\"select\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: CardSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-card-series]',\n template: `\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { data: [{\n type: Input\n }], dims: [{\n type: Input\n }], colors: [{\n type: Input\n }], innerPadding: [{\n type: Input\n }], cardColor: [{\n type: Input\n }], bandColor: [{\n type: Input\n }], emptyColor: [{\n type: Input\n }], textColor: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }] } });\n\nclass NumberCardComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.emptyColor = 'rgba(0, 0, 0, 0)';\n this.innerPadding = 15;\n this.margin = [10, 10, 10, 10];\n }\n get clickable() {\n return !!this.select.observers.length;\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n this.formatDates();\n this.domain = this.getDomain();\n this.setColors();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n const size = gridSize(this.dims, this.results.length, 150);\n const N = size[0] * size[1];\n const data = this.results.slice();\n while (data.length < N) {\n data.push({ value: null });\n }\n this.data = gridLayout(this.dims, data, 150, this.designatedTotal);\n }\n getDomain() {\n return this.results.map(d => d.label);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n}\nNumberCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NumberCardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nNumberCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: NumberCardComponent, selector: \"ngx-charts-number-card\", inputs: { cardColor: \"cardColor\", bandColor: \"bandColor\", emptyColor: \"emptyColor\", innerPadding: \"innerPadding\", textColor: \"textColor\", valueFormatting: \"valueFormatting\", labelFormatting: \"labelFormatting\", designatedTotal: \"designatedTotal\" }, usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \"ngx-charts-number-card .cell .trimmed-label{font-size:12px;pointer-events:none;overflow:hidden;text-align:left;line-height:1em}ngx-charts-number-card .cell .trimmed-label p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;padding:0;margin:0}ngx-charts-number-card .cell .value-text{pointer-events:none}ngx-charts-number-card .number-card.clickable .cell .card,ngx-charts-number-card .number-card.clickable .cell .card-band{cursor:pointer}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: CardSeriesComponent, selector: \"g[ngx-charts-card-series]\", inputs: [\"data\", \"dims\", \"colors\", \"innerPadding\", \"cardColor\", \"bandColor\", \"emptyColor\", \"textColor\", \"valueFormatting\", \"labelFormatting\", \"animations\"], outputs: [\"select\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NumberCardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-number-card', template: `\n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \"ngx-charts-number-card .cell .trimmed-label{font-size:12px;pointer-events:none;overflow:hidden;text-align:left;line-height:1em}ngx-charts-number-card .cell .trimmed-label p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;padding:0;margin:0}ngx-charts-number-card .cell .value-text{pointer-events:none}ngx-charts-number-card .number-card.clickable .cell .card,ngx-charts-number-card .number-card.clickable .cell .card-band{cursor:pointer}\\n\"] }]\n }], propDecorators: { cardColor: [{\n type: Input\n }], bandColor: [{\n type: Input\n }], emptyColor: [{\n type: Input\n }], innerPadding: [{\n type: Input\n }], textColor: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], designatedTotal: [{\n type: Input\n }] } });\n\nclass NumberCardModule {\n}\nNumberCardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NumberCardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNumberCardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NumberCardModule, declarations: [CardComponent, CardSeriesComponent, NumberCardComponent], imports: [ChartCommonModule], exports: [CardComponent, CardSeriesComponent, NumberCardComponent] });\nNumberCardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NumberCardModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NumberCardModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [CardComponent, CardSeriesComponent, NumberCardComponent],\n exports: [CardComponent, CardSeriesComponent, NumberCardComponent]\n }]\n }] });\n\nclass TreeMapCellComponent {\n constructor(element) {\n this.gradient = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.initialized = false;\n this.orientation = BarOrientation;\n this.element = element.nativeElement;\n }\n ngOnChanges() {\n this.update();\n this.valueFormatting = this.valueFormatting || (value => value.toLocaleString());\n const labelFormatting = this.labelFormatting || (cell => escapeLabel(trimLabel(cell.label, 55)));\n const cellData = {\n data: this.data,\n label: this.label,\n value: this.value\n };\n this.formattedValue = this.valueFormatting(cellData.value);\n this.formattedLabel = labelFormatting(cellData);\n this.gradientId = 'grad' + id().toString();\n this.gradientUrl = `url(#${this.gradientId})`;\n this.gradientStops = this.getGradientStops();\n }\n update() {\n if (this.initialized) {\n this.animateToCurrentForm();\n }\n else {\n if (this.animations) {\n this.loadAnimation();\n }\n this.initialized = true;\n }\n }\n loadAnimation() {\n const node = select(this.element).select('.cell');\n node.attr('opacity', 0).attr('x', this.x).attr('y', this.y);\n this.animateToCurrentForm();\n }\n getTextColor() {\n return invertColor(this.fill);\n }\n animateToCurrentForm() {\n const node = select(this.element).select('.cell');\n if (this.animations) {\n node\n .transition()\n .duration(750)\n .attr('opacity', 1)\n .attr('x', this.x)\n .attr('y', this.y)\n .attr('width', this.width)\n .attr('height', this.height);\n }\n else {\n node.attr('opacity', 1).attr('x', this.x).attr('y', this.y).attr('width', this.width).attr('height', this.height);\n }\n }\n onClick() {\n this.select.emit(this.data);\n }\n getGradientStops() {\n return [\n {\n offset: 0,\n color: this.fill,\n opacity: 0.3\n },\n {\n offset: 100,\n color: this.fill,\n opacity: 1\n }\n ];\n }\n}\nTreeMapCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapCellComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nTreeMapCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: TreeMapCellComponent, selector: \"g[ngx-charts-tree-map-cell]\", inputs: { data: \"data\", fill: \"fill\", x: \"x\", y: \"y\", width: \"width\", height: \"height\", label: \"label\", value: \"value\", valueFormatting: \"valueFormatting\", labelFormatting: \"labelFormatting\", gradient: \"gradient\", animations: \"animations\" }, outputs: { select: \"select\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n = 70 && height >= 35\"\n [attr.x]=\"x\"\n [attr.y]=\"y\"\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n class=\"treemap-label\"\n [style.pointer-events]=\"'none'\"\n >\n \n \n \n \n \n \n {{ formattedValue }}\n \n \n \n \n `, isInline: true, components: [{ type: SvgLinearGradientComponent, selector: \"g[ngx-charts-svg-linear-gradient]\", inputs: [\"orientation\", \"name\", \"stops\"] }, { type: CountUpDirective, selector: \"[ngx-charts-count-up]\", inputs: [\"countDuration\", \"countPrefix\", \"countSuffix\", \"valueFormatting\", \"countDecimals\", \"countTo\", \"countFrom\"], outputs: [\"countChange\", \"countFinish\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapCellComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-tree-map-cell]',\n template: `\n \n \n \n \n \n = 70 && height >= 35\"\n [attr.x]=\"x\"\n [attr.y]=\"y\"\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n class=\"treemap-label\"\n [style.pointer-events]=\"'none'\"\n >\n \n \n \n \n \n \n {{ formattedValue }}\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { data: [{\n type: Input\n }], fill: [{\n type: Input\n }], x: [{\n type: Input\n }], y: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], label: [{\n type: Input\n }], value: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], gradient: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }] } });\n\nclass TreeMapCellSeriesComponent {\n constructor() {\n this.gradient = false;\n this.tooltipDisabled = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.styleTypes = StyleTypes;\n this.placementTypes = PlacementTypes;\n }\n ngOnChanges(changes) {\n this.cells = this.getCells();\n }\n getCells() {\n return this.data.children\n .filter(d => {\n return d.depth === 1;\n })\n .map((d, index) => {\n const label = d.id;\n return {\n data: d.data,\n x: d.x0,\n y: d.y0,\n width: d.x1 - d.x0,\n height: d.y1 - d.y0,\n fill: this.colors.getColor(label),\n label,\n value: d.value\n };\n });\n }\n getTooltipText({ label, value }) {\n return `\n ${escapeLabel(label)}\n ${value.toLocaleString()}\n `;\n }\n onClick(data) {\n this.select.emit(data);\n }\n trackBy(index, item) {\n return item.label;\n }\n}\nTreeMapCellSeriesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapCellSeriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nTreeMapCellSeriesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: TreeMapCellSeriesComponent, selector: \"g[ngx-charts-tree-map-cell-series]\", inputs: { data: \"data\", dims: \"dims\", colors: \"colors\", valueFormatting: \"valueFormatting\", labelFormatting: \"labelFormatting\", gradient: \"gradient\", tooltipDisabled: \"tooltipDisabled\", tooltipTemplate: \"tooltipTemplate\", animations: \"animations\" }, outputs: { select: \"select\" }, usesOnChanges: true, ngImport: i0, template: `\n \n `, isInline: true, components: [{ type: TreeMapCellComponent, selector: \"g[ngx-charts-tree-map-cell]\", inputs: [\"data\", \"fill\", \"x\", \"y\", \"width\", \"height\", \"label\", \"value\", \"valueFormatting\", \"labelFormatting\", \"gradient\", \"animations\"], outputs: [\"select\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapCellSeriesComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-tree-map-cell-series]',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { data: [{\n type: Input\n }], dims: [{\n type: Input\n }], colors: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], gradient: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }] } });\n\nclass TreeMapComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.tooltipDisabled = false;\n this.gradient = false;\n this.select = new EventEmitter();\n this.margin = [10, 10, 10, 10];\n }\n update() {\n super.update();\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n this.domain = this.getDomain();\n this.treemap = treemap().size([this.dims.width, this.dims.height]);\n const rootNode = {\n name: 'root',\n value: 0,\n isRoot: true\n };\n const root = stratify()\n .id(d => {\n let label = d.name;\n if (label.constructor.name === 'Date') {\n label = label.toLocaleDateString();\n }\n else {\n label = label.toLocaleString();\n }\n return label;\n })\n .parentId(d => (d.isRoot ? null : 'root'))([rootNode, ...this.results])\n .sum(d => d.value);\n this.data = this.treemap(root);\n this.setColors();\n this.transform = `translate(${this.dims.xOffset} , ${this.margin[0]})`;\n }\n getDomain() {\n return this.results.map(d => d.name);\n }\n onClick(data) {\n this.select.emit(data);\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n}\nTreeMapComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nTreeMapComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: TreeMapComponent, selector: \"ngx-charts-tree-map\", inputs: { results: \"results\", tooltipDisabled: \"tooltipDisabled\", valueFormatting: \"valueFormatting\", labelFormatting: \"labelFormatting\", gradient: \"gradient\" }, outputs: { select: \"select\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n `, isInline: true, styles: [\".tree-map .treemap-val{font-size:1.3em;padding-top:5px;display:inline-block}.tree-map .treemap-label p{display:table-cell;text-align:center;line-height:1.2em;vertical-align:middle}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: TreeMapCellSeriesComponent, selector: \"g[ngx-charts-tree-map-cell-series]\", inputs: [\"data\", \"dims\", \"colors\", \"valueFormatting\", \"labelFormatting\", \"gradient\", \"tooltipDisabled\", \"tooltipTemplate\", \"animations\"], outputs: [\"select\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-tree-map', template: `\n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".tree-map .treemap-val{font-size:1.3em;padding-top:5px;display:inline-block}.tree-map .treemap-label p{display:table-cell;text-align:center;line-height:1.2em;vertical-align:middle}\\n\"] }]\n }], propDecorators: { results: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], labelFormatting: [{\n type: Input\n }], gradient: [{\n type: Input\n }], select: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }] } });\n\nclass TreeMapModule {\n}\nTreeMapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nTreeMapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapModule, declarations: [TreeMapCellComponent, TreeMapCellSeriesComponent, TreeMapComponent], imports: [ChartCommonModule], exports: [TreeMapCellComponent, TreeMapCellSeriesComponent, TreeMapComponent] });\nTreeMapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapModule, imports: [[ChartCommonModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: TreeMapModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule],\n declarations: [TreeMapCellComponent, TreeMapCellSeriesComponent, TreeMapComponent],\n exports: [TreeMapCellComponent, TreeMapCellSeriesComponent, TreeMapComponent]\n }]\n }] });\n\nvar ElementType;\n(function (ElementType) {\n ElementType[\"Value\"] = \"value\";\n ElementType[\"Units\"] = \"units\";\n})(ElementType || (ElementType = {}));\nclass LinearGaugeComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.min = 0;\n this.max = 100;\n this.value = 0;\n this.margin = [10, 20, 10, 20];\n this.valueResizeScale = 1;\n this.unitsResizeScale = 1;\n this.valueTextTransform = '';\n this.valueTranslate = '';\n this.unitsTextTransform = '';\n this.unitsTranslate = '';\n this.barOrientation = BarOrientation;\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n setTimeout(() => {\n this.scaleText(ElementType.Value);\n this.scaleText(ElementType.Units);\n });\n }\n update() {\n super.update();\n this.hasPreviousValue = this.previousValue !== undefined;\n this.max = Math.max(this.max, this.value);\n this.min = Math.min(this.min, this.value);\n if (this.hasPreviousValue) {\n this.max = Math.max(this.max, this.previousValue);\n this.min = Math.min(this.min, this.previousValue);\n }\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin\n });\n this.valueDomain = this.getValueDomain();\n this.valueScale = this.getValueScale();\n this.displayValue = this.getDisplayValue();\n this.setColors();\n const xOffset = this.margin[3] + this.dims.width / 2;\n const yOffset = this.margin[0] + this.dims.height / 2;\n this.transform = `translate(${xOffset}, ${yOffset})`;\n this.transformLine = `translate(${this.margin[3] + this.valueScale(this.previousValue)}, ${yOffset})`;\n this.valueTranslate = `translate(0, -15)`;\n this.unitsTranslate = `translate(0, 15)`;\n if (isPlatformServer(this.platformId)) {\n this.scaleTextSSR('value');\n this.scaleTextSSR('units');\n }\n else {\n setTimeout(() => this.scaleText(ElementType.Value), 50);\n setTimeout(() => this.scaleText(ElementType.Units), 50);\n }\n }\n getValueDomain() {\n return [this.min, this.max];\n }\n getValueScale() {\n return scaleLinear().range([0, this.dims.width]).domain(this.valueDomain);\n }\n getDisplayValue() {\n if (this.valueFormatting) {\n return this.valueFormatting(this.value);\n }\n return this.value.toLocaleString();\n }\n scaleText(element, repeat = true) {\n let el;\n let resizeScale;\n if (element === ElementType.Value) {\n el = this.valueTextEl;\n resizeScale = this.valueResizeScale;\n }\n else {\n el = this.unitsTextEl;\n resizeScale = this.unitsResizeScale;\n }\n const { width, height } = el.nativeElement.getBoundingClientRect();\n if (width === 0 || height === 0)\n return;\n const oldScale = resizeScale;\n const availableWidth = this.dims.width;\n const availableHeight = Math.max(this.dims.height / 2 - 15, 0);\n const resizeScaleWidth = Math.floor((availableWidth / (width / resizeScale)) * 100) / 100;\n const resizeScaleHeight = Math.floor((availableHeight / (height / resizeScale)) * 100) / 100;\n resizeScale = Math.min(resizeScaleHeight, resizeScaleWidth);\n if (resizeScale !== oldScale) {\n if (element === ElementType.Value) {\n this.valueResizeScale = resizeScale;\n this.valueTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n }\n else {\n this.unitsResizeScale = resizeScale;\n this.unitsTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n }\n this.cd.markForCheck();\n if (repeat && isPlatformBrowser(this.platformId)) {\n setTimeout(() => {\n this.scaleText(element, false);\n }, 50);\n }\n }\n }\n scaleTextSSR(element) {\n let resizeScale = 1;\n const value = element === 'value' ? this.displayValue : this.units;\n const width = calculateTextWidth(VERDANA_FONT_WIDTHS_16_PX, value, 10);\n const height = 25;\n const availableWidth = this.dims.width;\n const availableHeight = Math.max(this.dims.height / 2 - 15, 0);\n const resizeScaleWidth = Math.floor((availableWidth / (width / resizeScale)) * 100) / 100;\n const resizeScaleHeight = Math.floor((availableHeight / (height / resizeScale)) * 100) / 100;\n resizeScale = Math.min(resizeScaleHeight, resizeScaleWidth);\n if (element === 'value') {\n this.valueResizeScale = resizeScale;\n this.valueTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n }\n else {\n this.unitsResizeScale = resizeScale;\n this.unitsTextTransform = `scale(${resizeScale}, ${resizeScale})`;\n }\n this.cd.markForCheck();\n }\n onClick() {\n this.select.emit({\n name: 'Value',\n value: this.value\n });\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, [this.value], this.customColors);\n }\n}\nLinearGaugeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LinearGaugeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nLinearGaugeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: LinearGaugeComponent, selector: \"ngx-charts-linear-gauge\", inputs: { min: \"min\", max: \"max\", value: \"value\", units: \"units\", previousValue: \"previousValue\", valueFormatting: \"valueFormatting\" }, viewQueries: [{ propertyName: \"valueTextEl\", first: true, predicate: [\"valueTextEl\"], descendants: true }, { propertyName: \"unitsTextEl\", first: true, predicate: [\"unitsTextEl\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n\n \n\n \n\n \n \n \n {{ displayValue }}\n \n \n\n \n \n {{ units }}\n \n \n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".linear-gauge{cursor:pointer}.linear-gauge .background-bar path{fill:#0000000d}.linear-gauge .units{fill:#666}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: BarComponent, selector: \"g[ngx-charts-bar]\", inputs: [\"fill\", \"data\", \"width\", \"height\", \"x\", \"y\", \"orientation\", \"roundEdges\", \"gradient\", \"offset\", \"isActive\", \"stops\", \"animations\", \"ariaLabel\", \"noBarWhenZero\"], outputs: [\"select\", \"activate\", \"deactivate\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: LinearGaugeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-linear-gauge', template: `\n \n \n \n \n\n \n\n \n\n \n \n \n {{ displayValue }}\n \n \n\n \n \n {{ units }}\n \n \n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".linear-gauge{cursor:pointer}.linear-gauge .background-bar path{fill:#0000000d}.linear-gauge .units{fill:#666}\\n\"] }]\n }], propDecorators: { min: [{\n type: Input\n }], max: [{\n type: Input\n }], value: [{\n type: Input\n }], units: [{\n type: Input\n }], previousValue: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], valueTextEl: [{\n type: ViewChild,\n args: ['valueTextEl']\n }], unitsTextEl: [{\n type: ViewChild,\n args: ['unitsTextEl']\n }] } });\n\nclass GaugeArcComponent {\n constructor() {\n this.isActive = false;\n this.tooltipDisabled = false;\n this.animations = true;\n this.select = new EventEmitter();\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.placementTypes = PlacementTypes;\n this.styleTypes = StyleTypes;\n }\n tooltipText(arc) {\n const label = formatLabel(arc.data.name);\n let val;\n if (this.valueFormatting) {\n val = this.valueFormatting(arc.data.value);\n }\n else {\n val = formatLabel(arc.data.value);\n }\n return `\n ${escapeLabel(label)}\n ${val}\n `;\n }\n}\nGaugeArcComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeArcComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nGaugeArcComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: GaugeArcComponent, selector: \"g[ngx-charts-gauge-arc]\", inputs: { backgroundArc: \"backgroundArc\", valueArc: \"valueArc\", cornerRadius: \"cornerRadius\", colors: \"colors\", isActive: \"isActive\", tooltipDisabled: \"tooltipDisabled\", valueFormatting: \"valueFormatting\", tooltipTemplate: \"tooltipTemplate\", animations: \"animations\" }, outputs: { select: \"select\", activate: \"activate\", deactivate: \"deactivate\" }, ngImport: i0, template: `\n \n \n `, isInline: true, components: [{ type: PieArcComponent, selector: \"g[ngx-charts-pie-arc]\", inputs: [\"fill\", \"startAngle\", \"endAngle\", \"innerRadius\", \"outerRadius\", \"cornerRadius\", \"value\", \"max\", \"data\", \"explodeSlices\", \"gradient\", \"animate\", \"pointerEvents\", \"isActive\"], outputs: [\"select\", \"activate\", \"deactivate\", \"dblclick\"] }], directives: [{ type: TooltipDirective, selector: \"[ngx-tooltip]\", inputs: [\"tooltipCssClass\", \"tooltipTitle\", \"tooltipAppendToBody\", \"tooltipSpacing\", \"tooltipDisabled\", \"tooltipShowCaret\", \"tooltipPlacement\", \"tooltipAlignment\", \"tooltipType\", \"tooltipCloseOnClickOutside\", \"tooltipCloseOnMouseLeave\", \"tooltipHideTimeout\", \"tooltipShowTimeout\", \"tooltipTemplate\", \"tooltipShowEvent\", \"tooltipContext\", \"tooltipImmediateExit\"], outputs: [\"show\", \"hide\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeArcComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-gauge-arc]',\n template: `\n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { backgroundArc: [{\n type: Input\n }], valueArc: [{\n type: Input\n }], cornerRadius: [{\n type: Input\n }], colors: [{\n type: Input\n }], isActive: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], animations: [{\n type: Input\n }], select: [{\n type: Output\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }] } });\n\nclass GaugeAxisComponent {\n constructor() {\n this.rotate = '';\n }\n ngOnChanges(changes) {\n this.update();\n }\n update() {\n this.rotationAngle = -90 + this.startAngle;\n this.rotate = `rotate(${this.rotationAngle})`;\n this.ticks = this.getTicks();\n }\n getTicks() {\n const bigTickSegment = this.angleSpan / this.bigSegments;\n const smallTickSegment = bigTickSegment / this.smallSegments;\n const tickLength = 20;\n const ticks = {\n big: [],\n small: []\n };\n const startDistance = this.radius + 10;\n const textDist = startDistance + tickLength + 10;\n for (let i = 0; i <= this.bigSegments; i++) {\n const angleDeg = i * bigTickSegment;\n const angle = (angleDeg * Math.PI) / 180;\n const textAnchor = this.getTextAnchor(angleDeg);\n let skip = false;\n if (i === 0 && this.angleSpan === 360) {\n skip = true;\n }\n if (!skip) {\n let text = Number.parseFloat(this.valueScale.invert(angleDeg).toString()).toLocaleString();\n if (this.tickFormatting) {\n text = this.tickFormatting(text);\n }\n ticks.big.push({\n line: this.getTickPath(startDistance, tickLength, angle),\n textAnchor,\n text,\n textTransform: `\n translate(${textDist * Math.cos(angle)}, ${textDist * Math.sin(angle)}) rotate(${-this.rotationAngle})\n `\n });\n }\n if (i === this.bigSegments) {\n continue;\n }\n for (let j = 1; j <= this.smallSegments; j++) {\n const smallAngleDeg = angleDeg + j * smallTickSegment;\n const smallAngle = (smallAngleDeg * Math.PI) / 180;\n ticks.small.push({\n line: this.getTickPath(startDistance, tickLength / 2, smallAngle)\n });\n }\n }\n return ticks;\n }\n getTextAnchor(angle) {\n // [0, 45] = 'middle';\n // [46, 135] = 'start';\n // [136, 225] = 'middle';\n // [226, 315] = 'end';\n angle = (this.startAngle + angle) % 360;\n let textAnchor = TextAnchor.Middle;\n if (angle > 45 && angle <= 135) {\n textAnchor = TextAnchor.Start;\n }\n else if (angle > 225 && angle <= 315) {\n textAnchor = TextAnchor.End;\n }\n return textAnchor;\n }\n getTickPath(startDistance, tickLength, angle) {\n const y1 = startDistance * Math.sin(angle);\n const y2 = (startDistance + tickLength) * Math.sin(angle);\n const x1 = startDistance * Math.cos(angle);\n const x2 = (startDistance + tickLength) * Math.cos(angle);\n const points = [\n { x: x1, y: y1 },\n { x: x2, y: y2 }\n ];\n const lineGenerator = line()\n .x(d => d.x)\n .y(d => d.y);\n return lineGenerator(points);\n }\n}\nGaugeAxisComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeAxisComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nGaugeAxisComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: GaugeAxisComponent, selector: \"g[ngx-charts-gauge-axis]\", inputs: { bigSegments: \"bigSegments\", smallSegments: \"smallSegments\", min: \"min\", max: \"max\", angleSpan: \"angleSpan\", startAngle: \"startAngle\", radius: \"radius\", valueScale: \"valueScale\", tickFormatting: \"tickFormatting\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n \n {{ tick.text }}\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeAxisComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'g[ngx-charts-gauge-axis]',\n template: `\n \n \n \n \n \n \n {{ tick.text }}\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], propDecorators: { bigSegments: [{\n type: Input\n }], smallSegments: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], angleSpan: [{\n type: Input\n }], startAngle: [{\n type: Input\n }], radius: [{\n type: Input\n }], valueScale: [{\n type: Input\n }], tickFormatting: [{\n type: Input\n }] } });\n\nclass GaugeComponent extends BaseChartComponent {\n constructor() {\n super(...arguments);\n this.legend = false;\n this.legendTitle = 'Legend';\n this.legendPosition = LegendPosition.Right;\n this.min = 0;\n this.max = 100;\n this.bigSegments = 10;\n this.smallSegments = 5;\n this.showAxis = true;\n this.startAngle = -120;\n this.angleSpan = 240;\n this.activeEntries = [];\n this.tooltipDisabled = false;\n this.showText = true;\n this.activate = new EventEmitter();\n this.deactivate = new EventEmitter();\n this.resizeScale = 1;\n this.rotation = '';\n this.textTransform = 'scale(1, 1)';\n this.cornerRadius = 10;\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n setTimeout(() => this.scaleText());\n }\n update() {\n super.update();\n if (!this.showAxis) {\n if (!this.margin) {\n this.margin = [10, 20, 10, 20];\n }\n }\n else {\n if (!this.margin) {\n this.margin = [60, 100, 60, 100];\n }\n }\n // make the starting angle positive\n if (this.startAngle < 0) {\n this.startAngle = (this.startAngle % 360) + 360;\n }\n this.angleSpan = Math.min(this.angleSpan, 360);\n this.dims = calculateViewDimensions({\n width: this.width,\n height: this.height,\n margins: this.margin,\n showLegend: this.legend,\n legendPosition: this.legendPosition\n });\n this.domain = this.getDomain();\n this.valueDomain = this.getValueDomain();\n this.valueScale = this.getValueScale();\n this.displayValue = this.getDisplayValue();\n this.outerRadius = Math.min(this.dims.width, this.dims.height) / 2;\n this.arcs = this.getArcs();\n this.setColors();\n this.legendOptions = this.getLegendOptions();\n const xOffset = this.margin[3] + this.dims.width / 2;\n const yOffset = this.margin[0] + this.dims.height / 2;\n this.transform = `translate(${xOffset}, ${yOffset})`;\n this.rotation = `rotate(${this.startAngle})`;\n setTimeout(() => this.scaleText(), 50);\n }\n getArcs() {\n const arcs = [];\n const availableRadius = this.outerRadius * 0.7;\n const radiusPerArc = Math.min(availableRadius / this.results.length, 10);\n const arcWidth = radiusPerArc * 0.7;\n this.textRadius = this.outerRadius - this.results.length * radiusPerArc;\n this.cornerRadius = Math.floor(arcWidth / 2);\n let i = 0;\n for (const d of this.results) {\n const outerRadius = this.outerRadius - i * radiusPerArc;\n const innerRadius = outerRadius - arcWidth;\n const backgroundArc = {\n endAngle: (this.angleSpan * Math.PI) / 180,\n innerRadius,\n outerRadius,\n data: {\n value: this.max,\n name: d.name\n }\n };\n const valueArc = {\n endAngle: (Math.min(this.valueScale(d.value), this.angleSpan) * Math.PI) / 180,\n innerRadius,\n outerRadius,\n data: {\n value: d.value,\n name: d.name\n }\n };\n const arc = {\n backgroundArc,\n valueArc\n };\n arcs.push(arc);\n i++;\n }\n return arcs;\n }\n getDomain() {\n return this.results.map(d => d.name);\n }\n getValueDomain() {\n const values = this.results.map(d => d.value);\n const dataMin = Math.min(...values);\n const dataMax = Math.max(...values);\n if (this.min !== undefined) {\n this.min = Math.min(this.min, dataMin);\n }\n else {\n this.min = dataMin;\n }\n if (this.max !== undefined) {\n this.max = Math.max(this.max, dataMax);\n }\n else {\n this.max = dataMax;\n }\n return [this.min, this.max];\n }\n getValueScale() {\n return scaleLinear().range([0, this.angleSpan]).nice().domain(this.valueDomain);\n }\n getDisplayValue() {\n const value = this.results.map(d => d.value).reduce((a, b) => a + b, 0);\n if (this.textValue && 0 !== this.textValue.length) {\n return this.textValue.toLocaleString();\n }\n if (this.valueFormatting) {\n return this.valueFormatting(value);\n }\n return value.toLocaleString();\n }\n scaleText(repeat = true) {\n if (!this.showText) {\n return;\n }\n const { width } = this.textEl.nativeElement.getBoundingClientRect();\n const oldScale = this.resizeScale;\n if (width === 0) {\n this.resizeScale = 1;\n }\n else {\n const availableSpace = this.textRadius;\n this.resizeScale = Math.floor((availableSpace / (width / this.resizeScale)) * 100) / 100;\n }\n if (this.resizeScale !== oldScale) {\n this.textTransform = `scale(${this.resizeScale}, ${this.resizeScale})`;\n this.cd.markForCheck();\n if (repeat) {\n setTimeout(() => this.scaleText(false), 50);\n }\n }\n }\n onClick(data) {\n this.select.emit(data);\n }\n getLegendOptions() {\n return {\n scaleType: ScaleType.Ordinal,\n colors: this.colors,\n domain: this.domain,\n title: this.legendTitle,\n position: this.legendPosition\n };\n }\n setColors() {\n this.colors = new ColorHelper(this.scheme, ScaleType.Ordinal, this.domain, this.customColors);\n }\n onActivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n if (idx > -1) {\n return;\n }\n this.activeEntries = [item, ...this.activeEntries];\n this.activate.emit({ value: item, entries: this.activeEntries });\n }\n onDeactivate(item) {\n const idx = this.activeEntries.findIndex(d => {\n return d.name === item.name && d.value === item.value;\n });\n this.activeEntries.splice(idx, 1);\n this.activeEntries = [...this.activeEntries];\n this.deactivate.emit({ value: item, entries: this.activeEntries });\n }\n isActive(entry) {\n if (!this.activeEntries)\n return false;\n const item = this.activeEntries.find(d => {\n return entry.name === d.name && entry.series === d.series;\n });\n return item !== undefined;\n }\n trackBy(index, item) {\n return item.valueArc.data.name;\n }\n}\nGaugeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\nGaugeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.1.0\", type: GaugeComponent, selector: \"ngx-charts-gauge\", inputs: { legend: \"legend\", legendTitle: \"legendTitle\", legendPosition: \"legendPosition\", min: \"min\", max: \"max\", textValue: \"textValue\", units: \"units\", bigSegments: \"bigSegments\", smallSegments: \"smallSegments\", results: \"results\", showAxis: \"showAxis\", startAngle: \"startAngle\", angleSpan: \"angleSpan\", activeEntries: \"activeEntries\", axisTickFormatting: \"axisTickFormatting\", tooltipDisabled: \"tooltipDisabled\", valueFormatting: \"valueFormatting\", showText: \"showText\", margin: \"margin\" }, outputs: { activate: \"activate\", deactivate: \"deactivate\" }, queries: [{ propertyName: \"tooltipTemplate\", first: true, predicate: [\"tooltipTemplate\"], descendants: true }], viewQueries: [{ propertyName: \"textEl\", first: true, predicate: [\"textEl\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n\n \n\n \n {{ displayValue }}\n {{ units }}\n \n \n \n `, isInline: true, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".gauge .background-arc path{fill:#0000000d}.gauge .gauge-tick path{stroke:#666}.gauge .gauge-tick text{font-size:12px;fill:#666;font-weight:700}.gauge .gauge-tick-large path{stroke-width:2px}.gauge .gauge-tick-small path{stroke-width:1px}\\n\"], components: [{ type: ChartComponent, selector: \"ngx-charts-chart\", inputs: [\"view\", \"showLegend\", \"legendOptions\", \"legendType\", \"activeEntries\", \"animations\"], outputs: [\"legendLabelClick\", \"legendLabelActivate\", \"legendLabelDeactivate\"] }, { type: GaugeArcComponent, selector: \"g[ngx-charts-gauge-arc]\", inputs: [\"backgroundArc\", \"valueArc\", \"cornerRadius\", \"colors\", \"isActive\", \"tooltipDisabled\", \"valueFormatting\", \"tooltipTemplate\", \"animations\"], outputs: [\"select\", \"activate\", \"deactivate\"] }, { type: GaugeAxisComponent, selector: \"g[ngx-charts-gauge-axis]\", inputs: [\"bigSegments\", \"smallSegments\", \"min\", \"max\", \"angleSpan\", \"startAngle\", \"radius\", \"valueScale\", \"tickFormatting\"] }], directives: [{ type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ngx-charts-gauge', template: `\n \n \n \n \n \n\n \n\n \n {{ displayValue }}\n {{ units }}\n \n \n \n `, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\".ngx-charts-outer{-webkit-animation:chartFadeIn linear .6s;animation:chartFadeIn linear .6s}@-webkit-keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}@keyframes chartFadeIn{0%{opacity:0}20%{opacity:0}to{opacity:1}}.ngx-charts{float:left;overflow:visible}.ngx-charts .circle,.ngx-charts .cell,.ngx-charts .bar,.ngx-charts .arc{cursor:pointer}.ngx-charts .bar.active,.ngx-charts .bar:hover,.ngx-charts .cell.active,.ngx-charts .cell:hover,.ngx-charts .arc.active,.ngx-charts .arc:hover,.ngx-charts .card.active,.ngx-charts .card:hover{opacity:.8;transition:opacity .1s ease-in-out}.ngx-charts .bar:focus,.ngx-charts .cell:focus,.ngx-charts .arc:focus,.ngx-charts .card:focus{outline:none}.ngx-charts .bar.hidden,.ngx-charts .cell.hidden,.ngx-charts .arc.hidden,.ngx-charts .card.hidden{display:none}.ngx-charts g:focus{outline:none}.ngx-charts .line-series.inactive,.ngx-charts .line-series-range.inactive,.ngx-charts .polar-series-path.inactive,.ngx-charts .polar-series-area.inactive,.ngx-charts .area-series.inactive{transition:opacity .1s ease-in-out;opacity:.2}.ngx-charts .line-highlight{display:none}.ngx-charts .line-highlight.active{display:block}.ngx-charts .area{opacity:.6}.ngx-charts .circle:hover{cursor:pointer}.ngx-charts .label{font-size:12px;font-weight:400}.ngx-charts .tooltip-anchor{fill:#000}.ngx-charts .gridline-path{stroke:#ddd;stroke-width:1;fill:none}.ngx-charts .refline-path{stroke:#a8b2c7;stroke-width:1;stroke-dasharray:5;stroke-dashoffset:5}.ngx-charts .refline-label{font-size:9px}.ngx-charts .reference-area{fill-opacity:.05;fill:#000}.ngx-charts .gridline-path-dotted{stroke:#ddd;stroke-width:1;fill:none;stroke-dasharray:1,20;stroke-dashoffset:3}.ngx-charts .grid-panel rect{fill:none}.ngx-charts .grid-panel.odd rect{fill:#0000000d}\\n\", \".gauge .background-arc path{fill:#0000000d}.gauge .gauge-tick path{stroke:#666}.gauge .gauge-tick text{font-size:12px;fill:#666;font-weight:700}.gauge .gauge-tick-large path{stroke-width:2px}.gauge .gauge-tick-small path{stroke-width:1px}\\n\"] }]\n }], propDecorators: { legend: [{\n type: Input\n }], legendTitle: [{\n type: Input\n }], legendPosition: [{\n type: Input\n }], min: [{\n type: Input\n }], max: [{\n type: Input\n }], textValue: [{\n type: Input\n }], units: [{\n type: Input\n }], bigSegments: [{\n type: Input\n }], smallSegments: [{\n type: Input\n }], results: [{\n type: Input\n }], showAxis: [{\n type: Input\n }], startAngle: [{\n type: Input\n }], angleSpan: [{\n type: Input\n }], activeEntries: [{\n type: Input\n }], axisTickFormatting: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], valueFormatting: [{\n type: Input\n }], showText: [{\n type: Input\n }], margin: [{\n type: Input\n }], activate: [{\n type: Output\n }], deactivate: [{\n type: Output\n }], tooltipTemplate: [{\n type: ContentChild,\n args: ['tooltipTemplate']\n }], textEl: [{\n type: ViewChild,\n args: ['textEl']\n }] } });\n\nclass GaugeModule {\n}\nGaugeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nGaugeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeModule, declarations: [LinearGaugeComponent, GaugeComponent, GaugeArcComponent, GaugeAxisComponent], imports: [ChartCommonModule, PieChartModule, BarChartModule], exports: [LinearGaugeComponent, GaugeComponent, GaugeArcComponent, GaugeAxisComponent] });\nGaugeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeModule, imports: [[ChartCommonModule, PieChartModule, BarChartModule]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: GaugeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ChartCommonModule, PieChartModule, BarChartModule],\n declarations: [LinearGaugeComponent, GaugeComponent, GaugeArcComponent, GaugeAxisComponent],\n exports: [LinearGaugeComponent, GaugeComponent, GaugeArcComponent, GaugeAxisComponent]\n }]\n }] });\n\n// The export is needed here to generate a valid polyfills.metadata.json file\nfunction ngxChartsPolyfills() {\n // IE11 fix\n // Ref: https://github.com/swimlane/ngx-charts/issues/386\n if (typeof SVGElement !== 'undefined' && typeof SVGElement.prototype.contains === 'undefined') {\n SVGElement.prototype.contains = HTMLDivElement.prototype.contains;\n }\n}\n\nclass NgxChartsModule {\n constructor() {\n ngxChartsPolyfills();\n }\n}\nNgxChartsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NgxChartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNgxChartsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NgxChartsModule, exports: [ChartCommonModule,\n AreaChartModule,\n BarChartModule,\n BoxChartModule,\n BubbleChartModule,\n HeatMapModule,\n LineChartModule,\n PolarChartModule,\n NumberCardModule,\n PieChartModule,\n TreeMapModule,\n GaugeModule] });\nNgxChartsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NgxChartsModule, imports: [ChartCommonModule,\n AreaChartModule,\n BarChartModule,\n BoxChartModule,\n BubbleChartModule,\n HeatMapModule,\n LineChartModule,\n PolarChartModule,\n NumberCardModule,\n PieChartModule,\n TreeMapModule,\n GaugeModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.1.0\", ngImport: i0, type: NgxChartsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [\n ChartCommonModule,\n AreaChartModule,\n BarChartModule,\n BoxChartModule,\n BubbleChartModule,\n HeatMapModule,\n LineChartModule,\n PolarChartModule,\n NumberCardModule,\n PieChartModule,\n TreeMapModule,\n GaugeModule\n ]\n }]\n }], ctorParameters: function () { return []; } });\n\nfunction tickFormat(fieldType, groupByType) {\n return function (label) {\n if (label === 'No Value' || label === 'Other') {\n return label;\n }\n if (fieldType === 'date' && groupByType === 'groupBy') {\n const formatter = timeFormat('MM/DD/YYYY');\n return formatter(label);\n }\n return label.toString();\n };\n}\n\n/*\n * Public API Surface of ngx-charts\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AdvancedLegendComponent, AdvancedPieChartComponent, AreaChartComponent, AreaChartModule, AreaChartNormalizedComponent, AreaChartStackedComponent, AreaComponent, AreaSeriesComponent, AxesModule, AxisLabelComponent, BarChartModule, BarChartType, BarComponent, BarHorizontal2DComponent, BarHorizontalComponent, BarHorizontalNormalizedComponent, BarHorizontalStackedComponent, BarLabelComponent, BarOrientation, BarVertical2DComponent, BarVerticalComponent, BarVerticalNormalizedComponent, BarVerticalStackedComponent, BaseChartComponent, BoxChartComponent, BoxChartModule, BoxComponent, BoxSeriesComponent, BubbleChartComponent, BubbleChartModule, BubbleSeriesComponent, CardComponent, CardSeriesComponent, ChartCommonModule, ChartComponent, CircleComponent, CircleSeriesComponent, ColorHelper, CountUpDirective, D0Types, GaugeArcComponent, GaugeAxisComponent, GaugeComponent, GaugeModule, GridPanelComponent, GridPanelSeriesComponent, HeatCellSeriesComponent, HeatMapCellComponent, HeatMapComponent, HeatMapModule, LegendComponent, LegendEntryComponent, LegendPosition, LegendType, LineChartComponent, LineChartModule, LineComponent, LineSeriesComponent, LinearGaugeComponent, NgxChartsModule, NumberCardComponent, NumberCardModule, Orientation, PieArcComponent, PieChartComponent, PieChartModule, PieGridComponent, PieGridSeriesComponent, PieLabelComponent, PieSeriesComponent, PlacementTypes, PolarChartComponent, PolarChartModule, PolarSeriesComponent, ScaleLegendComponent, ScaleType, SeriesHorizontal, SeriesType, SeriesVerticalComponent, ShowTypes, StyleTypes, SvgLinearGradientComponent, SvgRadialGradientComponent, TextAnchor, Timeline, TooltipArea, TooltipContentComponent, TooltipDirective, TooltipModule, TooltipService, TreeMapCellComponent, TreeMapCellSeriesComponent, TreeMapComponent, TreeMapModule, VisibilityObserver, XAxisComponent, XAxisTicksComponent, YAxisComponent, YAxisTicksComponent, calculateViewDimensions, colorSets, count, decimalChecker, escapeLabel, formatLabel, getDomain, getScale, getScaleType, getUniqueXDomainValues, getXDomainArray, gridLayout, gridSize, hexToRgb, id, invertColor, reduceTicks, shadeRGBColor, sortByDomain, sortByTime, sortLinear, throttle, throttleable, tickFormat, trimLabel };\n//# sourceMappingURL=swimlane-ngx-charts.mjs.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n"],"sourceRoot":"webpack:///"}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n Add{{\r\n options.length > 0 ? \" Another\" : \"\"\r\n }}\r\n \r\n
\r\n
\r\n