{"version":3,"file":"ax-common-ui-lib.mjs","sources":["../../../src/ax-common-ui-lib/src/lib/ax-common-ui-lib.service.ts","../../../src/ax-common-ui-lib/src/lib/ax-common-ui-lib.component.ts","../../../src/ax-common-ui-lib/src/lib/scrollbar/scrollbar.types.ts","../../../src/ax-common-ui-lib/src/lib/scrollbar/scrollbar.directive.ts","../../../src/ax-common-ui-lib/src/lib/scrollbar/scrollbar.module.ts","../../../src/ax-common-ui-lib/src/lib/core/icons/icons.module.ts","../../../src/ax-common-ui-lib/src/lib/core/transloco/transloco.http-loader.ts","../../../src/ax-common-ui-lib/src/lib/core/transloco/transloco.module.ts","../../../src/ax-common-ui-lib/src/lib/core/core.module.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/exp-sub-type.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-expression-value.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-text.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/condition-type.ts","../../../src/ax-common-ui-lib/src/lib/common-dto/attributes-dto.ts","../../../src/ax-common-ui-lib/src/lib/axo-utils/data-source-types.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/common/widget-enums.ts","../../../src/ax-common-ui-lib/src/lib/axo-utils/axo-utils.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/gridster-properties.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-toggle.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-date-time-range.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-date-time-range-value.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-time-range.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-time-range-value.ts","../../../src/ax-common-ui-lib/src/lib/axo-utils/constants.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/choice-list-options.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-audio.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-barcode.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-childrecord.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-counter.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-date.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-decimal.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-document.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-file.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-image.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-location.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-number.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-qrcode.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-signature.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-staticmedia.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-text.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-time.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/ax-uniqueid.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/axo-timestamp.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/choicelist.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/datetime.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/hyperlink.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/toggle.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/types/video.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model/attribute.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/ax-operator.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-column.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-date-list.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-date-range.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-date-range-value.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-date-time.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-date-value.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-number-list.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-number-range.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-number-range-value.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-number-value.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-text-list.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-time.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-time-list.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-exp-date-time-list.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/ax-expression/ax-expression.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/search-node.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/ax-filter.ts","../../../src/ax-common-ui-lib/src/lib/common-lib-configuration.service.ts","../../../src/ax-common-ui-lib/src/lib/filters/common-filter/common-filter.service.ts","../../../src/ax-common-ui-lib/src/lib/filters/common-filter/common-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/common-filter/common-filter.component.html","../../../src/ax-common-ui-lib/src/lib/axo-search-bar/axo-search-bar.component.html","../../../src/ax-common-ui-lib/src/lib/axo-search-bar/axo-search-bar.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/filter-footer/filter-footer.component.html","../../../src/ax-common-ui-lib/src/lib/filters/filter-footer/filter-footer.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/single-select-filter/single-select-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/single-select-filter/single-select-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/axo-search-bar/axo-search-bar.module.ts","../../../src/ax-common-ui-lib/src/lib/core/user/axo-user.ts","../../../src/ax-common-ui-lib/src/lib/filters/user-filter/user-filter.service.ts","../../../src/ax-common-ui-lib/src/lib/filters/metaColumnTypes.ts","../../../src/ax-common-ui-lib/src/lib/core/user/user.service.ts","../../../src/ax-common-ui-lib/src/lib/filters/meta-column-filter-builder/meta-column-filter-builder.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/chart-filter-type.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/general-filter-type.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/iproperty.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/elements/Property.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/property/filter-property.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/utils/utils.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/aggregate.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/value-formatting.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/orderby-type.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/fontStyle.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/title.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/conditional-formatting.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/label.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/legend.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/shadow.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/border.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/font.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/style.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/filter-category.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/elements/ax-element.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/chart.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/matrix.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/property/element-property.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/chart-property.ts","../../../src/ax-common-ui-lib/src/lib/ghost-loader/ghost-loader.component.html","../../../src/ax-common-ui-lib/src/lib/ghost-loader/ghost-loader.component.ts","../../../src/ax-common-ui-lib/src/lib/common-utils/entity-base.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model/dependee.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model/dependent.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model/entity.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model/data-model.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/static-widget.ts","../../../src/ax-common-ui-lib/src/lib/services/logging.service.ts","../../../src/ax-common-ui-lib/src/lib/core/user/user-data.service.ts","../../../src/ax-common-ui-lib/src/lib/app-list/app-list-dto.ts","../../../src/ax-common-ui-lib/src/lib/app-list/organization-list-dto.ts","../../../src/ax-common-ui-lib/src/lib/app-list/my-app-list.service.ts","../../../src/ax-common-ui-lib/src/lib/field-list-lib/fields-list.service.ts","../../../src/ax-common-ui-lib/src/lib/common-dto/dashboard-dto.ts","../../../src/ax-common-ui-lib/src/lib/axo-snack-bar/axo-snack-bar.component.html","../../../src/ax-common-ui-lib/src/lib/axo-snack-bar/axo-snack-bar.component.ts","../../../src/ax-common-ui-lib/src/lib/axo-snack-bar/axo-snack-bar.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/property/filter-category-property.ts","../../../src/ax-common-ui-lib/src/lib/common.service.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard-list.service.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/show-dashboards/show-dashboards.service.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/show-dashboards/show-dashboards.component.html","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/show-dashboards/show-dashboards.component.ts","../../../src/ax-common-ui-lib/src/lib/shared/comfirmation-modal/confirmation-modal.component.ts","../../../src/ax-common-ui-lib/src/lib/shared/comfirmation-modal/confirmation-modal.component.html","../../../src/ax-common-ui-lib/src/lib/subscribedPlanName.service.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/send-to-dashboard.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/enums/bread-crumbs-style.ts","../../../src/ax-common-ui-lib/src/lib/bread-crumbs/bread-crumbs.service.ts","../../../src/ax-common-ui-lib/src/lib/drill-through/drill-through.service.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard-builder.service.ts","../../../src/ax-common-ui-lib/src/lib/filters/filters.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/text/text.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/text/text.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/text/text-chart.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/chart-type.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/chart-factory.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/text-style.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/column-style.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/row-style.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/table-style.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular-report.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/elements/element-factory.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/page/page.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/ireport.ts","../../../src/ax-common-ui-lib/src/lib/common-utils/report.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report-control.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/report-builder-master.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/line-column-chart/line-column-chart.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/line-column-chart/line-column-chart.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/line-column-chart/line-column-chart.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/attribute-data.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/dimension.ts","../../../src/ax-common-ui-lib/src/lib/common-dto/elements-dto.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/element.service.ts","../../../src/ax-common-ui-lib/src/lib/filters/multi-select-filter/multi-select-filter.service.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/common/constants.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/parse-float-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/location-object-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/reference-list-object-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/image-annotation-value-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/parse-int-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/image-widget-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/document-widget-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/gps-widget-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/form-object.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/parse-string-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/geo-fence-location-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/child-record-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/geo-fence-widget-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/language-widget-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/dateRangeValue.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/geo-fence-value-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/string-to-bool-value-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/displayMode-to-bool.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/multiple-languages.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/common/property-panel-field.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/object-to-string-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget.ts","../../../src/ax-common-ui-lib/src/lib/common-property-panel/properties/properties.service.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/clipboard.service.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/script-condition.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/choice-list/choice-list.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/choice-list/choice-list.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/choices-ml.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/choicelist.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/value-without-mask-converter.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/textbox/textbox.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/textbox/textbox.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/textbox.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/string-to-number -converter.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/search/search/search.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/search/search/search.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/search.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/button/button/button.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/button/button/button.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/button.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/qr-code/qr-code.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/qr-code/qr-code.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/qr-code.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/barcode/barcode.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/barcode/barcode.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/bar-code.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/image/image.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/image/image.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/ax-image.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/audio-video-widget-value.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/video/video.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/video/video.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/video.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/audio/audio.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/audio/audio.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/ax-audio.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/document/document.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/document/document.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/ax-document.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/link/link.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/link/link.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/link.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/toggle/toggle.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/toggle/toggle.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/string-to-bool-value-converter-toggle.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/toggle.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/language-source-value-converter.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/language/language.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/language/language.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/languages.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/date-time/date-time.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/date-time/date-time.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/datetime.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/timestamp/timestamp.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/timestamp/timestamp.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/timestamp.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/stopwatch/stopwatch.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/stopwatch/stopwatch.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/stopwatch.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/group-header/group-header.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/group-header/group-header.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/group-header.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/gps/gps.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/gps/gps.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/gps.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/record-limit-type-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/restriction-mode-converter.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/child-record/child-record.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/child-record/child-record.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/number-to-string-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/child-record.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/formula/formula.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/formula/formula.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/formula.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/auto-number/auto-number.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/auto-number/auto-number.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/auto-number.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/unique-id/unique-id.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/unique-id/unique-id.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/unique-id.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/counter/counter.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/counter/counter.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/counter.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/apply-geofences/apply-geofences.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/apply-geofences/apply-geofences.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/apply-geofences.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/static-media/static-media.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/static-media/static-media.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/static-media.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/signature/signature.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/signature/signature.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/signature.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/verification-widget-value.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/verification/verification.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/verification/verification.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/verification.ts","../../../src/ax-common-ui-lib/src/lib/sculptor/form-builder-master/cutom-storage.service.ts","../../../src/ax-common-ui-lib/src/lib/sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/subform/subform.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/subform/subform.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/sub-form.ts","../../../src/ax-common-ui-lib/src/lib/sculptor/forms-list/forms-list.service.ts","../../../src/ax-common-ui-lib/src/lib/sculptor/form-builder-master/form-builder-master-mapper.service.ts","../../../src/ax-common-ui-lib/src/lib/sculptor/form-builder-master/form-builder-master.service.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/widgets.service.ts","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/geofence/geofence.component.html","../../../src/ax-common-ui-lib/src/lib/sculptor-lib/widgets/geofence/geofence.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/geofence.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/widget-value/apply-geo-fence-widget-value.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/common/widget-value-handler.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/widgets/payment.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/widget-deserializer.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/widget-concrete-class-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/list-view-title-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/value-converters/form-type-converter.ts","../../../src/ax-common-ui-lib/src/lib/forms/ax-form.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/data-view-enums.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/data-view-filter.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view-filters/data-view-filters.service.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/data-detail-view/ax-section.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/data-detail-view/data-details.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/data-list/data-list-column.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/data-list/data-list.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/coordinate.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/image-style.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/prefix-style.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/tag-style.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/value-style.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/tagConfig.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/cardConfig.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/board-view.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/axo-tag.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/axo-card.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/location.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/info-window.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/map-view.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/task-view.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/data-view.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view.service.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view-filters/generate-qr/generate-qr.component.html","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view-filters/generate-qr/generate-qr.component.ts","../../../src/ax-common-ui-lib/src/lib/stripe.service.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view-filters/data-view-filters.component.html","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view-filters/data-view-filters.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/custom-scroll-directives.ts","../../../src/ax-common-ui-lib/src/lib/filters/calender-filter/calender-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/calender-filter/calender-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/date-time-filter/date-time-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/date-time-filter/date-time-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/time-filter/time-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/time-filter/time-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/number-filter/number-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/number-filter/number-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/reference-list-filter/reference-list-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/reference-list-filter/reference-list-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/axo-utils/search-pipe/choice-search.pipe.ts","../../../src/ax-common-ui-lib/src/lib/filters/choice-list-filter/choice-list-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/choice-list-filter/choice-list-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/user-filter/user-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/user-filter/user-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/multi-select-filter/multi-select-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/multi-select-filter/multi-select-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/category-filter/category-filter.service.ts","../../../src/ax-common-ui-lib/src/lib/filters/category-filter/category-filter.component.html","../../../src/ax-common-ui-lib/src/lib/filters/category-filter/category-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/filters.component.html","../../../src/ax-common-ui-lib/src/lib/filters/filters.component.ts","../../../src/ax-common-ui-lib/src/lib/axo-utils/search-pipe.ts","../../../src/ax-common-ui-lib/src/lib/axo-utils/filter-search-pipe.ts","../../../src/ax-common-ui-lib/src/lib/axo-utils/field-list-search-pipe.ts","../../../src/ax-common-ui-lib/src/lib/axo-utils/axo-utils.module.ts","../../../src/ax-common-ui-lib/src/lib/filters/filters.module.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/data-model-tree-enums.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/report-filter/report-filter.service.ts","../../../src/ax-common-ui-lib/src/lib/filters/category-filter/category.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/report-filter/report-filter.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/report-filter/report-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/categories-tree/categories-tree.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/categories-tree/categories-tree.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/attributes-dragdrop-layout/attributes-dragdrop-layout.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/attributes-dragdrop-layout/attributes-dragdrop-layout.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/attributes-selection-layout/attributes-selection-layout.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/attributes-selection-layout/attributes-selection-layout.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/data-model-tree.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/data-model-tree.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/data-model-tree/data-model-tree.module.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/report-filter/report-filter.module.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/card-chart/card-chart.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/line-chart/line-chart.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/text/text.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/chart/common-chart.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/chart-filter/chart-filter.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/chart-filter/chart-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular-report.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/tabular.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/tabular.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/resize-column-directive.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard-filter/dashboard-filter.component.html","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard-filter/dashboard-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/axo-percentage.pipe.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/row-group-view/row-group-view.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/row-group-view/row-group-view.component.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/conditional-formatting.ts","../../../src/ax-common-ui-lib/src/lib/code-editor/code-editor-modes.ts","../../../src/ax-common-ui-lib/src/lib/code-editor/code-editor-themes.ts","../../../src/ax-common-ui-lib/src/lib/code-editor/code-editor.component.ts","../../../src/ax-common-ui-lib/src/lib/code-editor/code-editor.component.html","../../../src/ax-common-ui-lib/src/lib/shared/conditional-formatting/conditional-formatting/conditional-formatting.component.ts","../../../src/ax-common-ui-lib/src/lib/shared/conditional-formatting/conditional-formatting/conditional-formatting.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/detail-group-view/detail-group-view.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/detail-group-view/detail-group-view.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/column-group-view/column-group-view.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular/column-group-view/column-group-view.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard-element-property/dashboard-property/dashboard-element-property.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard-element/dashboard-element.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard-control.service.ts","../../../src/ax-common-ui-lib/src/lib/dashboard-lib/dashboard-lib.module.ts","../../../src/ax-common-ui-lib/src/lib/qrdialog/qrdialog.component.ts","../../../src/ax-common-ui-lib/src/lib/qrdialog/qrdialog.component.html","../../../src/ax-common-ui-lib/src/lib/loading-appinstall/loading-appinstall.component.ts","../../../src/ax-common-ui-lib/src/lib/success-dialog/success-dialog.component.ts","../../../src/ax-common-ui-lib/src/lib/success-dialog/success-dialog.component.html","../../../src/ax-common-ui-lib/src/lib/app-create-dialog-component/app-create-dialog-component.component.html","../../../src/ax-common-ui-lib/src/lib/app-create-dialog-component/app-create-dialog-component.component.ts","../../../src/ax-common-ui-lib/src/lib/core/auth/auth.service.ts","../../../src/ax-common-ui-lib/src/lib/flatten-module/flatten.service.ts","../../../src/ax-common-ui-lib/src/lib/app-list/app-list.component.html","../../../src/ax-common-ui-lib/src/lib/app-list/app-list.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/graphical-report.component.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/graphical-report.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/graphical-report.directive.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular-report.component.html","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/tabular-report/tabular-report.component.ts","../../../src/ax-common-ui-lib/src/lib/filters/reference-list-filter/reference-list-filter.service.ts","../../../src/ax-common-ui-lib/src/lib/directive/adjust-font-size.ts","../../../src/ax-common-ui-lib/src/lib/filters/choice-list-filter/choice-list-filter.service.ts","../../../src/ax-common-ui-lib/src/lib/ghost-loader/ghost-loader.module.ts","../../../src/ax-common-ui-lib/src/lib/common-header/common-header.component.ts","../../../src/ax-common-ui-lib/src/lib/common-header/common-header.component.html","../../../src/ax-common-ui-lib/src/lib/common-footer/common-footer.component.ts","../../../src/ax-common-ui-lib/src/lib/common-footer/common-footer.component.html","../../../src/ax-common-ui-lib/src/lib/headfoot.module.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/report/graphical-report/line-column-chart/line-column-chart.service.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/enlighten-lib.module.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-header/widgets/text-box-header/text-box-header.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-header/widgets/text-box-header/text-box-header.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-header/widget-header-type-handler.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-header/widgets-header.directive.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-header/form-object-list-header.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-header/form-object-list-header.component.html","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/task-asset-form-object-dto.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/task.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/data-detail-view/section.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/data-detail-view/section-field.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/data-detail-view-dto.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-view.service.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/dataListSeachQueryTree.ts","../../../src/ax-common-ui-lib/src/lib/common-dto/dataListFilter-dto.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/enums/operator-text-enum.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/dataListFilterOperator.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/dataListFilterExpression.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/filters/dataList-searchNode.ts","../../../src/ax-common-ui-lib/src/lib/converters/convert-to-old-service.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list.service.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/form-object-value.directive.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-apply-geo-fence-value/formobject-apply-geo-fence-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-apply-geo-fence-value/formobject-apply-geo-fence-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-audio-value/formobject-audio-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-audio-value/formobject-audio-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-auto-number-value/formobject-auto-number-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-auto-number-value/formobject-auto-number-value.component.ts","../../../src/ax-common-ui-lib/src/lib/axo-map/axo-map.ts","../../../src/ax-common-ui-lib/src/lib/axo-map/axo-map.component.html","../../../src/ax-common-ui-lib/src/lib/axo-map/axo-map.component.ts","../../../src/ax-common-ui-lib/src/lib/map-dialog/map-dialog.component.ts","../../../src/ax-common-ui-lib/src/lib/map-dialog/map-dialog.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-bar-code-value/formobject-bar-code-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-bar-code-value/formobject-bar-code-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-child-records-value/formobject-child-records-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-child-records-value/formobject-child-records-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-choicelist-value/formobject-choicelist-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-choicelist-value/formobject-choicelist-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-counter-value/formobject-counter-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-counter-value/formobject-counter-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-date-time-value/formobject-date-time-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-date-time-value/formobject-date-time-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-document-value/formobject-document-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-document-value/formobject-document-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-formula-value/formobject-formula-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-formula-value/formobject-formula-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-map-view/image-map-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-map-view/image-map-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-geo-fence-value/formobject-geo-fence-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-geo-fence-value/formobject-geo-fence-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-gps-value/formobject-gps-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-gps-value/formobject-gps-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-widget-lightbox-view/image-widget-lightbox-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-widget-lightbox-view/image-widget-lightbox-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-annotation-data-dto.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-image-value/formobject-image-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-image-value/formobject-image-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-languages-value/formobject-languages-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-languages-value/formobject-languages-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-qr-code-value/formobject-qr-code-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-qr-code-value/formobject-qr-code-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-widget-mat-dialog/formobject-widget-mat-dialog.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-widget-mat-dialog/formobject-widget-mat-dialog.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-signature-value/formobject-signature-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-signature-value/formobject-signature-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-static-media-value/formobject-static-media-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-static-media-value/formobject-static-media-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-stop-watch-value/formobject-stop-watch-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-stop-watch-value/formobject-stop-watch-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-sub-form-value/formobject-sub-form-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-sub-form-value/formobject-sub-form-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-textbox-value/formobject-textbox-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-textbox-value/formobject-textbox-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-time-stamp-value/formobject-time-stamp-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-time-stamp-value/formobject-time-stamp-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-toggle-value/formobject-toggle-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-toggle-value/formobject-toggle-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-unique-id-value/formobject-unique-id-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-unique-id-value/formobject-unique-id-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-verification-value/formobject-verification-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-verification-value/formobject-verification-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-video-value/formobject-video-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-video-value/formobject-video-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-web-link-value/formobject-web-link-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-web-link-value/formobject-web-link-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/form-object-value-handler.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/form-object-widget-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/form-object-widget-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-filter/form-object-list-filter.service.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-filter/form-object-list-filter.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list-filter/form-object-list-filter.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-group-header-value/formobject-group-header-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-group-header-value/formobject-group-header-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-payment-value/formobject-payment-value.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/formObjectWidgetValue/formobject-payment-value/formobject-payment-value.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-view.component.ts","../../../src/ax-common-ui-lib/src/lib/code-editor/code-editor.module.ts","../../../src/ax-common-ui-lib/src/lib/shared/shared.module.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/apply-geo-fence-widget-view/apply-geo-fence-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/apply-geo-fence-widget-view/apply-geo-fence-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/audio-widget-view/audio-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/audio-widget-view/audio-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/auto-number-widget-view/auto-number-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/auto-number-widget-view/auto-number-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/bar-code-widget-view/bar-code-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/bar-code-widget-view/bar-code-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/common/detail-view-enums.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/child-records-widget-view/child-records-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/child-records-widget-view/child-records-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/choice-list-widget-view/choice-list-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/choice-list-widget-view/choice-list-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/counter-widget-view/counter-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/counter-widget-view/counter-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/date-time-widget-view/date-time-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/date-time-widget-view/date-time-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/document-widget-view/document-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/document-widget-view/document-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/formula-widget-view/formula-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/formula-widget-view/formula-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/geo-fence-widget-view/geo-fence-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/geo-fence-widget-view/geo-fence-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/gps-widget-view/gps-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/gps-widget-view/gps-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/group-header-widget-view/group-header-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/image-widget-view/image-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/language-widget-view/language-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/language-widget-view/language-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/qr-code-widget-view/qr-code-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/qr-code-widget-view/qr-code-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/signature-widget-view/signature-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/signature-widget-view/signature-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/static-media-widget-view/static-media-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/static-media-widget-view/static-media-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/stop-watch-widget-view/stop-watch-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/stop-watch-widget-view/stop-watch-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/section/section.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/section/section.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/sub-form-widget-view/sub-form-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/sub-form-widget-view/sub-form-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/text-box-widget-view/text-box-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/text-box-widget-view/text-box-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/time-stamp-widget-view/time-stamp-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/time-stamp-widget-view/time-stamp-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/toggle-widget-view/toggle-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/toggle-widget-view/toggle-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/unique-id-widget-view/unique-id-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/unique-id-widget-view/unique-id-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/verification-widget-view/verification-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/verification-widget-view/verification-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/video-widget-view/video-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/video-widget-view/video-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/web-link-widget-view/web-link-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/web-link-widget-view/web-link-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/form-object-widget-type-handler.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/form-object-widgets-view.directive.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/form-object-widgets-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/form-object-widgets-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/payment-widget-view/payment-widget-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-widgets/payment-widget-view/payment-widget-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/section-view/section-view.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/section-view/section-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/section-field/section-field.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/section-field/section-field.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/dynamic-view/dynamic-view.directive.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/dynamic-view/dynamic-view.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/dynamic-view/dynamic-view.component.html","../../../src/ax-common-ui-lib/src/lib/axo-map/axo-map.module.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/meta-section/meta-section.component.html","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/meta-section/meta-section.component.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-view/form-object-view.module.ts","../../../src/ax-common-ui-lib/src/lib/form-object/form-object-list/form-object-list.module.ts","../../../src/ax-common-ui-lib/src/lib/bread-crumbs/bread-crumbs.component.html","../../../src/ax-common-ui-lib/src/lib/bread-crumbs/bread-crumbs.component.ts","../../../src/ax-common-ui-lib/src/lib/bread-crumbs/bread-crumbs.module.ts","../../../src/ax-common-ui-lib/src/lib/drill-through/drill-through.component.ts","../../../src/ax-common-ui-lib/src/lib/drill-through/drill-through.component.html","../../../src/ax-common-ui-lib/src/lib/drill-through/drill-through.module.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view-header/data-view-header.component.html","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view-header/data-view-header.component.ts","../../../src/ax-common-ui-lib/src/lib/axo-filters/axo-filters.service.ts","../../../src/ax-common-ui-lib/src/lib/axo-filters/axo-filters.component.html","../../../src/ax-common-ui-lib/src/lib/axo-filters/axo-filters.component.ts","../../../src/ax-common-ui-lib/src/lib/axo-filters/axo-filters.module.ts","../../../src/ax-common-ui-lib/src/lib/form-permission.service.ts","../../../src/ax-common-ui-lib/src/lib/field-map/field-map.component.html","../../../src/ax-common-ui-lib/src/lib/field-map/field-map.component.ts","../../../src/ax-common-ui-lib/src/lib/field-map/field-map.module.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view-lib.module.ts","../../../src/ax-common-ui-lib/src/lib/converters/convert-to-new-service.ts","../../../src/ax-common-ui-lib/src/lib/map-dialog/map-dialog.module.ts","../../../src/ax-common-ui-lib/src/lib/axo-state-manager/axo-state-manager.service.ts","../../../src/ax-common-ui-lib/src/lib/axo-state-manager/axo-state-manager.module.ts","../../../src/ax-common-ui-lib/src/lib/axo-snack-bar/axo-snack-bar.module.ts","../../../src/ax-common-ui-lib/src/lib/loading-dialog/loading-dialog.component.ts","../../../src/ax-common-ui-lib/src/lib/ax-common-ui-lib.module.ts","../../../src/ax-common-ui-lib/src/lib/enlighten-lib/fields/entity.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/form-page.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/common/form.constant.ts","../../../src/ax-common-ui-lib/src/lib/common-dto/form-dto.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/data-detail-view/collection-view.ts","../../../src/ax-common-ui-lib/src/lib/drill-through/drill-through.resolver.ts","../../../src/ax-common-ui-lib/src/lib/forms/page/common/axo-response-status.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/board-column.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/data-view/task-column-value.ts","../../../src/ax-common-ui-lib/src/lib/data-view-lib/public-api.ts","../../../src/ax-common-ui-lib/src/lib/axo-map/public-api.ts","../../../src/ax-common-ui-lib/src/lib/map-dialog/public-api.ts","../../../src/ax-common-ui-lib/src/lib/filters/public-api.ts","../../../src/ax-common-ui-lib/src/lib/reports-container/reports-container-models/report-group.ts","../../../src/ax-common-ui-lib/src/lib/reports-container/reports-container-models/report-property.ts","../../../src/ax-common-ui-lib/src/lib/reports-container/reports-container-models/reports-container.ts","../../../src/ax-common-ui-lib/src/lib/reports-container/reports-container-models/reports-container-enums.ts","../../../src/ax-common-ui-lib/src/lib/reports-container/reports-container.service.ts","../../../src/ax-common-ui-lib/src/lib/reports-container/report-group/report-group.component.html","../../../src/ax-common-ui-lib/src/lib/reports-container/report-group/report-group.component.ts","../../../src/ax-common-ui-lib/src/lib/reports-container/reports-container.component.html","../../../src/ax-common-ui-lib/src/lib/reports-container/reports-container.component.ts","../../../src/ax-common-ui-lib/src/lib/reports-container/reports-container.module.ts","../../../src/ax-common-ui-lib/src/public-api.ts","../../../src/ax-common-ui-lib/src/ax-common-ui-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AxCommonUiLibService {\n\n  constructor() { }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-ax-common-ui-lib',\n  template: `\n    <p>\n      ax-common-ui-lib works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class AxCommonUiLibComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","export class ScrollbarGeometry\n{\n    public x: number;\n    public y: number;\n\n    public w: number;\n    public h: number;\n\n    constructor(x: number, y: number, w: number, h: number)\n    {\n        this.x = x;\n        this.y = y;\n        this.w = w;\n        this.h = h;\n    }\n}\n\nexport class ScrollbarPosition\n{\n    public x: number | 'start' | 'end';\n    public y: number | 'start' | 'end';\n\n    constructor(x: number | 'start' | 'end', y: number | 'start' | 'end')\n    {\n        this.x = x;\n        this.y = y;\n    }\n}\n","import { Directive, ElementRef, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Platform } from '@angular/cdk/platform';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport PerfectScrollbar from 'perfect-scrollbar';\nimport { merge } from 'lodash-es';\nimport { ScrollbarGeometry, ScrollbarPosition } from '../../lib/scrollbar/scrollbar.types';\n\n/**\n * Wrapper directive for the Perfect Scrollbar: https://github.com/mdbootstrap/perfect-scrollbar\n */\n@Directive({\n    selector: '[fuseScrollbar]',\n    exportAs: 'fuseScrollbar'\n})\nexport class FuseScrollbarDirective implements OnChanges, OnInit, OnDestroy\n{\n    /* eslint-disable @typescript-eslint/naming-convention */\n    static ngAcceptInputType_fuseScrollbar: BooleanInput;\n    /* eslint-enable @typescript-eslint/naming-convention */\n\n    @Input() fuseScrollbar: boolean = true;\n    @Input() fuseScrollbarOptions: PerfectScrollbar.Options;\n\n    private _animation: number;\n    private _options: PerfectScrollbar.Options;\n    private _ps: PerfectScrollbar;\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n    /**\n     * Constructor\n     */\n    constructor(\n        private _elementRef: ElementRef,\n        private _platform: Platform,\n        private _router: Router\n    )\n    {\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Accessors\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Getter for _elementRef\n     */\n    get elementRef(): ElementRef\n    {\n        return this._elementRef;\n    }\n\n    /**\n     * Getter for _ps\n     */\n    get ps(): PerfectScrollbar | null\n    {\n        return this._ps;\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Lifecycle hooks\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * On changes\n     *\n     * @param changes\n     */\n    ngOnChanges(changes: SimpleChanges): void\n    {\n        // Enabled\n        if ( 'fuseScrollbar' in changes )\n        {\n            // Interpret empty string as 'true'\n            this.fuseScrollbar = coerceBooleanProperty(changes.fuseScrollbar.currentValue);\n\n            // If enabled, init the directive\n            if ( this.fuseScrollbar )\n            {\n                this._init();\n            }\n            // Otherwise destroy it\n            else\n            {\n                this._destroy();\n            }\n        }\n\n        // Scrollbar options\n        if ( 'fuseScrollbarOptions' in changes )\n        {\n            // Merge the options\n            this._options = merge({}, this._options, changes.fuseScrollbarOptions.currentValue);\n\n            // Return if not initialized\n            if ( !this._ps )\n            {\n                return;\n            }\n\n            // Destroy and re-init the PerfectScrollbar to update its options\n            setTimeout(() => {\n                this._destroy();\n            });\n\n            setTimeout(() => {\n                this._init();\n            });\n        }\n    }\n\n    /**\n     * On init\n     */\n    ngOnInit(): void\n    {\n        // Subscribe to window resize event\n        fromEvent(window, 'resize')\n            .pipe(\n                takeUntil(this._unsubscribeAll),\n                debounceTime(150)\n            )\n            .subscribe(() => {\n\n                // Update the PerfectScrollbar\n                this.update();\n            });\n    }\n\n    /**\n     * On destroy\n     */\n    ngOnDestroy(): void\n    {\n        this._destroy();\n\n        // Unsubscribe from all subscriptions\n        this._unsubscribeAll.next();\n        this._unsubscribeAll.complete();\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Public methods\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Is enabled\n     */\n    isEnabled(): boolean\n    {\n        return this.fuseScrollbar;\n    }\n\n    /**\n     * Update the scrollbar\n     */\n    update(): void\n    {\n        // Return if not initialized\n        if ( !this._ps )\n        {\n            return;\n        }\n\n        // Update the PerfectScrollbar\n        this._ps.update();\n    }\n\n    /**\n     * Destroy the scrollbar\n     */\n    destroy(): void\n    {\n        this.ngOnDestroy();\n    }\n\n    /**\n     * Returns the geometry of the scrollable element\n     *\n     * @param prefix\n     */\n    geometry(prefix: string = 'scroll'): ScrollbarGeometry\n    {\n        return new ScrollbarGeometry(\n            this._elementRef.nativeElement[prefix + 'Left'],\n            this._elementRef.nativeElement[prefix + 'Top'],\n            this._elementRef.nativeElement[prefix + 'Width'],\n            this._elementRef.nativeElement[prefix + 'Height']);\n    }\n\n    /**\n     * Returns the position of the scrollable element\n     *\n     * @param absolute\n     */\n    position(absolute: boolean = false): ScrollbarPosition\n    {\n        let scrollbarPosition;\n\n        if ( !absolute && this._ps )\n        {\n            scrollbarPosition = new ScrollbarPosition(\n                this._ps.reach.x || 0,\n                this._ps.reach.y || 0\n            );\n        }\n        else\n        {\n            scrollbarPosition = new ScrollbarPosition(\n                this._elementRef.nativeElement.scrollLeft,\n                this._elementRef.nativeElement.scrollTop\n            );\n        }\n\n        return scrollbarPosition;\n    }\n\n    /**\n     * Scroll to\n     *\n     * @param x\n     * @param y\n     * @param speed\n     */\n    scrollTo(x: number, y?: number, speed?: number): void\n    {\n        if ( y == null && speed == null )\n        {\n            this.animateScrolling('scrollTop', x, speed);\n        }\n        else\n        {\n            if ( x != null )\n            {\n                this.animateScrolling('scrollLeft', x, speed);\n            }\n\n            if ( y != null )\n            {\n                this.animateScrolling('scrollTop', y, speed);\n            }\n        }\n    }\n\n    /**\n     * Scroll to X\n     *\n     * @param x\n     * @param speed\n     */\n    scrollToX(x: number, speed?: number): void\n    {\n        this.animateScrolling('scrollLeft', x, speed);\n    }\n\n    /**\n     * Scroll to Y\n     *\n     * @param y\n     * @param speed\n     */\n    scrollToY(y: number, speed?: number): void\n    {\n        this.animateScrolling('scrollTop', y, speed);\n    }\n\n    /**\n     * Scroll to top\n     *\n     * @param offset\n     * @param speed\n     */\n    scrollToTop(offset: number = 0, speed?: number): void\n    {\n        this.animateScrolling('scrollTop', offset, speed);\n    }\n\n    /**\n     * Scroll to bottom\n     *\n     * @param offset\n     * @param speed\n     */\n    scrollToBottom(offset: number = 0, speed?: number): void\n    {\n        const top = this._elementRef.nativeElement.scrollHeight - this._elementRef.nativeElement.clientHeight;\n        this.animateScrolling('scrollTop', top - offset, speed);\n    }\n\n    /**\n     * Scroll to left\n     *\n     * @param offset\n     * @param speed\n     */\n    scrollToLeft(offset: number = 0, speed?: number): void\n    {\n        this.animateScrolling('scrollLeft', offset, speed);\n    }\n\n    /**\n     * Scroll to right\n     *\n     * @param offset\n     * @param speed\n     */\n    scrollToRight(offset: number = 0, speed?: number): void\n    {\n        const left = this._elementRef.nativeElement.scrollWidth - this._elementRef.nativeElement.clientWidth;\n        this.animateScrolling('scrollLeft', left - offset, speed);\n    }\n\n    /**\n     * Scroll to element\n     *\n     * @param qs\n     * @param offset\n     * @param ignoreVisible If true, scrollToElement won't happen if element is already inside the current viewport\n     * @param speed\n     */\n    scrollToElement(qs: string, offset: number = 0, ignoreVisible: boolean = false, speed?: number): void\n    {\n        const element = this._elementRef.nativeElement.querySelector(qs);\n\n        if ( !element )\n        {\n            return;\n        }\n\n        const elementPos = element.getBoundingClientRect();\n        const scrollerPos = this._elementRef.nativeElement.getBoundingClientRect();\n\n        if ( this._elementRef.nativeElement.classList.contains('ps--active-x') )\n        {\n            if ( ignoreVisible && elementPos.right <= (scrollerPos.right - Math.abs(offset)) )\n            {\n                return;\n            }\n\n            const currentPos = this._elementRef.nativeElement['scrollLeft'];\n            const position = elementPos.left - scrollerPos.left + currentPos;\n\n            this.animateScrolling('scrollLeft', position + offset, speed);\n        }\n\n        if ( this._elementRef.nativeElement.classList.contains('ps--active-y') )\n        {\n            if ( ignoreVisible && elementPos.bottom <= (scrollerPos.bottom - Math.abs(offset)) )\n            {\n                return;\n            }\n\n            const currentPos = this._elementRef.nativeElement['scrollTop'];\n            const position = elementPos.top - scrollerPos.top + currentPos;\n\n            this.animateScrolling('scrollTop', position + offset, speed);\n        }\n    }\n\n    /**\n     * Animate scrolling\n     *\n     * @param target\n     * @param value\n     * @param speed\n     */\n    animateScrolling(target: string, value: number, speed?: number): void\n    {\n        if ( this._animation )\n        {\n            window.cancelAnimationFrame(this._animation);\n            this._animation = null;\n        }\n\n        if ( !speed || typeof window === 'undefined' )\n        {\n            this._elementRef.nativeElement[target] = value;\n        }\n        else if ( value !== this._elementRef.nativeElement[target] )\n        {\n            let newValue = 0;\n            let scrollCount = 0;\n\n            let oldTimestamp = performance.now();\n            let oldValue = this._elementRef.nativeElement[target];\n\n            const cosParameter = (oldValue - value) / 2;\n\n            const step = (newTimestamp: number): void => {\n                scrollCount += Math.PI / (speed / (newTimestamp - oldTimestamp));\n                newValue = Math.round(value + cosParameter + cosParameter * Math.cos(scrollCount));\n\n                // Only continue animation if scroll position has not changed\n                if ( this._elementRef.nativeElement[target] === oldValue )\n                {\n                    if ( scrollCount >= Math.PI )\n                    {\n                        this.animateScrolling(target, value, 0);\n                    }\n                    else\n                    {\n                        this._elementRef.nativeElement[target] = newValue;\n\n                        // On a zoomed out page the resulting offset may differ\n                        oldValue = this._elementRef.nativeElement[target];\n                        oldTimestamp = newTimestamp;\n\n                        this._animation = window.requestAnimationFrame(step);\n                    }\n                }\n            };\n\n            window.requestAnimationFrame(step);\n        }\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Private methods\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Initialize\n     *\n     * @private\n     */\n    private _init(): void\n    {\n        // Return if already initialized\n        if ( this._ps )\n        {\n            return;\n        }\n\n        // Return if on mobile or not on browser\n        if ( this._platform.ANDROID || this._platform.IOS || !this._platform.isBrowser )\n        {\n            this.fuseScrollbar = false;\n            return;\n        }\n\n        // Initialize the PerfectScrollbar\n        this._ps = new PerfectScrollbar(this._elementRef.nativeElement, {...this._options});\n    }\n\n    /**\n     * Destroy\n     *\n     * @private\n     */\n    private _destroy(): void\n    {\n        // Return if not initialized\n        if ( !this._ps )\n        {\n            return;\n        }\n\n        // Destroy the PerfectScrollbar\n        this._ps.destroy();\n\n        // Clean up\n        this._ps = null;\n    }\n}\n","import { NgModule } from '@angular/core';\nimport { FuseScrollbarDirective } from '../../lib/scrollbar/scrollbar.directive';\n\n@NgModule({\n    declarations: [\n        FuseScrollbarDirective\n    ],\n    exports     : [\n        FuseScrollbarDirective\n    ]\n})\nexport class FuseScrollbarModule\n{\n}\n","import { NgModule } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { MatIconRegistry } from '@angular/material/icon';\n\n@NgModule()\nexport class IconsModule\n{\n    /**\n     * Constructor\n     */\n    constructor(\n        private _domSanitizer: DomSanitizer,\n        private _matIconRegistry: MatIconRegistry\n    )\n    {\n        // Register icon sets\n        this._matIconRegistry.addSvgIconSet(this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-twotone.svg'));\n        this._matIconRegistry.addSvgIconSetInNamespace('mat_outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-outline.svg'));\n        this._matIconRegistry.addSvgIconSetInNamespace('mat_solid', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/material-solid.svg'));\n        this._matIconRegistry.addSvgIconSetInNamespace('iconsmind', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/iconsmind.svg'));\n        this._matIconRegistry.addSvgIconSetInNamespace('feather', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/feather.svg'));\n        this._matIconRegistry.addSvgIconSetInNamespace('heroicons_outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/heroicons-outline.svg'));\n        this._matIconRegistry.addSvgIconSetInNamespace('heroicons_solid', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/heroicons-solid.svg'));\n        this._matIconRegistry.addSvgIcon('axo_build', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_build_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_customize', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_customize.svg'));\n        this._matIconRegistry.addSvgIcon('axo_analyze', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_analyze.svg'));\n        this._matIconRegistry.addSvgIcon('axo_publish', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_publish.svg'));\n        this._matIconRegistry.addSvgIcon('axo_publish1', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_publish1.svg'));\n        this._matIconRegistry.addSvgIcon('axo_redo', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_redo.svg'));\n        this._matIconRegistry.addSvgIcon('axo_undo', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_undo.svg'));\n        this._matIconRegistry.addSvgIcon('axo_chart', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_chart.svg'));\n        this._matIconRegistry.addSvgIcon('axo_controls', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_controls.svg'));\n        this._matIconRegistry.addSvgIcon('axo_shapes', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_shapes.svg'));\n        this._matIconRegistry.addSvgIcon('axo_themes', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_themes.svg'));\n        this._matIconRegistry.addSvgIcon('axo_barcode', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_barcode.svg'));\n        this._matIconRegistry.addSvgIcon('axo_datetime', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/datepicker-widget.svg'));\n        this._matIconRegistry.addSvgIcon('axo_filters', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_filters.svg'));\n        this._matIconRegistry.addSvgIcon('axo_image', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_image.svg'));\n        this._matIconRegistry.addSvgIcon('axo_qrcode', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/qrcodescanner-widget.svg'));\n        this._matIconRegistry.addSvgIcon('axo_hyperlink', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_hyperlink.svg'));\n        this._matIconRegistry.addSvgIcon('axo_table', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_table.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_signature', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_signature.svg'));\n        this._matIconRegistry.addSvgIcon('axo_audio', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/audio-widget.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_video', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_video.svg'));\n        this._matIconRegistry.addSvgIcon('axo_location', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/capturegpslocation-widget.svg'));\n        this._matIconRegistry.addSvgIcon('axo_geofence', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Geofence-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_applygeofence', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Apply Geofence-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_toggle_button', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/yes_no-widget.svg'));\n        this._matIconRegistry.addSvgIcon('axo_text', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_text.svg'));\n        this._matIconRegistry.addSvgIcon('axo_radiobutton', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_radiobutton.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_document', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_document.svg'));\n        this._matIconRegistry.addSvgIcon('axo_number', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/number-widget.svg'));\n        this._matIconRegistry.addSvgIcon('axo_number_color', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/NumberFieldIcon_u2.svg'));\n        this._matIconRegistry.addSvgIcon('axo-enlighten', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-enlighten.svg'));\n        this._matIconRegistry.addSvgIcon('axo-graphical-report-blue', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-graphical-report-blue.svg'));\n        this._matIconRegistry.addSvgIcon('axo-tabular-report-blue', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-tabular-report-blue.svg'));\n        this._matIconRegistry.addSvgIcon('axo-graphical-report', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-graphical-report.svg'));\n        this._matIconRegistry.addSvgIcon('axo-tabular-report', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-tabular-report.svg'));\n        this._matIconRegistry.addSvgIcon('axo-grid', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-grid.svg'));\n        this._matIconRegistry.addSvgIcon('axo_enlighten_black', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_enlighten_black.svg'));\n        this._matIconRegistry.addSvgIcon('axo_enlighten_white', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_enlighten_white.svg'));\n        this._matIconRegistry.addSvgIcon('axo_dashboard', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_dashboard.svg'));\n        this._matIconRegistry.addSvgIcon('axo_fill', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/fill-color.svg'));\n        this._matIconRegistry.addSvgIcon('axo_text_color', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/text.svg'));\n        this._matIconRegistry.addSvgIcon('axo_edit', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_edit.svg'));\n        this._matIconRegistry.addSvgIcon('axo_lock_filter', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_lock_filter.svg'));\n        this._matIconRegistry.addSvgIcon('axo_filter', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_filter.svg'));\n        this._matIconRegistry.addSvgIcon('axo_arrow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_arrow.svg'));\n        this._matIconRegistry.addSvgIcon('axo_arrow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_arrow.svg'));\n        this._matIconRegistry.addSvgIcon('axo_up_arrow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_up_arrow.svg'));\n        this._matIconRegistry.addSvgIcon('axo_down_arrow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_down_arrow.svg'));\n        this._matIconRegistry.addSvgIcon('axo_time', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Time-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_subform', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Subforms_u2.svg'));\n        this._matIconRegistry.addSvgIcon('axo_date', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Date-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_export', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_export.svg'));\n        this._matIconRegistry.addSvgIcon('axo_pdf', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_pdf.svg'));\n        this._matIconRegistry.addSvgIcon('axo_quantity', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_quantity.svg'));\n        this._matIconRegistry.addSvgIcon('axo_search', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_search.svg'));\n        this._matIconRegistry.addSvgIcon('axo_plus', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_plus.svg'));\n        this._matIconRegistry.addSvgIcon('axo_choice_list', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/choicelist-widget.svg'));\n        this._matIconRegistry.addSvgIcon('axo_pin', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_pin_2.svg'));\n        this._matIconRegistry.addSvgIcon('axo_back_arrow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_back_arrow.svg'));\n        this._matIconRegistry.addSvgIcon('axo_formula', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_formula.svg'));\n        this._matIconRegistry.addSvgIcon('axo_uniqueId', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_uniqueid.svg'));\n        this._matIconRegistry.addSvgIcon('axo_autoNumber', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Auto-number-blue_new.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_counter', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_counter.svg'));\n        this._matIconRegistry.addSvgIcon('axo_video_list', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_video_list.svg'));\n        this._matIconRegistry.addSvgIcon('axo_refresh', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_refresh.svg'));\n        this._matIconRegistry.addSvgIcon('axo_pdf1', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_pdf1.svg'));\n        this._matIconRegistry.addSvgIcon('axo_ppt', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_ppt.svg'));\n        this._matIconRegistry.addSvgIcon('axo_doc', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_doc.svg'));\n        this._matIconRegistry.addSvgIcon('axo_txt', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_txt.svg'));\n        this._matIconRegistry.addSvgIcon('axo_xls', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_xls.svg'));\n        this._matIconRegistry.addSvgIcon('axo_pptx', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_pptx.svg'));\n        this._matIconRegistry.addSvgIcon('axo_docx', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_docx.svg'));\n        this._matIconRegistry.addSvgIcon('axo_file', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_file.svg'));\n        this._matIconRegistry.addSvgIcon('axo_xlsx', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_xlsx.svg'));\n        this._matIconRegistry.addSvgIcon('axo_edit1', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_edit1.svg'));\n        this._matIconRegistry.addSvgIcon('axo_fullscreen', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_fullscreen.svg'));\n        this._matIconRegistry.addSvgIcon('axo_left_arrow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_left_arrow.svg'));\n        this._matIconRegistry.addSvgIcon('axo_right_arrow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_right_arrow.svg'));\n        this._matIconRegistry.addSvgIcon('axo_zoom_in', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_zoom_in.svg'));\n        this._matIconRegistry.addSvgIcon('axo_zoom_out', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_zoom_out.svg'));\n        this._matIconRegistry.addSvgIcon('axo_html', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_html.svg'));\n        this._matIconRegistry.addSvgIcon('axo_child_records', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Child-record-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_hide', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_hide.svg'));\n        this._matIconRegistry.addSvgIcon('axo_show', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_show.svg'));\n        this._matIconRegistry.addSvgIcon('axo_img_compress', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_img_compress.svg'));\n        this._matIconRegistry.addSvgIcon('axo_delete', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_delete.svg'));\n        this._matIconRegistry.addSvgIcon('axo_square', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_square.svg'));\n        this._matIconRegistry.addSvgIcon('axo_square_1', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_square_1.svg'));\n        this._matIconRegistry.addSvgIcon('axo_rounded_square', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_rounded_square.svg'));\n        this._matIconRegistry.addSvgIcon('axo_rectangle', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_rectangle.svg'));\n        this._matIconRegistry.addSvgIcon('axo_rounded_rectangle', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_rounded_rectangle.svg'));\n        this._matIconRegistry.addSvgIcon('axo_hexagon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_hexagon.svg'));\n        this._matIconRegistry.addSvgIcon('axo_text', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_text.svg'));\n        this._matIconRegistry.addSvgIcon('axo_ellipse', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_ellipse.svg'));\n        this._matIconRegistry.addSvgIcon('axo_circle', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_circle.svg'));\n        this._matIconRegistry.addSvgIcon('axo_curve', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_curve.svg'));\n        this._matIconRegistry.addSvgIcon('axo_wall_corner_nw', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_wall_corner_nw.svg'));\n        this._matIconRegistry.addSvgIcon('axo_wall_corner_ne', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_wall_corner_ne.svg'));\n        this._matIconRegistry.addSvgIcon('axo_wall_corner_sw', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_wall_corner_sw.svg'));\n        this._matIconRegistry.addSvgIcon('axo_wall_corner_se', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_wall_corner_se.svg'));\n        this._matIconRegistry.addSvgIcon('axo_door', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_door.svg'));\n        this._matIconRegistry.addSvgIcon('axo_door_2', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_door.svg'));\n        this._matIconRegistry.addSvgIcon('axo_double_door', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_double_door.svg'));\n        this._matIconRegistry.addSvgIcon('axo_opposing_door', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_opposing_door.svg'));\n        this._matIconRegistry.addSvgIcon('axo_revolving_door', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_revolving_door.svg'));\n        this._matIconRegistry.addSvgIcon('axo_wallV', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_wallV.svg'));\n        this._matIconRegistry.addSvgIcon('axo_wallH', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_wallH.svg'));\n        this._matIconRegistry.addSvgIcon('axo_window_bay', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_window_bay.svg'));\n        this._matIconRegistry.addSvgIcon('axo_window_bow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_window_bow.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sink', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_sink.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sink_2', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_sink_2.svg'));\n        this._matIconRegistry.addSvgIcon('axo_double_sink', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_double_sink.svg'));\n        this._matIconRegistry.addSvgIcon('axo_toilet', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_toilet.svg'));\n        this._matIconRegistry.addSvgIcon('axo_line', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_line.svg'));\n        this._matIconRegistry.addSvgIcon('axo_stroke', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/map_builder/axo_stroke.svg'));\n        this._matIconRegistry.addSvgIcon('axo_notifiction', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-notification.svg'));\n        this._matIconRegistry.addSvgIcon('axo_notifiction-2', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-notification-2.svg'));\n        this._matIconRegistry.addSvgIcon('axo_static_media', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_static_media.svg'));\n        this._matIconRegistry.addSvgIcon('axo_phone', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_phone.svg'));\n        this._matIconRegistry.addSvgIcon('axo_decimal', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Decimal-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_date_range', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Date-range-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_date_time', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Date_time_blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_email', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Email-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_timestamp', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/timestamp-widget.svg'));\n        this._matIconRegistry.addSvgIcon('axo_enabled', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_enabled.svg'));\n        this._matIconRegistry.addSvgIcon('axo_disabled', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_disabled.svg'));\n        this._matIconRegistry.addSvgIcon('axo_address', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_address.svg'));\n        this._matIconRegistry.addSvgIcon('axo_checklist', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_checklist.svg'));\n        this._matIconRegistry.addSvgIcon('axo_square_text', this._domSanitizer.bypassSecurityTrustResourceUrl('https://static.axonator.com/static/img/doc-designer-assets/textbox-widget.svg'));\n        this._matIconRegistry.addSvgIcon('axo_stopwatch', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_stopwatch.svg'));\n        this._matIconRegistry.addSvgIcon('axo_image_thumbnail', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_image_thumbnail.svg'));\n        this._matIconRegistry.addSvgIcon('axo_locate', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_locate.svg'));\n        this._matIconRegistry.addSvgIcon('axo_anotation_hide', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_anotation_hide.svg'));\n        this._matIconRegistry.addSvgIcon('axo_anotation_show', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_anotation_show.svg'));\n        this._matIconRegistry.addSvgIcon('axo_filter_remove', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_filter_remove.svg'));\n        this._matIconRegistry.addSvgIcon('axo_resize', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_resize.svg'));\n        this._matIconRegistry.addSvgIcon('axo_expand', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_expand.svg'));\n        this._matIconRegistry.addSvgIcon('axo_grid', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_grid.svg'));\n        this._matIconRegistry.addSvgIcon('axo_list', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_list.svg'));\n        this._matIconRegistry.addSvgIcon('axo_counter_minus', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_counter_minus.svg'));\n        this._matIconRegistry.addSvgIcon('axo_counter_plus', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_counter_plus.svg'));\n        this._matIconRegistry.addSvgIcon('axo_counter_refresh', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_counter_refresh.svg'));\n        this._matIconRegistry.addSvgIcon('axo_history', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_history.svg'));\n        this._matIconRegistry.addSvgIcon('axo_edit-outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-edit-outline.svg'));\n        this._matIconRegistry.addSvgIcon('axo_location_red', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_location_red.svg'));\n        this._matIconRegistry.addSvgIcon('axo_delete_red', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_delete_red.svg'));\n        this._matIconRegistry.addSvgIcon('axo_eye_outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_eye_outline.svg'));\n        this._matIconRegistry.addSvgIcon('axo_location_outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_location_outline.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_text', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_text.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_decimal', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_decimal.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_email', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_email.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_multilinetext', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Multiline-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_number', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/NumberFieldIcon_u2.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_phone', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Phone-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_date', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_date.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_dateRange', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_dateRange.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_dateTime', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_dateTime.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_stopwatch', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_stopwatch.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_timestamp', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_timestamp.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_time', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_time.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_qrcode', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo-qrcode.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_barcode', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo-barcode.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_faceVerification', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo-faceVerification.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_audio', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_audio.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_photo', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_photo.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_video', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_video.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_canva_bg', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_canva_bg.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_desktop', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_desktop.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_tablet', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_tablet.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_mobile', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_mobile.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_desktop_active', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_desktop_active.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_tablet_active', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_tablet_active.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_mobile_active', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_mobile_active.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_mobile_outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_mobile_outline.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_helptext', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_helpText.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_tab_outline', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_tab.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_save', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_save.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_cancel', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_cancel.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_share', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_Share_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_submissions', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_Submissions_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_submissions_white', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/submissions-white.svg'));\n        this._matIconRegistry.addSvgIcon('axo_left_submissions', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_submission_icon.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_schedule', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_Schedule_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_hide', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_Hide_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_show', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_Show_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_import', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_Import_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_export', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_Export_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_qr', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_qrcode_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_apply_geofence', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_apply_geofence.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_auto_number', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Number-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_child', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_child.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_choice_list', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_choice_list.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_counter', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_counter.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_document', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_document.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_formula', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_formula.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_geofence', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_geofence.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_gps', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_gps.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_group_header', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/group-header-right-arrow_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_group_header2', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/group-header-down-arrow_new.svg'));\n        // this._matIconRegistry.addSvgIcon('axo_sculptor_langauge', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_language.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_link', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/WebLink-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_payment', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_payment.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_signature', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_auto_signature.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_toggle', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_toggle.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_unique_id', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Unique ID-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_attached', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_attached.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_copy', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_copy.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_cut', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_cut.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_delete', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_delete.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_paste', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_paste.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_subform', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/Subforms_u2.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_help-text', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo-help-text.svg'));\n        this._matIconRegistry.addSvgIcon('left_menu_sculptor', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor.svg'));\n        this._matIconRegistry.addSvgIcon('left_menu_sculptor-1', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor-1.svg'));\n        this._matIconRegistry.addSvgIcon('axo_home', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_home.svg'));\n        this._matIconRegistry.addSvgIcon('app_layout', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/App_Layout.svg'));\n        this._matIconRegistry.addSvgIcon('left_menu_enlighten', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/left_menu_enlighten.svg'));\n        this._matIconRegistry.addSvgIcon('left_menu_enlighten-2', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/left_menu_enlighten-2.svg'));\n        this._matIconRegistry.addSvgIcon('left_menu_app_settings', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/left_menu_app_settings.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_close_eye', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo-close-eye.svg'));\n        this._matIconRegistry.addSvgIcon('sculptor_qrcode', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/qrcode.svg'));\n        // this._matIconRegistry.addSvgIcon('sculptor_barcode', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/barcode.svg'));\n        this._matIconRegistry.addSvgIcon('sculptor_image', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/image.svg'));\n        this._matIconRegistry.addSvgIcon('sculptor_document', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/documentcloud.svg'));\n        this._matIconRegistry.addSvgIcon('axo_add', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_add.svg'));\n        this._matIconRegistry.addSvgIcon('axo_close', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo_close.svg'));\n        this._matIconRegistry.addSvgIcon('sculptor_camera', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/camera.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_folder', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/axo-folder.svg'));\n        this._matIconRegistry.addSvgIcon('axo_save', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_save1.svg'));\n        this._matIconRegistry.addSvgIcon('axo_XLS', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_XLS_.svg'));\n        this._matIconRegistry.addSvgIcon('axo-PDF', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-PDF.svg'));\n        this._matIconRegistry.addSvgIcon('axo_left_disable', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-left-disable.svg'));\n        this._matIconRegistry.addSvgIcon('axo_left_hover', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-left-hover.svg'));\n        this._matIconRegistry.addSvgIcon('axo_left', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-left.svg'));\n        this._matIconRegistry.addSvgIcon('axo_right_disable', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-right-disabled.svg'));\n        this._matIconRegistry.addSvgIcon('axo_right_hover', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-right-hover.svg'));\n        this._matIconRegistry.addSvgIcon('axo_right', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo-right.svg'));\n        this._matIconRegistry.addSvgIcon('axo_up', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Vector.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_search', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Search_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_button', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Button_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_text', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/text_box_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_stopwatch', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/stopwatch_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_qrcode', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/QR-code_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_timestamp', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/timestamp_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_signature', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/signature_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_formula', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/formula_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_gps', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/GPS_Location_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_date', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/date_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_time', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Time-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('sculptor_camera', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/camera_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_folder', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sculptor/update_svg/new_toolbar_icons_svg/Folder-black_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_photo', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Image-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_video', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/video_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_counter', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/counter_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_document', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/document_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_audio', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/audio_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_language', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/language_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_toggle', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/toggle_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_choice_list', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/ChoiceList_u2.svg'));\n        this._matIconRegistry.addSvgIcon('sculptor_barcode', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Barcode-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_faceVerification', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Face Verification-blue_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_3dot-options', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/3dot-option_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_left-arrow_new', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/left-arrow_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_down-arrow_new', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/down-arrow2_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_publish-1', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/Featured icon.svg'));\n        this._matIconRegistry.addSvgIcon('axo_sculptor_warning', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/warning-user.svg'));\n        this._matIconRegistry.addSvgIcon('axo_switch', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/switch-org.svg'));\n        this._matIconRegistry.addSvgIcon('dropdown-arrow', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/down-arrow2_new.svg'));\n        this._matIconRegistry.addSvgIcon('feature_request_bot', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/BotIpadIcon.svg'));\n        this._matIconRegistry.addSvgIcon('user-licenses-remaining', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/user-licenses-remaining.svg'));\n        this._matIconRegistry.addSvgIcon('axo_commando_bot', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_commando_bot_new.svg'));\n        this._matIconRegistry.addSvgIcon('axo_commando_bot_dark', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/axo_commando_bot_dark.svg'));\n        this._matIconRegistry.addSvgIcon('bot_magicpen', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/bot_magicpen.svg'));\n        this._matIconRegistry.addSvgIcon('commando_bot_header', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/commando_bot_header.svg'));\n        this._matIconRegistry.addSvgIcon('sendbutton_bot', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/sendbutton_bot.svg'));\n        this._matIconRegistry.addSvgIcon('axo_app_owner', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo_app_owner.svg'));\n        this._matIconRegistry.addSvgIcon('axo_published', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo_published.svg'));\n        this._matIconRegistry.addSvgIcon('axo_users', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo_users.svg'));\n        this._matIconRegistry.addSvgIcon('axo_submission', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo_submission.svg'));\n        this._matIconRegistry.addSvgIcon('axo_setting', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo_setting.svg'));\n        this._matIconRegistry.addSvgIcon('axo_add_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo-add-icon.svg'));\n        this._matIconRegistry.addSvgIcon('axo_popup_close', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo_popup_close.svg'));\n        this._matIconRegistry.addSvgIcon('feedback', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/Chat.svg'));\n        this._matIconRegistry.addSvgIcon('axo_delete_black', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/options-delete.svg'));\n\n        this._matIconRegistry.addSvgIcon('commando_link_pin', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/link-pin.svg'));\n        this._matIconRegistry.addSvgIcon('doc_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/doc-icon.svg'));\n        this._matIconRegistry.addSvgIcon('csv_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/csv-icon.svg'));\n        this._matIconRegistry.addSvgIcon('xls_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/xls-icon.svg'));\n        this._matIconRegistry.addSvgIcon('pdf_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/pdf-icon.svg'));\n        this._matIconRegistry.addSvgIcon('html_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/html-icon.svg'));\n        this._matIconRegistry.addSvgIcon('link_attach', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/link-attach.svg'));\n        this._matIconRegistry.addSvgIcon('microsoft_form_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/microsoft-form.svg'));\n        this._matIconRegistry.addSvgIcon('file_upload_placeholder', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/file-upload-placeholder.svg'));\n        this._matIconRegistry.addSvgIcon('popup_commando_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/commando-icon-popup.svg'));\n        this._matIconRegistry.addSvgIcon('axo_form_field', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/axo/form_field_icon.svg'));\n        this._matIconRegistry.addSvgIcon('customize_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/customize-icon.svg'));\n        this._matIconRegistry.addSvgIcon('use_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/use-icon.svg'));\n        this._matIconRegistry.addSvgIcon('build_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/build-icon.svg'));\n        this._matIconRegistry.addSvgIcon('android_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/android.svg'));\n        this._matIconRegistry.addSvgIcon('apple_icon', this._domSanitizer.bypassSecurityTrustResourceUrl('assets/icons/apple.svg'));\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Translation, TranslocoLoader } from '@ngneat/transloco';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class TranslocoHttpLoader implements TranslocoLoader\n{\n    /**\n     * Constructor\n     */\n    constructor(\n        private _httpClient: HttpClient)\n    {\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Public methods\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Get translation\n     *\n     * @param lang\n     */\n    getTranslation(lang: string): Observable<Translation>\n    {\n        return this._httpClient.get<Translation>(`./assets/i18n/${lang}.json`);\n    }\n}\n","import { Translation, TRANSLOCO_CONFIG, TRANSLOCO_LOADER, translocoConfig, TranslocoModule, TranslocoService } from '@ngneat/transloco';\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { TranslocoHttpLoader } from './transloco.http-loader';\n\n@NgModule({\n    exports  : [\n        TranslocoModule\n    ],\n    providers: [\n        {\n            // Provide the default Transloco configuration\n            provide : TRANSLOCO_CONFIG,\n            useValue: translocoConfig({\n                availableLangs      : [\n                    {\n                        id   : 'en',\n                        label: 'English'\n                    },\n                    {\n                        id   : 'tr',\n                        label: 'Turkish'\n                    }\n                ],\n                defaultLang         : 'en',\n                fallbackLang        : 'en',\n                reRenderOnLangChange: true,\n                // prodMode            : environment.production\n            })\n        },\n        {\n            // Provide the default Transloco loader\n            provide : TRANSLOCO_LOADER,\n            useClass: TranslocoHttpLoader\n        },\n        {\n            // Preload the default language before the app starts to prevent empty/jumping content\n            provide   : APP_INITIALIZER,\n            deps      : [TranslocoService],\n            useFactory: (translocoService: TranslocoService): any => (): Promise<Translation> => {\n                const defaultLang = translocoService.getDefaultLang();\n                translocoService.setActiveLang(defaultLang);\n                return translocoService.load(defaultLang).toPromise();\n            },\n            multi     : true\n        }\n    ]\n})\nexport class TranslocoCoreModule\n{\n}\n","import { NgModule, Optional, SkipSelf } from '@angular/core';\nimport { IconsModule } from './icons/icons.module';\nimport { TranslocoCoreModule } from './transloco/transloco.module';\n\n@NgModule({\n    imports: [\n        IconsModule,\n        TranslocoCoreModule\n    ]\n})\nexport class CoreModule\n{\n    /**\n     * Constructor\n     */\n    constructor(\n        @Optional() @SkipSelf() parentModule?: CoreModule\n    )\n    {\n        // Do not allow multiple injections\n        if ( parentModule )\n        {\n            throw new Error('CoreModule has already been loaded. Import this module in the AppModule only.');\n        }\n    }\n}\n","export enum ExpressionValueSubType {\n    date = 'date',\n    dateList = 'date-list',\n    dateRange = 'date-range',\n    dateTime = 'both',\n    dateTimeOld = 'datetime',\n    dateTimeList = 'date-time-list',\n    dateTimeRange = 'date-time-range',\n    time = 'time',\n    timeRange = 'time-range',\n    timeList = 'time-list',\n    text = 'text',\n    textList = 'text-list',\n    expNumber = 'number',\n    numberList = 'number-list',\n    numberRange = 'number-range',\n    column = 'column',\n    timestamp = 'timestamp',\n    toggle = 'toggle',\n    counter = 'counter',\n    default = ''\n}\n\nexport enum ExpressionValueType{\n    column = 1,\n    fixed = 2,\n}\n","import { ExpressionValueSubType } from './exp-sub-type';\n\nexport abstract class AxExpressionValue  {\n    subType: ExpressionValueSubType;\n    isSearchable?: boolean;\n    hasError?: boolean;\n    isInputVisible?: number;\n    constructor(axExpressionValue?: AxExpressionValue){\n        if(axExpressionValue){\n            this.axExpressionValue(axExpressionValue);\n        }else{\n            this.newAxExpressionValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpressionValue(): void {\n        this.subType =  ExpressionValueSubType.text; //\n        this.isSearchable = false;\n        this.hasError = false;\n        this.isInputVisible = 0;\n    }\n    /**\n     * Pass actual date value\n     *\n     * @param AxExpressionValue\n     */\n     axExpressionValue(axExpressionValue?: AxExpressionValue): void {\n        this.subType = axExpressionValue.subType;\n        this.isSearchable = true;\n        this.hasError = true;\n        this.isInputVisible = axExpressionValue.isInputVisible;\n    }\n\n    // To check is valid filter value\n    abstract searchable():boolean;\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpTextValue  extends AxExpressionValue {\n    value: string;\n    constructor(axExpTextValue?: AxExpTextValue){\n        super(axExpTextValue);\n        this.subType = ExpressionValueSubType.text;\n        if(axExpTextValue){\n            this.axExpTextValue(axExpTextValue);\n        }else{\n            this.newAxExpTextValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpTextValue(): void {\n        this.value = '';\n    }\n    /**\n     * Pass actual Text value\n     *\n     * @param axExpTextValue\n     */\n    axExpTextValue(axExpTextValue: AxExpTextValue): void {\n        this.value = axExpTextValue.value;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return true;\n        }\n        return false;\n    }\n}\n","export enum ConditionType {\n    condition = 1,\n    groupCondition = 2\n}\n\nexport enum FilterType {\n    basic  = 1,\n    advanced  = 2\n}\nexport enum ScreenType {\n    reportBuilder = 1,\n    dashboardBuilder = 2,\n    containerDashboard = 3,\n    drillThrough = 4,\n    dashboards = 5,\n    reports = 6,\n    flatten = 7,\n    forms = 8,\n    form = 9,\n    dataList = 10,\n    dataItem = 11,\n    dataModel = 12,\n    dataViewBuilder = 13,\n    dataView = 14,\n    TaskDetailView = 15,\n    TaskHistoryDetailView = 16,\n    reportsContainerBuilder = 17,\n    reportsContainer = 18,\n    settings = 19,\n    workflows = 20,\n    Reports=21,\n    home=22\n}\nexport enum ScopeType {\n    global = 1,\n    local = 2\n}\n\n/**\n * Filter sub type Enum\n *\n *@Enum FilterSubType\n */\nexport enum FilterSubType{\n    enlighten = 'enlighten',\n    assetFilter= 'assetFilter',\n    trackingFilter = 'trackingFilter',\n    taskFilter = 'taskFilter',\n}\n\n\n","import { AxFilter } from '../enlighten-lib/filters/ax-filter';\n\nexport class AttributesDto {\n    filter: AxFilter;\n    reportId?: number; // for flatten DB\n    formId?:number; // for x1 api\n    series?: Array<any>;\n    label?: Array<any>;\n    currentPage?: number;\n    pagesize?: number;\n    serachText?: string;\n    searchText?: string;\n    totalRecords?: number;\n\n    constructor(attributesDto?: AttributesDto) {\n        if(attributesDto){\n            this.attributesDto(attributesDto);\n        }else{\n            this.newAttributesDto();\n        }\n    }\n    /**\n     * Set attributesDto existing value\n     *\n     * @param attributesDto\n     */\n    attributesDto(attributesDto?: AttributesDto): void{\n        this.filter =  attributesDto.filter;\n        this.reportId =  attributesDto.reportId;\n        this.series =  attributesDto.series;\n        this.label =  attributesDto.label;\n        this.currentPage =  attributesDto.currentPage;\n        this.pagesize =  attributesDto.pagesize;\n        this.searchText = attributesDto.searchText;\n        this.totalRecords = attributesDto.totalRecords;\n    }\n    /**\n     * create new attributesDto object\n     */\n     newAttributesDto(): void{\n        this.filter = null;\n        this.reportId =   0;\n        this.series = [];\n        this.label = [];\n        this.currentPage =  0;\n        this.pagesize =  10;\n        this.searchText = '';\n        this.totalRecords = 0;\n    }\n\n}\n","\n/**\n * @enum\n * This is defined data source types\n * By using this enum we can decide which api have to use.\n */\nexport enum DataSourceTypes{\n    flattenDB,\n    x1API,\n    x2API\n}\n","export enum WidgetLayout {\n    oneLine = 'one_line',\n    twoLine = 'two_line'\n}\n\nexport enum RecordLimitType {\n    fixed = 1,\n    variable = 2\n}\n\n\nexport enum RestrictionMode{\n    disable=1,\n    hide=2\n}\n\nexport enum Mask {\n    none = 1,\n    date = 2,\n    hour = 3,\n    dateHour = 4,\n    zipCode = 5,\n    crazyZipCode = 6,\n    telephone = 7,\n    telephoneWithCodeArea = 8,\n    usTelephone = 9,\n    iPAddress = 10,\n    money = 11,\n    other = 12\n}\nexport enum MaskSerialize {\n    '00:00' = 'hour',\n    '00/00/0000' = 'date',\n    '00/00/00 00:00' = 'date_hour',\n    '00000-000' = 'zip_code',\n    '0-00-00-00' = 'crazy_zip_code',\n    '00000-00000' = 'telephone',\n    '(00) 0000-0000' = 'telephone_with_code_area',\n    '(000) 000-0000' = 'us_telephone',\n    '000.000.000.000' = 'ip_address',\n    '000,000,000,000,000,00' = 'money',\n    'other' = 'other'\n}\nexport enum MaskDeserialize {\n    'hour' = '00:00',\n    'date' = '00/00/0000',\n    'date_hour' = '00/00/00 00:00',\n    'zip_code' = '00000-000',\n    'crazy_zip_code' = '0-00-00-00',\n    'telephone' = '00000-00000',\n    'telephone_with_code_area' = '(00) 0000-0000',\n    'us_telephone' = '(000) 000-0000',\n    'ip_address' = '000.000.000.000',\n    'money' = '000,000,000,000,000,00',\n    'other' = 'other'\n}\n\n\nexport enum ValueDisplayMode{\n    true = 'editable',\n    false = 'readonly'\n}\n\nexport enum FormType{\n    asset='A',\n    tracking='T'\n\n}\n\nexport enum Case {\n    capital = 'capital',\n    small = 'small',\n    title = 'title',\n    none = ''\n}\nexport enum DataSource {\n    fixedList = 1,\n    referenceList = 2,\n    choiceApi = 3,\n    imageFixedList = 4\n}\n\nexport enum OutputType {\n    axtext = 1,\n    axnumber = 2\n}\n\nexport enum CaptureType {\n    manual = 1,\n    onTab = 2,\n    onSubmit = 3,\n};\n\nexport enum SetValueModeType{\n    onTap='ontap',\n    onSubmit='onsubmit',\n    onOpen='onopen'\n}\n\nexport enum DisplayMode {\n    expand = 1,\n    collapse = 2,\n};\n\nexport enum EntryMode {\n    default = 1,\n    inline = 2,\n    wizard = 3,\n}\nexport enum ActionType {\n    register = 1,\n    verify = 2,\n}\nexport enum BooleanValue {\n    true = '0',\n    false = '1'\n}\n\nexport enum BooleanValue01 {\n    true = '1',\n    false = '0'\n}\nexport enum StringToBooleanValue {\n    true = '1',\n    false = '2'\n}\nexport enum NumToBooleanValue {\n    true = 1,\n    false = 2\n}\n\nexport enum WidgetSubType {\n    photo = 'photo',\n    toggle = 'yes_no',\n    uniqueId = 'uniqueid',\n    label = 'label',\n    header = 'header',\n    hyperLink = 'hyperlink',\n    timeStamp = 'timestamp',\n    stopWatch = 'stopwatch',\n    decimal = 'decimal',\n    string = 'string',\n    text = 'text',\n    numeric = 'numeric',\n    fixedList = 'fixed_list',\n    referenceList = 'reference_list',\n    imageFixedList = 'img_fixed_list',\n    apiList = 'api_list',\n    language = 'Language',\n    number = 'number',\n    face = 'face',\n    counter = 'counter',\n    childRecords = 'child_records',\n    staticMedia = 'staticmedia',\n    date = 'date',\n    dateTime = 'both',\n    dateTimeOld = 'datetime',\n    time = 'time',\n    dateRange = 'date_range',\n    subForm = 'subform',\n    autoNumber = 'autonumber',\n    geofence = 'geofence',\n    applyGeoFence = 'applygeofence',\n    scan_with_location = 'scan_with_location',\n    userList = 'user_list',\n    assetObjectList = 'asset_formObject_list'\n}\n\n\nexport enum WidgetType {\n    choicelist = 'choicelist-widget',\n    search = 'search-widget',\n    button = 'button-widget',\n    textBox = 'textbox-widget',\n    choiceList = 'choicelist-widget',\n    qrCodeScanner = 'qrcodescanner-widget',\n    barCodeScanner = 'barcodescanner-widget',\n    counter = 'counter-widget',\n    uniqueId = 'uniqueid-widget',\n    hyperLink = 'hyperlink-widget',\n    groupHeader = 'groupheader-widget',\n    childRecords = 'childrecords-widget',\n    audio = 'audiocapture-widget',\n    video = 'videocapture-widget',\n    imageCapture = 'imagecapture-widget',\n    capturegpslocation = 'capturegpslocation-widget',\n    stopWatch = 'stopwatch-widget',\n    autoNumber = 'autonumber-widget',\n    dateTime = 'datepicker-widget',\n    timeStamp = 'timestamp-widget',\n    toggle = 'yes_no-widget',\n    formula = 'computedvalue-widget',\n    language = 'language-widget',\n    signature = 'wetsignaturecapture-widget',\n    captureGpsLocation = 'capturegpslocation-widget',\n    document = 'fileupload-widget',\n    staticMedia = 'staticmedia-widget',\n    subForm = 'subform-widget',\n    verification = 'verification-widget',\n    gps = 'gps-widget',\n    geoFence = 'geofence-widget',\n    applyGeoFence = 'applygeofence-widget',\n    payment = 'payment-widget',\n    link = 'link-widget'\n\n}\n\nexport enum SectionType {\n    section = 'Section',\n    sectionField = 'SectionField',\n    collectionView = 'CollectionView'\n}\n\nexport enum SectionChildType {\n    meta = 'Meta',\n    widgetSection = 'WidgetSection',\n    widget = 'Widget'\n}\n\nexport enum DocumentExtensionType {\n    pdf = 'pdf',\n    document = 'doc',\n    xls = 'xls',\n    xlsx = 'xlsx',\n    docx = 'docx',\n    ppt = 'ppt',\n    pptx = 'pptx',\n    txt = 'txt',\n    html = 'html'\n}\n\n\nexport enum Code {\n    en = 'en',\n    hi = 'hi',\n    mar = 'mar',\n    tel = 'te',\n    fr = 'fr',\n    de = 'de',\n    es = 'es',\n    ar = 'ar',\n    ID = 'ID',\n    JP = 'JP',\n    TH = 'TH'\n}\n\nexport enum Name {\n    english = 'English',\n\n    hindi = 'Hindi',\n\n    marathi = 'Marathi',\n\n    telugu = 'Telugu'\n}\n\nexport enum TextBoxInputType {\n    text = 'text',\n    number = 'numeric',\n    decimal = 'decimal',\n    email =  'email',\n    phone = 'phone',\n    address = 'address'\n}\n\nexport enum MarkUpValue{\n    seriesNo = '@{srno}',\n    trackedAssetWidget = '@{}',\n    user = '@{user}'\n}\n\n\nexport enum MetaFieldsIdentifier {\n    assignedTask = '{_Assigned_Task_}',\n    assignedTo = '{_Assigned_To_}',\n    assignedBy = '{_Assigned_By_}',\n    date = '{_Date_}',\n    status = '{_Status_}',\n    description = '{_Description_}'\n}\n\n// used to set sorting order on formObjectList\nexport enum SortingOrder{\n    ascending='asc',\n    descending='desc'\n}\n","import moment from 'moment';\nimport { DocumentExtensionType } from '../forms/page/common/widget-enums';\n\n/* eslint-disable */\nexport class AxoUtils {\n    /**\n     * Constructor\n     */\n    constructor() {\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Public methods\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Generate a globally unique id\n     */\n    static guid(): string {\n        /* eslint-disable */\n\n        let d = new Date().getTime();\n\n        // Use high-precision timer if available\n        if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n            d += performance.now();\n        }\n\n        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n            const r = (d + Math.random() * 16) % 16 | 0;\n            d = Math.floor(d / 16);\n            return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);\n        });\n\n        /* eslint-enable */\n    }\n\n    /**\n     * Format UTC date into local format\n     *\n     * @param date\n     * @returns date in local string\n     */\n\n    static formatDateFromUTCToLocal(date: string): string {\n        const localDate = moment.utc(date).toDate();\n        return moment(localDate).format('MMMM D, YYYY hh:mm:ss A');\n    }\n\n    /**\n     * Format local format date to UTC format\n     *\n     * @param date\n     * @returns date in UTC string\n     */\n    static formatDateFromLocalToUTC(date: any): string{\n        return moment.utc(date.toUTCString()).format('MMMM D, YYYY hh:mm:ss A');\n    }\n\n  /**\n   * Format date to custom format\n   *\n   * @param date\n   * @param format\n   * @returns formatted date\n   */\n\n    static formatDateToCustomDateFormat(date: string,format: string): string {\n        const localDate = new Date(date);\n        return moment(localDate).format(this.checkFormat(format));\n    }\n  /**\n   * Checks the format and return the updated formula\n   *\n   * @param format\n   * @returns updated format\n   */\n\n    static checkFormat(format: string): string {\n        if(format.includes('dd')){\n            format = format.replace('dd','DD');\n        }\n        if(format.includes('d')){\n            format = format.replace('d','D');\n        }\n        return format;\n    }\n\n\n\n    /**\n     * Format string into date format\n     *\n     * @param date\n     * @returns date in local string\n     */\n    static formatStringToDate(date: string): string {\n        const localDate = moment.utc(date).toDate();\n        return moment(localDate).format('MMMM D, YYYY');\n    }\n    /**\n     * Convert UTC Date List to Date list format\n     *\n     * @param axExpDateList\n     * @returns  Date list\n     */\n    static convertUTCDateToDateFromat(axExpDateList): Array<Date>{\n        return axExpDateList.map((date) => {\n            return moment(new Date(date)).format('YYYY-MM-DD');;\n        });\n\n    }\n\n    /**\n     * this will remove slash from image url and add  default image if value is undefined\n     *\n     *  * @param value\n     *\n     * @returns updates value\n     */\n    static removeSlashFromImageUrl(value: string): string {\n        if (!value) {\n            value = 'images/media/default_icons/thumb_no-image-found.png';\n        }\n        if (value.includes('/image')) {\n            value = value.replace('/image', 'image');\n        }\n        return value;\n    }\n    /**\n     * this will provide document ext type from path value\n     *  * @param value\n     *\n     * @returns updates value\n     */\n    static getDocumentExtension(value: string): string {\n        switch (true) {\n            case value.includes('.' + DocumentExtensionType.pdf):\n                return DocumentExtensionType.pdf;\n            case value.includes('.' + DocumentExtensionType.docx):\n                return DocumentExtensionType.docx;\n            case value.includes('.' + DocumentExtensionType.document):\n                return DocumentExtensionType.document;\n            case value.includes('.' + DocumentExtensionType.xlsx):\n                return DocumentExtensionType.xlsx;\n            case value.includes('.' + DocumentExtensionType.xls):\n                return DocumentExtensionType.xls;\n            case value.includes('.' + DocumentExtensionType.pptx):\n                return DocumentExtensionType.pptx;\n            case value.includes('.' + DocumentExtensionType.ppt):\n                return DocumentExtensionType.ppt;\n            case value.includes('.' + DocumentExtensionType.txt):\n                return DocumentExtensionType.txt;\n            case value.includes('.' + DocumentExtensionType.html):\n                return DocumentExtensionType.html;\n            default:\n                return value;\n        }\n    }\n\n}\n\nexport enum LogicalOperator {\n    and,\n    or\n}\n\nexport enum Operator {\n    and,\n    or\n}\n\n\n","export class GridSterProperties {\n    rows: number;\n    cols: number;\n    x: number;\n    y: number;\n    constructor(gridSterProperties?: GridSterProperties) {\n        if(gridSterProperties){\n            this.gridSterProperties(gridSterProperties);\n        }\n        else{\n            this.newGridSterProperties();\n        }\n    }\n    /**\n     * create GridSter Properties object with default  value\n     */\n    newGridSterProperties(): void{\n        this.rows = 1;\n        this.cols =  1;\n        this.x = 0;\n        this.y = 0;\n    }\n\n    /**\n     * create GridSter Properties object with existing values\n     *\n     * @param gridSterProperties\n     */\n     gridSterProperties(gridSterProperties: GridSterProperties): void {\n        this.rows =  gridSterProperties.rows;\n        this.cols =  gridSterProperties.cols;\n        this.x =  gridSterProperties.x;\n        this.y =  gridSterProperties.y;\n    }\n\n\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpToggleValue  extends AxExpressionValue {\n    value: number;\n    constructor(axExpToggleValue?: AxExpToggleValue){\n        super(axExpToggleValue);\n        this.subType = ExpressionValueSubType.toggle;\n        if(axExpToggleValue){\n            this.axExpToggleValue(axExpToggleValue);\n        }else{\n            this.newAxExpToggleValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpToggleValue(): void {\n        this.value = 0;\n    }\n\n    /**\n     * Pass actual toggle value\n     *\n     * @param axExpTimeValue\n     */\n    axExpToggleValue(axExpToggleValue?: AxExpToggleValue): void {\n        this.value = axExpToggleValue.value;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return true;\n        }\n        return false;\n    }\n}\n","\n\nexport class AxExpDateTimeRange {\n    from: Date;\n    to: Date;\n    constructor(axDateTimeRange?: AxExpDateTimeRange){\n        if(axDateTimeRange){\n            this.axDateRange(axDateTimeRange);\n        }else{\n            this.newAxDateRange();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxDateRange(): void{\n        this.from = null;\n        this.to = null;\n    }\n    /**\n     * Pass actual date value\n     *\n     * @param axDateTimeRange\n     */\n    axDateRange(axDateTimeRange?: AxExpDateTimeRange): void{\n        this.from = new Date(axDateTimeRange.from);\n        this.to = new Date(axDateTimeRange.to);\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.from && this.to){\n            return true;\n        }\n        return false;\n    }\n}\n","import { AxExpDateTimeRange } from './ax-exp-date-time-range';\nimport { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpDateTimeRangeValue extends AxExpressionValue {\n    value: AxExpDateTimeRange;\n    constructor(axExpDateTimeRangeValue?: AxExpDateTimeRangeValue){\n        super(axExpDateTimeRangeValue);\n        this.subType = ExpressionValueSubType.dateTimeRange;\n        if(axExpDateTimeRangeValue){\n            this.axExpDateRangeValue(axExpDateTimeRangeValue);\n        }else{\n            this.newAxExpDateRangeValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpDateRangeValue(): void {\n        this.value = new AxExpDateTimeRange();\n    }\n    /**\n     * Pass actual value\n     *\n     * @param axExpDateTimeRangeValue\n     */\n    axExpDateRangeValue(axExpDateTimeRangeValue?: AxExpDateTimeRangeValue): void {\n        this.value = new AxExpDateTimeRange(axExpDateTimeRangeValue.value);\n    }\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return this.value.searchable();\n        }\n        return false;\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxTimeRange extends AxExpressionValue {\n    from: '12:00';\n    to: '12:00';\n    constructor(axTimeRange?: AxTimeRange){\n        super(axTimeRange);\n        this.subType = ExpressionValueSubType.timeRange;\n        if(axTimeRange){\n            this.axTimeRange(axTimeRange);\n        }else{\n            this.newAxTimeRange();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxTimeRange(): void{\n        this.from = null;\n        this.to = null;\n    }\n    /**\n     * Pass actual time value\n     *\n     * @param AxTimeRange\n     */\n    axTimeRange(axTimeRange?: AxTimeRange): void{\n        this.from = axTimeRange.from;\n        this.to = axTimeRange.to;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.from && this.to){\n            return true;\n        }\n        return false;\n    }\n}\n","import { AxTimeRange } from './ax-exp-time-range';\nimport { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpTimeRangeValue extends AxExpressionValue {\n    value: AxTimeRange;\n    constructor(axExpTimeRangeValue?: AxExpTimeRangeValue){\n        super(axExpTimeRangeValue);\n        this.subType = ExpressionValueSubType.timeRange;\n        if(axExpTimeRangeValue){\n            this.axExpTimeRangeValue(axExpTimeRangeValue);\n        }else{\n            this.newAxExpTimeRangeValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpTimeRangeValue(): void {\n        this.value = new AxTimeRange();\n    }\n    /**\n     * Pass actual  value\n     *\n     * @param axExpTimeRangeValue\n     */\n    axExpTimeRangeValue(axExpTimeRangeValue?: AxExpTimeRangeValue): void {\n        this.value = new AxTimeRange(axExpTimeRangeValue.value);\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return this.value.searchable();\n        }\n        return false;\n    }\n}\n","export const  noCodeModeExcludeColumns=['defaultWorkFlow','metaTable'];\nexport const  noCodeModeExcludeFields=['Guid','Created At', 'Updated At','Created By','Updated By'];\n","import { JsonConvert, JsonConverter, JsonCustomConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\n\n/**\n * Choicelist option interface\n *\n * @Class ChoiceListOption\n */\n@JsonObject('choices')\nexport class ChoiceListOption {\n    @JsonProperty('txt', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    label: string = '';\n    @JsonProperty('val', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    value: string = '';\n    @JsonProperty('img', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    img: string = '';\n\n    @JsonProperty('visible', Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    visible?: boolean = true;\n\n    constructor(value?: string, label?: string, img?: string, visible: boolean = true) {\n        this.value = value;\n        this.label = label ? label : value;\n        this.img = img;\n        this.visible = visible;\n    }\n\n    static createChoiceListOptions(choiceListOptions: Array<ChoiceListOption>): Array<ChoiceListOption> {\n        const choices = [];\n        if (choiceListOptions) {\n            choiceListOptions?.forEach((choice) => {\n                choices.push(new ChoiceListOption(choice.value, choice.label, choice.img, choice.visible));\n            });\n        }\n        return choices;\n    }\n}\n\n\n/**\n * @class ChoiceListOptionConverter conveter for choices options\n */\n@JsonConverter\nexport class ChoiceListOptionConverter implements JsonCustomConvert<ChoiceListOption> {\n    serialize(options: ChoiceListOption): any {\n        const jsonConvert: JsonConvert = new JsonConvert();\n        return jsonConvert.serialize(options);\n    }\n    /**\n     * Deserialize ChoiceList options.\n     *\n     * @param options\n     * @returns\n     */\n    deserialize(options: any): any {\n        const jsonConvert: JsonConvert = new JsonConvert();\n        if (typeof (options) == 'string') {\n            const ops = options.split('\\n');\n            // const choiceListOption: Array<ChoiceListOption> = [];\n            let choiceListOption: string = ops.join(',');\n\n            // ops.forEach((option)=>{\n            //     // choiceListOption.push(new ChoiceListOption(option,option));\n            //     choiceListOption = choiceListOption +','+option\n            // });\n            return choiceListOption;\n        }\n        else if (typeof (options) == 'object') {\n            return jsonConvert.deserialize(options, ChoiceListOption);\n        }\n\n    }\n}\n\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxAudio implements IEnlightenType {\n\n\tmatIcon: string = 'axo_audio';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxBarcode implements IEnlightenType {\n\n\tmatIcon: string = 'axo_barcode';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxChildrecord implements IEnlightenType {\n\n\tmatIcon: string = 'axo_child_records';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxCounter implements IEnlightenType {\n\n\tmatIcon: string = 'axo_counter';\n\n}","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxDate implements IEnlightenType {\n\n\tmatIcon: string = 'axo_date';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxDecimal implements IEnlightenType {\n\n\tmatIcon: string = 'axo_decimal';\n\n}","import { IEnlightenType } from './ienlighten-type';\nexport class AxDocument implements IEnlightenType {\n\n\tmatIcon: string = 'axo_document';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxFile implements IEnlightenType {\n\n\tmatIcon: string = 'axo_document';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxImage implements IEnlightenType {\n\n\tmatIcon: string = 'axo_image';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\nexport class AxLocation implements IEnlightenType {\n\n\tmatIcon: string = 'axo_location';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxNumber implements IEnlightenType {\n\n\tmatIcon: string = 'axo_number';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxQrcode implements IEnlightenType {\n\n\tmatIcon: string = 'axo_qrcode';\n\n}","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxSignature implements IEnlightenType {\n\n\tmatIcon: string = 'axo_signature';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxStaticmedia implements IEnlightenType {\n\n\tmatIcon: string = 'axo_static_media';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxText implements IEnlightenType {\n\n    matIcon: string = 'axo_square_text';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxTime implements IEnlightenType {\n\n\tmatIcon: string = 'axo_time';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxUniqid implements IEnlightenType {\n\n\tmatIcon: string = 'axo_uniqueId';\n\n}","import { IEnlightenType } from './ienlighten-type';\n\nexport class AxTimestamp implements IEnlightenType {\n\n\tmatIcon: string = 'axo_timestamp';\n\n}","import { IEnlightenType } from './ienlighten-type';\n\nexport class ChoiceList implements IEnlightenType {\n\n\tmatIcon: string = 'axo_choice_list';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class DateTime implements IEnlightenType {\n\n\tmatIcon: string = 'axo_datetime';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class Hyperlink implements IEnlightenType {\n\n\tmatIcon: string = 'axo_hyperlink';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class Toggle implements IEnlightenType {\n\n    matIcon: string = 'axo_toggle_button';\n\n}\n","import { IEnlightenType } from './ienlighten-type';\n\nexport class Video implements IEnlightenType {\n\n    matIcon: string = 'axo_video';\n\n}\n","import { AxoUtils } from '../../axo-utils/axo-utils';\nimport { noCodeModeExcludeFields } from '../../axo-utils/constants';\nimport { WidgetSubType } from '../../forms/page/common/widget-enums';\nimport { ChoiceListOption } from '../../forms/page/widgets/widget-value/choice-list-options';\nimport { AxAudio } from '../fields/types/ax-audio';\nimport { AxBarcode } from '../fields/types/ax-barcode';\nimport { AxChildrecord } from '../fields/types/ax-childrecord';\nimport { AxCounter } from '../fields/types/ax-counter';\nimport { AxDate } from '../fields/types/ax-date';\nimport { AxDecimal } from '../fields/types/ax-decimal';\nimport { AxDocument } from '../fields/types/ax-document';\nimport { AxFile } from '../fields/types/ax-file';\nimport { AxImage } from '../fields/types/ax-image';\nimport { AxLocation } from '../fields/types/ax-location';\nimport { AxNumber } from '../fields/types/ax-number';\nimport { AxQrcode } from '../fields/types/ax-qrcode';\nimport { AxSignature } from '../fields/types/ax-signature';\nimport { AxStaticmedia } from '../fields/types/ax-staticmedia';\nimport { AxText } from '../fields/types/ax-text';\nimport { AxTime } from '../fields/types/ax-time';\nimport { AxUniqid } from '../fields/types/ax-uniqueid';\nimport { AxTimestamp } from '../fields/types/axo-timestamp';\nimport { ChoiceList } from '../fields/types/choicelist';\nimport { DateTime } from '../fields/types/datetime';\nimport { Hyperlink } from '../fields/types/hyperlink';\nimport { IEnlightenType } from '../fields/types/ienlighten-type';\nimport { Toggle } from '../fields/types/toggle';\nimport { Video } from '../fields/types/video';\n\n\n\n\nexport class Attribute {\n    fixedSeries: Array<string> = [];\n    name: string;\n    label: string;\n    defaultValue: string;\n    size: number;\n    isNullable: boolean;\n    isPrimary: boolean;\n    isHidden: boolean;\n    isAutoIncremented: boolean;\n    isForeign: boolean;\n    referenceColumnName: string;\n    referenceTableName: string;\n    enlightenType: IEnlightenType;\n    tableName: string;\n    type: string;\n    attributeType: AttributeTypes;\n    fields: Attribute[];\n    currentDragByElement: boolean;\n    isSelected?: boolean;\n    isManyToManyRefKey: boolean;\n    widgetType: string;\n    widgetSubType: string;\n    guid: string;\n    formId: number;\n    choices: Array<ChoiceListOption> = [];\n    identifier: string;\n    /**\n     * Constructor\n     *\n     * @param any\n     */\n    constructor(attribute?: Attribute) {\n       if(attribute){\n           this.attribute(attribute);\n       }else{\n           this.newAttribute();\n       }\n    }\n    static createAttributes(attributes: Array<Attribute>,tableName?: string,noCodeMode?: boolean ): Array<Attribute>{\n        const _attributes: Array<Attribute> = [];\n        if(attributes){\n            attributes.forEach((attribute) => {\n                if(!attribute.tableName){\n                    attribute.tableName = tableName;\n                }\n                if(noCodeMode && !noCodeModeExcludeFields.includes(attribute.label) || (!noCodeMode)){\n                    _attributes.push(new Attribute(attribute));\n                }\n\n            });\n        }\n        return _attributes;\n    }\n    //function to create new attribute\n    newAttribute(): void{\n        this.guid = AxoUtils.guid();\n        this.name = '';\n        this.label = '';\n        this.defaultValue = '';\n        this.size = 100;\n        this.isNullable = true;\n        this.isPrimary = false;\n        this.isAutoIncremented = false;\n        this.isForeign = false;\n        this.referenceColumnName =  '';\n        this.tableName = '';\n        this.referenceTableName = '';\n        this.isSelected = false;\n        this.enlightenType = new AxText();\n        this.isManyToManyRefKey = false;\n        this.widgetType = '';\n        this.isHidden = false;\n        this.formId=null;\n        this.choices = [];\n        this.attributeType = AttributeTypes.widgetType;\n    }\n    /**function to create attribute object with existing values\n    *\n    *@param Attribute\n    *\n    */\n    attribute(attribute: Attribute): void{\n        this.guid = AxoUtils.guid();\n        this.name = attribute.name;\n        this.label = attribute.label?attribute.label:attribute.name;\n        this.defaultValue = attribute.defaultValue;\n        this.size = attribute.size ;\n        this.isNullable = attribute.isNullable;\n        this.isPrimary = attribute.isPrimary ;\n        this.isAutoIncremented = attribute.isAutoIncremented;\n        this.isForeign = attribute.isForeign;\n        this.referenceColumnName = attribute.referenceColumnName;\n        this.tableName = attribute.tableName;\n        this.referenceTableName = attribute.referenceTableName;\n        this.isSelected = false;\n        this.type = attribute.type;\n        this.isManyToManyRefKey = attribute.isManyToManyRefKey;\n        this.widgetType = attribute.widgetType;\n        this.widgetSubType = attribute.widgetSubType;\n        this.isHidden = attribute.isHidden;\n        this.formId=attribute.formId;\n        this.choices =  ChoiceListOption.createChoiceListOptions(attribute.choices);\n        this.identifier = attribute.identifier;\n        this.attributeType = attribute.attributeType;\n        this.setWidgetType();\n    }\n\n    setWidgetType(): void{\n        switch (this.widgetType) {\n\n            case 'choicelist-widget':\n                this.enlightenType = new ChoiceList();\n                break;\n\n            case 'datepicker-widget':\n                this.setDateTimeWidgetSubType();\n                break;\n\n            case 'timestamp-widget':\n                this.widgetSubType = WidgetSubType.timeStamp;\n                this.enlightenType = new AxTimestamp();\n                break;\n\n            case 'fileupload-widget':\n                this.enlightenType = new AxDocument();\n                break;\n\n            case 'file-widget':\n                this.enlightenType = new AxFile();\n                break;\n\n            case 'hyperlink-widget':\n                this.enlightenType = new Hyperlink();\n                break;\n\n            case 'image-widget':\n                this.enlightenType = new AxImage();\n                break;\n\n            case 'capturegpslocation-widget':\n                this.enlightenType = new AxLocation();\n                break;\n\n            case 'int-widget':\n                this.enlightenType = new AxNumber();\n                break;\n\n            case 'yes_no-widget':\n                this.enlightenType = new Toggle();\n                break;\n\n            case 'videocapture-widget':\n                this.enlightenType = new Video();\n                break;\n\n            case 'float-widget':\n                this.enlightenType = new AxNumber();\n                break;\n\n            case 'stopwatch-widget':\n                this.enlightenType = new AxTime();\n                break;\n            case 'document':\n                this.enlightenType = new AxDocument();\n                break;\n            case 'wetsignaturecapture-widget':\n                this.enlightenType = new AxSignature();\n                break;\n\n            case 'childrecords-widget':\n                this.enlightenType = new AxChildrecord();\n                break;\n\n            case 'barcodescanner-widget':\n                this.enlightenType = new AxBarcode();\n                break;\n\n            case 'qrcodescanner-widget':\n                this.enlightenType = new AxQrcode();\n                break;\n\n            case 'uniqueid-widget':\n                this.enlightenType = new AxUniqid();\n                break;\n\n            case 'counter-widget':\n                this.enlightenType = new AxCounter();\n                break;\n\n            case 'imagecapture-widget':\n                this.enlightenType = new AxImage();\n                break;\n\n            case 'audiocapture-widget':\n                this.enlightenType = new AxAudio();\n                break;\n\n            case 'staticmedia-widget':\n                this.enlightenType = new AxStaticmedia();\n                break;\n\n                default:\n                    this.setTextWidgetSubType();\n                    break;\n\n            }\n        }\n        /**\n         * Set enlighten type subtype wise\n         */\n        setTextWidgetSubType(): void{\n            switch (this.widgetSubType) {\n                case 'text':\n                    this.enlightenType = new AxText();\n                    break;\n\n                case 'numeric':\n                    this.enlightenType = new AxNumber();\n                    break;\n\n                case 'string':\n                    this.enlightenType = new AxText();\n                    break;\n\n                case 'decimal':\n                    this.enlightenType = new AxDecimal();\n                    break;\n\n                case 'number':\n                    this.enlightenType = new AxNumber();\n                    break;\n\n                default:\n                    this.enlightenType = new AxText();\n                    break;\n            }\n        }\n        /**\n         * Set date enlighten type subtype wise\n         */\n         setDateTimeWidgetSubType(): void{\n            switch (this.widgetSubType) {\n                case 'time':\n                    this.enlightenType = new AxTime();\n                    break;\n\n                case 'date':\n                    this.enlightenType = new AxDate();\n                    break;\n\n                case 'date_range':\n                    this.enlightenType = new AxDate();\n                    break;\n\n                case 'both':\n                    this.enlightenType = new DateTime();\n                    break;\n\n                case 'datetime':\n                    this.enlightenType = new DateTime();\n                    break;\n                default:\n                    this.enlightenType = new AxTime();\n                    break;\n            }\n        }\n\n}\n/**\n * Attribute Sub types\n */\nexport enum AttributeTypes{\n    widgetType = 'WidgetType',\n    metaType = 'MetaType',\n    assetType = 'AssetType'\n}\n","\n\nexport class AxOperator {\n    text: string;\n    value: string;\n    constructor(operator?: AxOperator){\n        this.text = operator &&  operator.text || '';\n        this.value = operator && operator.value || '';\n    }\n    /***\n     * getStringOperator function use to get String operator array\n     */\n\n    static getStringOperator(): Array<AxOperator>{\n        return [\n            { text: 'Equal to', value: '=' },\n            { text: 'Not equal to', value: '<>' },\n            { text: 'Is empty', value: 'IS EMPTY' },\n            { text: 'In', value: 'IN'},\n            { text: 'Not In', value: 'NOT IN'}\n        ];\n    }\n    /***\n     * getNumericOperator function use to get  Numerical operator array\n     */\n    static getNumericOperator(): Array<AxOperator>{\n        return [\n            { text: 'Equal to', value: '=' },\n            { text: 'Greater than', value: '>' },\n            { text: 'Less than', value: '<' },\n            { text: 'Between', value: 'BETWEEN' },\n            { text: 'Not equal to', value: '<>' },\n            { text: 'Greater than or equal to', value: '>=' },\n            { text: 'Less than or equal to', value: '<=' },\n            { text: 'Is empty', value: 'IS EMPTY' },\n            { text: 'In', value: 'IN'},\n            { text: 'Not In', value: 'NOT IN'}\n        ];\n    }\n    /***\n     * getDateOperator function use to get  Date operator array\n     */\n    static getDateOperator(): Array<AxOperator>{\n        return [\n            { text: 'Equal to', value: '=' },\n            { text: 'After ', value: '>' },\n            { text: 'Before', value: '<' },\n            { text: 'Between', value: 'BETWEEN' },\n            { text: 'In', value: 'IN'},\n            { text: 'Not In', value: 'NOT IN'},\n            { text: 'After or equal to', value: '>=' },\n            { text: 'Before or equal to', value: '<=' },\n            { text: 'Today', value: 'Today' },\n            // { text: 'Tomorrow', value: 'Tomorrow' },\n            // { text: 'Yesterday', value: 'Yesterday' },\n            // { text: 'Week', value: 'Week' },\n            // { text: 'Month', value: 'Month' },\n            // { text: 'Year', value: 'Year' },\n            // { text: 'CurrentQuarter', value: 'CurrentQuarter' },\n            // { text: 'NextQuarter', value: 'NextQuarter' },\n            // { text: 'PreviousQuarter', value: 'PreviousQuarter' },\n            // { text: 'FirstQuarter', value: 'FirstQuarter' },\n            // { text: 'SecondQuarter', value: 'SecondQuarter' },\n            // { text: 'ThirdQuarter', value: 'ThirdQuarter' },\n            // { text: 'FourthQuarter', value: 'FourthQuarter' },\n        ];\n    }\n\n}\n\nexport enum DateOperatorIndex {\n    equalTo = 1,\n    greaterThan = 2,\n    lessThan= 3,\n    between=4,\n    in= 5,\n    notIn=6,\n    greaterThanOrEqualTo= 7,\n    lessThanOrEqualTo = 8,\n    today=9,\n    tomorrow=10,\n    yesterday=11,\n    week=12,\n    month=13,\n    year=14,\n    currentQuarter=15,\n    nextQuarter=16,\n    previousQuarter=17,\n    firstQuarter=18,\n    secondQuarter=19,\n    thirdQuarter=20,\n    fourthQuarter=21,\n}\n","import { Attribute } from '../data-model/attribute';\nimport { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpColumn extends AxExpressionValue {\n    value: Attribute;\n    constructor(axExpColumn?: AxExpColumn){\n        super(axExpColumn);\n        this.subType = ExpressionValueSubType.column;\n        if(axExpColumn){\n            this.axExpColumn(axExpColumn);\n        }else{\n            this.newAxExpColumn();\n        }\n    }\n\n    /**\n     * Create Object of Ex-column by default value\n     */\n    newAxExpColumn(): void {\n        this.value = new Attribute();\n    }\n    /**\n     * Create Object of Ex-column existing  value\n     *\n     * @param axExpColumn\n     */\n    axExpColumn(axExpColumn?: AxExpColumn): void {\n        this.value = axExpColumn.value;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return true;\n        }\n        return false;\n    }\n}\n","import moment from 'moment';\nimport { AxoUtils } from '../../axo-utils/axo-utils';\nimport { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpDateList  extends AxExpressionValue {\n    value: Array<any>;\n    constructor(axExpDateList?: AxExpDateList){\n        super(axExpDateList);\n        this.subType = ExpressionValueSubType.dateList;\n        if(axExpDateList){\n            this.axExpDateList(axExpDateList);\n        }else{\n            this.newAxExpDateList();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpDateList(): void {\n        this.value = [];\n    }\n    /**\n     * Pass actual date value\n     *\n     * @param axExpDateList\n     */\n    axExpDateList(axExpDateList?: AxExpDateList): void {\n        this.value = AxoUtils.convertUTCDateToDateFromat(axExpDateList.value);\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value?.length){\n            return true;\n        }\n        return false;\n    }\n\n}\n","export class AxDateRange {\n    from: Date;\n    to: Date;\n    constructor(axDateRange?: AxDateRange){\n        if(axDateRange){\n            this.axDateRange(axDateRange);\n        }else{\n            this.newAxDateRange();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxDateRange(): void{\n        this.from = new Date();\n        this.to = new Date();\n    }\n    /**\n     * Pass actual date value\n     *\n     * @param axDateRange\n     */\n    axDateRange(axDateRange?: AxDateRange): void{\n        this.from = axDateRange.from;\n        this.to = axDateRange.to;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.from && this.to){\n            return true;\n        }\n        return false;\n    }\n}\n","import { AxDateRange } from './ax-exp-date-range';\nimport { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpDateRangeValue extends AxExpressionValue {\n    value: AxDateRange;\n    constructor(axExpDateRangeValue?: AxExpDateRangeValue){\n        super(axExpDateRangeValue);\n        this.subType = ExpressionValueSubType.dateRange;\n        if(axExpDateRangeValue){\n            this.axExpDateRangeValue(axExpDateRangeValue);\n        }else{\n            this.newAxExpDateRangeValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpDateRangeValue(): void {\n        this.value = new AxDateRange();\n    }\n    /**\n     * Pass actual Text value\n     *\n     * @param axExpDateRangeValue\n     */\n    axExpDateRangeValue(axExpDateRangeValue?: AxExpDateRangeValue): void {\n        this.value = new AxDateRange(axExpDateRangeValue.value);\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return this.value?.searchable();\n        }\n        return false;\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpDateTimeValue extends AxExpressionValue {\n    value: Date;\n    constructor(axExpDateTimeValue?: AxExpDateTimeValue){\n        super(axExpDateTimeValue);\n        this.subType = ExpressionValueSubType.dateTime;\n        if(axExpDateTimeValue){\n            this.axExpDateTimeValue(axExpDateTimeValue);\n        }else{\n            this.newAxExpDateTimeValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpDateTimeValue(): void {\n        this.value = null;\n    }\n    /**\n     * Pass actual date value\n     *\n     * @param axExpDateTimeValue\n     */\n    axExpDateTimeValue(axExpDateTimeValue?: AxExpDateTimeValue): void {\n        this.value = axExpDateTimeValue.value;\n    }\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return true;\n        }\n        return false;\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpDateValue  extends AxExpressionValue {\n    value: Date;\n    constructor(axExpDateValue?: AxExpDateValue){\n        super(axExpDateValue);\n        this.subType = ExpressionValueSubType.date;\n        if(axExpDateValue){\n            this.axExpDateValue(axExpDateValue);\n        }else{\n            this.newAxExpDateValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpDateValue(): void {\n        this.value = null;\n    }\n    /**\n     * Pass actual date value\n     *\n     * @param axExpDateValue\n     */\n    axExpDateValue(axExpDateValue?: AxExpDateValue): void {\n        this.value = axExpDateValue.value;\n    }\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return true;\n        }\n        return false;\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpNumberList  extends AxExpressionValue {\n    value: Array<number>;\n    constructor(axExpNumberList?: AxExpNumberList){\n        super(axExpNumberList);\n        this.subType = ExpressionValueSubType.numberList;\n        if(axExpNumberList){\n            this.axExpNumberList(axExpNumberList);\n        }else{\n            this.newAxExpNumberList();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpNumberList(): void {\n        this.value = [];\n    }\n    /**\n     * Pass actual Number value\n     *\n     * @param axExpNumberList\n     */\n    axExpNumberList(axExpNumberList?: AxExpNumberList): void {\n        this.value = axExpNumberList.value;\n    }\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value.length){\n            return true;\n        }\n        return false;\n    }\n}\n","\nexport class AxNumberRange  {\n    from: number;\n    to: number;\n    constructor(axNumberRange?: AxNumberRange){\n        if(axNumberRange){\n            this.axNumberRange(axNumberRange);\n        }else{\n            this.newAxNumberRange();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxNumberRange(): void {\n        this.from = null;\n        this.to = null;\n    }\n    /**\n     * Pass actual number value\n     *\n     * @param axNumberRange\n     */\n    axNumberRange(axNumberRange?: AxNumberRange): void {\n        this.from = axNumberRange.from;\n        this.to = axNumberRange.to;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if((this.from ||this.from === 0 )&& (this.to || this.to === 0)){\n            return true;\n        }\n        return false;\n\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { AxNumberRange } from './ax-number-range';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpNumberRangeValue extends AxExpressionValue {\n    value: AxNumberRange;\n    constructor(axExpNumberRangeValue?: AxExpNumberRangeValue){\n        super(axExpNumberRangeValue);\n        this.subType = ExpressionValueSubType.numberRange;\n        if(axExpNumberRangeValue){\n            this.axExpNumberRangeValue(axExpNumberRangeValue);\n        }else{\n            this.newAxExpNumberRangeValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpNumberRangeValue(): void {\n        this.value = new AxNumberRange();\n    }\n    /**\n     * Pass actual Text value\n     *\n     * @param axExpNumberRangeValue\n     */\n    axExpNumberRangeValue(axExpNumberRangeValue?: AxExpNumberRangeValue): void {\n        this.value = new AxNumberRange(axExpNumberRangeValue.value);\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return this.value.searchable();\n        }\n        return true;\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpNumberValue extends AxExpressionValue {\n    value: number;\n    constructor(axExpNumberValue?: AxExpNumberValue){\n        super(axExpNumberValue);\n        this.subType = ExpressionValueSubType.expNumber;\n        if(axExpNumberValue){\n            this.axExpNumberValue(axExpNumberValue);\n        }else{\n            this.newAxExpNumberValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpNumberValue(): void {\n        this.value = null;\n    }\n    /**\n     * Pass actual number value\n     *\n     * @param axExpNumberValue\n     */\n    axExpNumberValue(axExpNumberValue?: AxExpNumberValue): void {\n        this.value = axExpNumberValue.value;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value || this.value === 0){\n            return true;\n        }\n        return false;\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpTextList extends AxExpressionValue {\n    value: Array<string>;\n    constructor(axExpTextList?: AxExpTextList){\n        super(axExpTextList);\n        this.subType = ExpressionValueSubType.textList;\n        if(axExpTextList){\n            this.axExpTextList(axExpTextList);\n        }else{\n            this.newAxExpTextList();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpTextList(): void{\n        this.value = [];\n    }\n    /**\n     * Pass actual Text value\n     *\n     * @param axExpTextList\n     */\n    axExpTextList(axExpTextList?: AxExpTextList): void {\n        this.value = axExpTextList.value;\n    }\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value.length){\n            return true;\n        }\n        return false;\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\n    export class AxExpTimeValue  extends AxExpressionValue {\n    value: string;\n    constructor(axExpTimeValue?: AxExpTimeValue){\n        super(axExpTimeValue);\n        this.subType = ExpressionValueSubType.time;\n        if(axExpTimeValue){\n            this.axExpTimeValue(axExpTimeValue);\n        }else{\n            this.newAxExpTimeValue();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpTimeValue(): void {\n        this.value = null;\n    }\n    /**\n     * Pass actual time value\n     *\n     * @param axExpTimeValue\n     */\n    axExpTimeValue(axExpTimeValue?: AxExpTimeValue): void {\n        this.value = axExpTimeValue.value;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value){\n            return true;\n        }\n        return false;\n\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpTimeList  extends AxExpressionValue {\n    value: Array<any>;\n    constructor(axExpDateList?: AxExpTimeList){\n        super(axExpDateList);\n        this.subType = ExpressionValueSubType.timeList;\n        if(axExpDateList){\n            this.axExpDateList(axExpDateList);\n        }else{\n            this.newAxExpDateList();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpDateList(): void {\n        this.value = [];\n    }\n    /**\n     * Pass actual date value\n     *\n     * @param axExpDateList\n     */\n    axExpDateList(axExpDateList?: AxExpTimeList): void {\n        this.value = axExpDateList.value;\n    }\n\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value.length){\n            return true;\n        }\n        return false\n    }\n}\n","import { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\n\nexport class AxExpDateTimeList  extends AxExpressionValue {\n    value: Array<any>;\n    constructor(axExpDateList?: AxExpDateTimeList){\n        super(axExpDateList);\n        this.subType = ExpressionValueSubType.dateTimeList;\n        if(axExpDateList){\n            this.axExpDateList(axExpDateList);\n        }else{\n            this.newAxExpDateList();\n        }\n    }\n\n    /**\n     * pass by default value\n     */\n    newAxExpDateList(): void {\n        this.value = [];\n    }\n    /**\n     * Pass actual date value\n     *\n     * @param axExpDateList\n     */\n    axExpDateList(axExpDateList?: AxExpDateTimeList): void {\n        this.value = axExpDateList.value;\n    }\n    // To check filter is searchable.\n    searchable(): boolean{\n        if(this.value?.length){\n            return true;\n        }\n        return false;\n    }\n}\n","import { AxExpToggleValue } from './ax-exp-toggle';\nimport { AxExpDateTimeRangeValue } from './ax-exp-date-time-range-value';\nimport { AxExpTimeRangeValue } from './ax-exp-time-range-value';\nimport { Attribute } from '../data-model/attribute';\nimport { AxOperator, DateOperatorIndex } from '../filters/ax-operator';\nimport { AxExpColumn } from './ax-exp-column';\nimport { AxExpDateList } from './ax-exp-date-list';\nimport { AxExpDateRangeValue } from './ax-exp-date-range-value';\nimport { AxExpDateTimeValue } from './ax-exp-date-time';\nimport { AxExpDateValue } from './ax-exp-date-value';\nimport { AxExpNumberList } from './ax-exp-number-list';\nimport { AxExpNumberRangeValue } from './ax-exp-number-range-value';\nimport { AxExpNumberValue } from './ax-exp-number-value';\nimport { AxExpTextValue } from './ax-exp-text';\nimport { AxExpTextList } from './ax-exp-text-list';\nimport { AxExpTimeValue } from './ax-exp-time';\nimport { AxExpressionValue } from './ax-expression-value';\nimport { ExpressionValueSubType } from './exp-sub-type';\nimport { AxExpTimeList } from './ax-exp-time-list';\nimport { AxExpDateTimeList } from './ax-exp-date-time-list';\n\nexport class AxExpression  {\n    field: Attribute;\n    comparisonOperator: AxOperator;// operator comparison\n    valueType: number; // (Fixed / column)\n    value: AxExpressionValue;\n    constructor(axExpression?: AxExpression){\n        if(axExpression){\n            this.axExpression(axExpression);\n        }else{\n            this.newAxExpression();\n        }\n    }\n\n    /**\n     * Assign existing value\n     *\n     * @param axExpression\n     */\n    static createAxExpression(axExpression?: AxExpression): AxExpression{\n         const _axExpression = new AxExpression();\n         _axExpression.field = new Attribute(axExpression.field);\n         _axExpression.comparisonOperator = axExpression.comparisonOperator;\n         _axExpression.valueType = axExpression.valueType;\n         _axExpression.value = axExpression.value;\n         return _axExpression;\n    }\n\n    /**\n     * Assign by default value\n     */\n    newAxExpression(): void{\n        this.field = new Attribute();\n        this.comparisonOperator =  new AxOperator();\n        this.valueType =  0;\n        this.value = null;\n    }\n\n    /**\n     * Assign existing value\n     *\n     * @param axExpression\n     */\n    axExpression(axExpression?: AxExpression): void{\n        this.field = new Attribute(axExpression.field);\n        this.comparisonOperator = axExpression.comparisonOperator;\n        this.valueType = axExpression.valueType;\n        // to set current date-time values for default filter when filter type is date-time / timestamp\n        // if(axExpression.value.subType ===ExpressionValueSubType.dateTime || axExpression.value.subType ===ExpressionValueSubType.dateTimeOld\n        //     || axExpression.value.subType ===ExpressionValueSubType.dateTimeRange || axExpression.value.subType ===ExpressionValueSubType.timestamp){\n        //     axExpression.value=this.getDateTimeValue(axExpression.value.isInputVisible);\n        // }\n        // // to set current date values for default filter when filter type is date\n        // else if (axExpression.value.subType ===ExpressionValueSubType.date || axExpression.value.subType ===ExpressionValueSubType.dateRange ){\n        //     axExpression.value=this.getDateValue(axExpression.value.isInputVisible);\n        // };\n        if(axExpression?.value){\n            this.value =this.getExpressionValueObject(axExpression?.value?.subType,axExpression?.value);\n        }\n\n    }\n\n    /**\n     *  assign expression value object and value\n     *\n     * @param subType\n     * @param value\n     * @returns\n     */\n    getExpressionValueObject(subType: string, value?: AxExpressionValue,comparisonOperator?: AxOperator): AxExpressionValue {\n        let _value: AxExpressionValue;\n        switch (subType) {\n            case ExpressionValueSubType.text:\n                _value = new AxExpTextValue(value as AxExpTextValue);\n                break;\n            case ExpressionValueSubType.textList:\n                _value = new AxExpTextList(value as AxExpTextList);\n                break;\n            case ExpressionValueSubType.date:\n                if(value?.isInputVisible === DateOperatorIndex.today){\n                    _value =this.getDateValue(value.isInputVisible);\n                }else{\n                    _value = new AxExpDateValue(value as AxExpDateValue);\n                }\n                break;\n            case ExpressionValueSubType.dateList:\n                _value = new AxExpDateList(value as AxExpDateList);\n                break;\n            case ExpressionValueSubType.dateRange:\n                _value = new AxExpDateRangeValue(value as AxExpDateRangeValue);\n                break;\n            case ExpressionValueSubType.expNumber:\n                _value = new AxExpNumberValue(value as AxExpNumberValue);\n                break;\n            case ExpressionValueSubType.numberList:\n                _value = new AxExpNumberList(value as AxExpNumberList);\n                break;\n            case ExpressionValueSubType.numberRange:\n                _value = new AxExpNumberRangeValue(value as AxExpNumberRangeValue);\n                break;\n            case ExpressionValueSubType.column:\n                _value = new AxExpColumn(value as AxExpColumn);\n                break;\n            case ExpressionValueSubType.dateTime:\n                _value = new AxExpDateTimeValue(value as AxExpDateTimeValue);\n                 break;\n            case ExpressionValueSubType.dateTimeRange:\n                 _value = new AxExpDateTimeRangeValue(value as AxExpDateTimeRangeValue);\n                 break;\n            case ExpressionValueSubType.dateTimeList:\n                 _value = new AxExpDateTimeList(value as AxExpDateTimeList);\n                 break;\n            case ExpressionValueSubType.time:\n                 _value = new AxExpTimeValue(value as AxExpTimeValue);\n                 break;\n            case ExpressionValueSubType.timeRange:\n                 _value = new AxExpTimeRangeValue(value as AxExpTimeRangeValue);\n                 break;\n            case ExpressionValueSubType.timeList:\n                 _value = new AxExpTimeList(value as AxExpTimeList);\n                 break;\n            case ExpressionValueSubType.toggle:\n                _value = new AxExpToggleValue(value as AxExpToggleValue);\n                break;\n        }\n        return _value;\n    }\n     /**\n      *  Check valid expression value or object\n      *\n      * @param subType\n      * @param value\n      * @returns\n      */\n      isValueValid(subType: string, value?: AxExpressionValue): boolean {\n        switch (subType) {\n            case ExpressionValueSubType.text:\n                const textExpValue = new AxExpTextValue(value as AxExpTextValue);\n                return textExpValue.value ? true : false;\n            case ExpressionValueSubType.textList:\n                const textListExpValue = new AxExpTextList(value as AxExpTextList);\n                return textListExpValue.value.length ? true : false;\n            case ExpressionValueSubType.date:\n                const dateExpValue = new AxExpDateValue(value as AxExpDateValue);\n                return dateExpValue.value ? true : false;\n            case ExpressionValueSubType.dateList:\n                const dateListExpValue = new AxExpDateList(value as AxExpDateList);\n                return dateListExpValue.value.length ? true : false;\n            case ExpressionValueSubType.dateRange:\n                const dateRangeExpValue = new AxExpDateRangeValue(\n                    value as AxExpDateRangeValue\n                );\n                return dateRangeExpValue.value.from && dateRangeExpValue.value.to ? true :false;\n            case ExpressionValueSubType.expNumber:\n                const numberExpValue = new AxExpNumberValue(value as AxExpNumberValue);\n                return numberExpValue.value ? true : false;\n            case ExpressionValueSubType.numberList:\n                const numberListExpValue = new AxExpNumberList(value as AxExpNumberList);\n                return numberListExpValue.value.length ? true : false;\n            case ExpressionValueSubType.numberRange:\n                const numberRangeExpValue = new AxExpNumberRangeValue(\n                    value as AxExpNumberRangeValue\n                );\n                return (numberRangeExpValue.value.from && numberRangeExpValue.value.to) ? true : false;\n            case ExpressionValueSubType.column:\n                const columnExpValue = new AxExpColumn(value as AxExpColumn);\n                return columnExpValue.value.label? true : false;\n            case ExpressionValueSubType.dateTime:\n                const dateTimeExpValue = new AxExpDateTimeValue(value as AxExpDateTimeValue);\n                return dateTimeExpValue.value ? true : false;\n            case ExpressionValueSubType.dateTimeRange:\n                const dateTimeRangeExpValue = new AxExpDateTimeRangeValue(\n                    value as AxExpDateTimeRangeValue\n                );\n                return dateTimeRangeExpValue.value.from && dateTimeRangeExpValue.value.to ? true : false;\n            case ExpressionValueSubType.time:\n                const timeExpValue = new AxExpTimeValue(value as AxExpTimeValue);\n                return timeExpValue.value? true : false;\n            case ExpressionValueSubType.timeRange:\n                const timeRangeExpValue = new AxExpTimeRangeValue(value as AxExpTimeRangeValue);\n                return timeRangeExpValue.value.from && timeRangeExpValue.value.to? true : false;\n        }\n        return false;\n    }\n\n    /**\n     *to set current date values for default filter when filter type is date\n     *\n     * @param operatorIndex\n     * @returns\n     */\n    getDateValue(operatorIndex: number): AxExpDateRangeValue | AxExpDateValue{\n        const date=new Date();\n        const dateRange=new AxExpDateRangeValue();\n        const quarter = Math.floor((date.getMonth() / 3));\n        let qFirstDate: Date;\n        let value;\n        switch (operatorIndex) {\n            case DateOperatorIndex.between:\n                 value = new AxExpDateRangeValue(this.value as AxExpDateRangeValue);\n                break;\n            case DateOperatorIndex.today:\n\n                const today = new AxExpDateValue();\n                today.value = new Date();\n                value = today;\n                break;\n            case DateOperatorIndex.tomorrow:\n                const tomorrow = new Date(date);\n                tomorrow.setDate(tomorrow.getDate() + 1);\n                const _tomorrow = new AxExpDateValue();\n                _tomorrow.value = tomorrow;\n                value = _tomorrow;\n                break;\n            case DateOperatorIndex.yesterday:\n                const yesterday = new Date(date);\n                yesterday.setDate(yesterday.getDate() - 1);\n                const _yesterday = new AxExpDateValue();\n                _yesterday.value = yesterday;\n                value = _yesterday;\n                break;\n            case DateOperatorIndex.week:\n                const day = date.getDay();\n                const diff = date.getDate() - day + (day === 0 ? -6 : 1);\n                const fDay = new Date(date.setDate(diff));\n                dateRange.value.from = fDay;\n                const wFirstDay = fDay;\n                const wLastDay = new Date(wFirstDay);\n                wLastDay.setDate(wLastDay.getDate() + 6);\n                dateRange.value.to = wLastDay;\n                value = dateRange;\n                break;\n            case DateOperatorIndex.month:\n                const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\n                const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n                dateRange.value.from = firstDay;\n                dateRange.value.to = lastDay;\n                value = dateRange;\n                break;\n            case DateOperatorIndex.year:\n                const currentYear = new Date().getFullYear();\n                const yearFirstDay = new Date(currentYear, 0, 1);\n                const yearLastDay = new Date(currentYear, 11, 31);\n                dateRange.value.from = yearFirstDay;\n                dateRange.value.to = yearLastDay;\n                value = dateRange;\n                break;\n            case DateOperatorIndex.previousQuarter:\n                qFirstDate = new Date(date.getFullYear(), quarter * 3 - 3, 1);\n                dateRange.value.from = qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value = dateRange;\n                break;\n            case DateOperatorIndex.currentQuarter:\n                qFirstDate = new Date(date.getFullYear(), quarter * 3, 1);\n                dateRange.value.from = qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.nextQuarter:\n                qFirstDate = new Date(date.getFullYear(), quarter * 3 + 3, 1);\n                dateRange.value.from = qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.firstQuarter:\n                qFirstDate = new Date(date.getFullYear(), 0, 1);\n                dateRange.value.from = qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.secondQuarter:\n                qFirstDate = new Date(date.getFullYear(), 3, 1);\n                dateRange.value.from = qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.thirdQuarter:\n                qFirstDate = new Date(date.getFullYear(), 6, 1);\n                dateRange.value.from = qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.fourthQuarter:\n                qFirstDate = new Date(date.getFullYear(), 9, 1);\n                dateRange.value.from = qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            default:\n                value = new AxExpDateValue();\n\n        }\n        value.isInputVisible=operatorIndex;\n        return value;\n    }\n      /**\n       * to set current date-time values for default filter when filter type is date-time / timestamp\n       *\n       * @param operatorIndex\n       * @returns\n       */\n      getDateTimeValue(operatorIndex: number): AxExpDateTimeRangeValue | AxExpDateTimeValue{\n        const date=new Date();\n        const dateRange=new AxExpDateTimeRangeValue();\n        const quarter = Math.floor((date.getMonth() / 3));\n        let qFirstDate: Date;\n        let value;\n        switch(operatorIndex){\n            case DateOperatorIndex.between:\n                value = new AxExpDateTimeRangeValue();\n                break;\n            case DateOperatorIndex.tomorrow:\n                const tomorrow = new Date(date);\n                tomorrow.setDate(tomorrow.getDate() + 1);\n                const _tomorrow=new AxExpDateTimeValue();\n                _tomorrow.value=tomorrow;\n                value=_tomorrow;\n                break;\n            case DateOperatorIndex.yesterday:\n                const yesterday = new Date(date);\n                yesterday.setDate(yesterday.getDate() - 1);\n                const _yesterday=new AxExpDateTimeValue();\n                _yesterday.value=yesterday;\n                value=_yesterday;\n                break;\n            case DateOperatorIndex.week:\n                const day = date.getDay();\n                const diff = date.getDate() - day + (day === 0 ? -6 : 1);\n                const fDay=new Date(date.setDate(diff));\n                dateRange.value.from=fDay;\n                const wFirstDay = fDay;\n                const wLastDay = new Date(wFirstDay);\n                wLastDay.setDate(wLastDay.getDate() + 6);\n                dateRange.value.to=wLastDay;\n                value=dateRange;\n                break;\n            case DateOperatorIndex.month:\n                const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);\n                const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);\n                dateRange.value.from=firstDay;\n                dateRange.value.to=lastDay;\n                value=dateRange;\n                break;\n            case DateOperatorIndex.year:\n                const currentYear = new Date().getFullYear();\n                const yearFirstDay = new Date(currentYear, 0, 1);\n                const yearLastDay = new Date(currentYear, 11, 31);\n                dateRange.value.from=yearFirstDay;\n                dateRange.value.to=yearLastDay;\n                value=dateRange;\n                break;\n            case DateOperatorIndex.previousQuarter:\n                qFirstDate = new Date(date.getFullYear(), quarter * 3 -3, 1);\n                dateRange.value.from=qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.currentQuarter:\n                qFirstDate = new Date(date.getFullYear(), quarter * 3, 1);\n                dateRange.value.from=qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.nextQuarter:\n                qFirstDate = new Date(date.getFullYear(), quarter * 3 +3, 1);\n                dateRange.value.from=qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.firstQuarter:\n                qFirstDate = new Date(date.getFullYear(), 0, 1);\n                dateRange.value.from=qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.secondQuarter:\n                qFirstDate = new Date(date.getFullYear(), 3, 1);\n                dateRange.value.from=qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n\n            break;\n            case DateOperatorIndex.thirdQuarter:\n                qFirstDate = new Date(date.getFullYear(), 6, 1);\n                dateRange.value.from=qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            case DateOperatorIndex.fourthQuarter:\n                qFirstDate = new Date(date.getFullYear(), 9, 1);\n                dateRange.value.from=qFirstDate;\n                dateRange.value.to = new Date(qFirstDate.getFullYear(), qFirstDate.getMonth() + 3, 0);\n                value=dateRange;\n                break;\n            default:\n                value = new AxExpDateTimeValue();\n\n        }\n        value.isInputVisible=operatorIndex;\n        return value;\n    }\n\n    /**\n     * to check valid expression .\n     * valid expression are searchable.\n     * @returns\n     */\n    searchable(): boolean{\n        if(this.value?.searchable() && this.comparisonOperator?.value){\n            return true;\n        }\n        return false;\n    }\n}\n","\nimport { LogicalOperator } from '../../axo-utils/axo-utils';\nimport { AxExpression } from '../ax-expression/ax-expression';\nexport class SearchNode {\n    logicalOperator: LogicalOperator; // and?or\n    type: string | number; // condition = 1  & group-condition = 2;//searchNodeType\n    value: string;\n    expression: AxExpression;\n    searchNodes: Array<SearchNode>;\n    constructor(searchNode?: SearchNode) {\n        if(searchNode){\n            this.searchNode(searchNode);\n        }else{\n            this.newSearchNode();\n        }\n    }\n\n    /**\n     * function to create searchNodes object with existing values\n     *\n     *@param searchNodes\n     *\n     */\n     static createSearchNode(searchNodes: Array<SearchNode> ): Array<SearchNode>{\n        const _searchNodes: Array<SearchNode> = [];\n        if(searchNodes){\n            searchNodes.forEach((node) => {\n                _searchNodes.push(new SearchNode(node));\n            });\n        }\n        return _searchNodes;\n    }\n\n    /**\n     * Create new search node class and default value\n     */\n    newSearchNode(): void{\n        this.logicalOperator =  LogicalOperator.and;\n        this.type =  1;\n        this.value = '';\n        this.expression = new AxExpression();\n        this.searchNodes = [];\n\n    }\n\n    /**\n     * Assign existing value to search nodes class\n     *\n     * @param searchNode\n     */\n     searchNode(searchNode?: SearchNode): void{\n        this.logicalOperator =  searchNode.logicalOperator;\n        this.type =  searchNode.type;\n        this.value =  searchNode.value;\n        this.searchNodes =  searchNode.searchNodes;\n        this.expression = new AxExpression(searchNode.expression);\n    }\n}\n","import { AxoUtils } from '../../axo-utils/axo-utils';\nimport { FilterType, ScopeType } from './condition-type';\nimport { GridSterProperties } from './gridster-properties';\nimport { SearchNode } from './search-node';\nimport { IAxFilter } from './iax-filter';\nimport { AxExpression } from '../ax-expression/ax-expression';\n\nexport class AxFilter implements IAxFilter{\n    id: number;\n    guid: string;\n    name: string;\n    scope: ScopeType; // global = 1 and local = 2\n    type: FilterType ; // basic = 1 and advanced = 2 ;//filterType\n    searchNodes: Array<SearchNode>;\n    appVersionId: number;\n    isDeleted?: boolean;\n    isSelected?: boolean;\n    gridProperties?: GridSterProperties;\n    filterCategoryId?: number;\n    parent?: AxFilter;\n    // generalFilterType: GeneralFilterType; //need to remove.\n    isVisible: boolean;\n    isDefault: boolean;\n    isCategory: boolean = false; // we can identify is it filter or filterCategory by this field.\n\n    constructor(axFilter?: AxFilter) {\n       if(axFilter){\n        this.axFilter(axFilter);\n       }else{\n        this.newAxFilter();\n       }\n    }\n        /**function to create filters object with existing values\n    *\n    *@param AxFilter\n    *\n    */\n    static createFilters(filters: Array<AxFilter> ): Array<AxFilter>{\n        const _filters: Array<AxFilter> = [];\n        if(filters){\n            filters.forEach((_filter) => {\n                const filter=new AxFilter(_filter);\n                    if(_filter.isDefault){\n                        filter.searchNodes.forEach((searchNode,index) => {\n                        searchNode.expression=new AxExpression(_filter.searchNodes[index].expression);\n                    });\n                    }\n                    _filters.push(filter);\n            });\n        }\n        return _filters;\n    }\n\n\n    /**\n     * Set by default Filter object\n     */\n    newAxFilter(): void {\n        this.guid = AxoUtils.guid();\n        this.id =  0;\n        this.name =  '';\n        this.scope =  ScopeType.global;\n        this.type =  FilterType.advanced;\n        this.searchNodes = [];\n        this.isDeleted =  false;\n        this.gridProperties =  new GridSterProperties();\n        this.filterCategoryId = 0;\n        this.isVisible=true;\n        this.isDefault=false;\n        this.appVersionId = null;\n    }\n\n    /**\n     * Set existing filter value to filter object\n     *\n     * @param axFilter\n     */\n\n    axFilter(axFilter?: AxFilter): void{\n        this.guid = axFilter && axFilter.guid || AxoUtils.guid();\n        this.id = axFilter && axFilter.id || 0;\n        this.name =  axFilter.name;\n        this.scope =  axFilter.scope;\n        this.type =  axFilter.type;\n        this.searchNodes =  SearchNode.createSearchNode(axFilter.searchNodes);\n        this.appVersionId =  axFilter.appVersionId;\n        this.isDeleted =  axFilter.isDeleted;\n        this.gridProperties =  axFilter.gridProperties?axFilter.gridProperties:new GridSterProperties();\n        this.filterCategoryId = axFilter.filterCategoryId;\n        this.parent = axFilter.parent? new AxFilter(axFilter.parent):null;\n        this.isVisible=axFilter.isVisible;\n        this.isDefault=axFilter.isDefault;\n    }\n\n\n\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { LAZY_MAPS_API_CONFIG, LazyMapsAPILoaderConfigLiteral } from '@agm/core';\n@Injectable()\nexport class CommonLibConfigurationService implements LazyMapsAPILoaderConfigLiteral {\n    apiKey: string;\n    language: string = 'en';\n    libraries: Array<string> = ['places'];\n    axonatorX1Url: string;\n    x1MediaUrl:string;\n    builderUrl:string;\n    containerUrl:string;\n    ViewWebApp:string;\n    stripePublishableKey:string;\n\n\n  constructor(@Inject('config') private config: any) {\n      this.apiKey = config.configuration.googleAgmKey;\n      this.axonatorX1Url = config.configuration.axonatorX1Url;\n      this.x1MediaUrl = config.configuration.x1MediaUrl;     \n      this.builderUrl = config.configuration.builderUrl;\n      this.containerUrl=config.configuration.containerUrl;\n      this.ViewWebApp=config.configuration.ViewWebApp;\n      this.stripePublishableKey = config.configuration.stripePublishableKey;\n  }\n}\n","import { DataSourceTypes } from './../../axo-utils/data-source-types';\nimport { HttpClient } from '@angular/common/http';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { AttributesDto } from '../../common-dto/attributes-dto';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { WidgetSubType } from '../../forms/page/common/widget-enums';\n\n@Injectable()\nexport class CommonFilterService {\n    // filter selection change emitter.\n    filterLabelChanged: EventEmitter<any> = new EventEmitter<AxFilter>(); // this emitter is used for emit on update of filter label\n    filterValueChange: EventEmitter<AxFilter> = new EventEmitter();\n\n    constructor(\n        private _httpClient: HttpClient,\n        private _configuration: CommonLibConfigurationService,\n        ) { }\n\n\n\n    getFilterSeries(attributeDto: AttributesDto,dataSource: DataSourceTypes): Promise<AttributesDto>{\n        if(dataSource === DataSourceTypes.flattenDB){\n            return this.getAttributeSeries(attributeDto);\n        }else if(attributeDto.filter.searchNodes[0].expression.field.widgetSubType === WidgetSubType.referenceList ||\n            attributeDto.filter.searchNodes[0].expression.field.widgetSubType === WidgetSubType.assetObjectList\n        ){\n            return this.gtReferenceFilterSeries(attributeDto);\n        }else{\n            return this.getAttributeSeriesFromX1(attributeDto);\n        }\n    }\n    /**\n     * Get Filter series from flatten database;\n     *\n     * @param data\n     * @returns\n     */\n    getAttributeSeries(attributeDto: AttributesDto): Promise<AttributesDto> {\n\n        attributeDto.filter =this.cloneFilter(attributeDto.filter);\n        return new Promise((resolve, reject) => {\n          this._httpClient.post('attributesdata', attributeDto).subscribe((response: any) => {\n            resolve(response);\n          }, reject);\n        });\n    }\n\n\n    /**\n     * Get Filter Series  from x1 API\n     */\n\n    getAttributeSeriesFromX1(attributeDto: AttributesDto): Promise<AttributesDto>{\n        const pageIndex = attributeDto.currentPage * attributeDto.pagesize;\n        const formData = new FormData();\n        formData.append('form_id', attributeDto.formId.toString());\n        formData.append('widget_identifier', attributeDto.filter.searchNodes[0].expression.field.identifier);\n        formData.append('page_index',pageIndex.toString());\n        formData.append('page_size',attributeDto.pagesize.toString());\n        formData.append('searchText',attributeDto.searchText);\n        return new Promise((resolve, reject) => {\n        this._httpClient.post(this._configuration.axonatorX1Url + 'getDistinctWidgetValues/', formData).subscribe((response: any) => {\n            attributeDto.series = response;\n            resolve(attributeDto);\n        }, reject);\n        });\n    }\n\n    /**\n   * to get reference widget values\n   *\n   * @param searchObject\n   * @returns\n   */\n  gtReferenceFilterSeries(attributeDto: AttributesDto): Promise<AttributesDto>{\n    const limit = (attributeDto.currentPage+1) * attributeDto.pagesize;\n    const searchObject = { 'srct': 'A', 'sc': 'f', 'afid': attributeDto.filter.searchNodes[0].expression.field.formId,\n    'folnt': 78.534454, 'folat': 17.4508872, 'kw':attributeDto.searchText,'offset': 0, 'limit': limit,\n    'search_in_all_fields':false };\n    const formData = new FormData();\n    formData.append('search', JSON.stringify(searchObject));\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this._configuration.axonatorX1Url + 'search/', formData).subscribe((response: any) => {\n        attributeDto.series = response['wfis_resp']?.wfis?.form_objects?response['wfis_resp']?.wfis?.form_objects:[];\n        attributeDto.totalRecords = response['wfis_resp']?.wfis?.total_form_objects?response['wfis_resp']?.wfis?.total_form_objects:null;\n        resolve(attributeDto);\n      }, reject);\n    });\n  }\n\n\n    /**\n     * Check Valid Parent Filter\n     *\n     * @param _filter\n     * @returns\n     */\n    cloneFilter(_filter: AxFilter): AxFilter{\n        // clone filter object\n        const filter = new AxFilter(_filter);\n        // Check filter Parent\n        if(filter.parent){\n            // If parent is not searchable then set parent null for get filter series.\n            if(!filter.parent?.searchNodes[0].expression.value?.searchable()){\n                filter.parent = null;\n            }\n        }\n        return filter;\n    }\n}\n","import { CommonFilterService } from './common-filter.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Component, EventEmitter, Input, OnInit, Output, OnDestroy, SimpleChanges, OnChanges, ViewChild, AfterViewInit } from '@angular/core';\nimport { MatSelect } from '@angular/material/select';\nimport { AxExpression } from '../../enlighten-lib/ax-expression/ax-expression';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { ScreenType } from '../../enlighten-lib/filters/condition-type';\nimport { Subject } from 'rxjs';\nimport { AttributesDto } from '../../common-dto/attributes-dto';\nimport { DataSourceTypes } from '../../axo-utils/data-source-types';\nimport { WidgetSubType } from '../../forms/page/common/widget-enums';\nimport { DataViewFilter } from '../../data-view-lib/data-view/data-view-filter';\n\n@Component({\n    selector: 'lib-common-filter',\n    templateUrl: './common-filter.component.html',\n    styleUrls: ['./common-filter.component.scss']\n})\nexport class  CommonFilterComponent implements OnInit,OnDestroy,OnChanges,AfterViewInit {\n    //<--------------<View Child> ------------------->\n    @ViewChild('multiSelectList') selectElem: MatSelect;\n    //<--------------(Inputs)--------------------->\n    @Input() filter: AxFilter; // Filter\n    @Input() screenType: ScreenType;  // filter screen type .\n    @Input() appVersionId: number;\n    @Input() appId: number;\n    @Input() formId?: number;\n    @Input() reportId: number;\n    @Input() resetFilterEvent: EventEmitter<any> = new EventEmitter();\n    @Input() parentFilterValueChange: EventEmitter<AxFilter> = new EventEmitter();\n    //<---------------(Outputs)-------------------->\n    @Output() filterValueChange: EventEmitter<any> = new EventEmitter<AxFilter>();\n    @Output() parentFilterEvent: EventEmitter<any> =  new EventEmitter<AxFilter>();\n    @Output() applyFilterEvent: EventEmitter<any> =  new EventEmitter<any>();\n    // @Output() filterClickEvent: EventEmitter<AxFilter> = new EventEmitter<AxFilter>(); Don't need this in common filter we will handled this from filters component\n    @Output() clearValueEvent: EventEmitter<any> =  new EventEmitter<AxFilter>();\n\n    //<------(Common component Variables)---------->\n    expression: AxExpression;\n    _unsubscribeAll: Subject<any> = new Subject<any>();\n    pageIndex: number = 0; // Current page index\n    pageSize: number = 10; // Page size series\n    totalSeriesLength = null; // Available series length\n    defaultValue: any; // this will store default value of filter on reset we user default\n    dataSource: DataSourceTypes = DataSourceTypes.flattenDB; // default data view\n    showSearchBox: boolean = false; // show search box on filter dropdown by default it's hidden\n    searchText: string = '';\n    seriesList: Array<any> = [];\n    isDataLoaded:boolean = false;\n    displayValue: string;\n    toolTipValue: string;\n    // <--------------------(Enums)-------------------------->\n    widgetSubType = WidgetSubType;\n    screenTypes = ScreenType;\n    temporyfilters: (AxFilter | DataViewFilter)[] = [];\n\n    /**\n     * Constructor\n     */\n    constructor(\n        public _commonFilterService: CommonFilterService\n    ) { }\n\n    /**\n     * This will get called after view init\n     * means get called after html render.\n     * for lazy loading we need scroll element.\n     */\n    ngAfterViewInit(): void {\n        // lazy loading for filter series\n        // Mat select open/close subscriber need only for attribute list\n    this.selectElem?.openedChange?.subscribe((isOpen) => {\n        // mat select dropdown is opened then registered panel scroll event for attribute list  lazy loading\n        if(isOpen){\n          this.registerPanelScrollEvent();\n        }\n      });\n\n    }\n\n    /**\n     * On Change Life cycle hook\n     *\n     * @param changes\n     */\n    ngOnChanges(changes: SimpleChanges): void {\n\n    }\n    /**\n     * On Init Life cycle hook\n     */\n    ngOnInit(): void {\n        // Changed the widgetSubType for decimal and number field for old forms\n        if(this.filter?.searchNodes[0]?.expression.field.type == 'float' || this.filter?.searchNodes[0]?.expression.field.type == 'int'){\n            this.filter.searchNodes[0].expression.field.widgetSubType = \"numeric\";\n        }\n        // set data source for filter series.\n        this.setDataSourceType();\n\n        this.subscribers();\n        // set expression in local variable.\n        this.expression = this.filter?.searchNodes[0]?.expression;\n        this.setExpressionValue();\n        // Don't clear default filter.\n        if(!this.filter.isDefault){\n            this.clearValue(); // this will create expression value object\n        }else{\n            this.setDefaultValue();  // Set Default Value.\n        }\n        this.setDisplayValue();\n    }\n    /**\n     * On Destroy life cycle hook\n     */\n    ngOnDestroy(): void {\n        // Unsubscribe from all subscriptions\n        this._unsubscribeAll.next();\n        this._unsubscribeAll.complete();\n    }\n\n    /**\n     * All Subscribers should be implemented here\n     */\n    subscribers(): void{\n        // Subscriber for reset Filter\n        this.resetFilterEvent.pipe(takeUntil(this._unsubscribeAll)).subscribe(()=>{\n            this.resetFilter();\n            // Reset child filter on filter reset.\n            if(this.filter.parent){\n                this.applyParentFilter();\n            }\n        });\n\n        //Subscriber for parent filter value change. this will get called on parent filter value change.\n        this._commonFilterService.filterValueChange.pipe(takeUntil(this._unsubscribeAll)).subscribe((filter: AxFilter)=>{\n            if(filter.id === this.filter?.parent?.id || filter.guid === this.filter.parent?.guid){\n                this.filter.parent =filter;\n                this.applyParentFilter();\n            }\n        });\n\n        // Subscriber for updated the display value of filter on update of filter label\n        this._commonFilterService.filterLabelChanged.subscribe((filter: AxFilter) => {\n            if(filter && filter.id == this.filter.id){\n                this.setDisplayValue();\n            }\n        })\n\n    }\n    /**\n     * Set filter series  data source.\n     */\n    setDataSourceType(): void{\n        // For Data View We fetch series form x1 API.\n        if(this.screenType === ScreenType.dataView || this.screenType === ScreenType.dataViewBuilder){\n            this.dataSource = DataSourceTypes.x1API;\n        }\n    }\n\n    /**\n     * update the value of filter label in displayed value\n     */\n    setDisplayValue(): void{\n        // overridden on child class.\n    }\n\n    /**\n     * Get Called on Filter Value change\n     */\n    //AXE-I6556\n    //Insertion of select value in respective localstorage\n    filterValueChanged(): void{\n        this.filterValueChange.emit(this.filter);\n        this._commonFilterService.filterValueChange.emit(this.filter);\n        this.setDisplayValue();\n    }\n    /**\n     * Set Expression value in component variable;\n     *  This will be overridden in child component.\n     */\n    setExpressionValue(): void{\n\n    }\n    /**\n     * Reset Filter\n     * this will be overridden in child component.\n     */\n    resetFilter(): void{\n\n    }\n\n    /**\n     * Clear value\n     * This will be overridden in child component.\n     */\n    clearValue(): void{\n\n    }\n    /**\n     * Apply filter\n     */\n    applyFilter(): void{\n        this.applyFilterEvent.emit();\n    }\n    /**\n     * Set Default value\n     *  This will be overridden in child component.\n     */\n    setDefaultValue(): void{\n\n    }\n\n\n    /**\n     * This will get called on parent filter value change.\n     * This will be overridden in child component.\n     */\n    applyParentFilter(): void{\n        // overridden in child component\n    }\n\n\n    /**\n     * Get series list from backend.\n     * we need this in common component for common lazy loading api calls.\n     */\n  getSeriesList(clearSeries?: boolean): void{\n    // Created dto\n    const attributeData = new AttributesDto();\n    attributeData.reportId = this.reportId;\n    attributeData.filter = this.filter;\n    attributeData.searchText = this.searchText;\n    attributeData.formId = this.formId;\n    attributeData.currentPage = this.pageIndex;\n    attributeData.pagesize = this.pageSize;\n\n    this._commonFilterService.getFilterSeries(attributeData,this.dataSource).then((attributeDto: AttributesDto)=>{\n        if(clearSeries){\n            this.seriesList = [];\n        }\n        this.seriesList.push(...attributeDto.series);\n        this.totalSeriesLength = attributeDto.totalRecords;\n\n        //AXE-I6556\n        //Set the formObject captured by task history feature (basically default option selection)\n        const url: string = window.location.href;\n        if ((url.includes(\"container\") || url.includes(\"web.axonator.com\") || url.includes(\"localhost:4201\"))) {\n            const urlParams = new URLSearchParams(window.location.search);\n            const fot = urlParams.get('name');\n            const fid = urlParams.get('fid');\n            const foid = urlParams.get('foid');\n            if ((this.filter.searchNodes[0].expression.field.formId).toString() === fid) {\n                const expression = this.filter.searchNodes[0].expression;\n                if (expression.value && expression.value.subType === 'text-list' && Array.isArray((expression.value as any).value)) {\n                    (expression.value as any).value.push(foid);  // Adding foid to the value array\n                    (expression.value as any).hasError = false;  // Resetting any error state if applicable\n                    this.filterValueChanged();\n                } else {\n                    console.error('Expression value structure is not as expected.');\n                }\n            }\n        }\n\n        // Set data loaded true;\n        if(!this.isDataLoaded){\n            this.isDataLoaded = true;\n            this.onDataLoaded();\n        }\n        // Only notify the dashboard to refresh if this filter actually has a searchable value.\n        // Without this guard, every filter on the dashboard triggers a full chart refresh on\n        // init even when no value is selected, causing N-filters × chart-count redundant API calls.\n        if (this.expression?.value?.isSearchable) {\n            this.applyFilter();\n        }\n    }).catch((err) =>{\n        console.error('Filter attribute series api get failed.');\n        console.error(this.filter);\n\n    });\n\n  }\n\n  /**\n   * This will get called on data loaded.\n   * Get Called only first time.\n   *\n   */\n  onDataLoaded(): void{\n\n  }\n\n  /**\n   * Register panel scroll event (this is listener for mat options scroll.)\n   * We used this scroll for filter series lazy loading\n   */\n   registerPanelScrollEvent(): void {\n    // Get options panel form select directive.\n    const panel = this.selectElem.panel.nativeElement;\n\n    //Added Scroll event listener.\n    panel.addEventListener('scroll', (event) => {\n        if(this.seriesList.length < this.totalSeriesLength || !this.totalSeriesLength ){\n            // current scrolled position\n            const pos = event.srcElement.offsetHeight + event.srcElement.scrollTop;\n\n            //max scroll position\n            const max = event.srcElement.scrollHeight;\n\n            //Scrolled position and max scrolled position are same that mean scrolled reached at bottom. then load next page attribute list\n            if ((max - pos) < 2) {\n                this.pageIndex= this.pageIndex+ 1;\n                this.getSeriesList();\n            }\n        }\n    });\n  }\n\n  /**\n   * Search filter value\n   *\n   * @param searchText\n   */\n  searchTextChanged(searchText: string): void{\n    this.pageIndex = 0;\n    this.searchText = searchText;\n    this.getSeriesList(true);\n  }\n\n  addEllipsesToDisplayValue(displayValue){\n    this.toolTipValue = displayValue;\n    this.displayValue = displayValue;\n    var words = this.expression.field.label.split(\" \");\n\n    if(words.length > 2){\n        if(words.length > 3){\n            this.displayValue = words.slice(0, 3).join(' ') + '...';\n            // const valueWidth = document.querySelector('.filter_'+this.filter.id+' .mat-select-value') as Element;\n            // const valueSpanWidth = valueWidth.querySelector('span') as Element;\n            // if(valueWidth.clientWidth > valueSpanWidth.clientWidth){\n            //     if(words.length > 4){\n            //         this.displayValue = words.slice(0, 4).join(' ') + '...';\n            //     }\n            //     else{\n            //         this.displayValue = words.slice(0, 4).join(' ');\n            //     }\n            // }\n        }\n        else{\n            this.displayValue = words.slice(0, 3).join(' ');\n        }\n    }\n  }\n\n\n}\n","<p>common-filter works!</p>\n","<div class=\"filter-search\" [ngClass]=\"{'search-global-border' : showSearchBox}\">\n    <button (click)=\"openSearchBox()\" class=\"icon-btn\"> <mat-icon [ngClass]=\"{'search-icon' : showSearchBox}\" [svgIcon]=\"'heroicons_solid:search'\"></mat-icon></button>\n    <input  #searchBox (keydown)=\"$event.stopPropagation();\"  id=\"global-field-search\" autocomplete=\"off\" placeholder=\"Search...\" (keyup)=\"search()\"  [(ngModel)]=\"searchText\" matInput class=\"search-bar chart-title\"  [style.width]=\"!showSearchBox ? '0' : '100%'\" />\n    <mat-icon (click)=\"clearSearchText()\" *ngIf=\"showSearchBox\" class=\"clear_icon cursor-pointer\">clear</mat-icon>\n</div>\n","import { Component, Input, OnInit, Output, EventEmitter, ElementRef, ViewChild } from '@angular/core';\n\n@Component({\n    selector: 'axo-search-bar',\n    templateUrl: './axo-search-bar.component.html',\n    styleUrls: ['./axo-search-bar.component.scss']\n})\nexport class AxoSearchBarComponent implements OnInit {\n    //<-----------(View Child)--------------->\n    @ViewChild('searchBox') searchElement: ElementRef;\n    // <-------- (Inputs) ------------------->\n    @Input() searchText:string = ''\n\n    //<-----------(Outputs) ----------------->\n    @Output() searchTextChanged:EventEmitter<string> = new EventEmitter<string>();\n\n    // <---------------( component variable)------------>\n    showSearchBox:boolean= false;\n\n    constructor() { }\n\n    ngOnInit(): void {\n    }\n    openSearchBox(): void{\n        this.showSearchBox = true;\n        this.searchElement.nativeElement.focus();\n    }\n\n    /**\n     * Clear Search text\n     */\n    clearSearchText(): void{\n        this.searchText = ''\n        this.showSearchBox = false;\n        this.searchTextChanged.emit(this.searchText);\n    }\n\n    /**\n     * Search Text\n     */\n    search(): void{\n        this.searchTextChanged.emit(this.searchText);\n    }\n\n}\n","<div class=\"filter-buttons\">\n    <div class=\"flex gap-0 items-center justify-between w-full\">\n        <ng-container *ngIf=\"isFilterValue; else isFilterValueEmpty\">\n            <button (click)=\"clearAllValue.emit()\" class=\"light-btn axo-font\">\n                Clear All\n            </button>\n            <div class=\"flex items-center \">\n                <button class=\"light-btn axo-font\" (click)=\"closeFilter.emit()\">Close</button>\n                <button class=\"link-btn axo-font\" (click)=\"applyFilter.emit()\">\n                    Apply\n                </button>\n            </div>\n\n        </ng-container>\n        <ng-template #isFilterValueEmpty>\n            <div class=\"text-center\">\n                No Records Found\n            </div>\n        </ng-template>\n    </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'lib-filter-footer',\n  templateUrl: './filter-footer.component.html',\n  styleUrls: ['./filter-footer.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class FilterFooterComponent implements OnInit {\n  @Input() isFilterValue: boolean;\n  @Output() clearAllValue = new EventEmitter<any>();\n  @Output() applyFilter = new EventEmitter<any>();\n  @Output() closeFilter = new EventEmitter<any>();\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"fields flex\">\n    <mat-form-field appearance=\"none\">\n        <mat-select\n            class=\"multi-select-dropdown\"\n            [placeholder]=\"expression.field.label\"\n            [matTooltip]=\"expression.field.label\"\n            [(ngModel)]=\"expressionValue.value\"\n            (selectionChange)=\"filterValueChanged()\"\n            panelClass=\"multi-select-panel\"\n            #singleSelectFilter\n        >\n            <!-- Search bar for filter value   -->\n            <axo-search-bar\n                [searchText]=\"searchText\"\n                (searchTextChanged)=\"searchTextChanged($event)\"\n            ></axo-search-bar>\n\n            <ng-container [ngSwitch]=\"expression.field.widgetSubType\">\n                <!-- If filter widget sub-type is toggle -->\n                <div *ngSwitchCase=\"widgetSubType.toggle\">\n                    <ng-container>\n                        <mat-option #matOption class=\"py-2\" [value]=\"1\"> Yes </mat-option>\n                        <mat-option #matOption class=\"py-2\" [value]=\"0\"> No </mat-option>\n                    </ng-container>\n                </div>\n                <!-- Default dropdown -->\n                <div *ngSwitchDefault>\n                    <ng-container *ngFor=\"let series of seriesList\">\n                        <mat-option\n                            #matOption\n                            class=\"py-2\"\n                            [matTooltip]=\"series\"\n                            [value]=\"series\"\n                        >\n                            {{ series }}\n                        </mat-option>\n                    </ng-container>\n                </div>\n            </ng-container>\n            <!-- this option is for opening the dropdown even if series is empty -->\n            <mat-option class=\"hidden\"></mat-option>\n            <!-- Filter dropdown footer -->\n            <lib-filter-footer\n                [isFilterValue]=\"seriesList && seriesList.length\"\n                (clearAllValue)=\"clearAllValue()\"\n                (applyFilter)=\"applyFilter()\"\n                (closeFilter)=\"singleSelectFilter.close()\"\n            >\n            </lib-filter-footer>\n        </mat-select>\n        <mat-icon class=\"down-arrow\" [svgIcon]=\"'axo_arrow'\"></mat-icon>\n    </mat-form-field>\n</div>\n","import { AxExpTextValue } from '../../enlighten-lib/ax-expression/ax-exp-text';\nimport { Component, OnInit, SimpleChanges, OnChanges } from '@angular/core';\nimport { CommonFilterComponent } from '../common-filter/common-filter.component';\nimport { AxOperator } from '../../enlighten-lib/filters/ax-operator';\nimport { CommonFilterService } from '../common-filter/common-filter.service';\n\n@Component({\n  selector: 'lib-single-select-filter',\n  templateUrl: './single-select-filter.component.html',\n  styleUrls: ['./single-select-filter.component.scss']\n})\nexport class SingleSelectFilterComponent extends CommonFilterComponent implements OnInit,OnChanges {\n    //<----------< Inputs >---------------------------->\n\n    //<-----------<Outputs >--------------------------->\n\n    //<-------------(Enums )--------------------------->\n\n    //<-------------(Component Variables )------------->\n    expressionValue: AxExpTextValue;\n    stringOperators: Array<AxOperator>;\n\n    constructor(public _commonFilterService: CommonFilterService) {\n        super(_commonFilterService);\n    }\n\n    /**\n     * ngOnChanges use to change the current page object\n     */\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(changes: SimpleChanges): void {\n        super.ngOnChanges(changes); // called common life cycle hook.S\n    }\n\n    /**\n     * On init life cycle hook\n     */\n    ngOnInit(): void {\n        // Called super\n        super.ngOnInit();\n        this.expression.comparisonOperator = new AxOperator({ text: 'In', value: 'IN' });\n        this.stringOperators = AxOperator.getStringOperator();\n        this.getSeriesList();\n    }\n\n\n    /**\n     * Get called after view render\n     */\n    ngAfterViewInit(): void {\n        super.ngAfterViewInit();\n    }\n    /**\n     * Set expression value\n     *\n     * @overridden\n     */\n    setExpressionValue(): void {\n        this.expressionValue = this.expression.value ? this.expression.value as AxExpTextValue : new AxExpTextValue();\n    }\n\n    /**\n     * THis will reset Filter value.\n     *\n     * @overridden\n     */\n    resetFilter(): void {\n        this.expressionValue = new AxExpTextValue(this.defaultValue) ;\n        this.expression.value = this.expressionValue;\n    }\n\n    /**\n     * This function clear the filter value.\n     *\n     * @overridden\n     */\n    clearValue(): void {\n        this.expressionValue = new AxExpTextValue();\n        this.expression.value = this.expressionValue;\n    }\n\n    /**\n     * Set Default Value\n     *\n     * @overridden\n     */\n    setDefaultValue(): void {\n        this.defaultValue =  new AxExpTextValue(this.expressionValue);\n    }\n\n    /**\n     * Apply parent value parent value change\n     */\n    applyParentFilter(): void {\n        this.expressionValue.value = '';\n        this.pageIndex = 0;\n        this.seriesList = [];\n        this.getSeriesList();\n    }\n    /**\n     * Clear Values\n     *\n     */\n    clearAllValue(): void {\n        this.expressionValue.value = '';\n        this.filterValueChanged();\n        this.applyFilterEvent.emit();\n    }\n\n}\n","import { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AxoSearchBarComponent } from './axo-search-bar.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n\n\n@NgModule({\n  declarations: [\n    AxoSearchBarComponent\n  ],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    FormsModule,\n    MatIconModule\n  ],\n  exports:[\n    AxoSearchBarComponent\n  ]\n})\nexport class AxoSearchBarModule { }\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\n@JsonObject('user')\nexport class AxoUser {\n\n    @JsonProperty('device_type', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    deviceType:string = null;\n\n    @JsonProperty('email', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    email:string = null;\n\n    @JsonProperty('first_name', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    firstName: string = null;\n\n    @JsonProperty('id', Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    id:number = null;\n\n\n    @JsonProperty('last_name', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    lastName:string = null;\n\n    @JsonProperty('picture', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    picture:string = null;\n\n    @JsonProperty('user_id', Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    userId:number = null;\n}\n\n\n","import { AxoUser } from './../../core/user/axo-user';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { JsonConvert } from 'json2typescript';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { Subscription } from 'rxjs';\n\n@Injectable()\nexport class UserFilterService {\n    //-------------\n    appUsers: Array<any> = [];\n    userListSubscription: Subscription = null;\n\n    /**\n     * constructor\n     */\n    constructor(private _httpClient: HttpClient, private _configuration: CommonLibConfigurationService) { }\n\n    /**\n     * Get app users.\n     *\n     * @param currentPage\n     * @param pageSize\n     * @param appVersionId\n     * @param searchText\n     * @returns\n     */\n    getAppUsers(currentPage: number = 1, pageSize: number = 150, appVersionId: number, searchText: string = ''): Promise<Array<any>> {\n        const data = {\n            appVersionId: appVersionId,\n            currentPage: currentPage,\n            pagesize: pageSize\n        };\n        const formData = new FormData();\n        formData.append('app', JSON.stringify(data));\n        formData.append('name', searchText);\n        const getAppUsers = (): Promise<Array<any>> =>\n            new Promise((resolve, reject) => {\n\n                this.userListSubscription = this._httpClient.post(this._configuration.axonatorX1Url + 'getAppUsers/', formData).subscribe((response) => {\n                    \n                    this.userListSubscription = null;\n                    const jsonConvert: JsonConvert = new JsonConvert();\n                    const users = jsonConvert.deserializeArray(response['appuser'].AppUser.appusers, AxoUser);\n                    resolve(users);\n                }, reject);\n            });\n        // Task List subscription is not null then unsubscribe it and call api again\n        if(this.userListSubscription){\n            this.userListSubscription.unsubscribe();\n            return getAppUsers();\n        }else{\n            return getAppUsers();\n        }\n    }\n}\n","/**\n * Enum For meta column types\n */\nexport enum MetaColumnTypes{\n    taskStatus= 'Status',\n    taskAssignedTo= 'Assigned to',\n    taskAssignedBy= 'Assigned by',\n    taskWorkflow= 'Workflows',\n    taskCreatedDate= 'Created Date',\n    taskCompletedDate= 'Completed Date',\n    taskDueDate= 'Due Date'\n}\n\n\n/**\n * @Class MetaColumnIdentifiers\n * Return Identifier for meta column\n */\nexport class MetaColumnIdentifiers{\n    public static getMetaColumnIdentifier(metaColumnTypes: MetaColumnTypes): string{\n        switch(metaColumnTypes){\n            case MetaColumnTypes.taskStatus:\n                return 'task_status';\n            case MetaColumnTypes.taskAssignedTo:\n                return 'task_user_id';\n            case MetaColumnTypes.taskAssignedBy:\n                return 'task_assigned_by';\n            case MetaColumnTypes.taskWorkflow:\n                return 'task_workflowinstance_id';\n            case MetaColumnTypes.taskCreatedDate:\n                return 'task_created_at';\n            case MetaColumnTypes.taskCompletedDate:\n                return 'task_completed_date';\n            case MetaColumnTypes.taskDueDate:\n                return 'task_due_date'\n        }\n        return;\n    }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, ReplaySubject, of, BehaviorSubject } from 'rxjs';\nimport { map} from 'rxjs/operators';\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\nimport { User } from './user.types';\n\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserService\n{\n    userData: any;\n    private _user: ReplaySubject<User> = new ReplaySubject<User>(1);\n    private _appUsers: BehaviorSubject<Array<User>> = new BehaviorSubject<Array<User>>(null);\n\n\n    /**\n     * Constructor\n     */\n    constructor(private _httpClient: HttpClient,\n                public oidcSecurityService: OidcSecurityService)\n    {\n        this.userData = this.oidcSecurityService.getUserData();\n        this.user = this.userData;\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Accessors\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Setter & getter for user\n     *\n     * @param value\n     */\n    set user(value: User)\n    {\n        // Store the value\n        this._user.next(value);\n    }\n\n    get user$(): Observable<User>\n    {\n        return this._user.asObservable();\n    }\n\n\n    /**\n     * Getter for app users;\n     */\n    get appUsers$(): Observable<Array<User>>\n    {\n        return this._appUsers.asObservable();\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Public methods\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Get the current logged in user data\n     */\n    get(): Observable<User>\n    {\n        this.userData = this.oidcSecurityService.getUserData();\n        this._user.next(this.userData);\n        return of(this.userData);\n    }\n\n    /**\n     * Update the user\n     *\n     * @param user\n     */\n    update(user: User): Observable<any>\n    {\n        return this._httpClient.patch<User>('api/common/user', {user}).pipe(\n            map((response) => {\n                this._user.next(response);\n            })\n        );\n    }\n\n    /**\n     * Get App Users by app version Id\n     *\n     * @returns\n     */\n    getAppUsers(): Promise<any>{\n        const formData = new FormData();\n        formData.append('app', JSON.stringify({'currentPage':1,'pagesize':150,'a':4402,'v':'1.000'}));\n        return new Promise((resolve,reject)=>{\n            this._httpClient.post<any>('/getAppUsers/',formData).subscribe((response)=>{\n                this._appUsers.next(response);\n                resolve(response);\n            },reject);\n        });\n    }\n}\n","import { MetaColumnIdentifiers } from './../metaColumnTypes';\nimport { ChoiceListOption } from './../../forms/page/widgets/widget-value/choice-list-options';\nimport { UserService } from './../../core/user/user.service';\nimport { Injectable } from '@angular/core';\nimport { AxExpression } from '../../enlighten-lib/ax-expression/ax-expression';\nimport { Attribute, AttributeTypes } from '../../enlighten-lib/data-model/attribute';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { ConditionType, FilterType, ScopeType } from '../../enlighten-lib/filters/condition-type';\nimport { SearchNode } from '../../enlighten-lib/filters/search-node';\nimport { WidgetSubType, WidgetType } from '../../forms/page/common/widget-enums';\nimport { MetaColumnTypes } from '../metaColumnTypes';\nimport { User } from '../../core/user/user.types';\nimport { ExpressionValueSubType } from '../../enlighten-lib/ax-expression/exp-sub-type';\n@Injectable()\nexport class MetaColumnFilterBuilderService {\n    //<-----------------(Service Variables)----------->\n    appVersionId: number;\n\n  constructor(\n    private _userService: UserService\n  ) { }\n     /**\n      * Build Meta Column Filter by meta Column type\n      *\n      * @param MetaColumnTypes\n      * @returns\n      */\n    buildMetaColumn(metaColumnType: MetaColumnTypes,appVersionId: number): AxFilter{\n        this.appVersionId = appVersionId;\n        const _filter = this.generateFilter();\n        switch(metaColumnType){\n            case MetaColumnTypes.taskStatus:\n                return this.buildTaskStatusFilter(_filter,metaColumnType);\n            case MetaColumnTypes.taskAssignedTo:\n                return this.buildUserMetaFilter(_filter,metaColumnType);\n            case MetaColumnTypes.taskCompletedDate:\n                return this.builderGenericDateFilter(_filter,metaColumnType);\n            case MetaColumnTypes.taskCreatedDate:\n                return this.builderGenericDateFilter(_filter,metaColumnType);\n            case MetaColumnTypes.taskDueDate:\n                return this.builderGenericDateFilter(_filter,metaColumnType);\n        }\n        return;\n    }\n\n    buildAssetFormsColumn(form: any,appVersionId: number): AxFilter{\n        this.appVersionId = appVersionId;\n        const _filter = this.generateFilter();\n        return this.buildAssetFormsFilter(_filter,form);\n    }\n\n    /**\n     * Generate Attribute object by meta column type\n     *\n     * @param metaColumnType\n     * @returns\n     */\n    generateAttribute(metaColumnType: MetaColumnTypes): Attribute{\n        const attribute = new Attribute();\n        attribute.identifier = MetaColumnIdentifiers.getMetaColumnIdentifier(metaColumnType);\n        attribute.name = attribute.identifier;\n        attribute.label = metaColumnType;\n        attribute.attributeType = AttributeTypes.metaType;\n        return attribute;\n    }\n\n    generateAssetFormsAttribute(form: any): Attribute{\n        const attribute = new Attribute();\n        attribute.identifier = \"task_afoid\";\n        attribute.name = attribute.identifier;\n        attribute.label = form.name;\n        attribute.attributeType = AttributeTypes.assetType;\n        return attribute;\n    }\n\n    /**\n     * Generate Search node for meta column filter\n     *\n     * @returns\n     */\n    generateSearchNode(): SearchNode{\n        const searchNode = new SearchNode();\n        searchNode.type = ConditionType.condition;\n        return searchNode;\n\n    }\n\n    /**\n     * Generate Filter Object\n     *\n     * @returns\n     */\n    generateFilter(): AxFilter{\n        const axFilter = new AxFilter();\n        axFilter.type = FilterType.basic;\n        axFilter.scope = ScopeType.global;\n        axFilter.appVersionId = this.appVersionId;\n        return axFilter;\n\n    }\n\n\n    /**\n     * Build Task Status Filter\n     *\n     * @returns\n     */\n     buildTaskStatusFilter(filter: AxFilter,metaColumnType: MetaColumnTypes): AxFilter{\n\n        const searchNode = this.generateSearchNode();\n        const expression = new AxExpression();\n        const attribute = this.generateAttribute(metaColumnType);\n\n        const options: Array<ChoiceListOption> = [\n            {\n                value:'0',\n                label:'To Do',\n                img:'',\n                visible:true,\n            },\n            {\n                value:'8',\n                label:'Overdue',\n                img:'',\n                visible:true,\n            },\n            {\n                value:'1',\n                label:'DELIVERED',\n                img:'',\n                visible:false,\n            },\n            {\n                value:'2',\n                label:'Done',\n                img:'',\n                visible:true,\n            },\n            {\n                value:'3',\n                label:'Rejected',\n                img:'',\n                visible:false,\n            },\n            {\n                value:'4',\n                label:'UNASSIGNED',\n                img:'',\n                visible:false\n            },\n            {\n                value:'5',\n                label:'FAILED',\n                img:'',\n                visible:false,\n            },\n            {\n                value:'6',\n                label:'Cancelled',\n                img:'',\n                visible:false,\n            },\n        ];\n        attribute.choices = options;\n        attribute.widgetType = WidgetType.choiceList;\n        attribute.widgetSubType = WidgetSubType.imageFixedList;\n        attribute.formId = 0;\n        expression.field = attribute;\n        searchNode.expression = expression;\n        filter.searchNodes.push(searchNode);\n        return filter;\n    }\n\n\n    /**\n     * Generate Task Assign To filter\n     *\n     * @param filter\n     * @param metaColumnType\n     * @returns\n     */\n    buildUserMetaFilter(filter: AxFilter,metaColumnType: MetaColumnTypes): AxFilter{\n        const searchNode = this.generateSearchNode();\n        const expression = new AxExpression();\n        const attribute = this.generateAttribute(metaColumnType);\n        attribute.choices =[];\n        attribute.widgetType = WidgetType.choiceList;\n        attribute.widgetSubType = WidgetSubType.userList;\n        attribute.formId = 0;\n        expression.field = attribute;\n        expression.value = expression.getExpressionValueObject(ExpressionValueSubType.textList);\n        searchNode.expression = expression;\n        filter.searchNodes.push(searchNode);\n        return filter;\n    }\n\n    buildAssetFormsFilter(filter: AxFilter,form: any): AxFilter{\n        const searchNode = this.generateSearchNode();\n        const expression = new AxExpression();\n        const attribute = this.generateAssetFormsAttribute(form);\n        attribute.choices =[];\n        attribute.widgetType = WidgetType.choiceList;\n        attribute.widgetSubType = WidgetSubType.assetObjectList;\n        attribute.formId = form.formId;\n        expression.field = attribute;\n        expression.value = expression.getExpressionValueObject(ExpressionValueSubType.textList);\n        searchNode.expression = expression;\n        filter.searchNodes.push(searchNode);\n        return filter;\n    }\n    /**\n     * Generate User filter\n     *\n     * @param users\n     * @returns\n     */\n    builderChoiceListOptionsForUsers(users: Array<User>): Array<ChoiceListOption>{\n        const choiceListOptions: Array<ChoiceListOption> = [];\n            users.forEach(((user)=>{\n                const choiceListOption = new ChoiceListOption();\n                choiceListOption.img = user.avatar;\n                choiceListOption.value = user.id;\n                choiceListOption.label = user.firstName+' '+user.lastName;\n                choiceListOptions.push(choiceListOption);\n            }));\n        return choiceListOptions;\n    }\n\n    /**\n     * Generate generic date filter.\n     *\n     * @param filter\n     * @param metaColumnType\n     * @returns\n     */\n    builderGenericDateFilter(filter: AxFilter,metaColumnType: MetaColumnTypes): AxFilter{\n        const searchNode = this.generateSearchNode();\n        const expression = new AxExpression();\n        const attribute = this.generateAttribute(metaColumnType);\n        attribute.choices =[];\n        attribute.widgetType = WidgetType.dateTime;\n        attribute.widgetSubType = WidgetSubType.date;\n        attribute.formId = 0;\n        expression.field = attribute;\n        searchNode.expression = expression;\n        filter.searchNodes.push(searchNode);\n        return filter;\n    }\n\n\n}\n","export enum FilterSourceElementType {\n    tabular = 1,\n    graphical = 2,\n    notApplicable = 3\n}","export enum GeneralFilterType {\n    filters = 1,\n    category = 2\n}\n\nexport enum NumberOperatorIndex {\n    equalTo = 0,\n    between = 3,\n    moreThan = 5,\n    lessThan = 6\n}\n","\nimport { AxFilter } from '../filters/ax-filter';\n\n/*** This interface is implemented by all the property components and\n  * used by component factory to render properties dynamically.\n  */\nexport interface IPropertyComponent {\n\tpropertyData: any;\n    filters?: Array<AxFilter>;\n}\n\nexport enum IPropertyType {\n\telementProperty = 1,\n\ttabularProperty = 2,\n    filterProperty = 3,\n    filterCategoryProperty = 4\n}\n\n\n","import { AxElement } from './ax-element';\n\nexport abstract class Property{\n    type: number;\n    /* Here we can write common methods of element properties */\n}\n","import { IPropertyType } from '../../enlighten-lib/report/iproperty.component';\nimport { Property } from '../elements/Property';\nimport { AxFilter } from '../filters/ax-filter';\n\nexport class FilterProperty extends Property{\n    filter: AxFilter;\n    constructor(filterProperty?: FilterProperty) {\n        super();\n        this.type = IPropertyType.filterProperty;\n    }\n}\n","import { Widget } from '../../forms/page/widgets/widget';\nexport class Utils {\n    public color: string;\n    constructor(utils?: Utils) {\n        this.color = this.getRandomColor();\n    }\n\n    /**\n     * This is used to create widget map.So we can get widget by identifier.\n     *\n     * @param widgets\n     * @returns\n     */\n    static createWidgetMap(widgets: Array<Widget>): Map<string,Widget>{\n        const widgetMap: Map<string,Widget> = new Map<string,Widget>();\n        widgets.forEach((widget)=>{\n            widgetMap.set(widget.identifier,widget);\n        });\n        return widgetMap;\n    }\n    /****\n   * getRandomColor = this is use for generating random  color for chart series\n   */\n    getRandomColor(): string {\n        const color = Math.floor(0x1000000 * Math.random()).toString(16);\n        return '#' + ('000000' + color).slice(-6);\n    }\n\n}\n","export class Aggregate {\nshowSum: boolean;\nshowMax: boolean;\nshowMin: boolean;\nshowAvg: boolean;\nshowUniqueCount: boolean;\n    constructor(aggregate?: Aggregate){\n        this.showSum= aggregate && aggregate.showSum || false;\n        this.showMax= aggregate && aggregate.showMax || false;\n        this.showMin= aggregate && aggregate.showMin || false;\n        this.showAvg= aggregate && aggregate.showAvg || false;\n        this.showUniqueCount= aggregate && aggregate.showUniqueCount || false;\n    }\n}\n","export class ValueFormatting{\n    currency: string;\n    percentage: boolean;\n    decimalPrecision?: number;\n    date: string;\n    constructor(valueFormatting?: ValueFormatting){\n        this.currency = valueFormatting && valueFormatting.currency || '';\n        this.decimalPrecision=valueFormatting && valueFormatting.decimalPrecision || 0;\n        this.percentage=valueFormatting && valueFormatting.percentage || false;\n        this.date = valueFormatting && valueFormatting.date || '';\n    }\n}\n","export enum OrderByType{\n    ascending=1,\n    descending=2,\n    none=3\n}\n","export class FontStyle {\n    textFontStyle?: Array<string>;\n\tfontWeight?: string;\n    isItalicFont?: boolean;\n    textDecoration?: string;\n\n\tconstructor(fontStyle?: FontStyle) {\n\n        if(fontStyle){\n\t\t\tthis.fontStyle(fontStyle);\n\t\t}\n\t\telse{\n\t\t\tthis.newFontStyle();\n\t\t}\n\t}\n\n    //function to create new fontStyle\n\tnewFontStyle(): void{\n\t\tthis.textFontStyle = [''];\n        this.fontWeight = 'normal';\n        this.isItalicFont = false;\n        this.textDecoration = '';\n\t}\n\t/**function to create FontStyle object with existing values\n\t*\n\t*@param Font\n\t*/\n\tfontStyle(fontStyle: FontStyle): void{\n\t\tthis.textFontStyle = fontStyle.textFontStyle;\n        this.fontWeight = fontStyle.fontWeight;\n        this.isItalicFont = fontStyle.isItalicFont;\n        this.textDecoration = fontStyle.textDecoration;\n\t}\n}\n","import { FontStyle } from './fontStyle';\nexport class Title {\n    text: string;\n    textColor: string;\n    textStyle: string;\n    position: any;\n    textSize: string;\n    isVisible: boolean;\n\tfontStyle: FontStyle;\n    constructor(title?: Title) {\n        this.textStyle = title && title.textStyle || 'Inter var';\n        this.textSize = title && title.textSize || '20';\n        this.position = title && title.position || 'left';\n        this.text = title && title.text || '';\n        this.textColor = title && title.textColor || '';\n        this.fontStyle = title && title.fontStyle || new FontStyle;\n\n    }\n}\n","export class ConditionalFormatting {\n\n\tcolorType: string;\n\tcolorFormatting: string;\n\tformatRule: string;\n\n\tconstructor(){\n\t\tthis.colorType = '';\n\t\tthis.colorFormatting = '';\n\t\tthis.formatRule = '';\n\n\t}\n}\n","export class Label {\n\ttext: string;\n\tposition: string;\n\tenable: boolean = false;\n\tconstructor(label?: Label) {\n\t}\n}\n","import { FontStyle } from './fontStyle';\nexport class Legend {\n\n\n\ttextStyle: string = '';\n\tposition: any = 'bottom';\n\tenable: boolean = true;\n\tdisplayUnit: string = '';\n\ttextColor: string = '';\n\ttextSize: string = '12';\n    fontStyle?: FontStyle;\n\n\n\tconstructor(legend?: Legend) {\n        if(legend){\n            this.legend(legend)\n        }\n        else{\n            this.newLegend();\n        }\n\n\t}\n\n    legend(legend: Legend){\n        this.textStyle=legend.textStyle;\n        this.position=legend.position;\n        this.fontStyle = legend.fontStyle? new FontStyle(legend.fontStyle) : new FontStyle;\n    }\n\n    newLegend(){\n        this.textStyle='Inter var';\n\t\tthis.position='bottom';\n        this.fontStyle = new FontStyle;\n    }\n}\n","export class Shadow {\n\n\tenable: boolean;\n\tcolor: string;\n\n\tconstructor(shadow?: Shadow){\n\t\tthis.enable=shadow && shadow.enable || false;\n\t\tthis.color=shadow && shadow.color || '';\n\t}\n}\n","import { Shadow } from './shadow';\n\nexport class Border {\n\n\tcolor: string;\n\tborderStyle: string;\n\twidth: number;\n\tshadow: Shadow;\n    borderRadius: number;\n\n\tconstructor(border?: Border) {\n\t\tthis.color = border && border.color ||'black';\n\t\tthis.borderStyle =border && border.borderStyle || 'solid';\n\t\tthis.width = border && border.width || 0;\n\t\tthis.shadow= border && new Shadow(border.shadow) || new Shadow();\n        this.borderRadius= border && border.borderRadius || 0;\n\t}\n\n\t/**\n\t * this function manipulate the value of Border for tabular report\n\t */\n\tpublic ManipulateObjectForTabular(border?: Border): void{\n\t\tthis.width = border && border.width || 1;\n\t\tthis.color = border && border.color || '#D9D5D6';\n\t}\n}\n","export class Font {\n\tsize: number = 0;\n\tfamily: string = '';\n\tcolor: string = '';\n\tstyle: string = '';\n\n\tconstructor(font?: Font){\n\t\tif(font){\n\t\t\tthis.font(font);\n\t\t}\n\t\telse{\n\t\t\tthis.newFont();\n\t\t}\n\t}\n\n\t//function to create new font\n\tnewFont(): void{\n\t\tthis.size= 12;\n\t\tthis.family= 'Inter var';\n\t\tthis.color= '';\n\t\tthis.style= '';\n\t}\n\t/**function to create Font object with existing values\n\t*\n\t*@param Font\n\t*/\n\tfont(font: Font): void{\n\t\tthis.size=font.size ;\n\t\tthis.family=font.family ;\n\t\tthis.color=font.color;\n\t\tthis.style=font.style;\n\t}\n}\n","import { Border } from './border';\nimport { Font } from './font';\nimport { Shadow } from './shadow';\n\nexport class Style {\n\n\theight: number = 0;\n\twidth: number = 0;\n\tborder: Border = new Border();\n\tbackgroundColor: string = '';\n\tshadow: Shadow = new Shadow();\n\tfont: Font = new Font();\n\n\tconstructor(style?: Style) {}\n\t}\n","import { AxoUtils } from '../../axo-utils/axo-utils';\nimport{ AxFilter } from './ax-filter';\nimport { FilterType } from './condition-type';\nimport { GeneralFilterType } from './general-filter-type';\nimport { GridSterProperties } from './gridster-properties';\nimport { IAxFilter } from './iax-filter';\nexport enum IPropertyType {\n\telementProperty = 1,\n\ttabularProperty = 2,\n    filterProperty = 3,\n}\nexport class FilterCategory implements IAxFilter{\n    id: number;\n    guid: string;\n    name: string;\n    appVersionId: number;\n    description?: string;\n    filters: Array<AxFilter> = [];\n    isDeleted?: boolean;\n    isSelected?: boolean;\n    gridProperties?: GridSterProperties;\n    isSearchable?: boolean;\n    generalFilterType: GeneralFilterType;\n    isVisible: boolean = true;\n    isDefault: boolean;\n    isCategory: boolean = true;\n\n    constructor(filterCategory?: FilterCategory){\n        if(filterCategory){\n            this.filterCategory(filterCategory);\n           }else{\n            this.newFilterCategory();\n           }\n    }\n\n    public get generalFilterTypes(): typeof GeneralFilterType {\n        return GeneralFilterType;\n    }\n    /**function to create categories object with existing values\n    *\n    *@param FilterCategory\n    *\n    */\n    static createCategories(categories: Array<FilterCategory> ): Array<FilterCategory>{\n        const _categories: Array<FilterCategory> = [];\n        if(categories){\n            categories.forEach((category) => {\n                _categories.push(new FilterCategory(category));\n            });\n        }\n        return _categories;\n    }\n\n    /**\n     * Set by default FilterCategory object\n     */\n    newFilterCategory(): void{\n        this.guid = AxoUtils.guid();\n        this.id = 0;\n        this.name = '';\n        this.description = '';\n        this.filters = [];\n        this.appVersionId =  null;\n        this.isDeleted = false;\n        this.isSelected = false;\n        this.gridProperties = new GridSterProperties();\n        this.isSearchable = true;\n        this.generalFilterType= this.generalFilterTypes.category;\n        this.isVisible=true;\n        this.isDefault=false;\n    }\n\n   /**\n    * function to create filters object with existing values\n    *\n    * @param filterCategory\n    */\n    filterCategory(filterCategory: FilterCategory): void{\n        this.guid =  filterCategory.guid ? filterCategory.guid : AxoUtils.guid();\n        this.id =  filterCategory.id;\n        this.name =   filterCategory.name ;\n        this.description =   filterCategory.description ;\n        this.filters = filterCategory.isDefault && filterCategory.filters ?  filterCategory.filters : [];\n        this.appVersionId =   filterCategory.appVersionId ;\n        this.isDeleted =  filterCategory.isDeleted ;\n        this.isSelected =  filterCategory.isSelected ;\n        this.gridProperties =  filterCategory.gridProperties ;\n        this.isSearchable = true;\n        this.generalFilterType= this.generalFilterTypes.category;\n        this.isVisible= filterCategory.isVisible ;\n        this.isDefault= filterCategory.isDefault ;\n    }\n\n\n\n\n}\n","import { Type } from '@angular/core';\nimport { AxoUtils } from '../../axo-utils/axo-utils';\nimport { Title } from '../report/graphical-report/chart/title';\nimport { AxFilter } from '../filters/ax-filter';\nimport { FilterCategory } from '../filters/filter-category';\n\nexport abstract class AxElement  {\n    id: number;\n    guid: string;\n    type: string;\n    apiType: string;\n    height: number;\n    width: number;\n\txPosition: number;\n\tyPosition: number;\n    isSelected: boolean;\n    subType: any;\n    isDeleted: boolean;\n    backgroundColor: string;\n    title: Title;\n    // border:Border;\n    border: string;\n\tborderColor: string;\n\tdataLabelColor: string;\n    filters?: Array<AxFilter>;\n    categories?: Array<FilterCategory>;\n    abstract component: Type<any>;\n\n    /**\n     * Constructor\n     */\n    constructor(axElement?: AxElement) {\n\n        this.guid = axElement && axElement.guid || AxoUtils.guid();\n        this.id = axElement && axElement.id || 0;\n        this.isSelected = false;\n        this.isDeleted = axElement && axElement.isDeleted || false;\n        this.guid = axElement && axElement.guid || AxoUtils.guid();\n        this.type = axElement && axElement.type || '';\n        this.height = axElement && axElement.height || 325;\n        this.width = axElement && axElement.width || 325;\n        this.xPosition = axElement && axElement.xPosition || 50;\n        this.yPosition = axElement && axElement.yPosition || 200;\n        this.backgroundColor = axElement && axElement.backgroundColor || '#FFFFFF';\n        this.title = axElement && new Title(axElement.title) || new Title();\n        this.borderColor = axElement && axElement.borderColor || '#000000';\n        this.border = axElement && axElement.border || 'none';\n\t\tthis.dataLabelColor = axElement && axElement.dataLabelColor || '#000000';\n        this.filters = axElement && AxFilter.createFilters(axElement.filters) || [];\n        this.categories = axElement && FilterCategory.createCategories(axElement.categories) || [];\n\n    }\n\n    updateTitle(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\ttitle: {\n\t\t\t\ttext: this.title.text,\n\t\t\t\talign: this.title.position,\n\t\t\t\tstyle: {\n\t\t\t\t\tcolor: this.title.textColor,\n\t\t\t\t\tfontFamily: this.title.textStyle,\n\t\t\t\t\tfontSize: this.title.textSize,\n\t\t\t\t},\n\t\t\t}\n\t\t});\n\t}\n    // Update chart data labels\n\tupdateDataLabels(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tdataLabels: {\n\n\t\t\t\t// formatter: function(val, opts) {\n\t\t\t\t// \treturn parseFloat(val).toFixed(this.decimalPrecision);\n\t\t\t\t// }\n\t\t\t\tstyle: {\n\t\t\t\t\tcolors: [this.dataLabelColor],\n\t\t\t\t},\n\t\t\t}\n\t\t});\n\t}\n}\n","\nimport { Title } from './title';\nimport { ConditionalFormatting } from './conditional-formatting';\nimport { Label } from './label';\nimport { Legend } from './legend';\nimport { Style } from './style';\nimport { AxElement } from '../../../elements/ax-element';\nimport ApexCharts from 'apexcharts';\nimport { AxFilter } from '../../../filters/ax-filter';\nimport { ResizeEvent } from 'angular-resizable-element';\n\nexport abstract class Chart extends AxElement {\n\tguid: string;\n\tconditionalFormatting: ConditionalFormatting;\n\tshowDataLabels: boolean;\n\tdataLabelColor: string;\n\theader: Label;\n\tstyle: Style;\n\tlegend: Legend;\n\tbackgroundColor: string;\n\ttitle: Title;\n\ttype: string;\n\tshowStack: boolean;\n\tstackType: string;\n\tdecimalPrecision?: any;\n\tfilters: Array<AxFilter>;\n\tsqlQuery: string;\n\tisCustomElement: boolean;\n\tisMultiSeries: boolean;\n\n\tconstructor(chart?: Chart) {\n\t\tsuper(chart);\n\t\tif(chart){\n\t\t\tthis.chart(chart);\n\t\t}else{\n\t\t\tthis.newChart();\n\t\t}\n\t}\n\t// Update chart title property\n\tupdateTitle(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\ttitle: {\n\t\t\t\ttext: this.title.text,\n\t\t\t\talign: this.title.position,\n\t\t\t\tstyle: {\n\t\t\t\t\tcolor: this.title.textColor,\n\t\t\t\t\tfontFamily: this.title.textStyle,\n\t\t\t\t\tfontSize: this.title.textSize,\n\t\t\t\t},\n\t\t\t}\n\t\t});\n\t}\n\t// Update chart legend property\n\tupdateLegend(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tlegend: {\n\t\t\t\tposition: this.legend.position,\n\t\t\t\tshow: this.legend.enable,\n\t\t\t\tfontSize: this.legend.textSize,\n\t\t\t\tfontFamily: this.legend.textStyle,\n\t\t\t\tlabels: {\n\t\t\t\t\tcolors: this.legend.textColor,\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t// Update chart chart option property\n\tupdateChart(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tchart: {\n\t\t\t\ttype: this.subType.split('-')[0],\n\t\t\t\tbackground: this.backgroundColor,\n\t\t\t\theight: '100%',\n\t\t\t\twidth: '100%',\n\t\t\t\tstacked: this.showStack,\n\t\t\t\tredrawOnParentResize: true,\n\t\t\t}\n\t\t});\n\t}\n\n\t// Update chart data labels\n\tupdateDataLabels(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tdataLabels: {\n\t\t\t\tenabled: this.showDataLabels,\n\t\t\t\t// formatter: function(val, opts) {\n\t\t\t\t// \treturn parseFloat(val).toFixed(this.decimalPrecision);\n\t\t\t\t// }\n\t\t\t\tstyle: {\n\t\t\t\t\tcolors: [this.dataLabelColor],\n\t\t\t\t},\n\t\t\t}\n\t\t});\n\t}\n\t// Chart resize function\n\tresizeChart(event: ResizeEvent | any, apexChart: ApexCharts): void {\n\t\tthis.height = event.rectangle.height;\n\t\tthis.width = event.rectangle.width;\n\t\t/* Update x and y position if user resize from left and top position */\n\t\tif (event.edges.top) {\n\t\t\tthis.yPosition = event.edges.top < 0 ? 0 : event.edges.top;\n\t\t}else if (event.edges.left) {\n\t\t\tthis.xPosition = event.edges.left < 0 ? 0 : event.edges.left;\n\t\t}\n\t}\n\t/**\n\t *Initalize object with  default value.\n\t */\n\tprivate newChart(): void{\n\t\tthis.conditionalFormatting = new ConditionalFormatting();\n\t\tthis.showDataLabels =  false;\n\t\tthis.header = new Label();\n\t\tthis.style = new Style();\n\t\tthis.legend =  new Legend();\n\t\tthis.title =  new Title();\n\t\tthis.type ='chart-element';\n\t\tthis.showStack = false;\n\t\tthis.backgroundColor = '#FFFFFF';\n\t\tthis.decimalPrecision = 0;\n\t\tthis.filters = [];\n\t\tthis.dataLabelColor =  '#000000';\n\t}\n\n\t/**\n\t * Initalize object with value.\n\t *\n\t * @param chart\n\t */\n\tprivate chart(chart: Chart): void{\n\t\tthis.conditionalFormatting = chart.conditionalFormatting;\n\t\tthis.showDataLabels = chart.showDataLabels ;\n\t\tthis.header = new Label(chart.header) ;\n\t\tthis.style = new Style(chart.style) ;\n\t\tthis.legend = new Legend(chart.legend) ;\n\t\tthis.title = new Title(chart.title);\n\t\tthis.type = chart.type ;\n\t\tthis.showStack = chart.showStack;\n\t\tthis.stackType = chart.stackType;\n\t\tthis.isMultiSeries = chart.isMultiSeries;\n\t\tthis.backgroundColor = chart.backgroundColor ;\n\t\tthis.decimalPrecision = chart.decimalPrecision;\n\t\tthis.dataLabelColor = chart.dataLabelColor;\n\t\tthis.sqlQuery = chart.sqlQuery;\n\t\tthis.isCustomElement = chart.isCustomElement;\n\t\tthis.filters =  AxFilter.createFilters(chart.filters);\n\t}\n\n}\n","import { AttributeData } from '../../../fields/attribute-data';\n\nexport class Matrix {\n\tattributes: Array<AttributeData> = [];\n\tconstructor(matrix?: Matrix){\n\t\tif(matrix){\n           this.matrix(matrix);\n\t\t}\n\t\telse{\n           this.newMatrix();\n\t\t}\n\t}\n\n\t//function to create matrix object\n\tnewMatrix(): void{\n\t\tthis.attributes=[];\n\t}\n\n\t/**function to create matrix object with existing values\n\t*\n\t*@param Matrix\n\t*/\n\tmatrix(matrix: Matrix): void{\n       matrix.attributes.forEach((attribute) => {\n\t\t   this.attributes.push(new AttributeData(attribute));\n\n\t   });\n\t}\n}\n","import { IPropertyType } from '../../enlighten-lib/report/iproperty.component';\nimport { AxElement } from '../elements/ax-element';\nimport { Property } from '../elements/Property';\nimport { Page } from '../report/graphical-report/page/page';\n\nexport class ElementProperty extends Property{\n    element: AxElement;\n    page: Page;\n    constructor(elementProperty?: ElementProperty) {\n        super();\n        this.type = IPropertyType.elementProperty;\n        this.element=elementProperty && elementProperty.element || null;\n        this.page=elementProperty && elementProperty.page || null;\n    }\n}\n","import ApexCharts from 'apexcharts';\nimport { Property } from '../../../elements/Property';\nimport { ElementProperty } from '../../../property/element-property';\n\nexport class ChartProperty extends ElementProperty {\n    apexChart: ApexCharts | any;\n\n}\n","<ng-container [ngSwitch]=\"elementType\">\n\n    <!-- Left Menu View GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.LeftMenuViewLoader\">\n        <div class=\"ghost-loader-left-drawer-items\" *ngFor=\"let item of [].constructor(11)\"></div>\n    </ng-container>\n\n    <!-- Main Header GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.MainHeaderLoader\">\n        <div class=\"ghost-loader-header h-12\">\n            <div class=\"left-wrapper\">\n                <div class=\"btn-ghostloader w-32\" *ngFor=\"let item of [].constructor(2)\"></div>\n            </div>\n            <div class=\"right-wrapper\">\n                <div class=\"btn-ghostloader w-7\" *ngFor=\"let item of [].constructor(3)\"></div>\n            </div>\n        </div>\n    </ng-container>\n    <!-- Dataview selection header GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.SubHeaderLoader\">\n        <div class=\"ghost-loader-subheader h-12 min-h-12\">\n            <div class=\"left-wrapper\">\n                <div class=\"btn-ghostloader w-32\"></div>\n            </div>\n            <div class=\"right-wrapper\">\n            </div>\n        </div>\n    </ng-container>\n    <!-- Formview header GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.FormHeaderLoader\">\n        <div class=\"ghost-loader-formheader h-12 min-h-12\">\n            <div class=\"left-wrapper\">\n                <div class=\"btn-ghostloader w-40\"></div>\n            </div>\n        </div>\n    </ng-container>\n    <!-- Canvas header GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.CanvasHeaderLoader\">\n        <div class=\"ghost-loader-canvasheader h-12 min-h-12\">\n            <div class=\"left-wrapper\">\n                <div class=\"btn-ghostloader h-10 w-60\"></div>\n            </div>\n        </div>\n    </ng-container>\n    <!-- Dataview selection header GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.DataViewSelectionHeaderLoader\">\n        <div class=\"ghost-loader-data-view-header-buttons\">\n            <div class=\"left-wrapper\">\n                <div class=\"btn-ghostloader w-40\"></div>\n                <div class=\"btn-ghostloader w-7\"></div>\n                <div class=\"btn-ghostloader w-7\"></div>\n                <div class=\"btn-ghostloader w-7\"></div>\n            </div>\n            <div class=\"right-wrapper\">\n                <div class=\"btn-ghostloader w-24\"></div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Filter View GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.FilterViewLoader\">\n        <div class=\"flex justify-between\">\n            <div class=\"ghost-loader-data-view-filter\">\n                <div class=\"btn-ghostloader w-24 rounded-full\" *ngFor=\"let item of [].constructor(4)\"></div>\n            </div>\n            <div class=\"ghost-loader-data-view-filter-right\">\n                <div class=\"btn-ghostloader w-32 rounded-full\"></div>\n                <div class=\"btn-ghostloader w-32 rounded-full\"></div>\n                <div class=\"btn-ghostloader w-10\"></div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- List View / Table View GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.ListViewLoader\">\n        <div class=\"list-view-loader\">\n            <div class=\"ghostloaderwrapper overflow-hidden\">\n                <table class=\"w-full ghosttable\">\n                    <tr class=\"h-14 table-row-header\">\n                        <ng-container *ngFor=\"let item of [].constructor(11)\">\n                            <div class=\"ghosttablecell\"><div class=\"tablecellitem\"></div></div>\n                        </ng-container>\n                    </tr>\n                    <ng-container *ngFor=\"let item of [].constructor(8)\">\n                        <tr class=\"h-14\">\n                            <ng-container *ngFor=\"let item of [].constructor(11)\">\n                                <div class=\"ghosttablecell\"><div class=\"tablecellitem\"></div></div>\n                            </ng-container>\n                        </tr>\n                    </ng-container>\n                </table>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Pagination View GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.PaginationViewLoader\">\n        <div class=\"ghost-loader-data-list-pagination\">\n            <div class=\"btn-ghostloader w-36\"></div>\n            <div class=\"btn-ghostloader w-20\"></div>\n            <div class=\"btn-ghostloader w-7\"></div>\n            <div class=\"btn-ghostloader w-7\"></div>\n        </div>\n    </ng-container>\n\n    <!-- Board View Column GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.BoardViewColumnLoader\">\n          <div class=\"ghost-loader-board-view\">\n            <div class=\"ghost-loader-board-view-column\" *ngFor=\"let item of [].constructor(4)\">\n            </div>\n        </div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"GhostLoaderType.BoardViewColumnTitleLoader\">\n        <div class=\"ghost-loader-board-view-title w-32 rounded-full\"></div>\n    </ng-container>\n\n    <!-- Card Chart GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.CardChartLoader\">\n        <div class=\"ghost-loader-card-chart\">\n            <div class=\"ghost-loader-chart-body\">\n                <div class=\"ghost-loader-chart-body-row w-36\">\n                </div>\n                <div class=\"ghost-loader-chart-body-row w-16\">\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Card Details GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.CardDetailLoader\">\n        <div class=\"ghost-loader-card-detail\">\n            <div class=\"ghost-loader-card-header\">\n                <div class=\"ghost-loader-card-title\"></div>\n                <div class=\"ghost-loader-card-price\"></div>\n            </div>\n            <div class=\"ghost-loader-card-body\">\n                <div class=\"ghost-loader-card-description\"></div>\n                <div class=\"ghost-loader-card-metadata\">\n                    <div class=\"ghost-loader-metadata-item\" *ngFor=\"let item of [].constructor(4)\"></div>\n                </div>\n                <div class=\"ghost-loader-card-footer\">\n                    <div class=\"ghost-loader-footer-button\"></div>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n\n    <!-- Text Chart GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.TextChartLoader\">\n        <div class=\"ghost-loader-text-chart\">\n            <div class=\"ghost-loader-chart-body\">\n                <div class=\"ghost-loader-chart-body-row\" *ngFor=\"let item of [].constructor(15)\">\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Line Chart GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.LineChartLoader\">\n        <div class=\"ghost-loader-line-chart\">\n            <div class=\"ghost-loader-chart-filters\">\n                <div class=\"btn-ghostloader w-24 rounded-full\" *ngFor=\"let item of [].constructor(2)\"></div>\n            </div>\n            <div class=\"ghost-loader-chart-body\">\n                <div class=\"ghost-loader-chart-body-row\">\n                    <div class=\"ghost-loader-chart-body-col flex-col\">\n                        <div class=\"ghost-loader-chart-value\" *ngFor=\"let item of [].constructor(12)\"></div>\n                    </div>\n                    <div class=\"ghost-loader-chart-body-col w-full\">\n                        <div class=\"ghost-loader-chart-body-line\"></div>\n                    </div>\n                </div>\n                <div class=\"ghost-loader-chart-body-row\">\n                    <div class=\"ghost-loader-chart-value bg-transparent-color\"></div>\n                    <div class=\"ghost-loader-chart-value\" *ngFor=\"let item of [].constructor(12)\"></div>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Vertical Bar Chart GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.BarChartLoaderVertical\">\n        <div class=\"ghost-loader-bar-chart\">\n            <div class=\"ghost-loader-chart-filters\">\n                <div class=\"btn-ghostloader w-24 rounded-full\" *ngFor=\"let item of [].constructor(2)\"></div>\n            </div>\n            <div class=\"ghost-loader-chart-body\">\n                <div class=\"ghost-loader-chart-body-row h-full\">\n                    <div class=\"ghost-loader-chart-body-col flex-col justify-between \">\n                        <div class=\"ghost-loader-chart-value\" *ngFor=\"let item of [].constructor(12)\"></div>\n                    </div>\n                    <div class=\"ghost-loader-chart-body-col justify-between w-full \">\n                        <div class=\"ghost-loader-chart-body-items\" style=\"--vertical-item:{{cell}}%\" *ngFor=\"let cell of [80,16,34,50,42,10,80,16]\"></div>\n                    </div>\n                </div>\n                <div class=\"ghost-loader-chart-body-row gap-4\">\n                    <div class=\"ghost-loader-chart-body-col flex-col justify-between \">\n                        <div class=\"ghost-loader-chart-value blank-div\"></div>\n                    </div>\n                    <div class=\"ghost-loader-chart-body-col justify-between w-full \">\n                        <div class=\"ghost-loader-chart-body-items\" style=\"--vertical-item:0.938rem\" *ngFor=\"let cell of [].constructor(8)\"></div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Horizontal Bar Chart GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.BarChartLoaderHorizontal\">\n        <div class=\"ghost-loader-bar-chart\">\n            <div class=\"ghost-loader-chart-filters mb-7\">\n                <div class=\"btn-ghostloader w-24 rounded-full\" *ngFor=\"let item of [].constructor(2)\"></div>\n            </div>\n            <div class=\"ghost-loader-chart-body\">\n                <div class=\"ghost-loader-chart-body-row h-full flex\">\n                    <div class=\"ghost-loader-chart-metric h-full\">\n                        <div class=\"ghost-loader-chart-vertical-value\" *ngFor=\"let item of [].constructor(6)\"></div>\n                        <div class=\"blank-div\" ></div>\n                    </div>\n                    <div class=\"ghost-loader-chart-metric h-full w-full\">\n                        <div class=\"ghost-loader-chart-body-vertical-items\" style=\"--item:{{cell}}%\" *ngFor=\"let cell of [80,20,16,24,50,12]\"></div>\n                        <div class=\"ghost-loader-chart-horizontal-dimension w-full flex\">\n                            <div class=\"ghost-loader-chart-horizontal-dimension-col\" *ngFor=\"let item of [].constructor(10)\"></div>\n                        </div>\n                    </div>\n\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Tabular Chart GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.TabularChartLoader\">\n        <div class=\"ghost-loader-tabular-chart\">\n            <div class=\"ghost-loader-chart-body\">\n                <table class=\"w-full ghosttable\">\n                    <tr *ngFor=\"let item of [].constructor(11)\">\n                        <td class=\"ghosttablecell\" *ngFor=\"let item of [].constructor(3)\">\n                            <div class=\"tablecellitem\"></div>\n                        </td>\n                    </tr>\n\n                </table>\n\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Pie Chart GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.PieChartLoader\">\n        <div class=\"ghost-loader-pie-chart\">\n            <div class=\"ghost-loader-chart-filters\">\n                <div class=\"btn-ghostloader w-24 rounded-full\" *ngFor=\"let item of [].constructor(2)\"></div>\n            </div>\n            <div class=\"ghost-loader-chart-body\">\n                <div class=\"pie-chart\" id=\"pie-chart\"></div>\n                <div class=\"ghost-loader-chart-body-row\">\n                    <div class=\"ghost-loader-chart-value\" *ngFor=\"let item of [].constructor(4)\"></div>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Dashboard generic GhostLoader-->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.DashboardLoader\">\n        <div class=\"ghost-loader-subheader\">\n            <div class=\"btn-ghostloader w-7\"></div>\n            <div class=\"btn-ghostloader w-32\"></div>\n        </div>\n        <div class=\"ghost-loader-dashboard-wrapper\">\n            <div class=\"ghost-loader-dashboard-item\" *ngFor=\"let item of [].constructor(6)\"></div>\n        </div>\n    </ng-container>\n\n    <!-- Data Detail GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.DataDetailLoader\">\n        <div class=\"ghost-loader-data-detail-wrapper \" *ngFor=\"let item of [].constructor(2)\">\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <!-- <div class=\"ghost-loader-data-detail-section-title\"></div> -->\n                <div class=\"ghost-loader-data-detail-section\">\n                    <div class=\"ghost-loader-data-detail-inner-section\" style=\"flex: 1 1 100%; max-width:100%; margin-top: 0;\">\n                        <div class=\"ghost-loader-data-detail-section-items w-8\"></div>\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <div class=\"ghost-loader-data-detail-section\">\n                    <div class=\"ghost-loader-data-detail-inner-section\" *ngFor=\"let item of [].constructor(3)\">\n                        <div class=\"ghost-loader-data-detail-section-items w-8\"></div>\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <div class=\"ghost-loader-data-detail-subform-section\">\n                    <div class=\"ghost-loader-data-detail-section\" style=\"flex: 1 1 33%; max-width:33%;\" *ngFor=\"let item of [].constructor(9)\">\n                        <div class=\"ghost-loader-data-detail-section-items w-8\"></div>\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <div class=\"ghost-loader-data-detail-section\">\n                    <div class=\"ghost-loader-data-detail-inner-section\" style=\"flex: 1 1 100%; max-width:100%; margin-top: 0;\">\n                        <div class=\"ghost-loader-data-detail-section-items w-8\"></div>\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <div class=\"ghost-loader-data-detail-section\">\n                    <div class=\"ghost-loader-data-detail-inner-section\" *ngFor=\"let item of [].constructor(3)\">\n                        <div class=\"ghost-loader-data-detail-section-items w-8\"></div>\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"GhostLoaderType.TaskDataDetailLoader\">\n        <div class=\"ghost-loader-data-detail-wrapper\">\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <div class=\"task-data-detail-view flex justify-between\">\n                    <div class=\"ghost-loader-data-detail-section\" style=\"flex: 1 1 33%; max-width:33%;\">\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n\n                    <div class=\"ghost-loader-data-detail-section\" style=\"flex: 1 1 33%; max-width:33%; justify-content:right\">\n                        <!-- <div class=\"ghost-loader-data-detail-section-items w-30 \"></div> -->\n                        <div class=\"ghost-loader-data-detail-section-items w-30 \"></div>\n                    </div>\n                </div>\n                <div class=\" task-data-detail-view ghost-loader-data-detail-subform-section\">\n                    <div class=\"ghost-loader-data-detail-section\" style=\"flex: 1 1 33%; max-width:33%;\" *ngFor=\"let item of [].constructor(9)\">\n                        <div class=\"ghost-loader-data-detail-section-items w-8\"></div>\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n                <div class=\"ghost-loader-data-detail-section\" style=\"flex: 1 1 33%; max-width:33%;\">\n                    <div class=\"ghost-loader-data-detail-section-items\"></div>\n                </div>\n            </div>\n            <app-ghost-loader [elementType]=\"GhostLoaderType.DataDetailLoader\"></app-ghost-loader>\n        </div>\n    </ng-container>\n\n    <!-- Web Form GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.WebFormLoader\">\n        <div class=\"web-form-ghost-loader-wrapper \">\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <!-- <div class=\"ghost-loader-data-detail-section-title\"></div> -->\n                <div class=\"ghost-loader-data-detail-section\">\n                    <div class=\"ghost-loader-data-detail-inner-section\" style=\"flex: 1 1 100%; max-width:100%; margin-top: 0;\">\n                        <!-- <div class=\"ghost-loader-data-detail-section-items w-8\"></div> -->\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <div class=\"ghost-loader-data-detail-section-title w-full\"></div>\n                <div class=\"ghost-loader-data-detail-section\">\n                    <div class=\"ghost-loader-data-detail-inner-section\" style=\"flex: 1 1 100%; max-width:100%; margin-top: 0;\">\n                        <!-- <div class=\"ghost-loader-data-detail-section-items w-8\"></div> -->\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"ghost-loader-data-detail-section-wrapper\">\n                <div class=\"ghost-loader-data-detail-section-title w-full\"></div>\n                <div class=\"ghost-loader-data-detail-section\">\n                    <div class=\"ghost-loader-data-detail-inner-section\" style=\"flex: 1 1 100%; max-width:100%; margin-top: 0;\">\n                        <!-- <div class=\"ghost-loader-data-detail-section-items w-8\"></div> -->\n                        <div class=\"ghost-loader-data-detail-section-items\"></div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"media-ghost-loader-wrapper\">\n                <div class=\"media-ghost-loader\">\n                    <svg class=\"w-12 h-12 text-gray-200\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 640 512\"><path d=\"M480 80C480 35.82 515.8 0 560 0C604.2 0 640 35.82 640 80C640 124.2 604.2 160 560 160C515.8 160 480 124.2 480 80zM0 456.1C0 445.6 2.964 435.3 8.551 426.4L225.3 81.01C231.9 70.42 243.5 64 256 64C268.5 64 280.1 70.42 286.8 81.01L412.7 281.7L460.9 202.7C464.1 196.1 472.2 192 480 192C487.8 192 495 196.1 499.1 202.7L631.1 419.1C636.9 428.6 640 439.7 640 450.9C640 484.6 612.6 512 578.9 512H55.91C25.03 512 .0006 486.1 .0006 456.1L0 456.1z\"></path></svg>\n                </div>\n                <!-- Light style tooltip -->\n            </div>\n            <div class=\"media-ghost-loader-wrapper\">\n                <div class=\"media-ghost-loader\">\n                    <svg class=\"w-12 h-12 text-gray-200 dark:text-gray-600\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 384 512\"><path d=\"M361 215C375.3 223.8 384 239.3 384 256C384 272.7 375.3 288.2 361 296.1L73.03 472.1C58.21 482 39.66 482.4 24.52 473.9C9.377 465.4 0 449.4 0 432V80C0 62.64 9.377 46.63 24.52 38.13C39.66 29.64 58.21 29.99 73.03 39.04L361 215z\"></path></svg>\n                </div>\n                <!-- Light style tooltip -->\n            </div>\n\n        </div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"GhostLoaderType.MainDataViewLoader\">\n        <div class=\"ghost-loader-subheader  h-12 min-h-12\">\n            <div class=\"left-wrapper\">\n                <div class=\"btn-ghostloader w-32\"></div>\n            </div>\n            <div class=\"right-wrapper\">\n            </div>\n        </div>\n        <div class=\"h-28 ghost-loader-data-view-header ghost-loader-data-view-header-height\">\n            <app-ghost-loader [elementType]=\"GhostLoaderType.DataViewSelectionHeaderLoader\"></app-ghost-loader>\n            <app-ghost-loader [elementType]=\"GhostLoaderType.FilterViewLoader\"></app-ghost-loader>\n        </div>\n\n        <div class=\"main-ghost-loader\">\n            <app-ghost-loader [elementType]=\"GhostLoaderType.ListViewLoader\" ></app-ghost-loader>\n            <app-ghost-loader [elementType]=\"GhostLoaderType.PaginationViewLoader\" ></app-ghost-loader>\n        </div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"GhostLoaderType.FormListLoader\">\n        <!-- <app-ghost-loader [elementType]=\"GhostLoaderType.SubHeaderLoader\" class=\"h-fit\"></app-ghost-loader> -->\n        <div class=\"form-list-ghost-loader-wrapper form-list-ghost-loader-wrapper grid-cols-3 sm:grid-cols-4 md:grid-cols-6 lg:grid-cols-8 xl:grid-cols-10\">\n            <div class=\"form-list-box-ghost-loader\" *ngFor=\"let item of [].constructor(16)\">\n                <div class=\"form-icon\"></div>\n                <div class=\"form-title\"></div>\n            </div>\n        </div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"GhostLoaderType.EmailContentInputLoader\">\n        <div class=\"ghost-loader-email-container h-100 border border-gray-200 bg-gray-70 rounded-md\">\n            <app-ghost-loader [elementType]=\"GhostLoaderType.SubHeaderLoader\" class=\"h-fit bg-gray-100\"></app-ghost-loader>\n        </div>\n    </ng-container>\n    \n    <ng-container *ngSwitchCase=\"GhostLoaderType.VideoLoader\">\n        <div class=\"w-100 h-100 border border-gray-200 bg-gray-400 rounded-md\"></div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"GhostLoaderType.AppNameLoader\">\n        <div class=\"ghost-loader-app-name\"></div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"GhostLoaderType.AppDescriptionLoader\">\n        <div class=\"ghost-loader-app-description\"></div>\n    </ng-container>\n\n    <ng-container *ngSwitchCase=\"GhostLoaderType.FormSuggestionLoader\">\n        <div class=\"flex justify-start items-center flex-wrap gap-6 pb-2 p-2\">\n            <ng-container *ngFor=\"let item of [].constructor(3)\">\n                <div class=\"border border-color p-4 card rounded-lg w-72 ghost-loader-form-suggestion\">\n                    <div class=\"flex justify-between items-center mb-4\">\n                        <div class=\"border border-color h-12 w-12 rounded-lg ghost-loader-form-suggestion\"></div>\n                    </div>\n                    <div class=\"h-6 w-300 rounded-sm mb-2 ghost-loader-form-suggestion\"></div>\n                    <div class=\"h-5 w-300 rounded-sm mb-5 ghost-loader-form-suggestion\"></div>\n                </div>\n            </ng-container>\n        </div>\n    </ng-container>\n\n    <!-- Role Form GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.RoleFormLoader\">\n        <div class=\"ghost-loader-role-form\">\n            <div class=\"ghost-loader-role-header\">\n                <div class=\"btn-ghostloader w-40\"></div>\n            </div>\n            <div class=\"ghost-loader-role-body\">\n                <!-- Role Name Field -->\n                <div class=\"ghost-loader-form-field w-180\">\n                    <div class=\"btn-ghostloader w-full mb-2\"></div>\n                    <div class=\"btn-ghostloader w-full h-10\"></div>\n                </div>\n                \n                <!-- Role Description Field -->\n                <div class=\"ghost-loader-form-field\">\n                    <div class=\"btn-ghostloader w-32 mb-2\"></div>\n                    <div class=\"btn-ghostloader w-full h-24\"></div>\n                </div>\n                \n                <!-- Permissions Checkboxes -->\n                <div class=\"ghost-loader-permissions\">\n                    <div class=\"ghost-loader-checkbox-row w-180\" *ngFor=\"let item of [].constructor(5)\">\n                        <div class=\"btn-ghostloader w-4 h-3\"></div>\n                        <div class=\"btn-ghostloader w-full h-4 ml-2\"></div>\n                    </div>\n                </div>\n                \n                <!-- Action Buttons -->\n                <div class=\"ghost-loader-actions\">\n                    <div class=\"btn-ghostloader w-24 h-10\"></div>\n                    <div class=\"btn-ghostloader w-24 h-10\"></div>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n    <!-- Add App Role GhostLoader -->\n    <ng-container *ngSwitchCase=\"GhostLoaderType.AddAppRoleLoader\">\n        <div class=\"ghost-loader-add-role-form\">\n            <!-- Title -->\n            <div class=\"btn-ghostloader w-40 h-8 mb-6\"></div>\n            \n            <div class=\"ghost-loader-role-body\">\n                <!-- Role Name Field -->\n                <div class=\"ghost-loader-form-field mb-6\">\n                    <!-- <div class=\"btn-ghostloader w-24 h-4 mb-2\"></div> -->\n                    <div class=\"btn-ghostloader w-full h-10\"></div>\n                </div>\n                \n                <!-- Role Description Field -->\n                <div class=\"ghost-loader-form-field mb-6\">\n                    <!-- <div class=\"btn-ghostloader w-32 h-4 mb-2\"></div> -->\n                    <div class=\"btn-ghostloader w-full h-20\"></div>\n                </div>\n                \n                <!-- Permissions Checkboxes -->\n                <div class=\"ghost-loader-permissions mb-6\">\n                    <div class=\"ghost-loader-checkbox-row\" *ngFor=\"let item of [].constructor(3)\">\n                        <div class=\"btn-ghostloader w-4 h-4 mr-2\"></div>\n                        <div class=\"btn-ghostloader w-full h-4\"></div>\n                    </div>\n                </div>\n                \n                <!-- Action Buttons -->\n                <div class=\"ghost-loader-actions\">\n                    <div class=\"btn-ghostloader w-24 h-10 mr-3\"></div>\n                    <div class=\"btn-ghostloader w-24 h-10\"></div>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n</ng-container>\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\n\n@Component({\n    selector: 'app-ghost-loader',\n    templateUrl: './ghost-loader.component.html',\n    styleUrls: ['./ghost-loader.component.scss'],\n    encapsulation:ViewEncapsulation.None\n})\nexport class GhostLoaderComponent implements OnInit, OnChanges {\n\n    @Input() elementType: GhostLoaderType;\n    @Input() diameter: any;\n\n\n\n    ngOnInit(): void {}\n\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if(this.elementType == this.GhostLoaderType.PieChartLoader)\n            document.documentElement.style.setProperty('--pieChartDiameter', this.diameter+'px');\n    }\n\n    /**\n     * Enum of GhostLoaderType\n     */\n     GhostLoaderType = GhostLoaderType;\n}\n\n/**\n * Enum for GhostLoader as per component Type\n */\nexport enum GhostLoaderType {\n    ListViewLoader,\n    FilterViewLoader,\n    LeftMenuViewLoader,\n    PaginationViewLoader,\n    DataViewSelectionHeaderLoader,\n    BoardViewColumnLoader,\n    MainHeaderLoader,\n    SubHeaderLoader,\n    FormHeaderLoader,\n    CanvasHeaderLoader,\n    BarChartLoaderVertical,\n    BarChartLoaderHorizontal,\n    PieChartLoader,\n    LineChartLoader,\n    CardChartLoader,\n    CardDetailLoader,\n    TextChartLoader,\n    TabularChartLoader,\n    DashboardLoader,\n    DataDetailLoader,\n    WebFormLoader,\n    BoardViewColumnTitleLoader,\n    MainDataViewLoader,\n    TaskDataDetailLoader,\n    FormListLoader,\n    EmailContentInputLoader,\n    VideoLoader,\n    AppNameLoader,\n    AppDescriptionLoader,\n    FormSuggestionLoader,\n    RoleFormLoader,\n    AddAppRoleLoader\n}\n","import { AxoUtils } from '../axo-utils/axo-utils';\nimport { User } from '../core/user/user.types';\n\nexport class EntityBase {\n    id: number;\n    guid: string;\n    createdAt: Date;\n    updatedAt: Date;\n    createdBy: User;\n    updatedBy: User;\n    constructor(entityBase?: EntityBase) {\n        this.guid = entityBase && entityBase.guid || AxoUtils.guid();\n        this.id = entityBase && entityBase.id || 0;\n        this.createdAt = entityBase && entityBase.createdAt || new Date(Date.now());\n        this.updatedAt = entityBase && entityBase.updatedAt || new Date(Date.now());\n        this.createdBy = entityBase && entityBase.createdBy || null;\n        this.updatedBy = entityBase && entityBase.updatedBy || null;\n    }\n}\n","export class Dependee {\n    tableName: string;\n    columnName: string;\n    constructor(dependee?: Dependee) {\n        if (dependee) {\n            this.dependee(dependee);\n        } else {\n            this.newDependee();\n        }\n    }\n\n    /**function to create Dependee object with existing values\n    *\n    * @param Dependent\n    */\n    dependee(dependee: Dependee): void {\n        this.tableName = dependee.tableName;\n        this.columnName = dependee.columnName;\n    }\n\n    // function to create new dependee\n    newDependee(): void {\n        this.tableName = '';\n        this.columnName = '';\n    }\n}\n","\nexport class Dependent {\n    tableName: string;\n    columnName: string;\n    constructor(dependent?: Dependent) {\n        if (dependent) {\n            this.dependent(dependent);\n        } else {\n            this.newDependent();\n        }\n    }\n    /**function to create Dependent object with existing values\n    *\n    * @param Dependent\n    */\n    dependent(dependent: Dependent): void {\n        this.tableName = dependent.tableName;\n        this.columnName = dependent.columnName;\n    }\n\n    //function to create new Dependent object\n    newDependent(): void {\n        this.tableName = '';\n        this.columnName = '';\n    }\n}\n","import { entriesIn } from 'lodash';\nimport { noCodeModeExcludeColumns } from '../../axo-utils/constants';\nimport { Attribute } from './attribute';\nimport { Dependee } from './dependee';\nimport { Dependent } from './dependent';\n\nexport class Entity {\n    name: string;\n    formId: number;\n    formName: string;\n    columns: Array<Attribute>;\n    isManyToManyTable: boolean;\n    dependent: Array<Dependent>=[];\n    dependee: Array<Dependee>=[];\n    entityType: EntityType;\n    hidden: boolean = false;\n\n\n    constructor(entity: Entity,noCodeMode?: boolean) {\n        if(entity){\n            this.entity(entity,noCodeMode);\n        }else{\n            this.newEntity();\n        }\n    }\n    static createEntity(entities: Array<Entity> ,noCodeMode: boolean,appManifest: any): Array<Entity>{\n        const _entities: Array<Entity> = [];\n        if(entities){\n            entities.forEach((entity) => {\n                entity.entityType = appManifest && appManifest.user_form_id==entity.formId? EntityType.metaTable : entity.entityType;\n                if (noCodeMode && !noCodeModeExcludeColumns.includes(EntityType[entity.entityType]) || (!noCodeMode)){\n                    _entities.push(new Entity(entity,noCodeMode));\n                }\n            });\n        }\n        return _entities;\n    }\n\n    //function to create new entity object\n    newEntity(): void{\n            this.name = '';\n            this.formId = null;\n            this.formName = '';\n            this.columns =[];\n            this.isManyToManyTable = false;\n            this.dependent=[];\n            this.dependee=[];\n            this.entityType = EntityType.form;\n            this.hidden = false;\n\n    }\n\n    /**function to create entity object with existing values\n    *\n    * @param Entity\n    */\n    entity(entity: Entity,noCodeMode?: boolean): void{\n        this.name = entity.name;\n        this.formId = entity.formId;\n        this.formName = entity.formName?entity.formName:entity.name;\n        this.columns = Attribute.createAttributes(entity.columns,this.name,noCodeMode);\n        this.isManyToManyTable = entity.isManyToManyTable;\n        this.entityType = entity.entityType;\n        this.hidden = entity.hidden !== undefined ?entity.hidden: false;\n        entity.dependent.forEach((dependent) => {\n            this.dependent.push(new Dependent(dependent));\n        });\n        entity.dependee.forEach((dependee) => {\n            this.dependee.push(new Dependee(dependee));\n        });\n    }\n\n}\n\n/**\n * Entity Type enum to set entity type\n */\n export enum EntityType {\n    defaultWorkFlow = 1,\n    customWorkFlow = 2,\n    form = 3 ,\n    metaTable = 4\n}\n","import { EntityBase } from '../../common-utils/entity-base';\nimport { Entity } from './entity';\nexport class DataModel extends EntityBase{\n    entities: Array<Entity>;\n    databaseName: string;\n    joinType: number;\n    appVersionId: number;\n    dataSourceId: number;\n    type: DataModelType;\n    constructor(dataModel?: DataModel,noCodeMode?: boolean,appManifest?: any){\n        super(dataModel);\n        if(dataModel){\n            this.dataModel(dataModel,noCodeMode,appManifest);\n        }else{\n            this.newDataModel();\n        }\n    }\n\n    //function to create new data model\n    newDataModel(): void{\n        this.entities = [];\n        this.databaseName = '';\n        this.joinType=JoinType.fullJoin;\n        this.dataSourceId=0;\n        this.appVersionId=0;\n        this.type=DataModelType.default;\n    }\n    /**function to create data model object with existing values\n     *\n     *@param DataModel\n     */\n    dataModel(dataModel: DataModel, noCodeMode?: boolean,appManifest?: any): void{\n        this.entities = Entity.createEntity(dataModel.entities,noCodeMode,appManifest);\n        this.databaseName = dataModel.databaseName;\n        this.joinType=dataModel.joinType;\n        this.appVersionId=dataModel.appVersionId;\n        this.dataSourceId=dataModel.dataSourceId;\n        this.type=dataModel.type;\n    }\n}\n\n/**\n * DataModelType enum to set default/custom type\n */\nexport enum DataModelType {\n    default = 1,\n    custom = 2\n\n}\n\nexport enum JoinType{\n    none = 0,\n    fullJoin = 1,\n    innerJoin = 2,\n    leftJoin = 3,\n    rightJoin = 4,\n    outterJoin = 5\n}\n","import { WidgetSubType } from './../../forms/page/common/widget-enums';\nimport { WidgetType } from '../../forms/page/common/widget-enums';\n\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const UnhandledWIdgetsInFilters: any[] =  [\n    WidgetType.language,\n    WidgetType.audio,\n    WidgetType.hyperLink,\n    WidgetType.verification,\n    WidgetType.video,\n    WidgetType.staticMedia,\n    WidgetType.barCodeScanner,\n    WidgetType.qrCodeScanner,\n    WidgetType.imageCapture,\n    WidgetType.formula,\n    WidgetType.stopWatch,\n    WidgetType.document,\n    WidgetType.signature,\n    WidgetType.payment,\n    WidgetType.captureGpsLocation\n];\n\nexport const UnhandledWIdgetSubTypesInFilters: any[] =  [\n   WidgetSubType.dateRange\n];\n","import { Injectable } from '@angular/core';\nimport mixpanel from 'mixpanel-browser';\n\n@Injectable({\n  providedIn: 'root'\n})\n\n// Handle logs\nexport class LoggingService {\n  constructor() {\n    mixpanel.init('f601fe7a1ece858f61de081804658369');\n  }\n\n  identifyUser(userData : any) {\n    mixpanel.identify(userData.email);\n    mixpanel.people.set(userData);\n    mixpanel.register(userData.username);\n  }\n  \n  validHostnames = [\n    'builder.axonator.com',\n    'web.axonator.com',\n    'container.axonator.com'\n  ];\n\n  trackEvent(eventName: string, properties?: any) {\n    if (mixpanel && this.validHostnames.includes(window.location.hostname)) {\n      mixpanel.track(eventName, properties);\n    }    \n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { Router } from '@angular/router';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { LoggingService } from '../../services/logging.service';\nimport Smartlook from 'smartlook-client';\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserDataService {\n    userData: any;\n    public noCodeMode: boolean = false;\n    public userDetails: BehaviorSubject<any | null> = new BehaviorSubject(null);\n    public isAccountStatusActive: BehaviorSubject<boolean> = new BehaviorSubject(false);\n    private isSmartlookInitialized: boolean = JSON.parse(localStorage.getItem('isSmartlookInitialized') || 'false');\n    private obStatus: boolean = JSON.parse(localStorage.getItem('OBstatus') || 'false');\n    public userPermissions: BehaviorSubject<string[] | null> = new BehaviorSubject(null);\n\n    /**\n     * Constructor\n     */\n    constructor(\n        private _httpClient: HttpClient,\n        private _configuration: CommonLibConfigurationService,\n        private router: Router,\n        private _loggingService: LoggingService\n    ) { }\n\n    get userDetails$(): Observable<any> {\n        return this.userDetails.asObservable();\n    }\n\n    get isAccountStatusActive$(): Observable<boolean> {\n        return this.isAccountStatusActive.asObservable();\n    }\n\n    get userPermissions$(): Observable<string[] | null> {\n        return this.userPermissions.asObservable();\n    }\n\n    /**\n     * Get user details from X1 DB\n     */\n    getUserDetails(): Observable<any> {\n        return this._httpClient.get<any>(this._configuration.axonatorX1Url + 'getUserDetails/').pipe(\n            tap((response) => {\n                let userData = {\n                    'first_name': response.ud.fname,\n                    'last_name': response.ud.lname,\n                    'email': response.ud.email,\n                    'uid': response.ud.uid,\n                    'username': response.ud.uname\n                };\n                if (response) {\n                    this._loggingService.identifyUser(userData);\n                }\n\n                localStorage.setItem('userDetails', JSON.stringify(response));\n\n                if (this.obStatus) {\n                    this.router.navigate(['/team-size']);\n                } else {\n                    if (!response.ud.uobs.App_Status_For_X2 && !response.ud.uobs.completed && response.ud.uobs.eligible) {\n                        this.router.navigate(['/app-name']);\n                    }\n                }\n\n                this.noCodeMode = response.ud.NoCodeModeEnabled;\n                this.userDetails.next(response.ud);\n\n                const userDetails = response.ud;\n                this.isAccountStatusActive.next(\n                userDetails.payment_status === \"A\" || \n                  ([\"T\", \"\"].includes(userDetails.payment_status) && !userDetails.is_trial_expired)\n                );\n\n                this.userPermissions.next(response.ud.permissions);\n\n                window.addEventListener('beforeunload', function() {\n                    localStorage.removeItem('isSmartlookInitialized');\n                });\n                if(window.location.hostname === 'builder.axonator.com' && !this.isSmartlookInitialized && !/axo|axonator|axo-test|whitesnow/.test(response.ud.email)\n                ) {\n                  Smartlook.init('6233ef87697e0adc0417062e33119dce28ea319f'); \n                  Smartlook.record({forms:true,numbers:true,emails:true}); \n                  console.log('smartlook started');\n                  this.isSmartlookInitialized = true; \n                  localStorage.setItem('isSmartlookInitialized', JSON.stringify(this.isSmartlookInitialized));\n                }\n            })\n        );\n    }\n\n    sendUpgradeEmail(user: any): Promise<any> {\n        const formData = new FormData();\n        formData.append('userData', JSON.stringify(user));\n        return this._httpClient.post<any>(this._configuration.axonatorX1Url + 'sendUpgradeEmail/', formData).toPromise();\n    }\n}\n","\nexport class AppListDto {\n    name: string;\n    icon: string;\n    version: string;\n    appVersionId: number;\n    gradient: string;\n    minorVersion: string;\n    qr_status : boolean;\n\n    constructor(appListDto: AppListDto) {\n        if(appListDto){\n            this.appListDto(appListDto);\n        }else{\n            this.newAppListDto();\n        }\n    }\n    /**\n     * Existing value assign to  app list dto object\n     */\n    appListDto(appListDto: any): void{\n        this.name = appListDto.n;\n        this.version = appListDto.v;\n        this.icon = appListDto.ic;\n        this.appVersionId = appListDto.appversion_id;\n        this.minorVersion = appListDto.amv;\n        this.qr_status = appListDto.qr_status;\n    }\n    /**\n     * new app list dto object create\n     */\n    newAppListDto(): void{\n        this.name = '';\n        this.icon = '';\n        this.version = '';\n        this.appVersionId = 0;\n        this.minorVersion = '';\n        this.qr_status = false;\n    }\n\n\n}\n","\nexport class OrganizationListDto {\n    id: number;\n    name: string;\n    isActive: boolean;\n    icon: string;\n\n    constructor(organizationListDto: OrganizationListDto) {\n        if(organizationListDto){\n            this.userListDto(organizationListDto);\n        }else{\n            this.newUserListDto();\n        }\n    }\n    /**\n     * Existing value assign to  user list dto object\n     */\n     userListDto(organizationListDto: OrganizationListDto): void{\n        this.id = organizationListDto.id;\n        this.name = organizationListDto.name;\n        this.isActive = organizationListDto.isActive;\n        this.icon = organizationListDto.icon;\n    }\n    /**\n     * new user list dto object create\n     */\n     newUserListDto(): void{\n        this.id = 0;\n        this.name = '';\n        this.isActive = false;\n        this.icon = '';\n    }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable , of} from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AppListDto } from './app-list-dto';\nimport { OrganizationListDto } from './organization-list-dto';\nimport { CommonLibConfigurationService } from '../common-lib-configuration.service';\n\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MyAppListService {\n  public appManifest: BehaviorSubject<any | null> = new BehaviorSubject(null);\n  public userDetails: BehaviorSubject<any | null> = new BehaviorSubject(null);\n\n  /*\n  * Private\n  */\n  private _appList: BehaviorSubject<any | null> = new BehaviorSubject(null);\n  private _userList: BehaviorSubject<any | null> = new BehaviorSubject(null);\n\n  // Cache object to store fetched app details and the timestamp\n  private appDetailsCache: { [appVersionId: string]: { data: any, timestamp: number } } = {};\n\n  // Time (in milliseconds) before cached data is considered stale (e.g., 5 minutes)\n  private CACHE_EXPIRY_TIME = 1 * 60 * 1000; \n\n\n  /**\n   * Constructor\n   */\n\n  constructor(private _httpClient: HttpClient,\n    private commonLibConfig: CommonLibConfigurationService,) { }\n\n  /**\n   * Getter for App list\n   */\n  get appList$(): Observable<any> {\n    return this._appList.asObservable();\n  }\n\n  /**\n   * Getter for User list\n   */\n  get userList$(): Observable<any> {\n    return this._userList.asObservable();\n  }\n\n  /**\n   * Getter for app manifest\n   */\n  get appManifest$(): Observable<any> {\n    return this.appManifest.asObservable();\n  }\n\n  /**\n   * Getter for user Details\n   */\n  get userDetails$(): Observable<any> {\n    return this.userDetails.asObservable();\n  }\n\n  /**\n   * Get App List detail\n   *\n   * @param currentPage\n   * @param pageSize\n   * @returns\n   */\n  getAppList(currentPage: number, pageSize: number, axonatorX1Url: string): Observable<any> {\n    const formData = new FormData();\n    formData.append('currentPage', currentPage.toFixed(0));\n    formData.append('pageSize', pageSize.toFixed(0));\n    return this._httpClient.post<any>(axonatorX1Url + 'getMyApps/', formData).pipe(\n      tap((response) => {\n        this._appList.next(response);\n        //\n        var publish=localStorage.getItem(\"publishstatus\");\n        const apps = response.myapps.aps.apps;\n        //const apps = response.myapps.aps.apps;\n        if(publish ==\"False\"&& apps.length!=0){\n        // apps[apps.length]!=null){\n          //const apps = response.myapps.aps.apps;\n          \n          const lastApp = apps[apps.length - 1];\n          var appid=lastApp[\"a\"];\n          var appv=lastApp[\"v\"];\n          localStorage.setItem(\"publishAppIdData\",appid);\n          }\n\n        \n        \n        return response;\n      })\n    );\n  }\n  /**\n   * Switch account of organization from to DB\n   *\n   * @param organizationId\n   * @returns\n   */\n  switchAccount(organizationId: string, axonatorX1Url: string): Promise<any> {\n    const formData = new FormData();\n    formData.append('to_account', organizationId);\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(axonatorX1Url + 'switchAccount/', formData).subscribe((response) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n  addAppBasicInfo(formData: FormData): Observable<any> {\n    return this._httpClient.post(`${this.commonLibConfig.axonatorX1Url}addAppBasicInfo/`, formData);\n  }\n  /**\n   * create App list dto object with existing value\n   *\n   * @param appListDto\n   * @returns\n   */\n  createAppListDtoObject(appListDto: any): Array<AppListDto> {\n    const appLists = [];\n    appListDto.forEach((app) => {\n      appLists.push(new AppListDto(app));\n    });\n    return appLists;\n  }\n\n  /**\n   * get app detail from X1 DB\n   */\n  fetchAppDetails(appVersionId: any, axonatorX1Url: string,forceRefresh=false) : Observable<any> {\n    const cachedResponse = this.appDetailsCache[appVersionId];\n    const currentTime = new Date().getTime();\n  \n    //Check if we have cached data that is still valid and no force refresh is requested\n    if (cachedResponse && !forceRefresh && (currentTime - cachedResponse.timestamp) < this.CACHE_EXPIRY_TIME) {\n      // Return the cached data wrapped in an Observable\n      return of(cachedResponse.data); // `of` creates an observable from the cached data\n    } else {\n      //Fetch new data from the server\n      return this._httpClient.get<any>(axonatorX1Url + 'fetchAppDetails/?appVersionId=' + appVersionId).pipe(\n        tap((response) => {\n          // Update the cache with the new data and the current timestamp\n          this.appDetailsCache[appVersionId] = {\n            data: response,\n            timestamp: new Date().getTime()\n          };\n          // Trigger any side effects if necessary (e.g., updating appManifest)\n          this.appManifest.next(response);\n        })\n      );\n    }\n  }\n  \n\n  /**\n   * create Organization List Dto object with existing value\n   *\n   * @param userListDto\n   * @returns\n   */\n  createOrganizationListDtoObject(organizationListDto: Array<any>): Array<OrganizationListDto> {\n    return Object.keys(organizationListDto).map((index) => {\n      const user = organizationListDto[index];\n      user.id = index;\n      user.icon = organizationListDto[index].theme.icon;\n      return new OrganizationListDto(user);\n    });\n  }\n\n  ////create app////////\n  // addAppBasicInfo(formData: FormData): Observable<any> {\n  //   return this._httpClient.post(`${environment.axonatorX1Url}addAppBasicInfo/`, formData);\n  // }\n\n\n  // createNewApp(axonatorX1Url: string): Promise<any> {\n  //   const formData = new FormData();\n  //   formData.append('name', '');\n  //   formData.append('description', ' ');\n\n  //   return new Promise((resolve, reject) => {\n  //     this._httpClient.post(axonatorX1Url + 'addAppBasicInfo/', formData).subscribe((response) => {\n  //       resolve(response);\n  //     }, reject);\n  //   });\n  // }\n\n  // deleteApp(appDetail: AppListDto,axonatorX1Url: string): Promise<any> {\n  //   const formData = new FormData();\n  //   formData.append('appVersionId', appDetail.appVersionId.toString());\n  //   formData.append('v', appDetail.version);\n  //   return new Promise((resolve, reject) => {\n  //     this._httpClient.post(axonatorX1Url + 'deleteApp/', formData).subscribe((response) => {\n  //       resolve(response);\n  //     }, reject);\n  //   });\n  // }\n\n deleteApp(appId: string, appVersion: string): Observable<any> {\n    const url = `${this.commonLibConfig.axonatorX1Url}deleteApp/`; //need config\n    const headers = new HttpHeaders({\n      // eslint-disable-next-line @typescript-eslint/naming-convention\n      'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'\n    });\n\n    const data = {\n      app: JSON.stringify({ a: appId, v: appVersion })\n    };\n\n    return this._httpClient.post(url, this.objectToParams(data), { headers });\n  }\n\n\n  checkIsAppAdmin(userId: string, appVersion: string): Observable<any> {\n    const url = `${this.commonLibConfig.axonatorX1Url}checkIsAppAdmin/`; //need config\n    const headers = new HttpHeaders({\n      // eslint-disable-next-line @typescript-eslint/naming-convention\n      'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'\n    });\n\n    const data = {\n      appv: appVersion,\n      user_id: userId\n    };\n\n    return this._httpClient.post(url, this.objectToParams(data), { headers });\n  }\n\n  checkIsOrganisationAdmin(userId: string, accountId: string): Observable<any> {\n    const url = `${this.commonLibConfig.axonatorX1Url}checkIsOrganizationAdmin/`; //need config\n    const headers = new HttpHeaders({\n      // eslint-disable-next-line @typescript-eslint/naming-convention\n      'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'\n    });\n\n    const data = {\n      org_id: accountId,\n      user_id: userId\n    };\n\n    return this._httpClient.post(url, this.objectToParams(data), { headers });\n  }\n\n  private objectToParams(obj: any): string {\n    return Object.keys(obj)\n      .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`)\n      .join('&');\n  }\n\n}\n","// External libs\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { DataModel } from '../enlighten-lib/data-model/data-model';\nimport { Entity } from '../enlighten-lib/fields/entity';\nimport { Entity as  ColumnEntity, EntityType} from '../enlighten-lib/data-model/entity';\nimport { ElementsDto } from '../common-dto/elements-dto';\nimport { Attribute } from '../enlighten-lib/data-model/attribute';\nimport _ from 'lodash';\nimport { AxoUtils } from '../axo-utils/axo-utils';\nimport { UnhandledWIdgetsInFilters, UnhandledWIdgetSubTypesInFilters } from '../enlighten-lib/filters/static-widget';\nimport { UserDataService } from '../core/user/user-data.service';\nimport { noCodeModeExcludeColumns, noCodeModeExcludeFields } from '../axo-utils/constants';\nimport { MyAppListService } from '../app-list/my-app-list.service';\n\n// Classes from ax-common-ui-lib\n\n\n\nexport const fields: any[] = [\n  {\n    'name': 'User',\n    'prompt': 'User',\n    'attributes': [\n      {\n        'name': 'UserName',\n        'prompt': 'User Name',\n        'sqlType': 'varchar',\n        'enlightenType': 'text',\n        'series': ['John', 'Alan', 'Paul', 'Scott', 'Ron', 'Ross', 'Rachel', 'Phoebe', 'Gunther', 'Monica']\n      },\n      {\n        'name': 'NumberOfCars',\n        'prompt': 'Number Of Cars',\n        'sqlType': 'int',\n        'enlightenType': 'number',\n        'series': [2, 3, 1, 4, 5, 10, 11, 12, 19, 50]\n      },\n      {\n        'name': 'NumberOfHouses',\n        'prompt': 'Number Of Houses',\n        'sqlType': 'int',\n        'enlightenType': 'number',\n        'series': [1, 3, 1, 2, 3, 1, 1, 2, 0, 50]\n      },\n      {\n        'name': 'Age',\n        'prompt': 'Age',\n        'sqlType': 'int',\n        'enlightenType': 'number',\n        'series': [20, 24, 21, 43, 50, 51, 43, 18, 22, 21]\n      },\n      {\n        'name': 'Photo',\n        'prompt': 'Profile Pic',\n        'sqlType': 'varchar',\n        'enlightenType': 'image',\n        'series': ['', '', '', '', '', '', '', '', '', '']\n      },\n      {\n        'name': 'EmailId',\n        'prompt': 'Email ID',\n        'sqlType': 'varchar',\n        'enlightenType': 'text',\n        'series': ['john@testmail.com', 'alan@testmail.com',\n         'paul@testmail.com', 'scott@testmail.com',\n         'ron@testmail.com', 'ross@testmail.com', 'rachel@testmail.com', 'phoebe@testmail.com', 'gunther@testmail.com', 'monica@testmail.com']\n      },\n      {\n        'name': 'IdProof',\n        'prompt': 'ID Proof',\n        'sqlType': 'varchar',\n        'enlightenType': 'file',\n        'series': ['', '', '', '', '', '', '', '', '', '']\n      },\n      {\n        'name': 'DateOfBirth',\n        'prompt': 'Date Of Birth',\n        'sqlType': 'date',\n        'enlightenType': 'date',\n        'series': ['1993-07-03 00:00:00', '1994-01-29 00:00:00',\n        '1992-08-20 00:00:00', '1992-11-02 00:00:00',\n        '1997-03-06 00:00:00', '1999-03-06 00:00:00', '1998-03-06 00:00:00', '1996-03-06 00:00:00', '1995-03-06 00:00:00', '1994-03-06 00:00:00']\n      },\n      {\n        'name': 'Gender',\n        'prompt': 'Gender',\n        'sqlType': 'varchar',\n        'enlightenType': 'enum',\n        'enumValues': [\n          'Male',\n          'Female',\n          'Other'\n        ],\n        'series': ['Male', 'Male', 'Male', 'Male', 'Male', 'Female', 'Other', 'Male', 'Male', 'Male']\n      },\n      {\n        'name': 'Address',\n        'prompt': 'Address',\n        'sqlType': 'int',\n        'enlightenType': 'location',\n        'attributes': [\n          {\n            'name': 'Country',\n            'prompt': 'Country',\n            'sqlType': 'int',\n            'enlightenType': 'location',\n            'attributes': [\n              {\n                'name': 'Name',\n                'prompt': 'Name',\n                'sqlType': 'varchar',\n                'enlightenType': 'text',\n                'series': ['USA', 'USA', 'USA', 'USA', 'USA', 'India', 'India', 'UK', 'UK', 'UK']\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  }\n];\n\n@Injectable()\nexport class FieldsListService {\n  // Private\n  private _entities: BehaviorSubject<any | null> = new BehaviorSubject(null);\n  private _entitiesAttribute: BehaviorSubject<any[] | null> = new BehaviorSubject(null);\n  private _entitiesDimension: BehaviorSubject<any[] | null> = new BehaviorSubject(null);\n\n  /**\n   * Constructor\n   */\n  constructor(private _httpClient: HttpClient,\n              private _userDataService: UserDataService,\n              private _myAppListService: MyAppListService\n              ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Accessors\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * Getter for entities\n   */\n  get entities$(): Observable<DataModel> {\n    return this._entities.asObservable();\n  }\n  /**\n   * Getter for entities Attribute\n   */\n   get entitiesAttribute$(): Observable<any> {\n    return this._entitiesAttribute.asObservable();\n  }\n\n  /**\n   * Getter for entities Attribute\n   */\n   get entitiesDimension$(): Observable<Entity[]> {\n    return this._entitiesDimension.asObservable();\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Public methods\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * Get entities\n   */\n  getEntitiesold(): Observable<any[]> {\n    // return this._httpClient.get<Entity[]>('api/v1/fields').pipe(\n    //     tap((response) => {\n    //         this._entities.next(response);\n    //     })\n    // );\n    this._entities.next(fields);\n    return of(fields);\n  }\n\n  getEntities(reportId: number): Observable<any[]> {\n    return this._httpClient.get<Entity[]>('datamodels/?reportId=' + reportId).pipe(\n      tap((response) => {\n        this._entities.next(response);\n      })\n    );\n  }\n\n  //get datamodel\n  getDataModel(reportId: number): Promise<any> {\n    return new Promise((resolve, reject) => {\n      this._httpClient.get<Entity[]>('datamodels/?reportId=' + reportId).subscribe((response) => {\n        resolve(response);\n        this._entities.next(response);\n      }, reject);\n    });\n  }\n\n//--commented\n//   /**\n//    * get matrix data\n//    * @param data\n//    * @returns\n//    */\n//   getMatrixData(data: ElementsDto): Promise<any> {\n//     return new Promise((resolve, reject) => {\n//         this._httpClient.post('elements', data).subscribe((response: any) => {\n//             if (response.dimension != null && response.dimension.attribute != null && (response.dimension.attribute.type == 'datetime' || response.dimension.attribute.type == 'timestamp')) {\n//                 response.dimension.attribute.series = response.dimension.attribute.series.map((date) => { if (_.isEmpty(date) || !_.isEmpty(response.dimension.attribute.sqlFunctions)) { return date; } else { return AxoUtils.formatDateFromUTCToLocal(date); } });\n//             } else if (response.dimension == null && response.matrix != null) {\n//                 response.matrix.attributes = response.matrix.attributes.map((attribute) => {\n//                     if ((attribute.type == 'datetime' || attribute.type == 'timestamp') && data.type == 'pie-chart') {\n//                         attribute.labels = attribute.labels.map((date) => { if (_.isEmpty(date)) { return date; } else { return AxoUtils.formatDateFromUTCToLocal(date); } });\n//                     } else if ((attribute.type == 'datetime' || attribute.type == 'timestamp') && data.type != 'tabular-report') {\n//                         attribute.series = attribute.series.map((date) => { if (_.isEmpty(date)) { return date; } else { return AxoUtils.formatDateFromUTCToLocal(date); } });\n//                     } else if (attribute.type == 'timestamp' && data.type == 'tabular-report') {\n//                         attribute.series = attribute.series.map((date) => { if (_.isEmpty(date)) { return date; } else { return AxoUtils.formatDateFromUTCToLocal(date); } });\n//                     }\n//                     return attribute;\n//                 });\n//             }\n//             this._entitiesAttribute.next(response);\n//             resolve(response);\n//         }, reject);\n//     });\n// }\n\n  /**\n   * get matrix data\n   * @param data\n   * @returns\n   */\n  getMatrixData(data: ElementsDto): Promise<any> {\n      return new Promise((resolve, reject) => {\n          this._httpClient.post('elements', data).subscribe((response: any) => {\n              const isDateTimeOrTimestamp = (attribute: any) => \n                  attribute.type === 'datetime' || attribute.type === 'timestamp';\n\n              if (response.dimension?.attribute) {\n                  const { attribute } = response.dimension;\n                  if (isDateTimeOrTimestamp(attribute)) {\n                      attribute.series = attribute.series.map(date => \n                          _.isEmpty(date) || !_.isEmpty(attribute.sqlFunctions) ? date : AxoUtils.formatDateFromUTCToLocal(date)\n                      );\n                  }\n              } else if (response.matrix) {\n                  response.matrix.attributes = response.matrix.attributes.map(attribute => {\n                      if (isDateTimeOrTimestamp(attribute)) {\n                          if (data.type === 'pie-chart') {\n                              attribute.labels = attribute.labels.map(date => \n                                  _.isEmpty(date) ? date : AxoUtils.formatDateFromUTCToLocal(date)\n                              );\n                          } else {\n                              attribute.series = attribute.series.map(date => \n                                  _.isEmpty(date) ? date : AxoUtils.formatDateFromUTCToLocal(date)\n                              );\n                          }\n                      }\n                      return attribute;\n                  });\n              }\n              this._entitiesAttribute.next(response);\n              resolve(response);\n          }, reject);\n      });\n  }\n\n  getDimensionData(data: ElementsDto): Observable<Array<Entity>>{\n    return this._httpClient.post<Entity[]>('elements', data).pipe(\n      tap((response) => {\n        this._entitiesDimension.next(response);\n      })\n    );\n  }\n\n  /**\n   * Create Data Model object\n   *\n   * @param dataModel\n   * @returns data model\n   */\n  createDataModelObject(dataModel: DataModel): DataModel{\n    let appManifest: any;\n    this._myAppListService.appManifest$.subscribe((params) => {\n      appManifest = params?.data?.details?.manifest;\n    });\n\n    if(dataModel){\n      const dataModelObj = new DataModel(dataModel,this._userDataService.noCodeMode,appManifest);\n      dataModelObj.entities = this.createEntitiesObjectsArray(dataModel.entities);\n      return dataModelObj;\n    }\n\n  }\n\n  /**\n   * Create ColumnEntity object\n   *\n   * @param entities\n   * @returns entity array\n   */\n  createEntitiesObjectsArray(entities: Array<ColumnEntity>): Array<ColumnEntity> {\n    const entityArray = new Array<ColumnEntity>();\n    entities.forEach((entity) => {\n      entity.columns = this.createAttributesObject(entity.columns);\n      if(this._userDataService.noCodeMode && !noCodeModeExcludeColumns.includes(EntityType[entity.entityType] )\n         || (!this._userDataService.noCodeMode)){\n          entityArray.push(new ColumnEntity(entity));\n      }\n    });\n    return entityArray;\n  }\n\n  /**\n   * Create Attribute object\n   *\n   * @param attributes\n   * @returns attribute array\n   */\n  createAttributesObject(attributes: Array<Attribute>): Array<Attribute>{\n    const attributeArray = new Array<Attribute>();\n    attributes.forEach((attribute) => {\n      if(UnhandledWIdgetsInFilters.indexOf(attribute.widgetType) < 0 && !UnhandledWIdgetSubTypesInFilters.includes(attribute.widgetSubType)){\n        if(this._userDataService.noCodeMode && !noCodeModeExcludeFields.includes(attribute.label)\n            || (!this._userDataService.noCodeMode)){\n          attributeArray.push(new Attribute(attribute));\n        }\n      }\n    });\n    return attributeArray;\n  }\n\n}\n","export class DashboardDto {\n    appVersionId: number;\n    elementId: number;\n    dashboardId?: number;\n    filterId?: number;\n    filterCategoryId?: number;\n    name?: string;\n    type?: string;\n    constructor(dashboardDto?: DashboardDto | any) {\n        this.appVersionId = dashboardDto.appVersionId ? dashboardDto.appVersionId : 0;\n        this.elementId = dashboardDto.element ? dashboardDto.element.id: 0;\n        this.filterId = dashboardDto.filter ? dashboardDto.filter.id : 0;\n        this.filterCategoryId = dashboardDto.filterCategory ? dashboardDto.filterCategory.id : 0;\n        this.type = dashboardDto && dashboardDto.type || 'report';\n        this.name = null;\n        this.dashboardId = null;\n    }\n}\n","\n<ng-container [ngSwitch]=\"type\">\n  <!--  success message -->\n  <div *ngSwitchCase=\"axoSnackBarType.success\" class=\"snackbar-wrapper\">\n    <div class=\"flex items-center gap-3\">\n        <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-8 h-8 text-green-500\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n            <path fill-rule=\"evenodd\"\n            d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n            clip-rule=\"evenodd\" />\n        </svg>\n        <p class=\"axo-font snackbar-text text-green-600\">{{message}}</p>\n    </div>\n    <span class=\"inline-flex items-center cursor-pointer\" (click)=\"close()\">\n        <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4 text-gray-600\" fill=\"none\" viewBox=\"0 0 24 24\"\n            stroke=\"currentColor\">\n            <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n        </svg>\n    </span>\n  </div>\n  <!-- info message -->\n  <div *ngSwitchCase=\"axoSnackBarType.info\" class=\"snackbar-wrapper\">\n    <div class=\"flex items-center gap-3\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-6 h-6 text-blue-600\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n        <path fill-rule=\"evenodd\"\n        d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n        clip-rule=\"evenodd\" />\n    </svg>\n    <p class=\"axo-font snackbar-text text-blue-600\">{{message}}</p>\n    </div>\n    <span class=\"inline-flex items-center cursor-pointer\" (click)=\"close()\">\n      <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4 text-gray-600\" fill=\"none\" viewBox=\"0 0 24 24\"\n          stroke=\"currentColor\">\n          <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n      </svg>\n    </span>\n  </div>\n  <!-- warning -->\n  <div *ngSwitchCase=\"axoSnackBarType.warning\" class=\"snackbar-wrapper\">\n    <div class=\"flex items-center gap-3\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-6 h-6 text-yellow-600\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n        <path fill-rule=\"evenodd\"\n        d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n        clip-rule=\"evenodd\" />\n    </svg>\n    <p class=\"axo-font snackbar-text text-yellow-600\">{{message}}</p>\n    </div>\n    <span class=\"inline-flex items-center cursor-pointer\" (click)=\"close()\">\n      <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4 text-gray-600\" fill=\"none\" viewBox=\"0 0 24 24\"\n          stroke=\"currentColor\">\n          <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n      </svg>\n    </span>\n  </div>\n\n  <!-- error message -->\n  <div  *ngSwitchCase=\"axoSnackBarType.error\" class=\"snackbar-wrapper\">\n    <div class=\"flex items-center gap-3\">\n    <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-6 h-6 text-red-600\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n        <path fill-rule=\"evenodd\"\n        d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n        clip-rule=\"evenodd\" />\n    </svg>\n    <p class=\"axo-font snackbar-text text-red-600\">{{message}}</p>\n    </div>\n    <span class=\"inline-flex items-center cursor-pointer\" (click)=\"close()\">\n      <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"w-4 h-4 text-gray-600\" fill=\"none\" viewBox=\"0 0 24 24\"\n          stroke=\"currentColor\">\n          <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n      </svg>\n    </span>\n  </div>\n</ng-container>","import { AxoSnackBarType } from './axo-snack-bar.service';\nimport { Component, Inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\n@Component({\n  selector: 'app-axo-snack-bar',\n  templateUrl: './axo-snack-bar.component.html',\n  styleUrls: ['./axo-snack-bar.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class AxoSnackBarComponent implements OnInit {\n    message: string;\n    action: string;\n    type: AxoSnackBarType;\n    axoSnackBarType = AxoSnackBarType;\n\n  constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any,private _snackRef: MatSnackBarRef<AxoSnackBarComponent>) {\n    this.message = data.message;\n    this.action = data.action;\n    this.type = data.type;\n   }\n   \n\n  ngOnInit() {\n  }\n\n  /**\n   * Close _snack bar\n   */\n  close():void{\n    this._snackRef.dismiss();\n  }\n}\n","import { AxoSnackBarComponent } from './axo-snack-bar.component';\nimport { Injectable } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef, TextOnlySnackBar } from '@angular/material/snack-bar';\n\n@Injectable()\nexport class AxoSnackBarService {\n\n    constructor(private _snackBar: MatSnackBar) { }\n\n    // openSnackBar(message: string,type:AxoSnackBarType = AxoSnackBarType.success, action: string = 'Close', config: MatSnackBarConfig = {duration:5000}): any{\n    //     config.data = {message:message,action:action,type:type};\n    //     config.panelClass = \"snackbar-panel-class\";\n    //     return this._snackBar.openFromComponent(AxoSnackBarComponent,config);\n    // }\n\n    // Snackbar for All snackbars in app wherever this particular service function used\n    openSnackBar(message: string,type:AxoSnackBarType = AxoSnackBarType.success, action: string = 'Close', config: MatSnackBarConfig = {duration:5000}): any{\n        config.data = {message:message,action:action,type:type};\n        config.panelClass = ['snackbar-panel-class', 'custom-snackbar'];\n        config.verticalPosition = 'top';\n        return this._snackBar.openFromComponent(AxoSnackBarComponent,config);\n    }\n\n    // Snackbar for Form Builder\n    openFormSnackBar(message: string,type:AxoSnackBarType = AxoSnackBarType.success, action: string = 'Close', config: MatSnackBarConfig = {duration:5000}): any{\n        config.data = {message:message,action:action,type:type};\n        config.panelClass = ['snackbar-panel-class', 'custom-snackbar'];\n        config.verticalPosition = 'top';\n        return this._snackBar.openFromComponent(AxoSnackBarComponent,config);\n    }\n\n}\n\n/** Snack Bar types. */\nexport enum AxoSnackBarType{\n    success,\n    info,\n    warning,\n    error\n}\n","import { FilterCategory } from '../filters/filter-category';\nimport { IPropertyType } from '../report/iproperty.component';\nimport { Property } from '../elements/Property';\n\nexport class FilterCategoryProperty extends Property{\n    filterCategory: FilterCategory;\n    constructor(filterCategoryProperty?: FilterCategoryProperty) {\n        super();\n        this.type = IPropertyType.filterCategoryProperty;\n    }\n}\n","import { FilterCategoryProperty } from './enlighten-lib/property/filter-category-property';\nimport { FilterCategory } from './enlighten-lib/filters/filter-category';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { AxFilter } from './enlighten-lib/filters/ax-filter';\nimport { FilterProperty } from './enlighten-lib/property/filter-property';\nimport { Page } from './enlighten-lib/report/graphical-report/page/page';\nimport { CommonLibConfigurationService } from './common-lib-configuration.service';\nimport { catchError, tap } from 'rxjs/operators';\n@Injectable({\n    providedIn: 'root'\n})\nexport class CommonService\n{\n    private accountId: any;\n    private userCount: any;\n    isReportBuilderDirty: boolean = false;\n    isDashboardBuilderDirty: boolean;\n    isReportFilterApply: boolean = true;\n    isReportFilterReset: boolean = false;\n    refreshFilterPropertyEvent: EventEmitter<any> = new EventEmitter();\n    deleteFilterEvent: EventEmitter<any> = new EventEmitter();\n    private pageList: BehaviorSubject<Page[] | null> = new BehaviorSubject(null);\n    public userDetails: BehaviorSubject<any | null> =new BehaviorSubject(null);\n    private saveCompleteSource = new Subject<void>();\n    saveComplete$ = this.saveCompleteSource.asObservable();\n    public appManifest: BehaviorSubject<any | null> = new BehaviorSubject(null);\n    public chosenFunction: BehaviorSubject<any | null> = new BehaviorSubject(\"\");\n    formLists: any;\n    temparray: any;\n    private dataSubject = new BehaviorSubject<any>(null);\n    data$ = this.dataSubject.asObservable();\n\n    private dataSubjectForWidget = new BehaviorSubject<any>(null);\n    dataForWidget$ = this.dataSubjectForWidget.asObservable();\n\n    private appNameSubject = new BehaviorSubject<string>('');\n    appName$ = this.appNameSubject.asObservable();\n    private userDetailsCache: { [key: string]: { data: any, timestamp: number } } = {}; \n    private CACHE_EXPIRY_TIME = 1 * 60 * 1000; \n\n    constructor(private _httpClient: HttpClient,\n        private commonLibConfig: CommonLibConfigurationService,){\n    }\n\n    /**\n     * Getter for pages\n     */\n     get pageList$(): Observable<Page[]>\n     {\n         return this.pageList.asObservable();\n     }\n\n    /**\n     * Get drill through pages\n     *\n     * @param appVersionId\n     * @param attribute\n     * @returns\n     */\n    getPageList(appVersionId: number): Observable<Page[]>\n    {\n\n        let params = new HttpParams();\n        params = params.append('appVersionId', appVersionId);\n        const observable = this._httpClient.get<Page[]>('drillthrough', { params: params });\n        observable.subscribe((response: Page[]) => {\n            this.pageList.next(response);\n        });\n        return observable;\n    }\n    /**\n     * Set pages to pagelist BehaviorSubject\n     *\n     * @param pages\n     */\n        setPages(pages: Page[]): void {\n        this.pageList.next(pages);\n    }\n\n    /**\n     * when filter click then open filter properties.\n     */\n   refreshFilterProperty(filter: AxFilter): void {\n        const filterProperty = new FilterProperty();\n        filterProperty.filter = filter;\n        this.refreshFilterPropertyEvent.emit(filterProperty);\n    }\n\n    /**\n     * when filter click then open filter category properties.\n     */\n    refreshFilterCategoryProperty(filterCategory: FilterCategory){\n        const filterCategoryProperty = new FilterCategoryProperty();\n        filterCategoryProperty.filterCategory = filterCategory;\n        this.refreshFilterPropertyEvent.emit(filterCategoryProperty);\n    }\n\n    /**\n     * when filter click then open filter properties.\n     */\n    deleteFilter(guid: string): void {\n    this.deleteFilterEvent.emit(guid);\n    }\n\n    getApplist(appId: number, appVersion: number): Observable<any> {\n        const url = `${this.commonLibConfig.axonatorX1Url}getAppDetails/`;\n        const headers = new HttpHeaders({\n          // eslint-disable-next-line @typescript-eslint/naming-convention\n          'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'\n        });\n        const data = {\n          app: JSON.stringify({ a: appId, v: appVersion })\n        };\n        return this._httpClient.post(url, this.objectToParams(data), { headers });\n      }\n    \n      private objectToParams(obj: any): HttpParams {\n        return Object.keys(obj).reduce((params, key) =>\n          params.append(key, obj[key]), new HttpParams());\n      }\n    \n      getAppUsers(appId: number, appVersion: number): Observable<any> {\n        const url = `${this.commonLibConfig.axonatorX1Url}getAppUsers/`;\n        const headers = new HttpHeaders({\n          // eslint-disable-next-line @typescript-eslint/naming-convention\n          'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'\n        });\n        const data = {\n          app: JSON.stringify({\n            currentPage: 0,\n            pagesize: -1,\n            a: appId,\n            v: appVersion\n          })\n        };\n        return this._httpClient.post(url, this.objectToParams(data), { headers });\n      }\n\n      getUserAccountId(): any {\n        return this.accountId;\n      }\n      getUser(): Observable<any> {\n        const url = `${this.commonLibConfig.axonatorX1Url}getUserDetails/`;\n    \n        // Implement the logic to fetch user details using an HTTP request\n        // alert (\"Button UD clicked\");\n        return this._httpClient.get(url).pipe(\n          catchError((error) => {\n            console.error('Error in getUserInfo:', error);\n            throw error;\n          }),\n          tap((response) => {\n            // Assuming response is an object with 'lastused_account' property\n            this.accountId = response.ud.lastused_account;\n            this.userCount = response.ud.user_count;\n          })\n        );\n      }\n\n\n    sendUpgradeEmail(user: any): Promise<any> {\n      const formData = new FormData();\n    \n      // Append user object as JSON string under 'userData' key\n      formData.append('userData', JSON.stringify(user));\n    \n      // Send the FormData to the backend\n      return this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url + 'sendUpgradeEmail/', formData).toPromise();\n    }\n  \n     /**\n     * Getter for user Details\n     */\n     get userDetails$(): Observable<any>\n     {\n         return this.userDetails.asObservable();\n     }\n    // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures\n    getUserDetail(forceRefresh?: boolean): Observable<any> {\n      const cachedResponse = this.userDetailsCache['userDetails'] || null;\n      const currentTime = new Date().getTime();\n      \n      // Check if we have cached data that is still valid and forceRefresh is not set\n      if (!forceRefresh && cachedResponse && (currentTime - cachedResponse.timestamp) < this.CACHE_EXPIRY_TIME ) {\n        // Return the cached data wrapped in an Observable\n        return of(cachedResponse.data); // `of` creates an observable from the cached data\n      } else {\n        // Fetch new data from the server\n        return this._httpClient.get<any>(this.commonLibConfig.axonatorX1Url + 'getUserDetails/').pipe(\n          tap((response) => {\n            // Update the cache with the new data and the current timestamp\n            this.userDetailsCache['userDetails'] = {\n              data: response,\n              timestamp: new Date().getTime()\n            };\n          })\n        );\n      }\n    }\n\n    sendlimitexceedmail(): Observable<any> {\n      return this._httpClient.get<any>(this.commonLibConfig.axonatorX1Url + 'sendUserLimitExceededEmail/');\n    }\n\n    publishapp(appId: string, appVersion: string, publishStatus: string): Observable<any> {\n      const url = `${this.commonLibConfig.axonatorX1Url}publishApp/`;\n      const headers = new HttpHeaders({\n        // eslint-disable-next-line @typescript-eslint/naming-convention\n        'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'\n      });\n  \n      const data = {\n        app: JSON.stringify({ a: appId, v: appVersion, publish_status: publishStatus }),\n        // eslint-disable-next-line @typescript-eslint/naming-convention\n        // publish_status: publishStatus // Add the publish_status property to the payload\n      };\n  \n      return this._httpClient.post(url, this.objectToParams(data), { headers });\n    }\n\n    notifySaveComplete() {\n      this.saveCompleteSource.next();\n    }\n\n    getVersionList(appId: number, appVersion: number): Observable<any> {\n      const url = `${this.commonLibConfig.axonatorX1Url}getVersionsList/`;\n      const headers = new HttpHeaders({\n        // eslint-disable-next-line @typescript-eslint/naming-convention\n        'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'\n      });\n  \n      const data = {\n        app: JSON.stringify({ a: appId, v: appVersion })\n      };\n  \n      return this._httpClient.post(url, this.objectToParams(data), { headers });\n    }\n\n    /**\n   * Getter for app manifest\n   */\n    get appManifest$(): Observable<any> {\n      return this.appManifest.asObservable();\n    }\n    /**\n   */\n    fetchAppDetails(appVersionId: any, axonatorX1Url: string): Observable<any> {\n      return this._httpClient.get<any>(axonatorX1Url + 'fetchAppDetails/?appVersionId=' + appVersionId).pipe(\n        tap((response) => {\n          this.appManifest.next(response);\n          if (response.data && response.data.details && response.data.details.n) {\n            this.setAppName(response.data.details.n);\n          }\n        })\n      );\n    }\n\n        /**\n   * Getter for chosen function\n   */\n    get chosenFunction$(): Observable<any> {\n      return this.chosenFunction.asObservable();\n    }\n    /**\n   */\n    addFunction(value: any): void {\n      this.chosenFunction.next(value);\n    }\n\n      /**\n   * to call get asset form api\n   *\n   * @param appVersionId\n   * @returns\n   */\n  getAssetFormList(appVersionId: number): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const formData = new FormData();\n      formData.append('appversion', appVersionId.toString());\n      localStorage.setItem('appVersionId', JSON.stringify(appVersionId));\n  \n      this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url + 'getAllForms/', formData) //need config\n        .subscribe((response: any) => {\n          this.formLists = response;\n          this.temparray = response.afl.afs.map(form => form.fid);\n          this.temparray = this.temparray.map(id => String(id));\n          localStorage.setItem('temparray', JSON.stringify(this.temparray));\n          resolve(response); // Resolve with the response data\n        }, error => {\n          reject(error); // Reject with the error\n        });\n    });\n  }\n\n    /**\n   * Get  form-details from x1\n   */\n\n    getFormDetails(fid: string): Promise<any> {\n      const formData = new FormData();\n      const form = { 'fid': fid };\n      formData.append('form', JSON.stringify(form));\n      return new Promise((resolve, reject) => {\n        this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'getFormDetails/', formData).subscribe((response: any) => {\n          resolve(response);\n        }, reject);\n      });\n    }\n\n    updateData(value: any) {\n      if (typeof value === 'number') {\n        this.dataSubject.next(value); // Only emit if value is a number\n    }}\n\n    updateDataForWidget(value: any) {\n      this.dataSubjectForWidget.next(value);\n    }\n    private appMinorVersionSubject = new BehaviorSubject<string>('Unknown');\n  appMinorVersion$ = this.appMinorVersionSubject.asObservable();\n\n  setAppMinorVersion(version: string): void {\n    this.appMinorVersionSubject.next(version);\n  }  \n  setAppName(name: string): void {\n    this.appNameSubject.next(name);\n  }\n}\n","// External libs\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { BehaviorSubject, Observable} from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { Dashboard } from './dashboard';\nimport { CommonService } from '../common.service';\n\n@Injectable()\nexport class DashboardListService\n{\n    _dashboardId: BehaviorSubject<number | null>;\t// Private\n    _dashboard: BehaviorSubject<Dashboard|null>;\n    private dashboardList: BehaviorSubject<Dashboard[] | null> = new BehaviorSubject(null);\n    // flatten: IFlatten;\n    userId: number;\n\n    /**\n     * Constructor\n     */\n    constructor(\n        private _httpClient: HttpClient,private commonSerive: CommonService){\n        this._dashboardId = new BehaviorSubject(null);\n         }\n    // -----------------------------------------------------------------------------------------------------\n    // @ Accessors\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Getter for dashboards\n     */\n    get dashboardsList$(): Observable<Dashboard[]>\n    {\n        return this.dashboardList.asObservable();\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Public methods\n    // -----------------------------------------------------------------------------------------------------\n\n    // Get dashboard list by the appversion id provided in route\n    getDashboardList(appVersionId: number): Observable<Dashboard[]>\n    {\n        this.commonSerive.getUserDetail().subscribe({\n            next: (userDetails) => {\n                this.userId = userDetails.ud.uid;   \n    \n            },\n            error: (error) => {\n                console.error('Error fetching user details:', error);\n            }\n        });\n        let params = new HttpParams()\n                .append('appVersionId', appVersionId)\n                .append('userId', this.userId); // Add userId\n        return this._httpClient.get<Dashboard[]>('dashboards', { params: params }).pipe(\n            tap((response) => {\n                this.dashboardList.next(response);\n            })\n        );\n    }\n\n    // Get dashboard by the id provided in route\n    getDashboardData(appVersionId: number): Promise<any>\n    {\n        let params = new HttpParams();\n        params = params.append('appVersionId', appVersionId);\n        return new Promise((resolve,reject) => {\n            this._httpClient.get<Dashboard[]>('dashboards', { params: params })\n                .subscribe((response) => {\n                    this.dashboardList.next(response);\n                    resolve(response);\n                },reject);\n        });\n    }\n    //create dashboard\n    createDashboard(dashboard: Dashboard): Promise<any>\n    {\n        this.commonSerive.getUserDetail().subscribe({\n            next: (userDetails) => {\n                this.userId = userDetails.ud.uid;   \n    \n            },\n            error: (error) => {\n                console.error('Error fetching user details:', error);\n            }\n        });\n        dashboard.userId = this.userId;\n        return new Promise((resolve, reject) => {\n        this._httpClient.post('dashboards', dashboard).subscribe((response: number) => {\n            this._dashboardId.next(response);\n            resolve(response);\n        }, reject);\n        });\n    }\n\n    deleteDashboard(dashboardId: number): Promise<any>\n    {\n        return new Promise((resolve, reject) => {\n            this._httpClient.delete('dashboards?id='+ dashboardId).subscribe((response: number) => {\n                this._dashboardId.next(response);\n                resolve(response);\n            }, reject);\n          });\n    }\n\n\n    saveDashboardPermissions(payload: any): Observable<any> {\n        return this._httpClient.post(`dashboardpermissions/savePermissions`, payload);\n    }\n\n\n    getUserDashboardPermissions(userId: number, appId: number): Observable<{ dashboards: number[]; reportElements: number[] }> {\n        const params = new HttpParams()\n            .set('userId', userId.toString())\n            .set('appId', appId.toString());\n    \n        return this._httpClient.get<{ dashboards: number[]; reportElements: number[] }>('dashboardpermissions/permissions', { params });\n    }\n    \n\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { DashboardDto } from '../../common-dto/dashboard-dto';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SelectDashboardsDialogService {\n\n  constructor(private _httpClient: HttpClient) { }\n\n\n\n  sendToDashboard(dashboard: DashboardDto): Promise<any> {\n    return new Promise((resolve, reject) => {\n      this._httpClient.post('dashboards/sendtodashboard', dashboard).subscribe((response: number) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  createSendToDashboard(dashboard: DashboardDto): Promise<any> {\n    return new Promise((resolve, reject) => {\n      this._httpClient.post('dashboards/', dashboard).subscribe((response: number) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n}\n","<form class=\"flex flex-col\">\n      <div>\n        <div class=\"mb-4 pin-to-dashboard\">Pin to Dashboard</div>\n        <div class=\"flex items-center  mt-6 mb-4 sm:mt-0 dash-btns space-x-3\">\n            <button [disableRipple]=\"true\" [ngClass]=\"{'active-selected':showDashboard }\" (click)=\"showDashboardList()\" class=\"btn-1\" mat-flat-button>\n            <span class=\"\">Existing Dashboard</span>\n          </button>\n          <button [disableRipple]=\"true\" [ngClass]=\"{'active-selected':!showDashboard }\" type=\"button\" (click)=\"createDashboardList()\" class=\"btn-2\" mat-flat-button>\n            <span class=\"\">Create New Dashboard</span>\n          </button>   \n        </div>\n    \n        <div class=\"border h-28 p-3\">\n          <div *ngIf=\"showDashboard\">\n            <div class=\"flex flex-col gt-xs:flex-row\">\n              <mat-form-field class=\"flex-auto gt-xs:pr-3\">\n                <mat-label>Select Existing Dashboard</mat-label>\n                <mat-select  panelClass=\"show-dash\" [disableOptionCentering]=\"true\" required>\n                  <mat-option *ngFor=\"let dashboard of dashboards\" [value]=\"dashboard.id\" (click)=\"onDashboardClick(dashboard.id)\" required class=\"sss\">\n                    {{dashboard.name}}\n                  </mat-option>\n                </mat-select>\n              </mat-form-field>\n            </div>\n          </div>\n\n          <div *ngIf=\"createDashboard\">\n            <div class=\"flex flex-col gt-xs:flex-row\">\n              <mat-form-field class=\"flex-auto gt-xs:pr-3\">\n                <mat-label>Create New Dashboard</mat-label>\n                <input matInput [formControl]=\"dashboardName\" id=\"createnewdashboard\" name=\"createnewdashbaord\">\n                <mat-error *ngIf=\"dashboardName.invalid && dashboardName.touched\">{{getErrorMessage()}}</mat-error>\n\n              </mat-form-field>\n            </div>\n\n          </div>\n        </div>\n      </div>\n\n    <div class=\"mt-5\">\n    \n      <div class=\"flex items-end  btns sm:mt-0 sm:ml-5 space-x-3\">\n        <div class=\"cancel-btn\">\n        <button (click)=\"onNoClick()\"[autofocus]=\"false\" mat-flat-button>\n          <span>Cancel</span>\n        </button>\n      </div>\n        <div class=\"pin-btn\">\n          <button class=\"flex items-start\" mat-flat-button type=\"submit\" (click)=\"pinToDashboard()\" >\n            <mat-icon [svgIcon]=\"'axo_pin'\" ></mat-icon>\n            <span> Pin</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  </form>","import { Component, Inject, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Subject } from 'rxjs';\nimport { DashboardListService } from '../dashboard-list.service';\nimport { SelectDashboardsDialogService } from './show-dashboards.service';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AxElement } from '../../enlighten-lib/elements/ax-element';\nimport { DashboardDto } from '../../common-dto/dashboard-dto';\nimport { Router} from '@angular/router';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { FilterCategory } from '../../enlighten-lib/filters/filter-category';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { AxoSnackBarService, AxoSnackBarType } from '../../axo-snack-bar/axo-snack-bar.service';\n\nexport interface ISendToDashboardData {\n  appVersionId: number;\n  element?: AxElement;\n  filter?: AxFilter;\n  filterCategory?: FilterCategory;\n  type: string;\n}\n\n@Component({\n  selector: 'lib-show-dashboards',\n  templateUrl: './show-dashboards.component.html',\n  styleUrls: ['./show-dashboards.component.scss'],\n  providers: [\n    {\n      provide: MAT_SELECT_CONFIG,\n      useValue: { overlayPanelClass: 'send-dashboard-custom-overlay-panel' },\n    },\n  ],\n})\n\n\n\nexport class SelectDashboardsDialogComponent implements OnInit {\n  dashboards = [];\n  showDashboard: boolean = true;\n  createDashboard: boolean = false;\n  options: FormGroup;\n  dashboardId: number;\n  appVersionId: string;\n  elements: Array<AxElement> = [];\n  dashboardDto: DashboardDto;\n\n  dashboardName: FormControl = new FormControl('', Validators.required);\n  isDashboardNameEmpty: boolean = true;\n\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  constructor(\n    private _dashboardListService: DashboardListService,\n    private _showDashboardComponentService: SelectDashboardsDialogService,\n    private _snackBar: MatSnackBar,\n    private _axoSnackBar: AxoSnackBarService,\n    public dialog: MatDialog,\n    @Inject(MAT_DIALOG_DATA) public data: ISendToDashboardData,\n    private router: Router,\n  ) {\n  }\n\n  ngOnInit(): void {\n    // to get existing dashboard list\n    this._dashboardListService.getDashboardList(this.data.appVersionId).subscribe((dashboard) => {\n      this.dashboards = dashboard;\n    });\n  }\n\n  showDashboardList(): void {\n    this.showDashboard = true;\n    this.createDashboard = false;\n  }\n\n  createDashboardList(): void {\n    this.showDashboard = false;\n    this.createDashboard = true;\n  }\n\n  onNoClick(): void {\n    const dialogRef = this.dialog.closeAll();\n  }\n\n  onDashboardClick(dashboardId: number): void {\n    this.dashboardId = dashboardId;\n  }\n  async pinToDashboard(): Promise<void> {\n    this.dashboardName.markAsTouched();\n    if (this.showDashboard) {\n      const dashboardData = new DashboardDto(this.data);\n      dashboardData.dashboardId = this.dashboardId;\n      this._axoSnackBar.openSnackBar('Pinning to dashboard...', AxoSnackBarType.info);\n      await this._showDashboardComponentService.sendToDashboard(dashboardData);\n      const snackBarRef = this._snackBar.open('Report pinned to dashboard.', 'View Dashboard', { duration: 5000, panelClass: 'pinned-dashboard' });\n      snackBarRef.onAction().subscribe(() => {\n        const url = this.router.createUrlTree(['apps/' + this.data.appVersionId  + '/dashboards/' + this.dashboardId]);\n        window.open(url.toString(), '_blank');\n      });\n    }\n    else {\n      const dashboardData = new DashboardDto(this.data);\n      dashboardData.name = this.dashboardName.value;\n      this._axoSnackBar.openSnackBar('Pinning to dashboard...', AxoSnackBarType.info);\n      const dashboardId = await this._showDashboardComponentService.createSendToDashboard(dashboardData);\n      const snackBarRef = this._snackBar.open('Report pinned to dashboard.', 'View Dashboard', { duration: 5000, panelClass: 'pinned-dashboard' });\n      snackBarRef.onAction().subscribe(() => {\n        const url = this.router.createUrlTree(['apps/' + this.data.appVersionId  + '/dashboards/' + dashboardId]);\n        window.open(url.toString(), '_blank');\n      });\n    }\n\n    const dialogRef = this.dialog.closeAll();\n\n  }\n  getErrorMessage(): string {\n    if (this.dashboardName.hasError('required')) {\n      this.isDashboardNameEmpty = false;\n      return 'Please enter dashboard name';\n    }\n  }\n\n  /**\n   *\n   * @param message\n   */\n  openSnackBar(message: string): void {\n    this._snackBar.open(message);\n  }\n\n}\n","import {Component, Inject, ViewEncapsulation} from '@angular/core';\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\n\nexport interface DialogData {\n  title: string;\n  message: string;\n  confirmButtonText: string;\n  cancelButtonText: string;\n  confirmButtonType: string;\n}\n\n@Component({\n  selector: 'comfirmation-modal',\n  templateUrl: './confirmation-modal.component.html',\n  styleUrls: ['./confirmation-modal.component.scss', '../../../styles/styles.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ConfirmationModalComponent{\n  constructor(\n    public dialogRef: MatDialogRef<ConfirmationModalComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: DialogData) {}\n\n  onNoClick(): void {\n    this.dialogRef.close(false);\n  }\n  onYesClick(): void{\n    this.dialogRef.close(true);\n  }\n\n}\n","<div class=\"popup-container confirmation-popup\">\n  <button class=\"close-icon\" (click)=\"onNoClick()\"></button>\n  <h1>{{data.title}}</h1>\n  <p>{{data.message}}</p>\n  <div class=\"action-btn-container\">\n    <button class=\"stroke-btn\" (click)=\"onNoClick()\">{{data.cancelButtonText}}</button>\n    <button class=\"delete-btn\" [ngClass]=\"{'delete-button': data.confirmButtonType === 'delete'}\" (click)=\"onYesClick()\"\n      cdkFocusInitial>{{data.confirmButtonText}}</button>\n  </div>\n</div>","import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SubscribedPlanName {\n  public subscribedPlanName: string = \"notFetched\";\n\n  constructor() { }\n  \n}\n","import { Injectable, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Report } from '../common-utils/report';\nimport { ISendToDashboardData, SelectDashboardsDialogComponent } from '../dashboard-lib/show-dashboards/show-dashboards.component';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ConfirmationModalComponent } from '../shared/comfirmation-modal/confirmation-modal.component';\nimport { ReportBuilderMasterService } from '../enlighten-lib/report/report-builder-master.service';\nimport { CommonService } from '../common.service';\nimport { AxoSnackBarService, AxoSnackBarType } from '../axo-snack-bar/axo-snack-bar.service';\nimport { SubscribedPlanName } from '../subscribedPlanName.service';\n\n\n\n@Injectable()\nexport class SendToDashboardService{\n  report: Report;\n  constructor(\n    public dialog: MatDialog,\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _commonService: CommonService,\n    private _axoSnackBar: AxoSnackBarService,\n    public _subscribedPlanName: SubscribedPlanName\n  ) {\n  }\n\n\n  /**\n   * Send element/filter to dashboard\n   *\n   * @param filters\n   * @param elements\n   *\n   */\n  sendToDashboard(sendToDashboardData: ISendToDashboardData): void {\n    if(!this.accessPremium()){\n      this._axoSnackBar.openFormSnackBar('This feature is not available in current plan. Please Upgrade!', AxoSnackBarType.warning);\n      return;\n    }\n    this.report=this._reportBuilderMasterService.report;\n    if(this._commonService.isReportBuilderDirty){\n      this.openConfirmationPopup(sendToDashboardData);\n    }\n    else{\n      const dialogRef = this.dialog.open(SelectDashboardsDialogComponent, {\n        width: '430px',\n        data: sendToDashboardData\n      });\n    }\n  }\n\n  accessPremium(): boolean {\n    const { is_trial_expired } = JSON.parse(localStorage.getItem(\"userDetails\")).ud;\n    const { subscribedPlanName } = this._subscribedPlanName;\n  \n    return !is_trial_expired || (subscribedPlanName !== 'Basic' && subscribedPlanName !== 'notFetched');\n  }\n\n\n  /**\n   * Open Confirmation dialog if report is not saved. when we try to send chart on dashboard\n   *\n   * @param data\n   *\n   */\n  async openConfirmationPopup(element: ISendToDashboardData): Promise<void> {\n    const dialogRef = this.dialog.open(ConfirmationModalComponent, {\n    width: '30%',\n    data: {\n        title: 'Unsaved Changes',\n        message: 'The report has unsaved changes. Before pin to dashboard, you must save your progress.',\n        confirmButtonText: 'Save and Pin',\n        cancelButtonText: 'Cancel'\n      },\n      panelClass: 'confirm-modal-container'\n    });\n\n    dialogRef.afterClosed().subscribe((result) => {\n    if (result) {\n        this.saveAndSendToDashboard(element);\n      }\n    });\n  }\n  /**\n   *\n   *to save report and pin element to dashboard\n   *\n   * @param data\n   */\n    async saveAndSendToDashboard(element: ISendToDashboardData): Promise<void> {\n      this._commonService.isReportBuilderDirty = false;\n      this._reportBuilderMasterService.saveReport(this.report).then((reportresp) => {\n          reportresp.filters.forEach((filter, filterIndex) => {\n            this.report.filters[filterIndex].id = filter.id;\n          });\n          reportresp.pages.forEach((page, pageIndex) => {\n            this.report.pages[pageIndex].id = page.id;\n              page.elements.forEach((value, elmentIndex) => {\n                  this.report.pages[pageIndex].elements[elmentIndex].id = value.id;\n                  value.filters.forEach((filter,filterIndex)=>{\n                    this.report.pages[pageIndex].elements[elmentIndex].filters[filterIndex].id =  filter.id;\n                 });\n                 value.categories.forEach((category,categoryIndex)=>{\n                  this.report.pages[pageIndex].elements[elmentIndex].categories[categoryIndex].id =  category.id;\n                 });\n              });\n          });\n          this._axoSnackBar.openSnackBar('Report Saved.',AxoSnackBarType.success);\n      });\n    this.sendToDashboard(element);\n  }\n\n  /**\n   * Open the snackbar and dispay message.\n   *\n   * @param message\n   *\n   */\n\n}\n","export enum BreadCrumbsStyle {\n    SingleLine = 1,\n    SkipCurrent = 2\n}","import { AxoUtils } from '../axo-utils/axo-utils';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BehaviorSubject } from 'rxjs';\nimport { BreadCrumbsStyle } from '../enlighten-lib/enums/bread-crumbs-style';\nimport { ScreenType } from '../enlighten-lib/filters/condition-type';\n\n@Injectable()\nexport class BreadCrumbsService {\n    onBreadCrumbsChanged: BehaviorSubject<Array<BreadCrumb>>;\n    onTitleChanged: BehaviorSubject<any>;\n    breadCrumbs: Array<BreadCrumb> = [];\n    breadCrumbStyleChanged: BehaviorSubject<BreadCrumbsStyle>;\n\n    /**\n     *\n     * @param _router\n     */\n    constructor(private _router: Router) {\n        this.onBreadCrumbsChanged = new BehaviorSubject([]);\n        this.onTitleChanged = new BehaviorSubject(null);\n        this.breadCrumbStyleChanged = new BehaviorSubject(BreadCrumbsStyle.SingleLine);\n    }\n\n    /**\n     * Used to change the current bread crumb\n     * @param itemId\n     */\n    changeCurrentBreadCrumb(index: number): void {\n        this.breadCrumbs.splice(index + 1);\n    }\n\n    /**\n     * Used to add bread crumb\n     * @param breadCrumb\n     */\n    addBreadCrumb(breadCrumb: BreadCrumb): void {\n        const _this = this;\n        this.breadCrumbs.push(breadCrumb);\n    }\n\n    update(): void{\n        this.onBreadCrumbsChanged.next(this.breadCrumbs);\n    }\n\n    /**\n     * Remove all bread crumbs of provided screen\n     * @param screenType\n     */\n    removeScreenBreadCrumbs(screenType: ScreenType) {\n        this.breadCrumbs = this.breadCrumbs.filter(b => b.screenType != screenType);\n    }\n\n    /**\n     * Remove all bread crumbs\n     */\n    removeAllBreadCrumbs(): void {\n        this.breadCrumbs = [];\n    }\n\n    /**\n     * Called when editable bread crumb title changed\n     * @param title\n     * @param id\n     */\n    changeTitle(title: string, id: string = \"\"): void {\n        if(id != \"\"){\n            this.breadCrumbs.find(b => b.guid === id).title = title;\n        }\n        else{\n            this.breadCrumbs[this.breadCrumbs.length -1]\n        }\n        this.onTitleChanged.next({ title: title, id: id });\n    }\n\n    /**\n     * Used to set bread crumb style\n     * @param crumbStyle\n     */\n    setCrumbStyle(crumbStyle: BreadCrumbsStyle): void {\n        this.breadCrumbStyleChanged.next(crumbStyle);\n    }\n    /**\n     * Check bread crumb are existing or Not\n     * @param breadCrumbTitle\n     * @returns boolean  true or false\n     */\n    checkBreadCrumbExisting(breadCrumbTitle: string): boolean {\n        return this.breadCrumbs.some((breadCrumb) => {\n            return breadCrumb.title === breadCrumbTitle;\n        });\n    }\n\n    /**\n     * returns breadCrumb ScreenType By Url\n     * @param url\n     * @returns\n     */\n    getBreadCrumbScreenTypeByUrl(url) : ScreenType {\n        if(url.includes(\"task\")){\n            return ScreenType.TaskDetailView;\n        }\n        else if(url.includes(\"data-views\")){\n            return ScreenType.dataView;\n        }\n        else if(url.includes(\"dashboard\")){\n            return  ScreenType.dashboards;\n        }\n        else if(url.includes(\"home\")){\n            return  ScreenType.home;\n        }\n        else {\n            return ScreenType.forms;\n        }\n    }\n}\n\nexport class BreadCrumb {\n    guid: string = AxoUtils.guid();\n    itemId: number;\n    title: string;\n    url: string;\n    screenType: number;\n    parentId: number;\n    function: any;\n    icon: string;\n    onErrorIcon: string;\n    isEditable: boolean;\n    isCollapsable: boolean;\n    showHoverBox: boolean;\n\n    createBreadCrumb(itemId: number, title: string, url: string, screenType: number, parentId?: number, icon?: string, isCollapsable: boolean = false) {\n        this.itemId = itemId;\n        this.title = title;\n        this.url = url;\n        this.screenType = screenType;\n        this.parentId = parentId;\n        this.icon = icon;\n        this.isCollapsable = isCollapsable;\n    }\n}\n","import { Injectable, EventEmitter } from '@angular/core';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { Page } from '../enlighten-lib/report/graphical-report/page/page';\nimport { ScreenType } from '../enlighten-lib/filters/condition-type';\nimport { BreadCrumbsService, BreadCrumb } from '../bread-crumbs/bread-crumbs.service';\n\n/**\n * @class DrillPageState :- hold the state of drilled page\n */\nexport class DrillPageState\n{\n  page: Page;\n  filter: AxFilter;\n  isLoaded: boolean;\n  constructor(page: Page,filter: AxFilter){\n    this.page = page;\n    this.filter = filter;\n    this.isLoaded= false;\n  }\n}\n\nexport class ParentData {\n  name: string;\n  id: number;\n  screenType: number;\n  url: string;\n}\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DrillThroughService {\n\n  onPageChanged: EventEmitter<string>;\n  /* Drilled page saved here. this array will help to going back to previous drill page  */\n  private _drillThroughStates: Array<DrillPageState> = [];\n  private _drillThroughStatesRedo: Array<DrillPageState> = [];\n  private _parentData: ParentData = new ParentData();\n\n  constructor(private _breadCrumbService: BreadCrumbsService) {\n    this.onPageChanged = new EventEmitter();\n  }\n  /**\n   * This will save page and filter in array for preserving routing state.\n   *\n   * @param page\n   * @param filter\n   */\n  public drillPage(page: Page,filter: AxFilter): void{\n    this._drillThroughStates.push(new DrillPageState(page,filter));\n  }\n\n  /**\n   * Remove preserved drill page from array on back button click\n   */\n  public PageBack(): DrillPageState{\n    const poppedState: DrillPageState = this._drillThroughStates.pop();\n    this._drillThroughStatesRedo.push(poppedState);\n    if(!this._drillThroughStates.length){\n      return null;\n    }\n    const currentState: DrillPageState = this._drillThroughStates[this._drillThroughStates.length-1];\n    this._breadCrumbService.changeCurrentBreadCrumb(currentState.page.id);\n    this._breadCrumbService.update();\n    return currentState;\n  }\n\n  public PageNext(): DrillPageState {\n    const drillPageState: DrillPageState = this._drillThroughStatesRedo.pop();\n    if(drillPageState)\n      {this.drillPage(drillPageState.page, drillPageState.filter);}\n    return drillPageState;\n  }\n\n/**\n *  This function return the current drill through state.\n */\n  public GetCurrentDrillThroughState(): DrillPageState{\n    if(this._drillThroughStates.length < 1){\n      return null;\n    }\n    return this._drillThroughStates[this._drillThroughStates.length-1];\n  }\n\n  /**\n   * This function removes the pages from Drill Through States on change of bread crumbs state\n   */\n  public changeDrillThroughStates(index: number): boolean{\n    if(index < this._drillThroughStates.length){\n      const states: Array<DrillPageState> = this._drillThroughStates.splice(index).reverse();\n      states.forEach((state) => {\n        this._drillThroughStatesRedo.push(state);\n      });\n      const currentState: DrillPageState = this.GetCurrentDrillThroughState();\n      const breadCrumbIndex = this._breadCrumbService.breadCrumbs.map(b => b.itemId).lastIndexOf(currentState.page.id);\n      this._breadCrumbService.changeCurrentBreadCrumb(breadCrumbIndex);\n      this._breadCrumbService.update();\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * check loaded page already exists if it is then change the drill through states accordingly\n   */\n  public checkLoadedPageExists(pageId: number): boolean {\n    const index: number = this._drillThroughStates.findIndex(d => d.page.id === pageId);\n    if(index != -1){\n      this.changeDrillThroughStates(index+1);\n      return true;\n    }\n    return false;\n  }\n\n  /**\n   * Destroy drill through data\n   */\n  public destroy(): void {\n    this._drillThroughStates = [];\n    this._drillThroughStatesRedo = [];\n    this._parentData = new ParentData();\n    this._breadCrumbService.removeScreenBreadCrumbs(ScreenType.drillThrough);\n    localStorage.removeItem('drill_states');\n    localStorage.removeItem('drill_redo_states');\n    localStorage.removeItem('paranet_data');\n  }\n\n  /**\n   * Save states in localstorage on reload\n   */\n  public saveStates(): void {\n    localStorage.setItem('drill_states', JSON.stringify(this._drillThroughStates));\n    localStorage.setItem('drill_redo_states', JSON.stringify(this._drillThroughStatesRedo));\n    localStorage.setItem('paranet_data', JSON.stringify(this._parentData));\n  }\n\n  /**\n   * Set the parent data of the drill through\n   *\n   * @param id\n   * @param name\n   * @param url\n   */\n  setParentData(id: number, name: string, url: string): void {\n    if(!this._parentData.id){\n      this._parentData = new ParentData();\n      this._parentData.id = id;\n      this._parentData.name = name;\n      this._parentData.screenType = ScreenType.drillThrough;\n      this._parentData.url = url;\n    }\n  }\n\n  /**\n   * Get parent data of drill through\n   *\n   * @returns\n   */\n  getParentData(): ParentData {\n    return this._parentData;\n  }\n\n  /**\n   * Restore states when reload of page finishes\n   */\n  public restoreStates(): void {\n    const drillThroughStates = JSON.parse(localStorage.getItem('drill_states'));\n    const drillThroughStatesRedo = JSON.parse(localStorage.getItem('drill_states_redo'));\n    const parentData = JSON.parse(localStorage.getItem('paranet_data')) as ParentData;\n    if(drillThroughStates && drillThroughStates.length){\n      this.setParentData(parentData.id, parentData.name, parentData.url);\n      this.setParentBreadCrumb();\n      this._drillThroughStates = drillThroughStates;\n      this._drillThroughStates.forEach((state) => {\n        state.page = new Page(state.page);\n        state.filter = state.filter as AxFilter;\n      });\n      if(drillThroughStatesRedo && drillThroughStatesRedo.length)\n        {this._drillThroughStatesRedo = drillThroughStatesRedo;}\n\n      this._drillThroughStates.forEach((state, index) => {\n        if(index < this._drillThroughStates.length-1){\n          this.setPageBreadCrumb(state.page);\n        }\n      });\n    }\n  }\n\n  /**\n   * Set drill thorugh parent bread crumb\n   */\n  setParentBreadCrumb(): void{\n    const breadCrumb = new BreadCrumb();\n    breadCrumb.itemId = this._parentData.id;\n    breadCrumb.title = this._parentData.name;\n    breadCrumb.url = this._parentData.url;\n    breadCrumb.screenType = ScreenType.drillThrough;\n    this._breadCrumbService.addBreadCrumb(breadCrumb);\n    this._breadCrumbService.update();\n  }\n\n  /**\n   * Set bread crumbs for all states/pages of drill through\n   */\n  setBreadCrumbs(): void{\n    this._breadCrumbService.removeScreenBreadCrumbs(ScreenType.drillThrough);\n    this.setParentBreadCrumb();\n    this._drillThroughStates.forEach((state, index) => {\n      this.setPageBreadCrumb(state.page);\n    });\n  }\n\n  /**\n   * Set page bread crumb\n   *\n   * @param page\n   */\n  setPageBreadCrumb(page: Page): void {\n    const breadCrumb = new BreadCrumb();\n    breadCrumb.itemId = page.id;\n    breadCrumb.title = page.name;\n    breadCrumb.url = this._parentData.url + '/drill-through/' + page.id;\n    breadCrumb.parentId = this._parentData.id;\n    breadCrumb.screenType = ScreenType.drillThrough;\n    this._breadCrumbService.addBreadCrumb(breadCrumb);\n    this._breadCrumbService.update();\n  }\n\n  /**\n   * returns true if there next page to show\n   *\n   * @returns boolean\n   */\n  hasNextPage(): boolean {\n    return (this._drillThroughStatesRedo.length > 0);\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { Dashboard } from './dashboard';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { AxElement } from '../enlighten-lib/elements/ax-element';\nimport { CommonService } from '../common.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { HttpParams } from '@angular/common/http';\nimport { DashboardListService } from './dashboard-list.service';\n\n@Injectable()\nexport class DashboardBuilderService {\n  deleteElement = new EventEmitter<any>();\n\n  // Private\n  private _dashboard: BehaviorSubject<Dashboard | null> = new BehaviorSubject(null);\n  userId: number;\n  appVersionId: any;\n\n\n\n  /**\n   * Constructor\n   */\n  constructor(\n    private _httpClient: HttpClient,private commonSerive: CommonService,private _activatedRoute: ActivatedRoute, private _dashboardListService:DashboardListService) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Accessors\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * Getter for dashboards\n   */\n  get dashboard$(): Observable<Dashboard> {\n    return this._dashboard.asObservable();\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Public methods\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * Get dashboard details\n   */\n  getDashboard(dashboardId: number): Promise<any> {\n    this.appVersionId = window.location.href.split(\"/\")[4];\n\n    return new Promise((resolve, reject) => {\n        this.commonSerive.getUserDetail().subscribe({\n            next: (userDetails) => {\n                this.userId = userDetails.ud.uid; // Get user ID\n                \n                // Fetch user permissions\n                this._dashboardListService.getUserDashboardPermissions(this.userId, this.appVersionId).subscribe({\n                    next: (permissions) => {\n                        // Fetch the dashboard\n                        this._httpClient.get<Dashboard>('dashboards/' + dashboardId).subscribe(\n                            (response) => {\n                                // Only filter if permissions.reportElements is not empty\n                                if (permissions.reportElements.length > 0) {\n                                  response.dashboardElements = response.dashboardElements.filter(\n                                      (element) => permissions.reportElements.includes(element.id)\n                                  );\n                              }\n\n                                this._dashboard.next(response); // Update the BehaviorSubject\n                                resolve(response);\n                            },\n                            reject\n                        );\n                    },\n                    error: (err) => {\n                        console.error(\"Error fetching user permissions:\", err);\n                        reject(err);\n                    }\n                });\n            },\n            error: (error) => {\n                console.error('Error fetching user details:', error);\n                reject(error);\n            }\n        });\n    });\n}\n\n\n  //save dashboard\n  saveDashboard(data: Dashboard): Promise<any> {\n    return new Promise((resolve, reject) => {\n      this._httpClient.put('dashboards', data).subscribe((response: number) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  deleteDashboardElement(item: AxElement): void{\n    this.deleteElement.emit(item);\n\n  }\n}\n","import { MetaColumnFilterBuilderService } from './meta-column-filter-builder/meta-column-filter-builder.service';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { FilterCategory } from '../enlighten-lib/filters/filter-category';\nimport { MetaColumnTypes } from './metaColumnTypes';\n\n@Injectable()\nexport class FiltersService {\n    /**\n     * Component variables.\n     */\n    // filter selection change emitter.\n    filterSelectionChange: EventEmitter<AxFilter> = new EventEmitter();\n    filterCategorySelectionChange: EventEmitter<FilterCategory> = new EventEmitter();\n\n    private _activeFilterList: Array<AxFilter> = []; // This is list of filter. the selected filter from this list. it will be global or local filter list.\n    private _activeFilterCategoryList: Array<FilterCategory> = []; // This is list of filter. the selected filter from this list. it will be global or local filter list.\n\n    /**\n     * Constructor\n     */\n    constructor(\n        private _metaColumnBuilderService: MetaColumnFilterBuilderService\n    ) { }\n\n    /**\n     * Get Active filter list.\n     *\n     * @returns Array of AXFilters\n     */\n    getActiveFilterList(): Array<AxFilter>{\n        return this._activeFilterList;\n    }\n\n    /**\n     * Get Active filter category list.\n     *\n     * @returns Array of AXFilters\n     */\n    getActiveFilterCategoryList(): Array<FilterCategory>{\n        return this._activeFilterCategoryList;\n    }\n\n\n    /**\n     * set Active  Filters list.\n     *\n     * @param filters;\n     */\n    setActiveFilterList(filters: Array<AxFilter>): void{\n        this._activeFilterList = filters;\n    }\n\n    setActiveFilterCategoryList(filters: Array<FilterCategory>): void{\n        this._activeFilterCategoryList = filters;\n    }\n\n    /**\n     * Check Filter value is empty or NOT\n     *\n     * @param filters\n     * @returns\n     */\n    getValidFilter(filters: Array<AxFilter>, filterType: number = 0): Array<AxFilter> {\n        if (filters.length === 0) {\n            return [];\n        }\n        return filters.filter(filter => filter.searchNodes[0].expression.searchable()  && !filter.isDeleted\n        );\n    }\n\n    /**\n     * Check filter category is empty or Not\n     *\n     * @param filterCategory\n     * @returns\n     */\n    getValidFilterCategory(filterCategory: Array<FilterCategory>, filterType: number = 0): Array<FilterCategory> {\n        if (filterCategory.length === 0) {\n            return null;\n        }\n        return filterCategory.filter(category => category.isSearchable && !category.isDeleted && category.filters.length);\n    }\n\n    /**\n     * checks value has a property value and checks the value is valid or not.\n     *\n     * @param filter\n     * @returns\n     */\n    getValidValue(filter: any): boolean {\n        const value = filter.searchNodes[0].expression.value as any;\n        if (value && value.hasOwnProperty('value')) {\n            return this.returnValidValue(value.value);\n        }\n        else {\n            return this.returnValidValue(value);\n        }\n    }\n\n    /**\n     * return value is value or not as per the value type.\n     * i.e string,number,object\n     *\n     * @param value\n     * @returns\n     */\n    returnValidValue(value: any): boolean {\n        switch (typeof value) {\n            case 'number':\n                return value ? true : false;\n            case 'string':\n                return value ? true : false;\n            case 'object':\n                if (Array.isArray(value)) {\n                    return value.length > 0;\n                }\n                else {\n                    return value ? true : false;\n                }\n            default:\n                return false;\n        }\n    }\n\n    /**\n     * Generate Filter for meta column.\n     *\n     * @param metaColumnType\n     */\n    generateMetaColumnFilter(metaColumnType: MetaColumnTypes,appVersionId: number): AxFilter{\n        const _filter = this._metaColumnBuilderService.buildMetaColumn(metaColumnType,appVersionId);\n        return _filter;\n    }\n\n    generateAssetFormsFilter(form: any,appVersionId: number): AxFilter{\n        const _filter = this._metaColumnBuilderService.buildAssetFormsColumn(form,appVersionId);\n        return _filter;\n    }\n\n\n    /**\n     * returns true if there is a visible filter present\n     * @param filters\n     * @param filterCategory\n     * @returns\n     */\n    setVisibilityOfFilterComponent(filters: Array<AxFilter> = [],filterCategory: Array<FilterCategory> = []): boolean{\n        var isFilterPresent = false;\n        filters.forEach(filter => {\n            if(filter.isVisible){\n                isFilterPresent = true;\n                return isFilterPresent;\n            }\n        });\n        filterCategory.forEach(filterCategory => {\n            if(filterCategory.isVisible){\n                isFilterPresent = true;\n                return isFilterPresent;\n            }\n        });\n        return isFilterPresent;\n    }\n}\n","<!-- Resizable div -->\n<div id=\"bar-chart-container\" class=\"chart-resize \" mwlResizable (validateResize)=\"chartResizeMinDimensions($event)\"\n  [ngClass]=\"{'full-body' : !isEditable && (screenType !== screenTypes.drillThrough),'selected-resize':reportData.isSelected && !handle, 'resize-class': !handle}\"\n  (resizing)=\"onResizing($event)\" [style.top.px]=\"reportData.yPosition\" style=\"width: fit-content;height: fit-content;\"\n  [style.left.px]=\"reportData.xPosition\" [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n  (resizeEnd)=\"resizeEnd()\">\n  <!-- Chart bodt -->\n  <ng-container *ngIf=\"showGhostLoader\">\n    <ng-container *ngIf=\"reportData.orientation == BarChartOrientation.horizontal\">\n      <app-ghost-loader [elementType]=\"GhostLoaderType.BarChartLoaderHorizontal\"></app-ghost-loader>\n    </ng-container>\n    <ng-container *ngIf=\"reportData.orientation != BarChartOrientation.horizontal\">\n      <app-ghost-loader [elementType]=\"GhostLoaderType.BarChartLoaderVertical\"></app-ghost-loader>\n    </ng-container>\n\n  </ng-container>\n  <div class=\"bar-chart-box chart-padding\" [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n    style=\"max-width: 100%; max-width: 100%;\" (cdkDragStarted)=\"dragStart($event)\" (cdkDragEnded)=\"dragEnd($event)\"\n    [ngClass]=\"{\n            'selected':reportData.isSelected,\n            'full-body' : !isEditable,\n            'hidden': showGhostLoader ,\n            'bold-title':reportData.title.fontStyle.fontWeight == 'bold',\n            'normal-title':reportData.title.fontStyle.fontWeight == 'normal',\n            'underline-title':reportData.title.fontStyle.textDecoration == 'underline',\n            'italic-title':reportData.title.fontStyle.isItalicFont,\n            'bold-legend':reportData.legend.fontStyle.fontWeight == 'bold',\n            'normal-legend':reportData.legend.fontStyle.fontWeight == 'normal',\n            'underline-legend':reportData.legend.fontStyle.textDecoration == 'underline',\n            'italic-legend':reportData.legend.fontStyle.isItalicFont\n        }\" cdkDrag [id]=\"'cdk-drop-'+reportData.guid\" (click)=\"chartSelect(); $event.stopPropagation();\"\n    (cdkDropListDropped)=\"attributeDropped($event)\" [cdkDragData]=\"reportData\" cdkDragBoundary=\".page\" cdkDropList\n    (contextmenu)=\"onContextMenu($event, reportData)\"\n    [cdkDragDisabled]=\"!isEditable || (screenType === screenTypes.drillThrough)\">\n    <div [ngClass]=\"{'full-body' : !isEditable }\" class=\"chart-inner-container\">\n      <!-- Filter Container -->\n      <!-- for future use-->\n      <div class=\"filter-body pl-3\"\n        [ngClass]=\"{'local-body' : !isEditable, 'hidden': screenType != ScreenType.reportBuilder && !ShowFilters }\"\n        *ngIf=\"isEditable || reportData.filters.length>0 || reportData.categories.length>0\"\n        (click)=\"$event.stopPropagation();\">\n        <lib-report-filter [filters]=\"reportData.filters\" [categories]=\"reportData.categories\" [reportId]=\"reportId\"\n          [dataModel]=\"dataModel\" [screenType]=\"screenType\" [isEditable]=\"isEditable\" [appVersion]=\"appVersionId\"\n          (dirtyFlowCheckEvent)=\"dirtyFlowCheckEvent()\" (applyFilterEvent)=\"applyLocalFilter()\">\n        </lib-report-filter>\n      </div>\n      <!-- Chart Container -->\n      <div class=\"bar-chart-body\"\n        [ngClass]=\"{'dashboard-chart-full-body': !isEditable && !reportData.filters.length && !reportData.categories.length, 'pt-2': isEditable || reportData.filters.length>0 || reportData.categories.length>0, 'pb-2':isEditable }\">\n        <div id=\"{{reportData.guid}}\" class=\"chart h-full\tw-full\" #chart></div>\n      </div>\n\n      <!---------------------------------------- Mat Menu trigger For Menu Options ----------------------------->\n      <ng-container>\n        <div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n          [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n        </div>\n\n        <!-- Mat Menu PopUp -->\n        <mat-menu #contextMenu=\"matMenu\">\n          <div class=\"chart-menu\">\n            <ng-template matMenuContent let-item=\"reportData\">\n              <ng-container *ngIf='isEditable'>\n                <button mat-menu-item (click)=\"sendToDashboard($event)\">Pin to Dashboard</button>\n                <button mat-menu-item (click)=\"openOptionPopUp($event)\">Delete</button>\n              </ng-container>\n              <button mat-menu-item *ngIf=\"screenTypes.dashboardBuilder === screenType\"\n                (click)=\"onDeleteClick($event)\">Remove From Dashboard</button>\n              <button mat-menu-item *ngIf=\"isDrillThrough && pages.length > 0\" [matMenuTriggerFor]=\"drillThrough\">Drill\n                Through</button>\n            </ng-template>\n          </div>\n        </mat-menu>\n      </ng-container>\n      <mat-menu #drillThrough=\"matMenu\">\n        <div class=\"chart-menu\">\n          <ng-container *ngFor=\" let page of pages\">\n            <button mat-menu-item (click)='pageClick(page)'> {{page.name}}</button>\n          </ng-container>\n        </div>\n      </mat-menu>\n      <!-- --------------------------------------------------------------------------- -->\n    </div>\n  </div>\n  <ng-container *ngIf='isEditable && !showGhostLoader'>\n    <!-- Resize handles  -->\n    <div class=\"resize-handle-top\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ top: true }\">\n      <div class=\"drag-box drag-box-top\"></div>\n    </div>\n    <div class=\"resize-handle-left\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ left: true }\">\n      <div class=\"drag-box drag-box-left\"></div>\n    </div>\n    <div class=\"resize-handle-right\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ right: true }\">\n      <div class=\"drag-box drag-box-right\"></div>\n    </div>\n    <div class=\"resize-handle-bottom\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ bottom: true }\">\n      <div class=\"drag-box drag-box-bottom\"></div>\n    </div>\n  </ng-container>\n</div>","import {\n    Component,\n    OnInit,\n    ViewEncapsulation,\n    ViewChild,\n    Input,\n    Output,\n    EventEmitter,\n    AfterViewInit,\n    OnDestroy,\n    HostListener\n} from '@angular/core';\nimport {\n    ApexAxisChartSeries,\n    ApexChart,\n    ChartComponent,\n    ApexDataLabels,\n    ApexXAxis,\n    ApexPlotOptions,\n    ApexYAxis,\n    ApexLegend,\n    ApexTitleSubtitle,\n    ApexGrid,\n    ApexNoData\n} from 'ng-apexcharts';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { Subject } from 'rxjs';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { ResizeEvent } from 'angular-resizable-element';\nimport { Router } from '@angular/router';\nimport { ChartProperty } from '../chart/chart-property';\nimport { AttributeData } from '../../../fields/attribute-data';\nimport { CrossFilterDto, ElementsDto } from '../../../../common-dto/elements-dto';\nimport { FieldsListService } from '../../../../field-list-lib/fields-list.service';\nimport { Dimension } from '../chart/dimension';\nimport { Matrix } from '../chart/matrix';\nimport { IGraphicalReportComponent } from '../igraphical-report.component';\nimport { BarChart, BarChartOrientation } from './bar-chart';\nimport { Report } from '../../../../common-utils/report';\nimport { ReportBuilderMasterService } from '../../report-builder-master.service';\nimport { ISendToDashboardData } from '../../../../dashboard-lib/show-dashboards/show-dashboards.component';\nimport { SendToDashboardService } from '../../../../dashboard-lib/send-to-dashboard.service';\nimport { ElementService } from '../../element.service';\nimport { IChartComponent } from '../ichart-component';\nimport { CommonService } from '../../../../common.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { AxFilter } from'../../../filters/ax-filter';\nimport { AxExpression } from '../../../ax-expression/ax-expression';\nimport { SearchNode } from '../../../filters/search-node';\nimport { Attribute } from '../../../data-model/attribute';\nimport { AxExpTextList } from '../../../ax-expression/ax-exp-text-list';\nimport { ScopeType, ScreenType } from '../../../filters/condition-type';\nimport { Page } from '../page/page';\nimport { DrillThroughService } from '../../../../drill-through/drill-through.service';\nimport { DashboardBuilderService } from '../../../../dashboard-lib/dashboard-builder.service';\nimport { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';\nimport { FiltersService } from '../../../../filters/filters.service';\n\n// Creating custom type for bar chart options that are going to be consumed by apex chart\nexport type BarChartOptions = {\n    series: ApexAxisChartSeries;\n    chart: ApexChart;\n    dataLabels: ApexDataLabels;\n    plotOptions: ApexPlotOptions;\n    xaxis: ApexXAxis;\n    yaxis: ApexYAxis;\n    legend: ApexLegend;\n    grid: ApexGrid;\n    title: ApexTitleSubtitle;\n    noData: ApexNoData;\n    tooltip: ApexTooltip;\n    fill: ApexFill;\n    states: ApexStates;\n};\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'bar-chart',\n    templateUrl: './bar-chart.component.html',\n    styleUrls: ['./bar-chart.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\nexport class BarChartComponent\n    implements\n        IGraphicalReportComponent,\n        OnInit,\n        AfterViewInit,\n        OnDestroy,\n        IChartComponent\n{\n    @Output() onchartClickedEvent = new EventEmitter<any>();\n    @Output() onchartRightClickDeleteEvent = new EventEmitter<any>();\n    @Output() chartRendered = new EventEmitter();\n    @Input() currentPageId: number;\n\n    // Binding element of bar chart to the apex chart component\n    @ViewChild('barChartContainer') barChartContainer: ChartComponent;\n\n    /***\n     * MatMenuTrigger Use for right click on the chart action\n     */\n\n    @ViewChild(MatMenuTrigger)\n    contextMenu: MatMenuTrigger;\n\n    // Accepting reportData having axis and values.\n    @Input() reportData: BarChart;\n    @Input() isEditable: boolean;\n    @Input() guid: string;\n    @Input() screenType: ScreenType;\n    @Input() drillThroughFilterInput: AxFilter;\n    @Input() drillThroughParentType: ScreenType;\n    @Input() appVersionId: number;\n    ScreenType = ScreenType;\n    ShowFilters: Boolean =  false;\n\n    titleText: string = '';\n    report: Report;\n    // uniquekey of chart\n    public uniquekey: number;\n    property: ChartProperty;\n    public isDirty: boolean;\n    handle: boolean = false;\n    dataEvent: string = 'dataEvent';\n    componentRef: IChartComponent;\n    isDataPointSelected: boolean=false;\n    selectedDataPoints: Array<Array<number>> = []; // Holds the all selected points.\n    selectedSeriesIndexes: Array<number> =[];\n    contextMenuPosition = { x: '0px', y: '0px' };\n    pages: Array<Page> = [];\n    chart: ApexCharts;\n    chartId;\n    highlightedByOtherChart = false;\n    isDrillThrough: boolean;\n    appManifest: any;\n    yPosition: number;\n    xPosition: number;\n    /****\n     * Resize  chart  styles\n     */\n\n    reportId: number = 0;\n\n    // Object for bar chart options. This is of custom type.\n    public barChartOptions: Partial<BarChartOptions>;\n\n    /*\n     * Subject object which helps unsubscribe all the subscribed objects in the component\n     */\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n    // eslint-disable-next-line @typescript-eslint/member-ordering\n\n    private drillThroughFilter: AxFilter;\n    showGhostLoader: boolean = true;\n    GhostLoaderType = GhostLoaderType;\n    BarChartOrientation = BarChartOrientation;\n    /*** Constructor\n     *\n     */\n    constructor(\n        private _fieldsListService: FieldsListService, // Used for get matrix data\n        private _reportBuilderMasterService: ReportBuilderMasterService,\n        private _sendToDashboardService: SendToDashboardService,\n        private _elementService: ElementService,\n        private _commonService: CommonService,\n        private _drillThroughService: DrillThroughService,\n        private _dashboardService: DashboardBuilderService,\n        private _router: Router,\n        private _filterService: FiltersService\n    ) {\n        this.property = new ChartProperty();\n    }\n\n    public get screenTypes(): typeof ScreenType {\n        return ScreenType;\n    }\n\n    @HostListener('window:mousedown', ['$event'])\n    click(event): void {\n        if (event.which === 3 && this.contextMenu.menuOpened) {\n            this.contextMenu.closeMenu();\n        }\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Lifecycle hooks start\n    // 0\n\n    /**\n     * This will get called after the UI render.\n     */\n    ngAfterViewInit(): void {\n        setTimeout(() => {\n            this.property.apexChart = new ApexCharts(\n                document.getElementById(this.reportData.guid.toString()),\n                this.barChartOptions\n            );\n            this.property.apexChart.render();\n            this.getChartData();\n        });\n    }\n\n    /**\n     * NgOnInit LifeCycle hook.\n     * This will get called on component initialization.\n     */\n    ngOnInit(): void {\n        this.xPosition = this.reportData.xPosition;\n        this.yPosition = this.reportData.yPosition;\n        this.componentRef = this;\n        this.ShowFilters = this._filterService.setVisibilityOfFilterComponent(this.reportData.filters,this.reportData.categories);\n        this.report = this._reportBuilderMasterService.report;\n        this.reportId = this.report?.id;\n        this.property.element = this.reportData;\n        // ApexChart Configurations\n        this.initializeBarChartOptions();\n\n        //Subscribers for barChart\n        this.subscribers();\n    }\n\n    /**\n     * This will initialize bar-chart options.basically did apexChart configuration here.\n     */\n    initializeBarChartOptions(): void{\n        const _reportData = this.reportData;\n        this.barChartOptions = {\n            title: {\n                text: this.reportData.title.text,\n                align: this.reportData.title.position,\n                style: {\n                    color: this.reportData.title.textColor,\n                    fontFamily: this.reportData.title.textStyle,\n                    fontSize: this.reportData.title.textSize\n                }\n            },\n            noData: {\n                text: 'No data to display',\n                align: 'center'\n            },\n            chart: {\n                id: 'apx-' + this.reportData.guid,\n                type: 'bar',\n                height: '100%',\n                width: '100%',\n                stacked: this.reportData.showStack,\n                stackType: this.reportData.stackType === \"100%\" ? \"100%\" : \"normal\",\n                background: this.reportData.backgroundColor,\n                events: {\n                    dataPointSelection: (crossFilterEvent, chart, opts): void => {\n                        this.isDrillThrough=false;\n                        if (crossFilterEvent && crossFilterEvent.button === 2 && opts.dataPointIndex >=0)\n                        {\n                            this.isDrillThrough=true;\n                            this.createDrillThroughFilter(this.reportData.dimension.attribute.series[opts.dataPointIndex]);\n                        }\n                    },\n                    // for deselecting the matrix\n                    click: (crossFilterEvent, chart, opts): void=> {\n                        this.chartSelect();\n                        const target = crossFilterEvent.target as HTMLElement;\n                        if(opts.dataPointIndex >=0){\n                            if(this.highlightedByOtherChart){\n                                this.selectedSeriesIndexes = [];\n                            }\n                            this.saveSelectDataPoints(opts.globals.selectedDataPoints);\n                            this.dataPointSelection(opts);\n                        }else if(!(target instanceof HTMLElement)){\n                            this.resetCrossFilter();\n                        }\n                        this.highlightedByOtherChart = false;\n                        // deselect all selected points.\n                        this.clearSelectedDataPoint();\n                    },\n                  },\n                toolbar: {\n                    show: true,\n                    export: {\n                        csv: {\n                          filename: this.reportData.title.text\n                        },\n                        svg: {\n                          filename: this.reportData.title.text\n                        },\n                        png: {\n                          filename: this.reportData.title.text\n                        }\n                      },\n                },\n                animations: {\n                    enabled: false\n                }\n\n            },\n            plotOptions: {\n                bar: {\n                    horizontal:\n                        this.reportData.orientation === BarChartOrientation.horizontal,\n                    dataLabels: {\n                        hideOverflowingLabels: true,\n                        position: this.reportData.orientation === BarChartOrientation.vertical ? 'top' : 'center',\n                    }\n                }\n            },\n            dataLabels: {\n                enabled: this.reportData.showDataLabels,\n                style: {\n                    colors: [this.reportData.dataLabelColor]\n                },\n                offsetY: this.reportData.orientation === BarChartOrientation.vertical ? -30 : 0\n            },\n            yaxis: {\n                axisBorder: {\n                    color: this.reportData.borderColor\n                },\n                labels: {\n                    show: this.reportData.showAxis,\n                    maxWidth: 95,\n                    align: 'left',\n                    style: {\n                        colors: this.reportData.legend.textColor,\n                        fontFamily: this.reportData.legend.textStyle,\n                        fontSize: this.reportData.legend.textSize\n                    }\n                },\n                tooltip: {\n                    enabled: true,\n                    offsetX: 0\n                }\n            },\n            grid:{\n                xaxis: {\n                    lines: {\n                        show: false\n                    }\n                  }\n            },\n            legend: {\n                position: this.reportData.legend.position,\n                show: this.reportData.legend.enable,\n                fontSize: this.reportData.legend.textSize,\n                fontFamily: this.reportData.legend.textStyle,\n                horizontalAlign: 'left',\n                labels: {\n                    colors: this.reportData.legend.textColor\n                },\n                markers: {\n                    fillColors:this.getSeriesColors(),\n                }\n            },\n            series: [],\n            xaxis: {\n                labels: {\n                    show: this.reportData.showAxis,\n                    trim: true,\n                    rotate: -60,\n                    maxHeight: 85,\n                },\n                axisBorder: {\n                    color: this.reportData.borderColor\n                },\n                tickAmount: 40,\n                tickPlacement: 'between',\n            },\n            states: {\n                active: {\n                    allowMultipleDataPointsSelection: true,\n                },\n            },\n             fill: {\n               colors: [function({ seriesIndex }) {\n                 return  _reportData.matrix.attributes[seriesIndex].color;\n               }]\n             }\n\n        };\n    }\n\n    /**\n     * This will return series color.\n     */\n    getSeriesColors(): Array<string>{\n        const seriesColors = [];\n        this.reportData?.matrix?.attributes.forEach((atrribute: AttributeData)=>{\n            seriesColors.push(atrribute.color);\n        });\n        return seriesColors;\n    }\n\n    /**\n     * Subscribers for barChart..\n     */\n    subscribers(): void{\n\n        /*whenever we change the global filters we got call back from this subscriber*/\n        this._elementService.refreshDataEvent$\n            .pipe(takeUntil(this._unsubscribeAll))\n            .subscribe((val: boolean) => {\n                if (val) {\n                    this.getChartData();\n                }\n            });\n\n        /*when we click on bar chart event will be emitted from this subscriber*/\n        this._elementService.crossFilterEvent.subscribe((crossFilter: CrossFilterDto) => {\n            if(crossFilter.resetFilter || crossFilter.values.length == 0)\n            {\n                this.deselectDataPoints(crossFilter);\n            }else{\n\n                this.createCrossFilter(crossFilter);\n                this.highlightedByOtherChart = true;\n            }\n\n        });\n        // Get pageslist\n        this._commonService.pageList$.subscribe((page) => {\n        this.pages=[];\n        this.reportData.matrix.attributes?.forEach((attribute) => {\n                page?.forEach((_page) => {\n                        _page?.drillData?.forEach((drillData) => {\n                            if((drillData.columnName===attribute.columnName && drillData.tableName===attribute.tableName)\n                                || (this.reportData.dimension.attribute && this.reportData.dimension.attribute.columnName === drillData.columnName && this.reportData.dimension.attribute.tableName === drillData.tableName)){\n                                this.pages.push(_page);\n                            }\n                        });\n                });\n            });\n        this.pages = this.pages.filter(p => p.id !== this.currentPageId);\n        });\n    }\n\n    /**\n     * Clone selected data points\n     *\n     * @param dataPoints\n     */\n    saveSelectDataPoints(dataPoints: Array<Array<number>>){\n        this.selectedDataPoints = [];\n        dataPoints.forEach((matrixs,ind) => {\n            const points = [];\n            matrixs.forEach((matrix)=>{\n                points.push(matrix);\n            });\n            this.selectedDataPoints.push(points);\n        });\n    }\n\n    /**\n     * Created filter object for cross filtering.\n     *\n     *  @param CrossFilterDto\n     */\n    createCrossFilter(crossFilterData: CrossFilterDto): void{\n        const axExpression= new AxExpression();\n        axExpression.comparisonOperator.text = 'In';\n        axExpression.comparisonOperator.value = 'IN';\n        axExpression.valueType = 2;\n        axExpression.field= new Attribute(crossFilterData.attributeData as unknown as Attribute);\n        const axExpTextList = new AxExpTextList();\n        crossFilterData.values.forEach((value)=>{\n            axExpTextList.value.push(value);\n        });\n        axExpression.value= axExpTextList;\n        const _searchNodes= new SearchNode();\n        _searchNodes.expression= axExpression;\n        const _filter = new AxFilter();\n        _filter.searchNodes.push(_searchNodes);\n        _filter.appVersionId=0;\n        this.getCrossFilterData(_filter,crossFilterData);\n    }\n\n     /**\n      * pushed the filter object into basic filter and applied the filter on the data\n      *\n      *  @param CrossFilterDto\n      *  @param AxFilter\n      */\n     getCrossFilterData(_filter: AxFilter, crossFilterData: CrossFilterDto): void{\n        if (this.reportData.matrix.attributes.length && this.reportData.dimension.attribute) {\n            const elementDto = new ElementsDto(this.reportData);\n            elementDto.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n            elementDto.filters.localFilters.basic.push(_filter);\n            elementDto.filters.localFilters.category =this._elementService.getValidFilterCategory(this.reportData.categories);\n            elementDto.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic);\n            elementDto.filters.globalFilters.category =this._elementService.getValidFilterCategory(this._elementService.filtersDto.category);\n            elementDto.reportId = this.reportId;\n            if(crossFilterData.selectedIndexLength === 0){\n                elementDto.filters.localFilters.basic=[];\n                this.deselectDataPoints(crossFilterData);\n            }\n            this._fieldsListService\n            .getMatrixData(elementDto)\n            .then((entitiesAttribute: ElementsDto) => {\n                const selectedDataPointArray =[];\n                entitiesAttribute.dimension.attribute.series.forEach((_elementDto) => {\n                    const seriesIndex=(this.reportData.dimension.attribute.series.indexOf(_elementDto));\n                    selectedDataPointArray.push(seriesIndex);\n                 });\n                //if matrix is not same then crossfilter should not apply\n                if (entitiesAttribute != null) {\n                    this.highlightSeriesData(selectedDataPointArray);\n                }\n            });\n        }\n    }\n\n    /**\n     * set data to chart if entitiesAttribute is not equal to null then this method will call and will highlight the matrix\n     */\n    highlightSeriesData(indexList: Array<number>): void {\n        const  _reportData = this.reportData;\n\n        this.property.apexChart.updateOptions({\n           fill: {\n               colors: [function({ seriesIndex,dataPointIndex }) {\n                 if(indexList.includes(dataPointIndex) ) {\n                   return  _reportData.matrix.attributes[seriesIndex].color;\n               } else {\n                    return  _reportData.matrix.attributes[seriesIndex].color+  '60';\n                 }\n               }]\n             }\n       });\n    }\n\n    /**\n     * Clear the selected data points.\n     */\n    clearSelectedDataPoint(): void{\n        this.selectedDataPoints.forEach((matrixs,ind) => {\n            matrixs.forEach((matrix,matInd)=>{\n                this.property.apexChart.toggleDataPointSelection(ind,matrix);\n            });\n        });\n        this.selectedDataPoints = [];\n    }\n\n    /**\n     *\n     * Called when we select a bar by a click event\n     *\n     * @param opts\n     */\n     dataPointSelection(opts: any): void{\n        let crossFilterDto: CrossFilterDto;\n        if(opts.dataPointIndex >=0){\n            crossFilterDto = {\n                values: [],\n                attributeData: this.reportData.dimension.attribute,\n                chartType: this.reportData.type,\n                elementGuid: this.reportData.guid,\n                resetFilter:false,\n                selectedIndexLength: 1\n            };\n            if(this.selectedSeriesIndexes.includes(opts.dataPointIndex)){\n                const ind = this.selectedSeriesIndexes.indexOf(opts.dataPointIndex);\n                this.selectedSeriesIndexes.splice(ind,1);\n            }else{\n                this.selectedSeriesIndexes.push(opts.dataPointIndex);\n            }\n\n            //if index is already present in selectedDataPoints array then pop the specific index\n              this.selectedSeriesIndexes.forEach((index) => {\n                if(crossFilterDto.values.includes(this.reportData.dimension.attribute.series[index])){\n                    crossFilterDto.values.splice(crossFilterDto.values.indexOf(this.reportData.dimension.attribute.series[index]),1);\n                }\n                else{\n                crossFilterDto.values.push(this.reportData.dimension.attribute.series[index]);\n                }\n            });\n        }\n        this._elementService.triggerCrossFilter(crossFilterDto);\n\n    }\n\n    /**\n     * Reset cross filter and emit reset cross filter event.\n     */\n    resetCrossFilter(): void{\n        let crossFilterDto: CrossFilterDto;\n        crossFilterDto = {\n            values: null,\n            attributeData:null,\n            chartType: this.reportData.type,\n            elementGuid: this.reportData.guid,\n            resetFilter:true,\n            selectedIndexLength: 0\n\n        };\n        this.selectedSeriesIndexes= [];\n        this._elementService.triggerCrossFilter(crossFilterDto);\n\n    }\n\n\n    /**\n     * On destroy\n     */\n    ngOnDestroy(): void {\n        // Unsubscribe from all subscriptions\n        this._unsubscribeAll.next();\n        this._unsubscribeAll.complete();\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Lifecycle hooks end\n    // -----------------------------------------------------------------------------------------------------\n\n\n  /**\n   * Get data\n   */\n   getChartData(): void {\n    if (this.reportData.matrix.attributes.length && this.reportData.dimension.attribute) {\n        if(this.drillThroughParentType == ScreenType.dashboardBuilder || this.drillThroughParentType == ScreenType.containerDashboard)\n            {this.reportData.apiType = 'dashboard';}\n        const data = new ElementsDto(this.reportData);\n        if(this.screenType === this.screenTypes.drillThrough){\n            data.filters.globalFilters.basic.push(this.drillThroughFilterInput);\n        } else {\n            data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);\n            data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);\n        }\n        data.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n        data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.reportData.categories);\n        data.reportId = this.reportId;\n        data.isCustomElement = this.reportData.isCustomElement;\n        this._fieldsListService.getMatrixData(data).then((entitiesAttribute: ElementsDto) => {\n            if (entitiesAttribute != null) {\n            this.chartRendered.emit();\n            this.setDataToChart(entitiesAttribute);\n            this.showGhostLoader = false;\n            }\n        });\n    }\n    else{\n      this.chartRendered.emit();\n      this.showGhostLoader = false;\n    }\n  }\n    /**\n     * set data to chart if entitiesAttribute is not equal to null then this method will call\n     */\n    setDataToChart(entitiesAttribute: ElementsDto): void {\n        //--commented\n        // const matrixData = [];\n        // this.reportData.matrix.attributes = entitiesAttribute.matrix.attributes;\n        // this.reportData.dimension.attribute = entitiesAttribute.dimension.attribute;\n        // // this.reportData.sqlQuery = entitiesAttribute.sqlQuery;\n        // for (const attribute of this.reportData.matrix.attributes) {\n        //     matrixData.push({\n        //         data: attribute.series,\n        //         name: attribute.label,\n        //     });\n        // }\n        // this.property.apexChart.updateOptions({\n        //     xaxis: { categories: this.reportData.dimension.attribute.series }\n        // });\n        // this.property.apexChart.updateSeries(matrixData);\n        \n        console.log(\"Starting setDataToChart with entitiesAttribute:\", entitiesAttribute);\n        const startTime = performance.now(); // Start time measurement\n        this.reportData.matrix.attributes = entitiesAttribute.matrix.attributes;\n        this.reportData.dimension.attribute = entitiesAttribute.dimension.attribute;\n        const options = {\n            series: this.reportData.matrix.attributes.map(attribute => ({\n                name: attribute.label,\n                data: attribute.series\n            })),\n            xaxis: { categories: this.reportData.dimension.attribute.series }\n        };\n        this.property.apexChart.updateOptions(options, true); // Use ApexCharts' built-in data processing for large datasets\n        const endTime = performance.now(); // End time measurement\n        console.log(\"setDataToChart completed in\", (endTime - startTime).toFixed(2), \"milliseconds\");\n    }\n\n    /**\n     * attributeDropped\n     * Called when attribute is dragged from left side fields list and dropped on the bar chart\n     *\n     * @param $event\n     */\n    attributeDropped($event: CdkDragDrop<any>): void {\n        //--commented\n    //     $event.item.data.aggregateFn = 'count';\n    //     if (\n    //         this.reportData.matrix.attributes.length === 0 &&\n    //         this.reportData.dimension.attribute == null\n    //     ) {\n    //         this.reportData.matrix = new Matrix();\n    //         this.reportData.matrix.attributes.push(new AttributeData($event.item.data));\n    //         this.reportData.dimension = new Dimension();\n    //         this.reportData.dimension.attribute = new AttributeData($event.item.data);\n    //         this.reportData.dimension.attribute.aggregateFn = 'none';\n    //     } else if (\n    //         this.reportData.matrix.attributes.length > 0 &&\n    //         $event.item.data.enlightenType instanceof Text &&\n    //         this.reportData.dimension.attribute == null\n    //     ) {\n    //         this.reportData.dimension.attribute = new AttributeData($event.item.data);\n    //     } else {\n    //         this.reportData.matrix.attributes.push(new AttributeData($event.item.data));\n    //         const seriesData = [];\n    //         this.reportData.matrix.attributes.forEach((attr) => {\n    //             seriesData.push({\n    //                 name: attr.label,\n    //                 data: attr.series,\n    //                 color: attr.color\n    //             });\n    //         });\n    //         this.barChartOptions.series = seriesData;\n    //     }\n    //     this._commonService.isReportBuilderDirty = true;\n    //     this.getChartData();\n    //     const seriesData = [];\n    //     this.reportData.matrix.attributes.forEach((attr) => {\n    //         seriesData.push({\n    //             name: attr.label,\n    //             data: attr.series,\n    //             color: attr.color\n    //         });\n    //     });\n    //     this.property.apexChart.updateSeries(seriesData);\n    // }\n    $event.item.data.aggregateFn = 'count';\n        const isMatrixEmpty = this.reportData.matrix.attributes.length === 0;\n        const isDimensionEmpty = this.reportData.dimension.attribute == null;\n        const isTextType = $event.item.data.enlightenType instanceof Text;\n\n        if (isMatrixEmpty && isDimensionEmpty) {\n            this.initializeMatrixAndDimension($event.item.data);\n        } else if (!isMatrixEmpty && isDimensionEmpty && isTextType) {\n            this.setDimensionAttribute($event.item.data);\n        } else {\n            this.addMatrixAttribute($event.item.data);\n        }\n\n        this._commonService.isReportBuilderDirty = true;\n        this.getChartData();\n        this.updateChartSeries();\n    }\n\n    private initializeMatrixAndDimension(data: any): void {\n        this.reportData.matrix = new Matrix();\n        this.reportData.matrix.attributes.push(new AttributeData(data));\n        this.reportData.dimension = new Dimension();\n        this.reportData.dimension.attribute = new AttributeData(data);\n        this.reportData.dimension.attribute.aggregateFn = 'none';\n    }\n\n    private setDimensionAttribute(data: any): void {\n        this.reportData.dimension.attribute = new AttributeData(data);\n    }\n\n    private addMatrixAttribute(data: any): void {\n        this.reportData.matrix.attributes.push(new AttributeData(data));\n    }\n\n    private updateChartSeries(): void {\n        const seriesData = this.reportData.matrix.attributes.map(attr => ({\n            name: attr.label,\n            data: attr.series,\n            color: attr.color\n        }));\n        this.property.apexChart.updateSeries(seriesData);\n    }\n\n    chartSelect(): void {\n        this.onchartClickedEvent.emit(this.property);\n    }\n    /**\n     * Created filter object for cross filtering.\n     *\n     *  @param CrossFilterDto\n     */\n     createDrillThroughFilter(series: any): void{\n        const axExpression= new AxExpression();\n        axExpression.comparisonOperator.text = 'In';\n        axExpression.comparisonOperator.value = 'IN';\n        axExpression.valueType = 2;\n        axExpression.field= new Attribute(this.reportData.dimension.attribute as unknown as Attribute);\n        const axExpTextList = new AxExpTextList();\n        axExpTextList.value.push(series);\n        axExpTextList.isSearchable = true;\n        axExpression.value= axExpTextList;\n        const _searchNodes= new SearchNode();\n        _searchNodes.expression= axExpression;\n        this.drillThroughFilter = new AxFilter();\n        this.drillThroughFilter.searchNodes.push(_searchNodes);\n        this.drillThroughFilter.appVersionId=0;\n    }\n\n\n    /***\n     * On chart context  click Function\n     */\n    onContextMenu(event: MouseEvent, chart: BarChart): void {\n        if(!this.isEditable &&\n            ([this.screenTypes.containerDashboard, this.screenTypes.drillThrough].includes(this.screenType))\n            && !this.pages.length){\n            event.preventDefault();\n            return;\n        }\n\n        if (!this.isEditable && (this.screenType !== ScreenType.drillThrough)) {\n            const centralPage: HTMLElement = document.getElementById(this.guid);\n            const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n            event.preventDefault();\n            this.contextMenuPosition.x = ( event.clientX -centralPageBounds.x ) + 'px';\n            this.contextMenuPosition.y = (event.clientY-centralPageBounds.y) + 'px';\n            this.contextMenu.menuData = { chart: chart };\n            this.contextMenu.menu.focusFirstItem('mouse');\n            this.contextMenu.openMenu();\n        }\n        else{\n            event.preventDefault();\n            this.contextMenuPosition.x = event.clientX + 'px';\n            this.contextMenuPosition.y = event.clientY + 'px';\n            this.contextMenu.menuData = { chart: chart };\n            this.contextMenu.menu.focusFirstItem('mouse');\n            this.contextMenu.openMenu();\n        }\n    }\n    /***\n     * Delete chart Function\n     */\n    openOptionPopUp(): void {\n        this.onchartRightClickDeleteEvent.emit(this.uniquekey);\n    }\n\n    onDeleteClick(event: MouseEvent): void {\n        this._commonService.isDashboardBuilderDirty = true;\n        event.preventDefault();\n        event.stopPropagation();\n        // item.isDeleted = true_d\n        this._dashboardService.deleteDashboardElement(this.reportData);\n        this.contextMenu.closeMenu();\n    }\n\n\n    /***\n     * Pin to Dashboard Function\n     */\n    sendToDashboard(): void {\n        const sendToDashboardData: ISendToDashboardData = {\n            filter: null,\n            filterCategory: null,\n            appVersionId: this.report.appVersionId,\n            type: 'element',\n            element: this.reportData\n        };\n        this._sendToDashboardService.sendToDashboard(sendToDashboardData);\n    }\n\n    /****\n     * chartResizeMinDimensions =   this function use  Resize min dimensions validation\n     */\n\n    chartResizeMinDimensions(event: ResizeEvent): boolean {\n        const MIN_DIMENSIONS_PX: number = 50;\n        this._commonService.isReportBuilderDirty = true;\n        if (\n            event.rectangle.width &&\n            event.rectangle.height &&\n            (event.rectangle.width < MIN_DIMENSIONS_PX ||\n                event.rectangle.height < MIN_DIMENSIONS_PX)\n        ) {\n            return false;\n        }\n        return true;\n    }\n\n    /****\n     * onResizing = this function use for resize the  chart\n     */\n    onResizing(event: ResizeEvent): void {\n        const centralPage: HTMLElement = document.getElementById('central-page');\n        const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n        if (event.rectangle.right >= centralPageBounds.right && event.edges.right) {\n            event.rectangle.right = centralPageBounds.right;\n        } else if (event.rectangle.left < centralPageBounds.left) {\n            event.rectangle.left = centralPageBounds.left;\n        } else if (event.rectangle.bottom > centralPageBounds.bottom) {\n            event.rectangle.bottom = centralPageBounds.bottom;\n        } else if (event.rectangle.top < centralPageBounds.top) {\n            event.rectangle.top = centralPageBounds.top;\n        }\n        event.rectangle.width = event.rectangle.right - event.rectangle.left;\n        event.rectangle.height = event.rectangle.bottom - event.rectangle.top;\n        if (\n            event.edges.bottom !== 0 &&\n            event.edges.top !== 0 &&\n            event.edges.left !== 0 &&\n            event.edges.right !== 0\n        ) {\n            event.edges.top = this.yPosition + Number(event.edges.top);\n            event.edges.left = this.xPosition + Number(event.edges.left);\n            this.reportData.resizeChart(event, this.property.apexChart);\n        }\n    }\n\n    /**\n     * Called when resizing ends\n     */\n    resizeEnd(){\n       this.xPosition = this.reportData.xPosition;\n       this.yPosition = this.reportData.yPosition;\n    }\n\n    /**\n     * to set isDirty after changes in bar-chart filter\n     *\n     */\n    dirtyFlowCheckEvent(): void {\n        this._commonService.isReportBuilderDirty = true;\n    }\n\n    /**\n     * call cdk drag start event\n     *\n     * @param $event\n     */\n    dragStart($event: DragEvent): void {\n        this.handle = true;\n    }\n    /**\n     * call cdk drag end event\n     *\n     * @param $event\n     */\n    dragEnd($event: DragEvent): void {\n        this.handle = false;\n        this.xPosition = this.reportData.xPosition;\n        this.yPosition = this.reportData.yPosition;\n    }\n    /**\n     * Deselecting the selected matrix\n     *\n     */\n      deselectDataPoints(crossFilterData: CrossFilterDto): void{\n        const _reportData= this.reportData;\n        this.selectedDataPoints.forEach((dataPointIndexs,ind)=>{\n            // if(this.reportData.guid != crossFilterData.elementGuid){\n                dataPointIndexs.forEach((attributeInd)=>{\n                    this.property.apexChart.toggleDataPointSelection(ind,attributeInd);\n                });\n            // }\n        }); this.property.apexChart.updateOptions({\n            fill: {\n                colors: [function({ value,seriesIndex }) {\n                  return  _reportData.matrix.attributes[seriesIndex].color;\n                }]\n            }\n      });\n        this.selectedDataPoints = [];\n  }\n\n    /**\n     * Called on page name clicked on dropdown options of drill through pages\n     *\n     * @param page\n     */\n    pageClick(page: Page): void{\n        if(this.screenType !== ScreenType.drillThrough){\n            if(this.drillThroughParentType ? this.drillThroughParentType == ScreenType.reportBuilder : this.isEditable){\n                this._drillThroughService.setParentData(this.reportId, this._reportBuilderMasterService.report.name, this._router.url);\n                this.navigateToDrillThrough(page);\n            }\n            else{\n                this._dashboardService.dashboard$.pipe(takeUntil(this._unsubscribeAll)).subscribe((dashboard) => {\n                    this._drillThroughService.setParentData(this.reportId, dashboard.name, this._router.url);\n                    this.navigateToDrillThrough(page);\n                });\n            }\n        } else {\n            this.navigateToDrillThrough(page);\n        }\n    }\n\n    /**\n     * Navigate to drill through component with page id as route params\n     * Checks the parent URL if it is already exists or not\n     *\n     * @param page\n     */\n    navigateToDrillThrough(page: Page){\n        const parentUrl: string = this._drillThroughService.getParentData().url;\n        this._drillThroughService.drillPage(page,this.drillThroughFilter);\n        if(!parentUrl){\n            this._router.navigate([this._router.url +'/drill-through/' + page.id]);\n        } else {\n            this._router.navigate([parentUrl,'drill-through',page.id]);\n        }\n    }\n\n    /**\n     * Apply local filter.\n     */\n    applyLocalFilter(): void{\n        this.getChartData();\n    }\n}","// Chart's supporting classes\n\nimport { Type } from '@angular/core';\nimport { Chart } from '../chart/chart';\nimport { Dimension } from '../chart/dimension';\nimport { Legend } from '../chart/legend';\nimport { Matrix } from '../chart/matrix';\nimport { BarChartComponent } from './bar-chart.component';\nexport enum BarChartOrientation {\n\thorizontal = 1,\n\tvertical = 2\n}\n\nexport enum BarChartLegend {\n\ttop = 'top',\n\tbottom = 'bottom',\n}\n\nexport enum ChartAggregate {\n\tnone = 'none',\n\tsum = 'sum',\n\taverage = 'average',\n\tcount = 'count',\n}\n//holds properties of barchart\nexport class BarChart extends Chart {\n\tcomponent: Type<BarChartComponent> = BarChartComponent;\n\n\t// Attributes for BarChart\n\tcolorType: string;\n\tcolorFormatting: string;\n\tformatRule: string;\n\tdimension: Dimension;\n\tmatrix: Matrix;\n\torientation: BarChartOrientation;\n\tlegend: Legend;\n\tshowAxis: boolean;\n\tshowAxisTitle: boolean;\n\tshow: boolean;\n\tborderColor: string;\n\taxisData: string;\n\tshowGrid: boolean;\n\tseriesColor: Array<string>;\n\taggregate: string;\n\n\n\t/**\n\t Constructor\n\t * */\n\tconstructor(barChart?: BarChart) {\n\t\tsuper(barChart);\n\t\tif(barChart){\n\t\t\tthis.barChart(barChart);\n\t\t}\n\t\telse{\n\t\t\tthis.newBarChart();\n\t\t}\n\t}\n\n    //function to create bar chart object\n\tnewBarChart(): void{\n\t\tthis.dimension =  new Dimension();\n\t\tthis.matrix =  new Matrix();\n\t\tthis.legend =  new Legend();\n\t\tthis.colorType =  '';\n\t\tthis.colorFormatting =  '';\n\t\tthis.formatRule =  '';\n\t\tthis.showAxis =  true;\n\t\tthis.showAxisTitle =  true;\n\t\tthis.show =  true;\n\t\tthis.borderColor =  '';\n\t\tthis.axisData =  'Axis Title';\n\t\tthis.showGrid =  true;\n\t\tthis.orientation =  BarChartOrientation.vertical;\n\t\tthis.subType =  'bar-chart';\n\t\tthis.aggregate = 'count';\n\t\tthis.title.text = \"Vertical barchart\";\n\t}\n\n\t/**function to create bar chart object with existing value\n\t*\n\t*@param BarChart\n\t*/\n\tbarChart(barChart: BarChart): void{\n\t\tthis.dimension =  new Dimension(barChart.dimension) ;\n\t\tthis.matrix =  new Matrix(barChart.matrix);\n\t\tthis.legend =  new Legend(barChart.legend);\n\t\tthis.colorType =  barChart.colorType;\n\t\tthis.colorFormatting =  barChart.colorFormatting;\n\t\tthis.formatRule =  barChart.formatRule;\n\t\tthis.showAxis =  barChart.showAxis ;\n\t\tthis.showAxisTitle =  barChart.showAxisTitle;\n\t\tthis.show =  barChart.show ;\n\t\tthis.borderColor =  barChart.borderColor;\n\t\tthis.axisData =  barChart.axisData ;\n\t\tthis.showGrid =  barChart.showGrid ;\n\t\tthis.orientation =  barChart.orientation ;\n\t\tthis.subType =  barChart.subType ;\n\t\tthis.aggregate =  barChart.aggregate ;\n\t}\n\n\t// update  chart orientation\n\tupdateOrientation(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tplotOptions: {\n\t\t\t\tbar: {\n\t\t\t\t\thorizontal: this.orientation === BarChartOrientation.horizontal\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t// update  xaxis chart\n\tupdateXaxis(apexChart: ApexCharts): void {\n\t\tlet series = [];\n\t\tif(this.dimension.attribute){\n\t\t\tseries = this.dimension.attribute.series;\n\t\t}\n\t\tapexChart.updateOptions({\n\t\t\txaxis: {\n\t\t\t\tcategories: series,\n\t\t\t\tlabels: {\n\t\t\t\t\tshow: this.showAxis\n\t\t\t\t},\n\t\t\t\taxisBorder: {\n\t\t\t\t\tcolor: this.borderColor,\n\t\t\t\t}\n\t\t\t},\n\t\t\tyaxis: {\n\t\t\t\taxisBorder: {\n\t\t\t\t\tcolor: this.borderColor,\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tshow: this.showAxis\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\t// Update chart grid  property\n\tupdateGrid(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tgrid: {\n\t\t\t\tshow: this.showGrid,\n\t\t\t}\n\t\t});\n\t}\n\n\n\tsetDefaultName(): void{\n\t\tswitch (this.orientation) {\n\t\t\tcase BarChartOrientation.vertical:\n\t\t\t\tif(this.showStack){\n\t\t\t\t\tthis.title.text= 'Stacked Bar Chart';\n\t\t\t\t}else{\n\t\t\t\t\tthis.title.text= 'Vertical Bar Chart';\n\t\t\t\t}\n\t\t\t\t\n\n\t\t\t\tbreak;\n\t\t\tcase BarChartOrientation.horizontal:\n\t\t\t\tif(this.showStack){\n\t\t\t\t\tthis.title.text= 'Stacked Bar Chart';\n\t\t\t\t}else{\n\t\t\t\t\tthis.title.text= 'Horizontal Bar Chart';\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t}\n\t}\n}\n","<!-- Resizable div -->\n<div id=\"card-chart-container\" class=\"chart-resize p-0\" mwlResizable\n  [ngClass]=\"{'full-body' : !isEditable && (screenType !== screenTypes.drillThrough),'selected-resize':reportData.isSelected && !handle,'resize-class': !handle }\"\n  (resizing)=\"onResizing($event)\" [style.top.px]=\"reportData.yPosition\" [style.left.px]=\"reportData.xPosition\"\n  [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n  style=\"width: fit-content;height: fit-content;\" (resizeEnd)=\"resizeEnd()\">\n  <ng-container *ngIf=\"showGhostLoader\">\n    <app-ghost-loader [elementType]=\"ghostLoaderType.CardChartLoader\"></app-ghost-loader>\n  </ng-container>\n\n  <div class=\"flex flex-col\" [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n    style=\"max-width: 100%; max-width: 100%;\" [ngClass]=\"{\n        'selected':reportData.isSelected,\n        'card-chart-box chart-padding p-0':!showGhostLoader,\n        'full-body' : !isEditable && !showGhostLoader,\n        'hidden':showGhostLoader,\n        'bold-title':reportData.title.fontStyle.fontWeight == 'bold',\n        'normal-title':reportData.title.fontStyle.fontWeight == 'normal',\n        'underline-title':reportData.title.fontStyle.textDecoration == 'underline',\n        'italic-title':reportData.title.fontStyle.isItalicFont,\n        'bold-data-label':reportData.fontStyle.fontWeight == 'bold',\n        'normal-data-label':reportData.fontStyle.fontWeight == 'normal',\n        'underline-data-label':reportData.fontStyle.textDecoration == 'underline',\n        'italic-data-label':reportData.fontStyle.isItalicFont\n    }\" cdkDrag [id]=\"'cdk-drop-'+reportData.guid\" (cdkDragStarted)=\"dragStart($event)\" (cdkDragEnded)=\"dragEnd($event)\"\n    (click)=\"chartSelect(); $event.stopPropagation()\" (cdkDropListDropped)=\"attributeDropped($event)\"\n    [cdkDragData]=\"reportData\" cdkDragBoundary=\".page\" cdkDropList (contextmenu)=\"onContextMenu($event, reportData)\"\n    [cdkDragDisabled]=\"!isEditable\" [style.border]=\"reportData.border\" [style.borderColor]=\"reportData.borderColor\">\n\n    <div class=\"filter-body px-3\"\n      [ngClass]=\"{'local-body' : !isEditable, 'hidden': screenType != ScreenType.reportBuilder && !ShowFilters}\"\n      (click)=\"$event.stopPropagation();\">\n      <lib-report-filter [filters]=\"reportData.filters\" [categories]=\"reportData.categories\" [reportId]=\"reportId\"\n        [screenType]=\"screenType\" [isEditable]=\"isEditable\" [appVersion]=\"appVersionId\"\n        (dirtyFlowCheckEvent)=\"dirtyFlowCheckEvent()\" (applyFilterEvent)=\"applyLocalFilter()\">\n      </lib-report-filter>\n    </div>\n    <div #cardBody id=\"cardBody\" class=\"h-full px-6 py-4 w-full cardBody\"\n      [style.background]='reportData.backgroundColor'\n      [ngClass]=\"{'card-body-radius': screenType != ScreenType.reportBuilder && !ShowFilters, 'no-data-display':reportData.matrix.attributes.length === 0}\">\n      <h5 class=\"card-title m-0\" [style.color]=\"reportData.title.textColor\"\n        [style.display]=\"reportData.title.isVisible ? 'Block' : 'none'\" [style.font-family]=\"reportData.title.textStyle\"\n        [style.text-align]=\"reportData.title.position\" [style.font-size.px]=\"reportData.title.textSize\"\n        *ngIf=\"reportData.matrix.attributes.length\">\n        {{(reportData.title.text)? reportData.title.text : (reportData.matrix.attributes.length) ?\n        reportData.matrix.attributes[0].label : ''}}</h5>\n      <p class=\"cart-text\"\n        [ngClass]=\"{'card-no-data-display':reportData.matrix.attributes.length === 0,'mt-3':reportData.matrix.attributes.length>0 }\"\n        [style.font-size.px]=\"reportData.dataFontSize\" [style.color]=\"reportData.dataColor\"\n        [style.text-align]=\"reportData.dataAlignment\" *ngIf=\"reportData.matrix.attributes.length\">\n        {{reportData.matrix.attributes[0].series[0] }}\n      </p>\n      <div *ngIf=\"reportData.matrix.attributes.length==0\" class=\"h-full relative\">\n        <div [style.color]=\"reportData.title.textColor\" [style.display]=\"reportData.title.isVisible ? 'Block' : 'none'\"\n          [style.font-family]=\"reportData.title.textStyle\" [style.text-align]=\"reportData.title.position\"\n          [style.font-size.px]=\"reportData.title.textSize\">Card Chart</div>\n        <div class=\"not-data-text\">No data to display</div>\n      </div>\n    </div>\n\n    <ng-container>\n      <div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n        [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n      </div>\n\n      <mat-menu #contextMenu=\"matMenu\">\n        <div class=\"chart-menu\">\n          <ng-template matMenuContent let-item=\"reportData\">\n            <ng-container *ngIf='isEditable'>\n              <button mat-menu-item (click)=\"sendToDashboard($event)\">Pin to Dashboard</button>\n              <button mat-menu-item (click)=\"openOptionPopUp($event)\">Delete</button>\n            </ng-container>\n            <button mat-menu-item *ngIf=\"screenTypes.dashboardBuilder === screenType\"\n              (click)=\"onDeleteClick($event)\">Remove From Dashboard</button>\n            <button mat-menu-item *ngIf=\"isDrillThrough && pages.length > 0\" [matMenuTriggerFor]=\"drillThrough\">Drill\n              Through</button>\n          </ng-template>\n        </div>\n      </mat-menu>\n    </ng-container>\n  </div>\n  <ng-container *ngIf='isEditable && !showGhostLoader'>\n    <div class=\"resize-handle-top\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ top: true }\">\n      <div class=\"drag-box drag-box-top\"></div>\n    </div>\n    <div class=\"resize-handle-left\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ left: true }\">\n      <div class=\"drag-box drag-box-left\"></div>\n    </div>\n    <div class=\"resize-handle-right\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ right: true }\">\n      <div class=\"drag-box drag-box-right\"></div>\n    </div>\n    <div class=\"resize-handle-bottom\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ bottom: true }\">\n      <div class=\"drag-box drag-box-bottom\"></div>\n    </div>\n  </ng-container>\n</div>","import { FiltersService } from './../../../../filters/filters.service';\n// External libs\nimport { Component, OnInit, ViewEncapsulation, ViewChild, Input, Output, EventEmitter, OnDestroy, HostListener, ElementRef } from '@angular/core';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { Subject } from 'rxjs';\nimport { ApexAxisChartSeries, ApexChart, ApexDataLabels, ApexXAxis, ApexPlotOptions, ApexYAxis, ApexLegend, ApexTitleSubtitle, ApexGrid, ApexNoData, ChartComponent } from 'ng-apexcharts';\nimport { ResizeEvent } from 'angular-resizable-element';\n\n// Bar chart model\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { FieldsListService } from '../../../../field-list-lib/fields-list.service';\nimport { AttributeData } from '../../../fields/attribute-data';\nimport { CrossFilterDto, ElementsDto } from '../../../../common-dto/elements-dto';\nimport { ChartProperty } from '../chart/chart-property';\nimport { IGraphicalReportComponent } from '../igraphical-report.component';\nimport { CardChart } from './card-chart';\nimport { Report } from '../../../../common-utils/report';\nimport { ReportBuilderMasterService } from '../../report-builder-master.service';\nimport { SendToDashboardService } from '../../../../dashboard-lib/send-to-dashboard.service';\nimport { ISendToDashboardData } from '../../../../dashboard-lib/show-dashboards/show-dashboards.component';\nimport { ElementService } from '../../element.service';\nimport { CommonService } from '../../../../common.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { ScopeType, ScreenType } from '../../../filters/condition-type';\nimport { AxFilter } from '../../../filters/ax-filter';\nimport { SearchNode } from '../../../filters/search-node';\nimport { Attribute } from '../../../data-model/attribute';\nimport { AxExpTextList } from '../../../ax-expression/ax-exp-text-list';\nimport { AxExpression } from '../../../ax-expression/ax-expression';\nimport { DashboardBuilderService } from '../../../../../lib/dashboard-lib/dashboard-builder.service';\nimport { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';\nimport { IChartComponent } from '../ichart-component';\n\n\nexport type CardChartOptions = {\n  series: ApexAxisChartSeries;\n  chart: ApexChart;\n  dataLabels: ApexDataLabels;\n  plotOptions: ApexPlotOptions;\n  xaxis: ApexXAxis;\n  yaxis: ApexYAxis;\n  legend: ApexLegend;\n  grid: ApexGrid;\n  title: ApexTitleSubtitle;\n  noData: ApexNoData;\n};\n\n@Component({\n  selector: 'lib-card-chart',\n  templateUrl: './card-chart.component.html',\n  styleUrls: ['./card-chart.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class CardChartComponent implements IGraphicalReportComponent, OnInit, OnDestroy, IChartComponent {\n\n  // Accepting reportData having axis and values.\n  @Input() reportData: CardChart;\n  @Input() isEditable: boolean;\n  @Input() guid: string;\n  @Output() onchartClickedEvent = new EventEmitter<any>();\n  @Output() onchartRightClickDeleteEvent = new EventEmitter<any>();\n  @Output() chartRendered = new EventEmitter();\n  @Input() screenType: ScreenType;\n  @Input() drillThroughFilterInput: AxFilter;\n  @Input() drillThroughParentType: ScreenType;\n  @Input() currentPageId: number;\n  @Input() appVersionId: number;\n  ScreenType = ScreenType;\n  ShowFilters: boolean =  false;\n  yPosition: number;\n  xPosition: number;\n  /*\n   * MatMenuTrigger Use for right click on the chart action\n   */\n\n  @ViewChild(MatMenuTrigger)\n\n  contextMenu: MatMenuTrigger;\n\n  // Binding element of bar chart to the apex chart component\n  @ViewChild('cardChartContainer') cardChartContainer: ChartComponent;\n\n  @ViewChild('cardBody', { static: true }) cardBody: ElementRef;\n\n  // unique_key of chart\n  public uniquekey: number;\n  /***\n   * MatMenuTrigger Use for right click on the chart action\n   */\n\n  property: ChartProperty;\n  report: Report;\n  handle: boolean = false;\n  componentRef: IChartComponent;\n\n  selectedDataPoints: Array<number> = [];// Holds the all selected points.\n\n\n  contextMenuPosition = { x: '0px', y: '0px' };\n  public style = {};\n  reportId: number = 0;\n  isDirty: boolean;\n  showGhostLoader: boolean = true;\n  ghostLoaderType = GhostLoaderType;\n  screenTypes= ScreenType;\n\n  public cardChartOptions: Partial<CardChartOptions>;\n  /*\n   * Subject object which helps unsubscribe all the subscribed objects in the component\n   */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  /**\n   * Constructor\n   *\n   */\n  constructor(\n    private _fieldsListService: FieldsListService, // Used for get matrix data\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _sendToDashboardService: SendToDashboardService,\n    private _elementService: ElementService,\n    private _commonService: CommonService,\n    private _dashboardService: DashboardBuilderService,\n    private _filterService: FiltersService\n  ) {\n    this.property = new ChartProperty();\n  }\n\n  /**\n   * Chart Select Event.\n   */\n  chartSelect(): void{\n        this.onchartClickedEvent.emit(this.property);\n  }\n\n  /**\n   * Delete Chart.\n   */\n  openOptionPopUp(): void{\n    this.onchartRightClickDeleteEvent.emit(this.uniquekey);\n  }\n\n  /**\n   * Pin to Dashboard\n   */\n  sendToDashboard(): void{\n    const sendToDashboardData: ISendToDashboardData = {\n        filter: null,\n        filterCategory: null,\n        appVersionId: this.report.appVersionId,\n        type: 'element',\n        element: this.reportData\n      };\n      this._sendToDashboardService.sendToDashboard(sendToDashboardData);\n  }\n\n\n  @HostListener('window:mousedown', ['$event'])\n  click(event): void{\n    if(event.which === 3 && this.contextMenu.menuOpened){\n      this.contextMenu.closeMenu();\n    }\n  }\n\n  @HostListener('window:resize', ['$event'])\n  onResize(event) {\n    this.adjustFontSize();\n  }\n\n  /**\n   * On init life cycle hook.\n   */\n  ngOnInit(): void {\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n    this.componentRef = this;\n    this.ShowFilters = this._filterService.setVisibilityOfFilterComponent(this.reportData.filters,this.reportData.categories);\n    this.report=this._reportBuilderMasterService.report;\n    this.reportId = this.report?.id;\n    this.property.element = this.reportData;\n    /*whenever we change the filters we got call back from this subscribe*/\n    this._elementService.refreshDataEvent$\n      .pipe(takeUntil(this._unsubscribeAll))\n      .subscribe((val: boolean) => {\n        if(val)\n        {\n          this.getChartData();\n        }\n      });\n\n      this.getChartData();\n\n        /*when we click on bar chart event will be emitted from this subscriber*/\n        this._elementService.crossFilterEvent.subscribe((crossFilter: CrossFilterDto) => {\n          // Skip init-time reset events: values=null, no selection, resetFilter=false\n          // These are emitted by other charts on load and carry no actual cross-filter data.\n          // Responding to them causes redundant API calls per chart on every dashboard load.\n          if (!crossFilter.values && !crossFilter.resetFilter && crossFilter.selectedIndexLength === 0) {\n            return;\n          }\n          this.createCrossFilter(crossFilter);\n        });\n        // NOTE: Removed init-time resetCrossFilter() emit. All chart types (bar, tabular) now\n        // self-initialize, so broadcasting a reset event on card-chart init only causes cascade.\n\n    this.adjustFontSize();\n  }\n\n  /**\n   * On destroy\n   */\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /***\n   * On chart context  click Function\n   */\n  onContextMenu(event: MouseEvent, chart: CardChart): void {\n    if(!this.isEditable &&\n        ([this.screenTypes.containerDashboard, this.screenTypes.drillThrough].includes(this.screenType))){\n        event.preventDefault();\n        return;\n    }\n\n    if (!this.isEditable && (this.screenType !== ScreenType.drillThrough)) {\n        const centralPage: HTMLElement = document.getElementById(this.guid);\n        const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n        event.preventDefault();\n        this.contextMenuPosition.x = ( event.clientX -centralPageBounds.x ) + 'px';\n        this.contextMenuPosition.y = (event.clientY-centralPageBounds.y) + 'px';\n        this.contextMenu.menuData = { chart: chart };\n        this.contextMenu.menu.focusFirstItem('mouse');\n        this.contextMenu.openMenu();\n    }\n    else{\n        event.preventDefault();\n        this.contextMenuPosition.x = event.clientX + 'px';\n        this.contextMenuPosition.y = event.clientY + 'px';\n        this.contextMenu.menuData = { chart: chart };\n        this.contextMenu.menu.focusFirstItem('mouse');\n        this.contextMenu.openMenu();\n    }\n  }\n\n    /**\n     * Created filter object for cross filtering.\n     *\n     *  @param CrossFilterDto\n     */\n     createCrossFilter(crossFilterData: CrossFilterDto): void{\n      const axExpression= new AxExpression();\n      axExpression.comparisonOperator.text = 'In';\n      axExpression.comparisonOperator.value = 'IN';\n      axExpression.valueType = 2;\n      axExpression.field= new Attribute(crossFilterData.attributeData as unknown as Attribute);\n      const axExpTextList = new AxExpTextList();\n      if(crossFilterData.values){\n      crossFilterData.values.forEach((value)=>{\n        axExpTextList.value.push(value);\n    });\n  }\n      axExpression.value= axExpTextList;\n      const _searchNodes= new SearchNode();\n      _searchNodes.expression= axExpression;\n      const _filter = new AxFilter();\n      _filter.searchNodes.push(_searchNodes);\n      _filter.appVersionId=0;\n      this.getCrossFilterData(_filter,crossFilterData);\n  }\n\n   /**\n    * pushed the filter object into basic filter and applied the filter on the data\n    *\n    *  @param CrossFilterDto\n    *  @param AxFilter\n    */\n  getCrossFilterData(_filter: AxFilter, crossFilterData: CrossFilterDto): void{\n      if (this.reportData.matrix.attributes.length) {\n          const elementDto = new ElementsDto(this.reportData);\n          elementDto.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n          elementDto.filters.localFilters.basic.push(_filter);\n          elementDto.filters.localFilters.category =this._elementService.getValidFilterCategory(this.reportData.categories);\n          elementDto.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic);\n          elementDto.filters.globalFilters.category =this._elementService.getValidFilterCategory(this._elementService.filtersDto.category);\n          elementDto.reportId = this.reportId;\n          if(crossFilterData.resetFilter){\n            elementDto.filters.localFilters.basic=[];\n          }\n          this._fieldsListService.getMatrixData(elementDto)\n          .then((entitiesAttribute: ElementsDto) => {\n              if (entitiesAttribute != null || entitiesAttribute.dimension.attribute.series.length >0) {\n                this.chartRendered.emit();\n                this.reportData.matrix.attributes = entitiesAttribute.matrix.attributes;\n              }\n          });\n      }\n  }\n\n  /**\n   * Chart Resize min dimension.\n   *\n   * @param event\n   * @returns\n   */\n  chartResizeMinDimensions(event: ResizeEvent): boolean {\n    const MIN_Y_DIMENSIONS_PX: number = document.getElementById('cardBody').clientHeight + 10;\n    const MIN_X_DIMENSIONS_PX: number = document.getElementById('cardBody').clientWidth;\n    if (\n      event.rectangle.width &&\n      event.rectangle.height &&\n      (event.rectangle.width < MIN_X_DIMENSIONS_PX ||\n        event.rectangle.height < MIN_Y_DIMENSIONS_PX)\n    ) {\n      return false;\n    }\n    return true;\n  }\n\n\n  /****\n  * onResizing = this function use for resize the  chart\n  */\n  onResizing(event: ResizeEvent): void {\n    const centralPage: HTMLElement = document.getElementById('central-page');\n    const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n    if(event.rectangle.right >= centralPageBounds.right && event.edges.right){\n      event.rectangle.right = centralPageBounds.right;\n    } else if(event.rectangle.left < centralPageBounds.left){\n      event.rectangle.left = centralPageBounds.left;\n    } else if(event.rectangle.bottom > centralPageBounds.bottom){\n      event.rectangle.bottom = centralPageBounds.bottom;\n    } else if(event.rectangle.top < centralPageBounds.top){\n      event.rectangle.top = centralPageBounds.top;\n    }\n    event.rectangle.width = event.rectangle.right - event.rectangle.left;\n    event.rectangle.height = event.rectangle.bottom - event.rectangle.top;\n    if(event.edges.bottom !== 0 && event.edges.top !== 0 && event.edges.left !== 0 && event.edges.right !== 0){\n      event.edges.top = this.yPosition + Number(event.edges.top);\n      event.edges.left = this.xPosition + Number(event.edges.left);\n      this.reportData.resizeChart(event, this.property.apexChart);\n      this._commonService.isReportBuilderDirty=true;\n    }\n    this.adjustFontSize();\n  }\n\n  /**\n     * Called when resizing ends\n     */\n  resizeEnd(){\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n }\n\n\n  /**\n   * Get Field data\n   */\n  async getChartData(): Promise<void> {\n        if (this.reportData.matrix.attributes.length) {\n      if(this.drillThroughParentType == ScreenType.dashboardBuilder || this.drillThroughParentType == ScreenType.containerDashboard)\n        {this.reportData.apiType = 'dashboard';}\n      const data = new ElementsDto(this.reportData);\n      data.reportId = this.reportId;\n      data.isCustomElement = this.reportData.isCustomElement;\n      if(this.screenType === this.screenTypes.drillThrough){\n          data.filters.globalFilters.basic.push(this.drillThroughFilterInput);\n      } else {\n        data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);\n        data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);\n      }\n      data.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n      data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.reportData.categories);\n      data.isCustomElement = this.reportData.isCustomElement;\n      this._fieldsListService.getMatrixData(data).then((entitiesAttribute) => {\n        if (entitiesAttribute != null) {\n          this.chartRendered.emit();\n          // this.reportData.sqlQuery = entitiesAttribute.sqlQuery;\n          this.reportData.matrix.attributes = entitiesAttribute.matrix.attributes;\n        }\n        if(!isNaN(parseFloat(this.reportData.matrix.attributes[0].series[0])))\n        {this.reportData.matrix.attributes[0].series[0] = parseFloat(this.reportData.matrix.attributes[0].series[0]).toFixed(this.reportData.decimalPrecision);}\n        //else\n        //{this.reportData.matrix.attributes[0].series[0] = 0;}\n        this.showGhostLoader = false;\n\n      });\n    }\n    else{\n      this.showGhostLoader = false;\n      this.chartRendered.emit();\n    }\n  }\n\n  /**\n   * attributeDropped\n   * Called when attribute is dragged from left side fields list and dropped on the Card chart\n   *\n   * @param $event\n   */\n  attributeDropped($event: CdkDragDrop<any>): void {\n    //--commented\n    // $event.item.data.aggregateFn='count';\n    // this.reportData.matrix.attributes = [new AttributeData($event.item.data)];\n    // this.getChartData();\n\n    const attributeData = new AttributeData($event.item.data);\n    attributeData.aggregateFn = 'count';\n    this.reportData.matrix.attributes = [attributeData];\n    this.getChartData();\n  }\n  /**\n   * call cdk drag start event\n   *\n   * @param $event\n   */\n  dragStart($event: DragEvent): void{\n    this.handle = true;\n  }\n  /**\n   * call cdk drag end event\n   *\n   * @param $event\n   */\n  dragEnd($event: DragEvent): void{\n    this.handle = false;\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n  }\n  /**\n   * emit event remove element from dashboard\n   *\n   * @param event\n   */\n  onDeleteClick(event: MouseEvent): void {\n    this._commonService.isDashboardBuilderDirty = true;\n    event.preventDefault();\n    event.stopPropagation();\n    this._dashboardService.deleteDashboardElement(this.reportData);\n    this.contextMenu.closeMenu();\n  }\n\n    /**\n     * Apply local filter.\n     */\n    applyLocalFilter(): void{\n        this.getChartData();\n    }\n\n    dirtyFlowCheckEvent():void{\n      \n    }\n\n    /**\n     * Reset cross filter and emit reset cross filter event.\n     */\n    resetCrossFilter(ShowFilters:boolean): void{\n      let crossFilterDto: CrossFilterDto;\n      crossFilterDto = {\n          values: null,\n          attributeData:null,\n          chartType: this.reportData.type,\n          elementGuid: this.reportData.guid,\n          resetFilter:ShowFilters,\n          selectedIndexLength: 0\n\n      };\n      this._elementService.triggerCrossFilter(crossFilterDto);\n  }\n\n  private adjustFontSize(): void {\n    const cardBody = this.cardBody.nativeElement;\n    const cardTitle = cardBody.querySelector('.card-title');\n    const cardText = cardBody.querySelector('.cart-text');\n\n    if (cardBody && cardTitle && cardText) {\n      const cardBodyHeight = cardBody.clientHeight;\n      const cardBodyWidth = cardBody.clientWidth;\n\n      const newFontSize = Math.min(cardBodyHeight, cardBodyWidth) * 0.1; // Adjust the multiplier as needed\n\n      (cardTitle as HTMLElement).style.fontSize = `${newFontSize}px`;\n      (cardText as HTMLElement).style.fontSize = `${newFontSize}px`;\n    }\n  }\n}\n","import { FontStyle } from './../chart/fontStyle';\n\n// Chart's supporting classes\n\nimport { Chart } from '../chart/chart';\nimport { Dimension } from '../chart/dimension';\nimport { Matrix } from '../chart/matrix';\nimport { CardChartComponent } from './card-chart.component';\n\nexport enum CardChartOrientation {\n\thorizontal = 1,\n\tvertical = 2\n}\n\n//holds properties of card chart\nexport class CardChart extends Chart {\n\t// Attributes for LineChart\n\tdimension: Dimension;\n\tmatrix: Matrix;\n\tcolor: string;\n\tcomponent = CardChartComponent;\n\tdataColor?: string;\n\taggregate?: string;\n\tdataFontSize?: string;\n\tdataAlignment?: string;\n    fontStyle?: FontStyle;\n\n\n\t/*** Constructor\n\t  */\n\t constructor(cardChart?: CardChart) {\n\t\tsuper(cardChart as Chart);\n\t\tif(cardChart){\n\t\t\tthis.cardChart(cardChart);\n\t\t}else{\n\t\t\tthis.newCardChart();\n\t\t}\n\t}\n    //function to create card chart object\n\tcardChart(cardChart?: CardChart): void {\n\t\tthis.dimension = cardChart.dimension;\n\t\tthis.matrix = new Matrix(cardChart.matrix);\n\t\tthis.color = cardChart.color;\n\t\tthis.border = cardChart.border;\n\t\tthis.borderColor = cardChart.borderColor;\n\t\tthis.dataColor = cardChart.dataColor;\n\t\tthis.title.isVisible = cardChart.title.isVisible;\n\t\tthis.title.text = cardChart.title.text;\n\t\tthis.dataFontSize = cardChart.dataFontSize;\n\t\tthis.width = cardChart.width;\n\t\tthis.height = cardChart.height;\n\t\tthis.subType = cardChart.subType;\n\t\tthis.aggregate = cardChart.aggregate;\n\t\tthis.dataAlignment = cardChart.dataAlignment;\n        this.fontStyle = new FontStyle(cardChart.fontStyle);\n\t}\n\t/**function to create bar chart object with existing values\n\t*\n\t*@param CardChart\n\t*/\n\tnewCardChart(): void {\n\t\tthis.dimension = new Dimension();\n\t\tthis.matrix = new Matrix();\n\t\tthis.color = '#000';\n\t\tthis.border = '';\n\t\tthis.borderColor = '';\n\t\tthis.dataColor = '#000';\n\t\tthis.title.isVisible = true;\n\t\tthis.title.text = '';\n\t\tthis.dataFontSize = '11';\n\t\tthis.width = 300;\n\t\tthis.height = 200;\n\t\tthis.subType = 'card-chart';\n\t\tthis.aggregate = 'count';\n\t\tthis.dataAlignment = 'left';\n        this.fontStyle = new FontStyle;\n\t}\n}\n","// External libs\nimport { Component, OnInit, ViewEncapsulation, ViewChild, Input, Output, EventEmitter, OnDestroy, AfterViewInit, HostListener } from '@angular/core';\nimport { ChartComponent, ApexAxisChartSeries, ApexChart, ApexXAxis, ApexYAxis, ApexDataLabels, ApexTitleSubtitle, ApexStroke, ApexGrid, ApexPlotOptions, ApexNoData } from 'ng-apexcharts';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { Subject } from 'rxjs';\n// Line chart model\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { ResizeEvent } from 'angular-resizable-element';\nimport { FieldsListService } from '../../../../field-list-lib/fields-list.service';\nimport { Router } from '@angular/router';\nimport { AttributeData } from '../../../fields/attribute-data';\nimport { ElementsDto, CrossFilterDto } from '../../../../common-dto/elements-dto';\nimport { ChartProperty } from '../chart/chart-property';\nimport { Dimension } from '../chart/dimension';\nimport { Matrix } from '../chart/matrix';\nimport { IGraphicalReportComponent } from '../igraphical-report.component';\nimport { LineChart } from './line-chart';\nimport { SendToDashboardService } from '../../../../dashboard-lib/send-to-dashboard.service';\nimport { ISendToDashboardData } from '../../../../dashboard-lib/show-dashboards/show-dashboards.component';\nimport { Report } from '../../../../common-utils/report';\nimport { ReportBuilderMasterService } from '../../report-builder-master.service';\nimport { ElementService } from '../../element.service';\nimport { IChartComponent } from '../ichart-component';\nimport { CommonService } from '../../../../common.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { ScopeType, ScreenType } from '../../../filters/condition-type';\nimport { AxExpression } from '../../../ax-expression/ax-expression';\nimport { Attribute } from '../../../data-model/attribute';\nimport { AxExpTextList } from '../../../ax-expression/ax-exp-text-list';\nimport { SearchNode } from '../../../filters/search-node';\nimport { AxFilter } from '../../../filters/ax-filter';\nimport { Page } from '../page/page';\nimport { AxElement } from '../../../elements/ax-element';\nimport { DashboardBuilderService } from '../../../../dashboard-lib/dashboard-builder.service';\nimport { DrillThroughService } from '../../../../drill-through/drill-through.service';\nimport { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';\nimport { FiltersService } from '../../../../filters/filters.service';\n\n// Creating custom type for bar chart options that are going to be consumed by apex chart\nexport type LineChartOptions = {\n  series: ApexAxisChartSeries;\n  chart: ApexChart;\n  xaxis: ApexXAxis;\n  yaxis: ApexYAxis;\n  dataLabels: ApexDataLabels;\n  grid: ApexGrid;\n  stroke: ApexStroke;\n  title: ApexTitleSubtitle;\n  plotOptions: ApexPlotOptions;\n  colors: any;\n  toolbar: any;\n  legend: any;\n  noData: ApexNoData;\n  tooltip: ApexTooltip;\n};\n\n@Component({\n  selector: 'lib-line-chart',\n  templateUrl: './line-chart.component.html',\n  styleUrls: ['./line-chart.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\n//holds properties of Linechart component\nexport class LineChartComponent implements IGraphicalReportComponent, OnInit, OnDestroy, AfterViewInit, IChartComponent {\n\n  @ViewChild('chart') chart: ChartComponent;\n\n  @ViewChild(MatMenuTrigger)\n\n  contextMenu: MatMenuTrigger;\n\n\n  // Accepting reportData having axis and values.\n  @Input() reportData: LineChart;\n  @Input() isEditable: boolean;\n  @Input() guid: string;\n  @Output() onchartClickedEvent = new EventEmitter<any>();\n  @Output() onchartRightClickDeleteEvent = new EventEmitter<any>();\n  @Output() chartRendered = new EventEmitter();\n  @Input() screenType: ScreenType;\n  @Input() drillThroughFilterInput: AxFilter;\n  @Input() drillThroughParentType: ScreenType;\n  @Input() currentPageId: number;\n  @Input() appVersionId: number;\n  report: Report;\n  isDirty: boolean;\n  reportId: number = 0;\n  handle: boolean = false;\n  isDrillThrough: boolean = false;\n  componentRef: LineChartComponent;\n  pages: Array<Page> = [];\n  selectedDataPoints: Array<number> = [];\n  isDataPointSelected: boolean;\n  drillThroughFilter: AxFilter;\n  ScreenType = ScreenType;\n  ShowFilters: Boolean =  false;\n  appManifest: any;\n  yPosition: number;\n  xPosition: number;\n\n  public lineChartOptions: Partial<LineChartOptions>;\n  // uniquekey of chart\n  public uniquekey: number;\n\n  property: ChartProperty;\n  /***\n   * MatMenuTrigger Use for right click on the chart action\n   */\n\n\n\n  contextMenuPosition = { x: '0px', y: '0px' };\n\n  /****\n   * Resize  chart  styles\n   */\n  public style = {};\n  showGhostLoader: boolean = true;\n  GhostLoaderType = GhostLoaderType;\n  /*\n   * Subject object which helps unsubscribe all the subscribed objects in the component\n   */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n\n  /**\n   * Constructor\n   *\n   */\n  constructor(\n    private _fieldsListService: FieldsListService, // Used for get matrix data\n    private _sendToDashboardService: SendToDashboardService,\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _elementService: ElementService,\n    private _commonService: CommonService,\n    private _dashboardService: DashboardBuilderService,\n    private _drillThroughService: DrillThroughService,\n    private _router: Router,\n    private _filterService: FiltersService\n  ) {\n    this.property = new ChartProperty();\n\n  }\n\n  public get screenTypes(): typeof ScreenType {\n    return ScreenType;\n  }\n\n  @HostListener('window:mousedown', ['$event'])\n  click(event): void {\n    if (event.which === 3 && this.contextMenu.menuOpened) {\n      this.contextMenu.closeMenu();\n    }\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n\n  ngAfterViewInit(): void {\n    this.property.apexChart = new ApexCharts(document.getElementById(this.reportData.guid.toString()), this.lineChartOptions);\n    this.property.apexChart.render();\n    this.getChartData();\n  }\n  /**\n   * On init\n   */\n  ngOnInit(): void {\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n    this.componentRef = this;\n    this.ShowFilters = this._filterService.setVisibilityOfFilterComponent(this.reportData.filters,this.reportData.categories);\n    this.report = this._reportBuilderMasterService.report;\n    this.reportId = this.report?.id;\n    this.property.element = this.reportData;\n    const decimalPrecision = this.reportData.decimalPrecision;\n    \n\n    this.lineChartOptions = {\n      noData: {\n        text: 'No data to display',\n        align: 'center'\n      },\n      chart: {\n        id: 'apx-' + this.reportData.guid,\n        type: 'line',\n        height: '100%',\n        width: '100%',\n        background: this.reportData.backgroundColor,\n        zoom: {\n          enabled: false\n        },\n        redrawOnParentResize: true,\n        toolbar: {\n          show: true,\n          export: {\n              csv: {\n                filename: this.reportData.title.text\n              },\n              svg: {\n                filename: this.reportData.title.text\n              },\n              png: {\n                filename: this.reportData.title.text\n              }\n            },\n        },\n        animations: {\n          enabled: false,\n        },\n        events: {\n          markerClick: (crossFilterEvent, chartContext, { seriesIndex, dataPointIndex, config }): void => {\n            this.isDrillThrough = false;\n            if (crossFilterEvent && crossFilterEvent.button === 2 && dataPointIndex >= 0) {\n              this.isDrillThrough = true;\n              this.createDrillThroughFilter(this.reportData.dimension.attribute.series[dataPointIndex]);\n            } else if (crossFilterEvent) {\n              this.isDataPointSelected = true;\n              this.dataPointSelection(dataPointIndex);\n            }\n          },\n          click: (crossFilterEvent, chart, opts): void => {\n            this.chartSelect();\n            if (!this.isDataPointSelected || opts.dataPointIndex < 0) {\n              this.dataPointSelection(opts);\n            }\n          },\n        },\n\n      },\n      dataLabels: {\n        enabled: this.reportData.showDataLabels,\n        formatter: (val: any): string => parseFloat(val).toFixed(decimalPrecision),\n\n      },\n      stroke: {\n        curve: 'straight'\n      },\n      title: {\n        text: this.reportData.title.text,\n        align: this.reportData.title.position,\n        style: {\n          color: this.reportData.title.textColor,\n          fontFamily: this.reportData.title.textStyle,\n          fontSize: this.reportData.title.textSize,\n        }\n      },\n      grid: {\n        show: this.reportData.gridShowStatus,\n        borderColor: this.reportData.gridRowColor,\n        xaxis: {\n          lines: {\n              show: false\n          }\n        }\n      },\n      legend: {\n        position: this.reportData.legend.position,\n        show: this.reportData.legend.enable,\n        fontSize: this.reportData.legend.textSize,\n        fontFamily: this.reportData.legend.textStyle,\n        labels: {\n          colors: this.reportData.legend.textColor,\n        }\n      },\n      xaxis: {\n        title: {\n          text: '',\n          style: {\n            fontSize: '40',\n            color: 'black'\n          },\n        },\n        labels: {\n          show: this.reportData.xyAxisHideShowLabels,\n          trim: true,\n          rotate: -60,\n          maxHeight: 85\n\n        },\n        tooltip: {\n          enabled: true,\n          formatter: ((xAxisTxt: any): any => {\n            if (typeof xAxisTxt !== 'undefined') {\n              return xAxisTxt.toString().length > 5 ? xAxisTxt.toString().slice(0, 5) + '...' : xAxisTxt.toString();\n            }\n            return xAxisTxt;\n          })\n        },\n        tickAmount: 40,\n        tickPlacement: 'between'\n      },\n      series: [],\n      yaxis: {\n        labels: {\n          show: this.reportData.xyAxisHideShowLabels,\n        },\n        title: {\n          text: ''\n        },\n        tooltip: {\n          enabled: true,\n          offsetX: 0,\n        }\n      },\n      tooltip: {\n        shared: true,\n        x: {\n          show: true,\n          formatter: ((xAxisText: any): any => {\n            if (typeof xAxisText !== 'undefined') {\n              return xAxisText.toString().length > 5 ? xAxisText.toString().slice(0, 5) + '...' : xAxisText.toString();\n            }\n            return xAxisText;\n          })\n        },\n        y: {\n          formatter: ((yAxisText: any): any => {\n            if (typeof yAxisText !== 'undefined') {\n              return yAxisText.toString().length > 5 ? yAxisText.toString().slice(0, 5) + '...' : yAxisText.toString();\n            }\n            return yAxisText;\n          })\n        }\n      }\n    };\n    this.subscribers();\n  }\n\n  /**\n   * On destroy\n   */\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  subscribers(): void {\n    /*whenever we change the filters we got call back from this subscriber*/\n    this._elementService.refreshDataEvent$\n      .pipe(takeUntil(this._unsubscribeAll))\n      .subscribe((val: boolean) => {\n        if (val) {\n          this.getChartData();\n        }\n      });\n\n    /*when we click on bar chart event will be emitted from this subscriber*/\n    this._elementService.crossFilterEvent.subscribe((crossFilter: CrossFilterDto) => {\n      this.createCrossFilter(crossFilter);\n    });\n    // Get pageslist\n    this._commonService.pageList$.subscribe((page) => {\n        this.pages = [];\n        this.reportData.matrix.attributes?.forEach((attribute) => {\n          page?.forEach((_page) => {\n            _page?.drillData?.forEach((drillData) => {\n              if ((drillData.columnName === attribute.columnName && drillData.tableName === attribute.tableName)\n                || (this.reportData.dimension.attribute && this.reportData.dimension.attribute.columnName === drillData.columnName && this.reportData.dimension.attribute.tableName === drillData.tableName)) {\n                this.pages.push(_page);\n              }\n            });\n          });\n        });\n        this.pages = this.pages.filter(p => p.id !== this.currentPageId);\n      });\n  }\n\n  getChartData(): void {\n    if (this.reportData.matrix.attributes.length && this.reportData.dimension.attribute) {\n      if (this.drillThroughParentType == ScreenType.dashboardBuilder || this.drillThroughParentType == ScreenType.containerDashboard) { this.reportData.apiType = 'dashboard'; }\n      const data = new ElementsDto(this.reportData);\n      if (this.screenType === this.screenTypes.drillThrough) {\n        data.filters.globalFilters.basic.push(this.drillThroughFilterInput);\n      } else {\n        data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);\n        data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);\n      }\n      data.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n      data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.reportData.categories);\n      data.reportId = this.reportId;\n      data.isCustomElement = this.reportData.isCustomElement;\n      this._fieldsListService.getMatrixData(data).then((entitiesAttribute) => {\n        if (entitiesAttribute != null) {\n          this.chartRendered.emit();\n          this.setDataToChart(entitiesAttribute);\n          this.showGhostLoader = false;\n        }\n      });\n    }\n    else {\n      this.chartRendered.emit();\n      this.showGhostLoader = false;\n    }\n  }\n\n  /**\n   *\n   * Called when we select a bar by a click event\n   *\n   * @param opts\n   */\n  dataPointSelection(dataPointIndex: any): void {\n    let crossFilterDto: CrossFilterDto;\n    if (dataPointIndex >= 0) {\n      if (this.selectedDataPoints.includes(dataPointIndex)) {\n        const ind = this.selectedDataPoints.indexOf(dataPointIndex);\n        this.selectedDataPoints.splice(ind, 1);\n      } else {\n        this.selectedDataPoints.push(dataPointIndex);\n      }\n      crossFilterDto = {\n        values: [],\n        attributeData: this.reportData.dimension.attribute,\n        chartType: this.reportData.type,\n        elementGuid: this.reportData.guid,\n        resetFilter: false,\n        selectedIndexLength: null\n      };\n      this.selectedDataPoints.forEach((index) => {\n        crossFilterDto.values.push(this.reportData.dimension.attribute.series[index]);\n      });\n    } else {\n      crossFilterDto = {\n        values: null,\n        attributeData: null,\n        chartType: this.reportData.type,\n        elementGuid: this.reportData.guid,\n        resetFilter: true,\n        selectedIndexLength: 0\n      };\n    }\n    this._elementService.triggerCrossFilter(crossFilterDto);\n  }\n  /**\n   * Created filter object for cross filtering.\n   *\n   *  @param CrossFilterDto\n   */\n  createCrossFilter(crossFilterData: CrossFilterDto): void {\n    const axExpression = new AxExpression();\n    axExpression.comparisonOperator.text = 'In';\n    axExpression.comparisonOperator.value = 'IN';\n    axExpression.valueType = 2;\n    axExpression.field = new Attribute(crossFilterData.attributeData as unknown as Attribute);\n    const axExpTextList = new AxExpTextList();\n    if (crossFilterData.values) {\n      crossFilterData.values.forEach((value) => {\n        axExpTextList.value.push(value);\n      });\n    }\n    axExpression.value = axExpTextList;\n    const _searchNodes = new SearchNode();\n    _searchNodes.expression = axExpression;\n    const _filter = new AxFilter();\n    _filter.searchNodes.push(_searchNodes);\n    _filter.appVersionId = 0;\n    this.getCrossFilterData(_filter, crossFilterData);\n  }\n\n  /**\n   * pushed the filter object into basic filter and applied the filter on the data\n   *\n   *  @param CrossFilterDto\n   *  @param AxFilter\n   */\n  getCrossFilterData(_filter: AxFilter, crossFilterData: CrossFilterDto): void {\n    if (this.reportData.matrix.attributes.length && this.reportData.dimension.attribute) {\n      const elementDto = new ElementsDto(this.reportData);\n      elementDto.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n      elementDto.filters.localFilters.basic.push(_filter);\n      elementDto.filters.localFilters.category = this._elementService.getValidFilterCategory(this.reportData.categories);\n      elementDto.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic);\n      elementDto.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category);\n      elementDto.reportId = this.reportId;\n      this._fieldsListService\n        .getMatrixData(elementDto)\n        .then((crossFilterAttribute: ElementsDto) => {\n          //if matrix is not same then crossfilter should not apply\n          if (crossFilterAttribute != null) {\n            this.chartRendered.emit();\n            this.setDataToChart(crossFilterAttribute);\n          }\n        });\n    }\n  }\n  /**\n   * set data to chart if entitiesAttribute is not equal to null then this method will call\n   */\n  setDataToChart(entitiesAttribute: ElementsDto): void {\n    // this.reportData.sqlQuery = entitiesAttribute.sqlQuery;\n\n    //--commented\n    // const matrixData = [];\n    // this.reportData.matrix.attributes = entitiesAttribute.matrix.attributes;\n    // this.reportData.dimension.attribute = entitiesAttribute.dimension.attribute;\n\n    // for (const attribute of this.reportData.matrix.attributes) {\n    //   matrixData.push({ data: attribute.series, name: attribute.label, color: attribute.color });\n    // }\n    // this.property.apexChart.updateOptions({ xaxis: { categories: this.reportData.dimension.attribute.series } });\n    // this.property.apexChart.updateSeries(matrixData);\n\n    this.reportData.matrix.attributes = entitiesAttribute.matrix.attributes;\n    this.reportData.dimension.attribute = entitiesAttribute.dimension.attribute;\n\n    const matrixData = this.reportData.matrix.attributes.map(attribute => ({\n      data: attribute.series,\n      name: attribute.label,\n      color: attribute.color\n    }));\n\n    // Combine updates into a single call to reduce DOM manipulations\n    this.property.apexChart.updateOptions({\n      xaxis: { categories: this.reportData.dimension.attribute.series },\n      series: matrixData\n    });\n\n  }\n\n  /**\n   * attributeDropped\n   * Called when attribute is dragged from left side fields list and dropped on the bar chart\n   *\n   * @param $event\n   */\n  attributeDropped($event: CdkDragDrop<any>): void {\n    //--commented\n    // $event.item.data.aggregateFn = 'count';\n    // if (this.reportData.matrix.attributes.length === 0 && this.reportData.dimension.attribute == null) {\n    //   this.reportData.matrix = new Matrix();\n    //   this.reportData.matrix.attributes.push(new AttributeData($event.item.data));\n    //   this.reportData.dimension = new Dimension();\n    //   this.reportData.dimension.attribute = JSON.parse(JSON.stringify(new AttributeData($event.item.data)));\n    //   this.reportData.dimension.attribute.aggregateFn = 'none';\n    // }\n    // else if (this.reportData.matrix.attributes.length > 0 && $event.item.data.enlightenType instanceof Text && this.reportData.dimension.attribute == null) {\n    //   this.reportData.dimension.attribute = new AttributeData($event.item.data);\n    //   this._commonService.isReportBuilderDirty = true;\n    // } else {\n    //   this.reportData.matrix.attributes.push(new AttributeData($event.item.data));\n    //   const seriesData = [];\n    //   this.reportData.matrix.attributes.forEach((attr) => {\n    //     seriesData.push({ name: attr.label, data: attr.series, color: attr.color });\n    //   });\n    //   this.lineChartOptions.series = seriesData;\n    //   this._commonService.isReportBuilderDirty = true;\n    // }\n    // this.getChartData();\n\n    $event.item.data.aggregateFn = 'count';\n    const isMatrixEmpty = this.reportData.matrix.attributes.length === 0;\n    const isDimensionEmpty = this.reportData.dimension.attribute == null;\n    const isTextType = $event.item.data.enlightenType instanceof Text;\n\n    if (isMatrixEmpty && isDimensionEmpty) {\n      this.initializeMatrixAndDimension($event.item.data);\n    } else if (!isMatrixEmpty && isDimensionEmpty && isTextType) {\n      this.setDimensionAttribute($event.item.data);\n    } else {\n      this.addMatrixAttribute($event.item.data);\n    }\n\n    this._commonService.isReportBuilderDirty = true;\n    this.getChartData();\n  }\n\n  private initializeMatrixAndDimension(data: any): void {\n    this.reportData.matrix = new Matrix();\n    this.reportData.matrix.attributes.push(new AttributeData(data));\n    this.reportData.dimension = new Dimension();\n    this.reportData.dimension.attribute = JSON.parse(JSON.stringify(new AttributeData(data)));\n    this.reportData.dimension.attribute.aggregateFn = 'none';\n  }\n\n  private setDimensionAttribute(data: any): void {\n    this.reportData.dimension.attribute = new AttributeData(data);\n  }\n\n  private addMatrixAttribute(data: any): void {\n    this.reportData.matrix.attributes.push(new AttributeData(data));\n    this.updateLineChartOptions();\n  }\n\n  private updateLineChartOptions(): void {\n    const seriesData = this.reportData.matrix.attributes.map(attr => ({\n      name: attr.label,\n      data: attr.series,\n      color: attr.color\n    }));\n    this.lineChartOptions.series = seriesData;\n\n  }\n  /**\n   * Created filter object for drill through.\n   *\n   *  @param dataPointIndex\n   */\n  createDrillThroughFilter(dataPointIndex: any): void {\n    const axExpression = new AxExpression();\n    axExpression.comparisonOperator.text = 'In';\n    axExpression.comparisonOperator.value = 'IN';\n    axExpression.valueType = 2;\n    axExpression.field = new Attribute(this.reportData.dimension.attribute as unknown as Attribute);\n    const axExpTextList = new AxExpTextList();\n    axExpTextList.value.push(dataPointIndex);\n    axExpTextList.isSearchable = true;\n    axExpression.value = axExpTextList;\n    const _searchNodes = new SearchNode();\n    _searchNodes.expression = axExpression;\n    this.drillThroughFilter = new AxFilter();\n    this.drillThroughFilter.searchNodes.push(_searchNodes);\n    this.drillThroughFilter.appVersionId = 0;\n  }\n\n  chartSelect(): void {\n    this.onchartClickedEvent.emit(this.property);\n  }\n  /***\n   * Delete chart Function\n   */\n  openOptionPopUp(): void {\n    this.onchartRightClickDeleteEvent.emit(this.uniquekey);\n  }\n\n  onDeleteClick(event: MouseEvent, item: AxElement): void {\n    this._commonService.isDashboardBuilderDirty = true;\n    event.preventDefault();\n    event.stopPropagation();\n    // item.isDeleted = true_d\n    this._dashboardService.deleteDashboardElement(this.reportData);\n    this.contextMenu.closeMenu();\n  }\n  /***\n      * On chart context  click Function\n      */\n  onContextMenu(event: MouseEvent, chart: LineChart): void {\n    if (!this.isEditable &&\n      ([this.screenTypes.containerDashboard, this.screenTypes.drillThrough].includes(this.screenType))\n      && !this.pages.length) {\n      event.preventDefault();\n      return;\n    }\n    if (!this.isEditable && (this.screenType !== ScreenType.drillThrough)) {\n      const centralPage: HTMLElement = document.getElementById(this.guid);\n      const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n      event.preventDefault();\n      this.contextMenuPosition.x = (event.clientX - centralPageBounds.x) + 'px';\n      this.contextMenuPosition.y = (event.clientY - centralPageBounds.y) + 'px';\n      this.contextMenu.menuData = { chart: chart };\n      this.contextMenu.menu.focusFirstItem('mouse');\n      this.contextMenu.openMenu();\n    }\n    else {\n      event.preventDefault();\n      this.contextMenuPosition.x = event.clientX + 'px';\n      this.contextMenuPosition.y = event.clientY + 'px';\n      this.contextMenu.menuData = { chart: chart };\n      this.contextMenu.menu.focusFirstItem('mouse');\n      this.contextMenu.openMenu();\n    }\n  }\n  /***\n   * Pin to Dashboard Function\n   */\n  sendToDashboard(): void {\n    const sendToDashboardData: ISendToDashboardData = {\n      filter: null,\n      filterCategory: null,\n      appVersionId: this.report.appVersionId,\n      type: 'element',\n      element: this.reportData\n    };\n    this._sendToDashboardService.sendToDashboard(sendToDashboardData);\n  }\n  /****\n   * chartResizeMinDimensions =   this function use  Resize min dimensions validation\n   */\n\n  chartResizeMinDimensions(event: ResizeEvent): boolean {\n    const MIN_DIMENSIONS_PX: number = 50;\n    if (\n      event.rectangle.width &&\n      event.rectangle.height &&\n      (event.rectangle.width < MIN_DIMENSIONS_PX ||\n        event.rectangle.height < MIN_DIMENSIONS_PX)\n    ) {\n      return false;\n    }\n    return true;\n\n  }\n\n  /****\n  * onResizing = this function use for resize the  chart\n  */\n  onResizing(event: ResizeEvent): void {\n    const centralPage: HTMLElement = document.getElementById('central-page');\n    const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n    if (event.rectangle.right >= centralPageBounds.right && event.edges.right) {\n      event.rectangle.right = centralPageBounds.right;\n    } else if (event.rectangle.left < centralPageBounds.left) {\n      event.rectangle.left = centralPageBounds.left;\n    } else if (event.rectangle.bottom > centralPageBounds.bottom) {\n      event.rectangle.bottom = centralPageBounds.bottom;\n    } else if (event.rectangle.top < centralPageBounds.top) {\n      event.rectangle.top = centralPageBounds.top;\n    }\n    event.rectangle.width = event.rectangle.right - event.rectangle.left;\n    event.rectangle.height = event.rectangle.bottom - event.rectangle.top;\n    if (event.edges.bottom !== 0 && event.edges.top !== 0 && event.edges.left !== 0 && event.edges.right !== 0) {\n      event.edges.top = this.yPosition + Number(event.edges.top);\n      event.edges.left = this.xPosition + Number(event.edges.left);\n      this.reportData.resizeChart(event, this.property.apexChart);\n      this._commonService.isReportBuilderDirty = true;\n    }\n  }\n  \n   /**\n     * Called when resizing ends\n     */\n   resizeEnd(){\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n }\n\n  /**\n   * to set isDirty after changes in line-chart filter\n   *\n   */\n  dirtyFlowCheckEvent(): void {\n    this._commonService.isReportBuilderDirty = true;\n  }\n\n  /**\n   * call cdk drag start event\n   *\n   * @param $event\n   */\n  dragStart($event: DragEvent): void {\n    this.handle = true;\n  }\n  /**\n   * call cdk drag end event\n   *\n   * @param $event\n   */\n  dragEnd($event: DragEvent): void {\n    this.handle = false;\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n  }\n\n  /**\n   * Called on page name clicked on dropdown options of drill through pages\n   *\n   * @param page\n   */\n  pageClick(page: Page): void {\n    if (this.screenType !== ScreenType.drillThrough) {\n      if (this.drillThroughParentType ? this.drillThroughParentType == ScreenType.reportBuilder : this.isEditable) {\n        this._drillThroughService.setParentData(this.reportId, this._reportBuilderMasterService.report.name, this._router.url);\n        this.navigateToDrillThrough(page);\n      }\n      else {\n        this._dashboardService.dashboard$.pipe(takeUntil(this._unsubscribeAll)).subscribe((dashboard) => {\n          this._drillThroughService.setParentData(this.reportId, dashboard.name, this._router.url);\n          this.navigateToDrillThrough(page);\n        });\n      }\n    } else {\n      this.navigateToDrillThrough(page);\n    }\n  }\n\n  /**\n   * Navigate to drill through component with page id as route params\n   * Checks the parent URL if it is already exists or not\n   *\n   * @param page\n   */\n  navigateToDrillThrough(page: Page) {\n    const parentUrl: string = this._drillThroughService.getParentData().url;\n    this._drillThroughService.drillPage(page, this.drillThroughFilter);\n    if (!parentUrl) {\n      this._router.navigate([this._router.url + '/drill-through/' + page.id]);\n    } else {\n      this._router.navigate([parentUrl, 'drill-through', page.id]);\n    }\n  }\n\n    /**\n     * Apply local filter.\n     */\n    applyLocalFilter(): void{\n        this.getChartData();\n    }\n}","<!-- Resizable div -->\n<div id=\"line-chart-container\" class=\"chart-resize\" mwlResizable\n  [ngClass]=\"{'full-body' : !isEditable && (screenType !== screenTypes.drillThrough),'selected-resize':reportData.isSelected && !handle,'resize-class': !handle }\"\n  (resizing)=\"onResizing($event)\" style=\"width: fit-content;height: fit-content;\" [style.top.px]=\"reportData.yPosition\"\n  [style.left.px]=\"reportData.xPosition\" [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\" (resizeEnd)=\"resizeEnd()\">\n  <ng-container *ngIf=\"showGhostLoader\">\n    <app-ghost-loader [elementType]=\"GhostLoaderType.LineChartLoader\"  ></app-ghost-loader>\n  </ng-container>\n  <!-- Chart bodt -->\n    <div class=\"line-chart-box\"\n    [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n        [ngClass]=\"{\n            'selected':reportData.isSelected,\n            'full-body' : !isEditable && !showGhostLoader,\n            'chart-padding' : !showGhostLoader,\n            'hidden':showGhostLoader,\n            'bold-title':reportData.title.fontStyle.fontWeight == 'bold',\n            'normal-title':reportData.title.fontStyle.fontWeight == 'normal',\n            'underline-title':reportData.title.fontStyle.textDecoration == 'underline',\n            'italic-title':reportData.title.fontStyle.isItalicFont,\n            'bold-legend':reportData.legend.fontStyle.fontWeight == 'bold',\n            'normal-legend':reportData.legend.fontStyle.fontWeight == 'normal',\n            'underline-legend':reportData.legend.fontStyle.textDecoration == 'underline',\n            'italic-legend':reportData.legend.fontStyle.isItalicFont\n        }\"\n        cdkDrag\n        [id]=\"'cdk-drop-'+reportData.guid\"\n        (click)=\"chartSelect(); $event.stopPropagation()\" (cdkDragStarted)=\"dragStart($event)\"  (cdkDragEnded)=\"dragEnd($event)\" (cdkDropListDropped)=\"attributeDropped($event)\"\n        [cdkDragData]=\"reportData\" cdkDragBoundary=\".page\" cdkDropList (contextmenu)=\"onContextMenu($event, reportData)\" [cdkDragDisabled]=\"!isEditable || (screenType === screenTypes.drillThrough)\">\n    <div [ngClass]=\"{'full-body' : !isEditable }\" class=\"chart-inner-container\">\n      <!-- Filter Container -->\n      <div class=\"filter-body pl-3\" [ngClass]=\"{'local-body' : !isEditable, 'hidden': screenType != ScreenType.reportBuilder && !ShowFilters }\" (click) = \"event.stopPropagation();\"\n        *ngIf=\"isEditable || reportData.filters.length>0 || reportData.categories.length>0\">\n        <!-- <chart-filter class=\"flex\" [filters]=\"reportData.filters\" [categories]=\"reportData.categories\"\n          [isEditable]=\"isEditable\" (dirtyFlowCheckEvent)=\"dirtyFlowCheckEvent()\" [chartRef]=\"componentRef\">\n        </chart-filter> -->\n        <lib-report-filter\n            [filters]=\"reportData.filters\"\n            [categories]=\"reportData.categories\"\n            [reportId]=\"reportId\"\n            [screenType]=\"screenType\"\n            [dataModel]=\"dataModel\"\n            [isEditable]=\"isEditable\"\n            [appVersion]=\"appVersionId\"\n            (dirtyFlowCheckEvent)=\"dirtyFlowCheckEvent()\"\n            (applyFilterEvent)=\"applyLocalFilter()\"\n        >\n        </lib-report-filter>\n      </div>\n      <!-- Chart Container -->\n      <div class=\"chart-body\" [ngClass]=\"{'dashboard-chart-full-body': !isEditable && !reportData.filters.length && !reportData.categories.length, 'pt-2': isEditable || reportData.filters.length>0 || reportData.categories.length>0, 'pb-2':isEditable, 'h-full': screenType != ScreenType.reportBuilder && !ShowFilters}\">\n        <div id=\"{{reportData.guid}}\" class=\"h-full\tw-full\"></div>\n      </div>\n\n      <ng-container>\n        <!---------------------------------------- Mat Menu trigger For Menu Options ----------------------------->\n        <div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n          [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n        </div>\n\n        <!-- Mat Menu PopUp -->\n        <mat-menu #contextMenu=\"matMenu\">\n          <div class=\"chart-menu\">\n            <ng-template matMenuContent let-item=\"reportData\">\n              <ng-container *ngIf='isEditable'>\n                <button mat-menu-item (click)=\"sendToDashboard($event)\">Pin to Dashboard</button>\n                <button mat-menu-item (click)=\"openOptionPopUp($event)\">Delete</button>\n              </ng-container>\n              <button mat-menu-item *ngIf=\"screenTypes.dashboardBuilder === screenType\"\n              (click)=\"onDeleteClick($event)\">Remove From Dashboard</button>\n              <button mat-menu-item *ngIf=\"isDrillThrough && pages.length > 0\" [matMenuTriggerFor]=\"drillThrough\">Drill\n                Through</button>\n            </ng-template>\n          </div>\n        </mat-menu>\n      </ng-container>\n      <mat-menu #drillThrough=\"matMenu\">\n        <div class=\"chart-menu\">\n          <ng-container *ngFor=\" let page of pages\">\n            <button mat-menu-item (click)='pageClick(page)'> {{page.name}}</button>\n          </ng-container>\n        </div>\n      </mat-menu>\n    </div>\n    <!-- --------------------------------------------------------------------------- -->\n  </div>\n  <ng-container *ngIf='isEditable && !showGhostLoader'>\n    <!-- Resize handles  -->\n    <div class=\"resize-handle-top\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ top: true }\"><div class=\"drag-box drag-box-top\"></div></div>\n    <div class=\"resize-handle-left\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ left: true }\"><div class=\"drag-box drag-box-left\"></div></div>\n    <div class=\"resize-handle-right\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ right: true }\"><div class=\"drag-box drag-box-right\"></div></div>\n    <div class=\"resize-handle-bottom\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ bottom: true }\"><div class=\"drag-box drag-box-bottom\"></div></div>\n  </ng-container>\n</div>\n","// Chart's supporting classes\n\nimport { Chart } from '../chart/chart';\nimport { Dimension } from '../chart/dimension';\nimport { Legend } from '../chart/legend';\nimport { Matrix } from '../chart/matrix';\nimport { LineChartComponent } from './line-chart.component';\n\nexport enum LineChartOrientation {\n\thorizontal = 1,\n\tvertical = 2\n}\n\n//holds properties of Linechart\nexport class LineChart extends Chart {\n\tcolorType: string;\n\tcolorFormatting: string;\n\tformatRule: string;\n\tdimension: Dimension;\n\tmatrix: Matrix;\n\tlineColor: string;\n\txyAxisHideShowLabels: boolean;\n\tgridRowColor?: string;\n\tgridShowStatus: boolean;\n\tcomponent = LineChartComponent;\n\tseriesColor: Array<string>;\n\taggregate: string;\n\t/**\n\t * Constructor\n\t */\n\tconstructor(lineChart?: LineChart) {\n\t\tsuper(lineChart as Chart);\n\t\tif(lineChart){\n\t\t\tthis.lineChart(lineChart);\n\t\t}\n\t\telse{\n\t\t\tthis.newLineChart();\n\t\t}\n\t}\n    //function to create line chart object\n\t  newLineChart(): void{\n\t\tthis.dimension =  new Dimension();\n\t\tthis.matrix =  new Matrix();\n\t\tthis.legend =  new Legend();\n\t\tthis.colorType =  '';\n\t\tthis.colorFormatting =  '';\n\t\tthis.formatRule =  '';\n\t\tthis.lineColor =  '#e31616';\n\t\tthis.xyAxisHideShowLabels =  true;\n\t\tthis.gridRowColor =  '#FFFFFF';\n\t\tthis.gridShowStatus =  true;\n\t\tthis.subType =  'line-chart';\n\t\tthis.aggregate = 'count';\n\t\tthis.title.text = 'Line Chart';\n\t  }\n\t/**function to create line chart object with existing values\n\t*\n\t*@param LineChart\n\t*/\n\t  lineChart(lineChart: LineChart): void{\n\t\tthis.dimension =  new Dimension(lineChart.dimension) ;\n\t\tthis.matrix = new Matrix(lineChart.matrix) ;\n\t\tthis.legend =  new Legend(lineChart.legend);\n\t\tthis.colorType =  lineChart.colorType;\n\t\tthis.colorFormatting =  lineChart.colorFormatting ;\n\t\tthis.formatRule =  lineChart.formatRule ;\n\t\tthis.lineColor =  lineChart.lineColor;\n\t\tthis.xyAxisHideShowLabels =  lineChart.xyAxisHideShowLabels;\n\t\tthis.gridRowColor =  lineChart.gridRowColor ;\n\t\tthis.gridShowStatus =  lineChart.gridShowStatus;\n\t\tthis.subType =  lineChart.subType ;\n\t\tthis.aggregate =  lineChart.aggregate ;\n\t  }\n\n\n\t// update  xaxis chart\n\tupdateXaxis(apexChart: ApexCharts): void {\n\t\tlet series = [];\n\t\tif(this.dimension.attribute){\n\t\t\tseries = this.dimension.attribute.series;\n\t\t}\n\t\tapexChart.updateOptions({\n\t\t\txaxis: {\n\t\t\t\tcategories: series,\n\t\t\t\tlabels: {\n\t\t\t\t\tshow: this.xyAxisHideShowLabels\n\t\t\t\t},\n\t\t\t\taxisBorder: {\n\t\t\t\t\tcolor: this.borderColor,\n\t\t\t\t}\n\t\t\t},\n\t\t\tyaxis: {\n\t\t\t\taxisBorder: {\n\t\t\t\t\tcolor: this.borderColor,\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tshow: this.xyAxisHideShowLabels\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\t// update chart grid property\n\tupdateLineGird(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tgrid: {\n\t\t\t\tshow: this.gridShowStatus,\n\t\t\t\tborderColor: this.gridRowColor\n\t\t\t}\n\t\t});\n\t}\n}\n","// External libs\nimport {\n  Component,\n  OnInit,\n  ViewEncapsulation,\n  ViewChild,\n  Input,\n  Output,\n  EventEmitter,\n  AfterViewInit,\n  OnDestroy,\n  HostListener,\n  ElementRef} from '@angular/core';\nimport {\n  ApexChart,\n  ChartComponent,\n  ApexDataLabels,\n  ApexPlotOptions,\n  ApexLegend,\n  ApexTitleSubtitle,\n  ApexNonAxisChartSeries,\n  ApexResponsive,\n  ApexStroke,\n  ApexTheme,\n  ApexNoData,\n  ApexStates } from 'ng-apexcharts';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { ResizeEvent } from 'angular-resizable-element';\nimport { Subject } from 'rxjs';\n\n// IGraphicalReportComponent is interface that the following component will implement.\n\n// Pie chart model\n\n// Pie chart service for re-drawing the chart with some properties change\n\n// Type classes from ax-common-ui-lib\nimport { MatMenuTrigger } from '@angular/material/menu';\n\n// get color from Utils class\nimport { Utils } from '../../../utils/utils';\nimport { FieldsListService } from '../../.././../field-list-lib/fields-list.service';\nimport { Router } from '@angular/router';\nimport { AttributeData } from '../../../fields/attribute-data';\nimport { CrossFilterDto, ElementsDto } from '../../../../common-dto/elements-dto';\nimport { ChartProperty } from '../chart/chart-property';\nimport { IGraphicalReportComponent } from '../igraphical-report.component';\nimport { PieChart } from './pie-chart';\nimport { ReportBuilderMasterService } from '../../report-builder-master.service';\nimport { SendToDashboardService } from '../../../../dashboard-lib/send-to-dashboard.service';\nimport { Report } from '../../../../common-utils/report';\nimport { ISendToDashboardData } from '../../../../dashboard-lib/show-dashboards/show-dashboards.component';\nimport { ElementService } from '../../element.service';\nimport { IChartComponent } from '../ichart-component';\nimport { CommonService } from '../../../../common.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { ScopeType, ScreenType } from '../../../filters/condition-type';\nimport { AxFilter } from '../../../filters/ax-filter';\nimport { Attribute } from '../../../data-model/attribute';\nimport { AxExpTextList } from '../../../ax-expression/ax-exp-text-list';\nimport { SearchNode } from '../../../filters/search-node';\nimport { AxExpression } from '../../../ax-expression/ax-expression';\nimport { Page } from '../page/page';\nimport { DrillThroughService } from '../../../../drill-through/drill-through.service';\nimport { AxElement } from '../../../elements/ax-element';\nimport { DashboardBuilderService } from '../../../../dashboard-lib/dashboard-builder.service';\nimport { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';\nimport { FiltersService } from '../../../../filters/filters.service';\n\n// Creating custom type for Pie chart options that are going to be consumed by apex chart\nexport type PieChartOptions = {\n  series: ApexNonAxisChartSeries;\n  chart: ApexChart;\n  responsive: ApexResponsive[];\n  labels: any;\n  title: ApexTitleSubtitle;\n  plotOptions: ApexPlotOptions;\n  legend: ApexLegend;\n  stroke: ApexStroke;\n  theme: ApexTheme;\n  dataLabels: ApexDataLabels;\n  states: ApexStates;\n  fill: any;\n  colors: Array<string>;\n  chartOptions: any;\n  noData: ApexNoData;\n  toolbar: any;\n  tooltip: ApexTooltip;\n  state: ApexStates;\n};\n\n@Component({\n  selector: 'lib-pie-chart',\n  templateUrl: './pie-chart.component.html',\n  styleUrls: ['./pie-chart.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\n//holds properties of piechart component\nexport class PieChartComponent implements IGraphicalReportComponent, OnInit, AfterViewInit, OnDestroy, IChartComponent{\n\n  // Accepting reportData having axis and values.\n  @Input() reportData: PieChart;\n  @Input() isEditable: boolean;\n  @Input() guid: string;\n  @Output() onchartClickedEvent = new EventEmitter<any>();\n  @Output() onchartRightClickDeleteEvent = new EventEmitter<any>();\n  @Output() chartRendered = new EventEmitter();\n  @Input() screenType: ScreenType;\n  @Input() drillThroughFilterInput: AxFilter;\n  @Input() drillThroughParentType: ScreenType;\n  @Input() currentPageId: number;\n  @Input() appVersionId: number;\n  ScreenType = ScreenType;\n  ShowFilters: Boolean =  false;\n  yPosition: number;\n  xPosition: number;\n  /*\n   * MatMenuTrigger Use for right click on the chart action\n   */\n\n  @ViewChild(MatMenuTrigger)\n\n  contextMenu: MatMenuTrigger;\n\n  // Binding element of Pie chart to the apex chart component\n\n  componentRef: IChartComponent;\n  // Object for Pie chart options. This is of custom type.\n  public pieChartOptions: Partial<PieChartOptions>;\n  // uniquekey of chart\n  public uniquekey: number;\n  reportId: number;\n  property: ChartProperty;\n  report: Report;\n  handle: boolean = false;\n  isDataPointSelected: boolean=false;\n  contextMenuPosition = { x: '0px', y: '0px' };\n  selectedDataPoints: Array<number> = []; // Holds the all selected points.\n  isDrillThrough: boolean=false;\n  selectedSeriesIndexes: Array<number> =[];\n  appManifest: any;\n  _utils: Utils;\n  pages: Array<Page> = [];\n\n  isDirty: boolean;\n  drillThroughFilter: AxFilter;\n  showGhostLoader: boolean = true;\n  GhostLoaderType = GhostLoaderType;\n\n\n  /*\n   * Subject object which helps unsubscribe all the subscribed objects in the component\n   */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  /**\n   * Constructor\n   *\n   */\n  constructor(\n    private _fieldsListService: FieldsListService, // Used for get matrix data\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _sendToDashboardService: SendToDashboardService,\n    private _elementService: ElementService,\n    private _commonService: CommonService,\n    private _drillThroughService: DrillThroughService,\n    private _dashboardService: DashboardBuilderService,\n    private _router: Router,\n    private _filterService: FiltersService\n  ) {\n    this._utils = new Utils();\n    this.property = new ChartProperty();\n  }\n\n  public get screenTypes(): typeof ScreenType {\n    return ScreenType;\n  }\n\n  @HostListener('window:mousedown', ['$event'])\n  click(event): void{\n    if(event.which === 3 && this.contextMenu.menuOpened){\n      this.contextMenu.closeMenu();\n    }\n  }\n\n\n  ngAfterViewInit(): void{\n    this.property.apexChart = new ApexCharts(document.getElementById(this.reportData.guid.toString()), this.pieChartOptions);\n    this.property.apexChart.render();\n    this.getChartData();\n    this.reportData.updateChart(this.property.apexChart);\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * On init\n   */\n  ngOnInit(): void {\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n    this.componentRef = this;\n    this.ShowFilters = this._filterService.setVisibilityOfFilterComponent(this.reportData.filters,this.reportData.categories);\n    this.report=this._reportBuilderMasterService.report;\n    this.reportId = this.report?.id;\n    this.property.element = this.reportData;\n    this.initializePieChartOptions();\n\n    this.subscribers();\n    // Set custom color for pie and dount chart\n    if (this.reportData.seriesColor.length === 0) {\n      this.reportData.seriesColor = [];\n      if (this.reportData.matrix.attributes.length) {\n        this.reportData.matrix.attributes[0].series.forEach(() => {\n          this.reportData.seriesColor.push(this._utils.getRandomColor());\n        });\n        this.pieChartOptions.colors = this.reportData.seriesColor;\n      }\n    }\n  }\n\n  /**\n   * Initialized pie chart\n   */\n  initializePieChartOptions(): void{\n    const subType: any = this.reportData.getApexChartType(this.reportData.subType);\n    this.pieChartOptions = {\n      series: [],\n      labels: [],\n      colors: this.reportData.seriesColor,\n      legend: {\n        position: this.reportData.legend.position,\n        show: this.reportData.legend.enable,\n        fontSize: this.reportData.legend.textSize,\n        fontFamily: this.reportData.legend.textStyle,\n        horizontalAlign: 'left',\n        labels: {\n          colors: this.reportData.legend.textColor,\n        },\n        itemMargin: {\n          horizontal: 0,\n          vertical: 0\n      },\n      },\n      theme: {\n        monochrome: {\n          enabled: this.reportData.colorByChart,\n          color: this.reportData.monochromeColor\n        }\n      },\n      noData: {\n        text: 'No data to display',\n        align: 'center'\n      },\n      chart: {\n        id:'apx-'+this.reportData.guid,\n        height: '100%',\n        width: '100%',\n        type: subType,\n        background: this.reportData.backgroundColor,\n        redrawOnParentResize: true,\n        events: {\n          dataPointSelection: (crossFilterEvent, chart, opts): void => {\n            this.isDataPointSelected=true;\n            this.isDrillThrough=false;\n            if (crossFilterEvent && crossFilterEvent.button === 2 && opts.dataPointIndex >=0)\n            {\n              this.isDrillThrough=true;\n              this.createDrillThroughFilter(this.reportData.matrix.attributes[0].labels[opts.dataPointIndex]);\n            }else if(crossFilterEvent){\n              this.dataPointSelection(opts);\n            }\n            setTimeout(()=>{\n              this.isDataPointSelected = false;\n            },1000);\n          },\n            // for deselecting the matrix\n          click: (crossFilterEvent, chart, opts): void=>\n          {\n            this.chartSelect();\n            const target = crossFilterEvent.target as HTMLElement;\n            if(!this.isDataPointSelected && !(target instanceof HTMLElement))\n              {this.dataPointSelection(opts);}\n          },\n      },\n      toolbar: {\n        show: true,\n        export: {\n            csv: {\n              filename: this.reportData.title.text\n            },\n            svg: {\n              filename: this.reportData.title.text\n            },\n            png: {\n              filename: this.reportData.title.text\n            }\n          },\n        },\n        animations: {\n          enabled: false,\n        },\n      },\n      responsive: [\n        {\n          breakpoint: 480,\n          options: {\n            chart: {\n              width: 350\n            },\n            legend: {\n              position: 'bottom',\n            }\n          }\n        }\n      ],\n      title: {\n        text: this.reportData.title.text,\n        align: this.reportData.title.position,\n        style: {\n          color: this.reportData.title.textColor,\n          fontFamily: this.reportData.title.textStyle,\n          fontSize: this.reportData.title.textSize,\n        }\n      },\n      plotOptions: {\n        pie: {\n          donut: {\n            size: this.reportData.donutSize,\n            labels: {\n              show: false,\n              name: {\n                show: true,\n                fontSize: '12',\n              },\n            },\n          },\n        },\n        polarArea: {\n          rings: {\n            strokeWidth: 3,\n            strokeColor: 'black',\n          },\n          spokes: {\n            strokeWidth: 4,\n          },\n        },\n      },\n      states: {\n        active: {\n            allowMultipleDataPointsSelection: true,\n        },\n      },\n      tooltip: {\n        enabled: true,\n        y: {\n          formatter: function(val, opts) {\n            const sum = opts.config.series.reduce((a, b) => a + b, 0);\n              const percent = (val / sum) * 100;\n            return ': '+ val + ' ('+ percent.toFixed(0) + '%' + ')';\n          },\n          title: {\n            formatter: function(seriesName) {\n              if (typeof seriesName !== 'undefined') {\n                return  seriesName.toString().length > 100 ? seriesName.toString().slice(0,100) + '...': seriesName.toString();\n              }\n              return  seriesName;\n            }\n          }\n        }\n      },\n      dataLabels:{\n        enabled: false,\n        dropShadow: {\n            enabled: false\n        }\n        }\n    };\n\n\n\n    // Set custom color for pie and dount chart\n    if (this.reportData.seriesColor.length === 0) {\n      this.reportData.seriesColor = [];\n      if (this.reportData.matrix.attributes.length) {\n        this.reportData.matrix.attributes[0].series.forEach(() => {\n          this.reportData.seriesColor.push(this._utils.getRandomColor());\n        });\n        this.pieChartOptions.colors = this.reportData.seriesColor;\n      }\n    }\n\n    this.subscribers();\n  }\n\n  /**\n   * On destroy\n   */\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  subscribers(){\n     //whenever we change the filters we got call back from this subscriber/;\n    this._elementService.refreshDataEvent$\n    .pipe(takeUntil(this._unsubscribeAll))\n    .subscribe((val: boolean) => {\n      if(val)\n      {\n        this.getChartData();\n      }\n\n    });\n\n    //when we click on pie chart event will be emitted from this subscriber/;\n    this._elementService.crossFilterEvent.subscribe((crossFilter: CrossFilterDto) => {\n      if(crossFilter.resetFilter && crossFilter.elementGuid != this.reportData.guid)\n      {\n        this.selectedSeriesIndexes = [];\n        this.deselectDataPoints();\n      }else if(crossFilter.elementGuid != this.reportData.guid){\n        this.createCrossFilter(crossFilter);\n      }\n\n    });\n    // Get pageslist\n    this._commonService.pageList$.subscribe((page) => {\n      this.pages=[];\n       this.reportData.matrix.attributes?.forEach((attribute) => {\n           page?.forEach((_page) => {\n              _page?.drillData?.forEach((drillData) => {\n                  if(drillData.columnName===attribute.columnName && drillData.tableName===attribute.tableName){\n                      this.pages.push(_page);\n                  }\n              });\n           });\n       });\n       this.pages = this.pages.filter(p => p.id !== this.currentPageId);\n     });\n  }\n\n  getChartData(): void {\n    if (this.reportData.matrix.attributes.length > 0) {\n      if(this.drillThroughParentType == ScreenType.dashboardBuilder || this.drillThroughParentType == ScreenType.containerDashboard)\n        {this.reportData.apiType = 'dashboard';}\n      const data = new ElementsDto(this.reportData);\n      data.reportId = this.reportId;\n      if(this.screenType === this.screenTypes.drillThrough){\n          data.filters.globalFilters.basic.push(this.drillThroughFilterInput);\n      } else {\n        data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);\n        data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);\n      }\n      data.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n      data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.reportData.categories);\n      data.isCustomElement=this.reportData.isCustomElement;\n      this._fieldsListService.getMatrixData(data).then((entitiesAttribute) => {\n        if (entitiesAttribute != null) {\n            this.setDataToChart(entitiesAttribute);\n        }\n        this.chartRendered.emit();\n        this.showGhostLoader = false;\n\n      });\n    } else {\n      this.chartRendered.emit();\n      this.property.apexChart.updateOptions({\n        labels: [],\n        series: []\n      });\n      this.showGhostLoader = false;\n\n    }\n  }\n/**\n *\n * Called when we select a pie by a click event\n *\n * @param opts\n */\n dataPointSelection(opts: any): void{\n  let crossFilterDto: CrossFilterDto;\n  if(opts.dataPointIndex >=0){\n    crossFilterDto = {\n      values: [],\n        attributeData: this.reportData.matrix.attributes[0],\n        chartType: this.reportData.type,\n        elementGuid: this.reportData.guid,\n        resetFilter:false,\n        selectedIndexLength:null\n    };\n    if(this.selectedSeriesIndexes.includes(opts.dataPointIndex)){\n      const ind = this.selectedSeriesIndexes.indexOf(opts.dataPointIndex);\n      this.selectedSeriesIndexes.splice(ind,1);\n    }else{\n        this.selectedSeriesIndexes.push(opts.dataPointIndex);\n    }\n\n    this.selectedSeriesIndexes.forEach((index) => {\n      //if index is already present in selectedSeriesIndexes array then pop the specific index\n    if(crossFilterDto.values.includes(this.reportData.matrix.attributes[0].labels[index])){\n      crossFilterDto.values.splice(crossFilterDto.values.indexOf(this.reportData.matrix.attributes[0].labels[index]),1);\n    }\n    else{\n        crossFilterDto.values.push(this.reportData.matrix.attributes[0].labels[index]);\n    }\n    });\n    this.property.apexChart.toggleDataPointSelection(opts.dataPointIndex);\n    if(this.selectedSeriesIndexes.length > 0)\n      {this.highlightSeriesData(this.selectedSeriesIndexes);}\n    else\n      {this.deselectDataPoints();}\n  }else{\n      crossFilterDto = {\n          values: null,\n          attributeData:null,\n          chartType: this.reportData.type,\n          elementGuid: this.reportData.guid,\n          resetFilter:true,\n          selectedIndexLength:0\n      };\n      this.selectedSeriesIndexes = [];\n      this.deselectDataPoints();\n  }\n  this._elementService.triggerCrossFilter(crossFilterDto);\n}\n  /**\n   * set data to chart if entitiesAttribute is not equal to null then this method will call and will highlight the matrix\n   */\n  highlightSeriesData(indexList: Array<number>): void {\n    this.reportData.matrix.attributes.forEach(()=>{\n      this.property.apexChart.updateOptions({\n        fill: {\n            colors: [function({ seriesIndex,w }) {\n              if(indexList.includes(seriesIndex) ) {\n                  return w.globals.colors[seriesIndex];\n              } else {\n                  return w.globals.colors[seriesIndex]+  '60';\n              }\n            }]\n          }\n      });\n    });\n\n\n  }\n\n  /**\n   * Created filter object for cross filtering.\n   *\n   *  @param CrossFilterDto\n   */\n   createCrossFilter(crossFilterData: CrossFilterDto): void {\n    const axExpression= new AxExpression();\n    axExpression.comparisonOperator.text = 'In';\n    axExpression.comparisonOperator.value = 'IN';\n    axExpression.valueType = 2;\n    axExpression.field= new Attribute(crossFilterData.attributeData as unknown as Attribute);\n    const axExpTextList = new AxExpTextList();\n    if(crossFilterData.values){\n    crossFilterData.values.forEach((value)=>{\n      axExpTextList.value.push(value);\n      });\n    }\n      axExpression.value= axExpTextList;\n    const _searchNodes= new SearchNode();\n    _searchNodes.expression= axExpression;\n    const _filter = new AxFilter();\n    _filter.searchNodes.push(_searchNodes);\n    _filter.appVersionId=0;\n    this.getCrossFilterData(_filter,crossFilterData);\n}\n\n /**\n  * pushed the filter object into basic filter and applied the filter on the data\n  *\n  *  @param CrossFilterDto\n  *  @param AxFilter\n  */\n  getCrossFilterData(_filter: AxFilter, crossFilterData: CrossFilterDto): void{\n      if (this.reportData.matrix.attributes.length && this.reportData.matrix.attributes) {\n          const elementDto = new ElementsDto(this.reportData);\n          elementDto.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n          elementDto.filters.localFilters.basic.push(_filter);\n          elementDto.filters.localFilters.category =this._elementService.getValidFilterCategory(this.reportData.categories);\n          elementDto.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic);\n          elementDto.filters.globalFilters.category =this._elementService.getValidFilterCategory(this._elementService.filtersDto.category);\n          elementDto.reportId = this.reportId;\n          if(crossFilterData.selectedIndexLength === 0){\n            elementDto.filters.localFilters.basic=[];\n        }\n          this._fieldsListService\n          .getMatrixData(elementDto)\n          .then((entitiesAttribute: ElementsDto) => {\n              this.selectedSeriesIndexes =[];\n              entitiesAttribute.matrix.attributes[0].labels.forEach((_elementDto) => {\n                  const seriesIndex=(this.reportData.matrix.attributes[0].labels.indexOf(_elementDto));\n                  this.selectedSeriesIndexes.push(seriesIndex);\n              });\n              if (entitiesAttribute != null) {\n                this.highlightSeriesData(this.selectedSeriesIndexes);\n              }\n          });\n      }\n  }\n\n  /**\n   * Deselect selected data points of chart.\n   */\n  deselectDataPoints(): void{\n    this.property.apexChart.updateOptions({\n      fill: {\n          colors: [function({ seriesIndex,w }) {\n              return w.globals.colors[seriesIndex];\n          }]\n        }\n    });\n  }\n  /**\n   * set data to chart if entitiesAttribute is not equal to null then this method will call\n   */\n  setDataToChart(entitiesAttribute: ElementsDto): void{\n    console.log(\"Starting setDataToChart with entitiesAttribute:\", entitiesAttribute);\n    const startTime = performance.now();\n\n    // this.reportData.sqlQuery = entitiesAttribute.sqlQuery;\n\n    //--commented\n    // this.reportData.matrix.attributes = entitiesAttribute.matrix.attributes;\n    // this.reportData.matrix.attributes.forEach((attribute) => {\n    //   const numValues = [];\n    //   const seriesColor = [];\n    //   const flagColor = this.reportData.seriesColor.length ? false : true;\n    //   for (const _data of attribute.series) {\n    //     if (flagColor) {\n    //       seriesColor.push(this._utils.getRandomColor());\n    //     }\n    //     numValues.push(parseInt(_data, 10));\n    //   }\n    //   this.reportData.seriesColor = flagColor ? seriesColor : this.reportData.seriesColor;\n    //   this.property.apexChart.updateOptions({\n    //     labels: attribute.labels,\n    //     series: numValues,\n    //     colors: this.reportData.seriesColor,\n    //   });\n    //   this.reportData.updateChart(this.property.apexChart);\n    // });\n\n    this.reportData.matrix.attributes = entitiesAttribute.matrix.attributes;\n    const allSeries = this.reportData.matrix.attributes.map(attribute => attribute.series.map(_data => parseInt(_data, 10)));\n    const allLabels = this.reportData.matrix.attributes.map(attribute => attribute.labels);\n    const allColors = this.reportData.matrix.attributes.reduce((acc, attribute) => {\n      const seriesColor = this.reportData.seriesColor.length ? this.reportData.seriesColor : attribute.series.map(() => this._utils.getRandomColor());\n      this.reportData.seriesColor = this.reportData.seriesColor.length ? this.reportData.seriesColor : seriesColor;\n      return acc.concat(seriesColor);\n    }, []);\n\n    this.property.apexChart.updateOptions({\n      labels: allLabels.reduce((acc, labels) => acc.concat(labels), []),\n      series: allSeries.reduce((acc, series) => acc.concat(series), []),\n      colors: allColors,\n    });\n    this.reportData.updateChart(this.property.apexChart);\n\n    const endTime = performance.now();\n    console.log(\"setDataToChart completed in\", (endTime - startTime).toFixed(2), \"milliseconds\");\n  }\n\n\n  /**\n   * attributeDropped\n   * Called when attribute is dragged from left side fields list and dropped on the Pie chart\n   *\n   * @param $event\n   */\n  attributeDropped($event: CdkDragDrop<any>): void {\n    //--commented\n    // $event.item.data.aggregateFn='count';\n    // this.reportData.matrix.attributes = [new AttributeData($event.item.data)];\n    // this.getChartData();\n\n    const attributeData = new AttributeData($event.item.data);\n    attributeData.aggregateFn = 'count';\n    this.reportData.matrix.attributes = [attributeData];\n    this.getChartData();\n  }\n\n  chartSelect(): void {\n    this.onchartClickedEvent.emit(this.property);\n  }\n  /***\n     * On chart context  click Function\n     */\n   onContextMenu(event: MouseEvent, chart: PieChart): void {\n    if(!this.isEditable &&\n      ([this.screenTypes.containerDashboard, this.screenTypes.drillThrough].includes(this.screenType))\n      && !this.pages.length){\n      event.preventDefault();\n      return;\n  }\n    if (!this.isEditable && (this.screenType !== ScreenType.drillThrough)) {\n        const centralPage: HTMLElement = document.getElementById(this.guid);\n        const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n        event.preventDefault();\n        this.contextMenuPosition.x = ( event.clientX -centralPageBounds.x ) + 'px';\n        this.contextMenuPosition.y = (event.clientY-centralPageBounds.y) + 'px';\n        this.contextMenu.menuData = { chart: chart };\n        this.contextMenu.menu.focusFirstItem('mouse');\n        this.contextMenu.openMenu();\n    }\n    else{\n        event.preventDefault();\n        this.contextMenuPosition.x = event.clientX + 'px';\n        this.contextMenuPosition.y = event.clientY + 'px';\n        this.contextMenu.menuData = { chart: chart };\n        this.contextMenu.menu.focusFirstItem('mouse');\n        this.contextMenu.openMenu();\n    }\n}\n  /*\n   * Delete chart Function\n   */\n   openOptionPopUp(): void {\n    this.onchartRightClickDeleteEvent.emit(this.uniquekey);\n  }\n\n  onDeleteClick(event: MouseEvent, item: AxElement): void {\n    this._commonService.isDashboardBuilderDirty = true;\n    event.preventDefault();\n    event.stopPropagation();\n    // item.isDeleted = true_d\n    this._dashboardService.deleteDashboardElement(this.reportData);\n    this.contextMenu.closeMenu();\n}\n  /*\n  * Pin to Dashboard Function\n  */\n  sendToDashboard(): void {\n    const sendToDashboardData: ISendToDashboardData = {\n      filter: null,\n      filterCategory: null,\n      appVersionId: this.report.appVersionId,\n      type: 'element',\n      element: this.reportData\n    };\n    this._sendToDashboardService.sendToDashboard(sendToDashboardData);\n  }\n\n  /**\n   * chartResizeMinDimensions =   this function use  Resize min dimensions validation\n   */\n\n  chartResizeMinDimensions(event: ResizeEvent): boolean {\n    const MIN_DIMENSIONS_PX: number = 50;\n    if (\n      event.rectangle.width &&\n      event.rectangle.height &&\n      (event.rectangle.width < MIN_DIMENSIONS_PX ||\n        event.rectangle.height < MIN_DIMENSIONS_PX)\n    ) {\n      return false;\n    }\n    return true;\n  }\n\n  /**\n   * onResizing = this function use for resize the  chart\n   */\n\n  onResizing(event: ResizeEvent): void {\n    const centralPage: HTMLElement = document.getElementById('central-page');\n    const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n    if(event.rectangle.right >= centralPageBounds.right && event.edges.right){\n      event.rectangle.right = centralPageBounds.right;\n    } else if(event.rectangle.left < centralPageBounds.left){\n      event.rectangle.left = centralPageBounds.left;\n    } else if(event.rectangle.bottom > centralPageBounds.bottom){\n      event.rectangle.bottom = centralPageBounds.bottom;\n    } else if(event.rectangle.top < centralPageBounds.top){\n      event.rectangle.top = centralPageBounds.top;\n    }\n    event.rectangle.width = event.rectangle.right - event.rectangle.left;\n    event.rectangle.height = event.rectangle.bottom - event.rectangle.top;\n    if(event.edges.bottom !== 0 && event.edges.top !== 0 && event.edges.left !== 0 && event.edges.right !== 0){\n      event.edges.top = this.yPosition + Number(event.edges.top);\n      event.edges.left = this.xPosition + Number(event.edges.left);\n      this.reportData.resizeChart(event, this.property.apexChart);\n      this._commonService.isReportBuilderDirty=true;\n    }\n  }\n\n  /**\n     * Called when resizing ends\n     */\n  resizeEnd(){\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n }\n/**\n * to set isDirty after changes in pie-chart filter\n *\n */\n  dirtyFlowCheckEvent(): void{\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n  /**\n   * call cdk drag start event\n   *\n   * @param $event\n   */\n   dragStart($event: DragEvent): void{\n    this.handle = true;\n  }\n  /**\n   * call cdk drag end event\n   *\n   * @param $event\n   */\n   dragEnd($event: DragEvent): void{\n    this.handle = false;\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n  }\n /**\n  * Created filter object for cross filtering.\n  *\n  *  @param CrossFilterDto\n  */\n  createDrillThroughFilter(series: any): void{\n    const axExpression= new AxExpression();\n    axExpression.comparisonOperator.text = 'In';\n    axExpression.comparisonOperator.value = 'IN';\n    axExpression.valueType = 2;\n    axExpression.field= new Attribute(this.reportData.matrix.attributes[0] as unknown as Attribute);\n    const axExpTextList = new AxExpTextList();\n    axExpTextList.value.push(series);\n    axExpTextList.isSearchable = true;\n    axExpression.value= axExpTextList;\n    const _searchNodes= new SearchNode();\n    _searchNodes.expression= axExpression;\n    this.drillThroughFilter = new AxFilter();\n    this.drillThroughFilter.searchNodes.push(_searchNodes);\n    this.drillThroughFilter.appVersionId=0;\n  }\n\n  /**\n   * Called on page name clicked on dropdown options of drill through pages\n   *\n   * @param page\n   */\n  pageClick(page: Page): void{\n    if(this.screenType !== ScreenType.drillThrough){\n        if(this.drillThroughParentType ? this.drillThroughParentType == ScreenType.reportBuilder : this.isEditable){\n            this._drillThroughService.setParentData(this.reportId, this._reportBuilderMasterService.report.name, this._router.url);\n            this.navigateToDrillThrough(page);\n        }\n        else{\n            this._dashboardService.dashboard$.pipe(takeUntil(this._unsubscribeAll)).subscribe((dashboard) => {\n                this._drillThroughService.setParentData(this.reportId, dashboard.name, this._router.url);\n                this.navigateToDrillThrough(page);\n            });\n        }\n    } else {\n        this.navigateToDrillThrough(page);\n    }\n  }\n\n  /**\n   * Navigate to drill through component with page id as route params\n   * Checks the parent URL if it is already exists or not\n   *\n   * @param page\n   */\n  navigateToDrillThrough(page: Page){\n    const parentUrl: string = this._drillThroughService.getParentData().url;\n    this._drillThroughService.drillPage(page,this.drillThroughFilter);\n    if(!parentUrl){\n        this._router.navigate([this._router.url +'/drill-through/' + page.id]);\n    } else {\n        this._router.navigate([parentUrl,'drill-through',page.id]);\n    }\n  }\n    /**\n     * Apply local filter.\n     */\n    applyLocalFilter(): void{\n        this.getChartData();\n    }\n}","<!-- Resizable div -->\n<div #pieChartElement class=\"chart-resize\" [id]=\"'PieChart-'+guid\" mwlResizable\n  [ngClass]=\"{'full-body' : !isEditable && (screenType !== screenTypes.drillThrough),'selected-resize':reportData.isSelected && !handle, 'resize-class': !handle }\"\n  (resizing)=\"onResizing($event)\" style=\"width: fit-content;height: fit-content;\" [style.top.px]=\"reportData.yPosition\"\n  [style.left.px]=\"reportData.xPosition\" [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n  (resizeEnd)=\"resizeEnd()\">\n  <ng-container *ngIf=\"showGhostLoader\">\n    <app-ghost-loader\n      [diameter]=\"pieChartElement.offsetHeight<=pieChartElement.offsetWidth?pieChartElement.offsetHeight:pieChartElement.offsetWidth\"\n      [elementType]=\"GhostLoaderType.PieChartLoader\"></app-ghost-loader>\n  </ng-container>\n  <!-- Chart bodt -->\n  <div class=\"pie-chart-box pie-chart\" [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n    style=\"max-width: 100%; max-width: 100%;\" [ngClass]=\"{\n        'selected':reportData.isSelected,\n        'full-body' : !isEditable ,\n        'hidden' : showGhostLoader,\n        'bold-title':reportData.title.fontStyle.fontWeight == 'bold',\n        'normal-title':reportData.title.fontStyle.fontWeight == 'normal',\n        'underline-title':reportData.title.fontStyle.textDecoration == 'underline',\n        'italic-title':reportData.title.fontStyle.isItalicFont,\n        'bold-legend':reportData.legend.fontStyle.fontWeight == 'bold',\n        'normal-legend':reportData.legend.fontStyle.fontWeight == 'normal',\n        'underline-legend':reportData.legend.fontStyle.textDecoration == 'underline',\n        'italic-legend':reportData.legend.fontStyle.isItalicFont\n    }\" cdkDrag [id]=\"'cdk-drop-'+reportData.guid\" (click)=\"chartSelect(); $event.stopPropagation()\"\n    (cdkDragStarted)=\"dragStart($event)\" (cdkDragEnded)=\"dragEnd($event)\"\n    (cdkDropListDropped)=\"attributeDropped($event)\" [cdkDragData]=\"reportData\" cdkDragBoundary=\".page\" cdkDropList\n    (contextmenu)=\"onContextMenu($event, reportData)\"\n    [cdkDragDisabled]=\"!isEditable || (screenType === screenTypes.drillThrough)\">\n    <div [ngClass]=\"{'full-body' : !isEditable }\" class=\"chart-inner-container\">\n      <!-- Filter Container -->\n      <div class=\"filter-body pl-3\"\n        [ngClass]=\"{'local-body' : !isEditable, 'hidden': screenType != ScreenType.reportBuilder && !ShowFilters }\"\n        *ngIf=\"isEditable || reportData.filters.length>0 || reportData.categories.length>0\"\n        (click)=\"event.stopPropagation();\">\n        <lib-report-filter [filters]=\"reportData.filters\" [categories]=\"reportData.categories\" [reportId]=\"reportId\"\n          [screenType]=\"screenType\" [dataModel]=\"dataModel\" [isEditable]=\"isEditable\" [appVersion]=\"appVersionId\"\n          (dirtyFlowCheckEvent)=\"dirtyFlowCheckEvent()\" (applyFilterEvent)=\"applyLocalFilter()\">\n        </lib-report-filter>\n      </div>\n\n      <!-- Chart Container -->\n      <div class=\"pie-chart-body\"\n        [ngClass]=\"{'dashboard-chart-full-body': !isEditable && !reportData.filters.length && !reportData.categories.length, 'pb-2':isEditable , 'h-full': screenType != ScreenType.reportBuilder && !ShowFilters}\">\n        <div [id]=\"reportData.guid\" class=\"inner-chart h-full w-full min-h-full min-w-full\"></div>\n      </div>\n\n\n      <ng-container>\n        <!---------------------------------------- Mat Menu trigger For Menu Options ----------------------------->\n        <div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n          [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n        </div>\n\n        <!-- Mat Menu PopUp -->\n        <mat-menu #contextMenu=\"matMenu\">\n          <div class=\"chart-menu\">\n            <ng-template matMenuContent let-item=\"reportData\">\n              <ng-container *ngIf='isEditable'>\n                <button mat-menu-item (click)=\"sendToDashboard($event)\">Pin to Dashboard</button>\n                <button mat-menu-item (click)=\"openOptionPopUp($event)\">Delete</button>\n              </ng-container>\n              <button mat-menu-item *ngIf=\"screenTypes.dashboardBuilder === screenType\"\n                (click)=\"onDeleteClick($event)\">Remove From Dashboard</button>\n              <button mat-menu-item *ngIf=\"isDrillThrough && pages.length > 0\" [matMenuTriggerFor]=\"drillThrough\">Drill\n                Through</button>\n            </ng-template>\n          </div>\n        </mat-menu>\n      </ng-container>\n      <mat-menu #drillThrough=\"matMenu\">\n        <div class=\"chart-menu\">\n          <ng-container *ngFor=\" let page of pages\">\n            <button mat-menu-item (click)='pageClick(page)'> {{page.name}}</button>\n          </ng-container>\n        </div>\n      </mat-menu>\n    </div>\n    <!-- --------------------------------------------------------------------------- -->\n  </div>\n  <ng-container *ngIf=\"(isEditable && !showGhostLoader)\">\n    <!-- Resize handles  -->\n    <div class=\"resize-handle-top\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ top: true }\">\n      <div class=\"drag-box drag-box-top\"></div>\n    </div>\n    <div class=\"resize-handle-left\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ left: true }\">\n      <div class=\"drag-box drag-box-left\"></div>\n    </div>\n    <div class=\"resize-handle-right\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ right: true }\">\n      <div class=\"drag-box drag-box-right\"></div>\n    </div>\n    <div class=\"resize-handle-bottom\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ bottom: true }\">\n      <div class=\"drag-box drag-box-bottom\"></div>\n    </div>\n  </ng-container>\n</div>","// Chart's supporting classes\n\nimport { Type } from '@angular/core';\nimport { Chart } from '../chart/chart';\nimport { Legend } from '../chart/legend';\nimport { Matrix } from '../chart/matrix';\nimport { PieChartComponent } from './pie-chart.component';\n\n//holds properties if pie-chart\nexport class PieChart extends Chart {\n\tcomponent: Type<PieChartComponent> = PieChartComponent;\n\t// Attributes for PieChart\n\tnumberOfSlices: number;\n\tcolorBy: string;\n\tsliceLabel: string;\n\tdonutRadius: number;\n\tdimensionValueColor: string;\n\tmatrix: Matrix;\n\tlegend: Legend;\n\tseriesColor: Array<string>;\n\tcolorByChart: boolean;\n\tdonutSize?: string;\n\tmonochromeColor?: string;\n\taggregate: string;\n\n\n\t/*** Constructor\n\t  */\n\tconstructor(pieChart?: PieChart) {\n\t\tsuper(pieChart);\n\t\tif(pieChart){\n\t\t\tthis.pieChart(pieChart);\n\t\t}else{\n\t\t\tthis.newPieChart();\n\t\t}\n\t}\n\t/**\n\t * Method when user create a new pie chart\n\t *\n\t */\n\tpieChart(pieChart: PieChart): void{\n\t\tthis.matrix = new Matrix(pieChart.matrix) ;\n\t\tthis.legend = new Legend(pieChart.legend);\n\t\tthis.numberOfSlices = pieChart.numberOfSlices;\n\t\tthis.colorBy = pieChart && pieChart.colorBy;\n\t\tthis.sliceLabel = pieChart.sliceLabel;\n\t\tthis.donutRadius = pieChart.donutRadius;\n\t\tthis.dimensionValueColor = pieChart.dimensionValueColor;\n\t\tthis.donutSize = pieChart.donutSize;\n\t\tthis.colorByChart = pieChart.colorByChart;\n\t\tthis.monochromeColor = pieChart.monochromeColor;\n\t\tthis.subType = pieChart.subType;\n\t\tthis.aggregate = pieChart.aggregate;\n\t\tthis.seriesColor = pieChart.seriesColor;\n\t}\n\t/**\n\t * Method for existing pie charts\n\t *\n\t *\n\t */\n\tnewPieChart(): void{\n\t\tthis.matrix = new Matrix();\n\t\tthis.legend = new Legend();\n\t\tthis.numberOfSlices =  0;\n\t\tthis.colorBy = '';\n\t\tthis.sliceLabel = '';\n\t\tthis.donutRadius = 0;\n\t\tthis.dimensionValueColor = '';\n\t\tthis.donutSize = '50';\n\t\tthis.colorByChart =  true;\n\t\tthis.monochromeColor = '#a599e2';\n\t\tthis.subType = 'pie-chart';\n\t\tthis.aggregate = 'count';\n\t\tthis.seriesColor = [];\n\t\tthis.title.text = 'Pie Chart';\n\t}\n\tgetApexChartType(chartType: string): string {\n\t\treturn chartType.split('-')[0];\n\t}\n\n\tupdatePieChart(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tchart: {\n\t\t\t\ttype: this.getApexChartType(this.subType),\n\t\t\t\tbackground: this.backgroundColor,\n\t\t\t\tredrawOnParentResize: true,\n\t\t\t}\n\t\t});\n\n\t}\n\t//updates size of donut\n\tupdateDonutSize(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\tplotOptions: {\n\t\t\t\tpie: {\n\t\t\t\t\tdonut: {\n\t\t\t\t\t\tsize: this.donutSize,\n\t\t\t\t\t\tlabels: {\n\t\t\t\t\t\t\tshow: false,\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\tshow: true,\n\t\t\t\t\t\t\t\tfontSize: '12',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t}\n\t//updates theme\n\tupdateTheme(apexChart: ApexCharts): void {\n\t\tapexChart.updateOptions({\n\t\t\ttheme: {\n\t\t\t\tmonochrome: {\n\t\t\t\t\tenabled: this.colorByChart,\n\t\t\t\t\tcolor: this.monochromeColor\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n}\n","<!-- <div class=\"text-rectangle\"\n    [ngClass]=\"{'selected-chart' : reportData.isSelected ,'selected-resize':reportData.isSelected, 'full-body' : !isEditable }\"\n    [ngStyle]=\"style\" mwlResizable\n    [validateResize]=\"chartResizeMinDimensions\"\n    [enableGhostResize]=\"true\"\n    [resizeSnapGrid]=\"{ left: 1, right: 1 }\"\n    (resizing)=\"onResize($event)\" \n    [style.top.px]=\"reportData.yPosition\"\n    [style.color]=\"reportData.title.textColor\"\n    [style.left.px]=\"reportData.xPosition\"\n    [style.width.px]=\"reportData.width\"\n    [style.height.px]=\"reportData.height\"\n    [style.background]=\"reportData.backgroundColor\"\n    (resizeEnd)=\"onResizeEnd($event)\" > -->\n    <div  class=\"text-rectangle \" mwlResizable\n    [ngClass]=\"{'selected-chart' : reportData.isSelected ,'selected-resize':reportData.isSelected, 'full-body' : !isEditable }\"\n    [ngStyle]=\"style\" mwlResizable\n    [validateResize]=\"chartResizeMinDimensions\"\n\n    [resizeSnapGrid]=\"{ left: 1, right: 1 }\"\n    (resizing)=\"onResizing($event)\"\n    (resizeEnd)=\"resizeEnd()\"\n    [style.top.px]=\"reportData.yPosition\" \n    [style.left.px]=\"reportData.xPosition\"\n    [style.width.px]=\"reportData.width\"\n     [style.height.px]=\"reportData.height\"\n    style=\"position: absolute; width: fit-content; height: fit-content;\">\n\n    <ng-container *ngIf=\"showGhostLoader \">\n      <app-ghost-loader [elementType]=\"GhostLoaderType.TextChartLoader\"></app-ghost-loader>\n    </ng-container>\n\n  <div class=\"text-chart\"  *ngIf=\"!showGhostLoader \"\n    [cdkDragDisabled]=\"!isEditable\"\n    (contextmenu)=\"onContextMenu($event, reportData)\"\n    [style.top.px]=\"reportData.yPosition\"\n    [style.left.px]=\"reportData.xPosition\"\n    [style.border]=\"'4px ' + reportData.border + ' ' + reportData.borderColor\"\n    cdkDragBoundary=\".page\" cdkDrag\n    [cdkDragData]=\"reportData\"\n    cdkDropList #textContainer\n    [style.width]=\"'100%'\"\n    [style.height]=\"'100%'\"\n    (click)=\"onTextChartClicked(); $event.stopPropagation()\"\n    >\n    <div class=\"text-body text-center\">\n      <!-- if reportData has htmlText, then render it as html, else render text as text -->\n      <div *ngIf=\"reportData.htmlText\" [innerHTML]=\"reportData.sanitizedHtmlText\"></div>\n      <textarea  *ngIf=\"!reportData.htmlText\"\n        [disabled]=\"!isEditable\"\n        [style.font-family]=\"reportData.title.textStyle\"\n        [style.text-align]=\"reportData.title.position\"\n        [style.font-weight]=\"reportData.fontWeight\"\n        [style.font-style]=\"reportData.fontStyle\"\n        [style.text-decoration]=\"reportData.textDecoration\"\n        [style.top]=\"style.top\"\n        [style.left]=\"style.left\"\n        [style.color]=\"reportData.title.textColor\"\n        [style.font-size.px]=\"reportData.title.textSize\"\n        [style.width]=\"'100%'\"\n        [style.height]=\"'100%'\"\n        class=\"text-area customscroll\"\n        [(ngModel)]=\"reportData.text\"> {{reportData.text ? reportData.text : 'Text'}} </textarea>\n    </div>\n  </div>\n  <ng-container *ngIf='isEditable && !showGhostLoader'>\n      <div class=\"resize-handle-top\" mwlResizeHandle [resizeEdges]=\"{ top: true }\"><div class=\"drag-box drag-box-top\"></div></div>\n      <div class=\"resize-handle-left\" mwlResizeHandle [resizeEdges]=\"{ left: true }\"><div class=\"drag-box drag-box-left\"></div></div>\n      <div class=\"resize-handle-right\" mwlResizeHandle [resizeEdges]=\"{ right: true }\"><div class=\"drag-box drag-box-right\"></div></div>\n      <div class=\"resize-handle-bottom\" mwlResizeHandle [resizeEdges]=\"{ bottom: true }\"><div class=\"drag-box drag-box-bottom\"></div></div>\n    </ng-container>\n  </div>\n\n<ng-container *ngIf='isEditable && !showGhostLoader'>\n    <div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n      [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n    </div>\n    <mat-menu #contextMenu=\"matMenu\" >\n      <div class=\"chart-menu\">\n        <ng-template matMenuContent let-item=\"reportData\">\n          <button mat-menu-item (click)=\"onChartRightClickSendToDashboard($event)\">Pin to Dashboard</button>\n          <button mat-menu-item (click)=\"onChartRightClickDelete($event)\">Delete</button>\n        </ng-template>\n      </div>\n    </mat-menu>\n</ng-container>","import { Component, OnInit, ViewEncapsulation, ViewChild, Input, Output, EventEmitter, OnDestroy, HostListener } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { TextChart } from './text-chart';\nimport { ChartComponent } from 'ng-apexcharts';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { ResizeEvent } from 'angular-resizable-element';\nimport { ChartProperty } from '../chart/chart-property';\nimport { Report } from '../../../../common-utils/report';\nimport { ReportBuilderMasterService } from '../../report-builder-master.service';\nimport { ISendToDashboardData } from '../../../../dashboard-lib/show-dashboards/show-dashboards.component';\nimport { SendToDashboardService } from '../../../../dashboard-lib/send-to-dashboard.service';\nimport { CommonService } from '../../../../common.service';\nimport { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component({\n  selector: 'lib-text',\n  templateUrl: './text.component.html',\n  styleUrls: ['./text.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class TextComponent implements OnInit, OnDestroy {\n\n  @ViewChild(MatMenuTrigger) contextMenu: MatMenuTrigger;\n  @Input() reportData: TextChart;\n  @Output() onchartClickedEvent = new EventEmitter<any>();\n  @Output() onchartRightClickDeleteEvent = new EventEmitter<any>();\n  @Input() isEditable: boolean;\n  @Output() chartRendered = new EventEmitter();\n\n  @ViewChild('textContainer') textContainer: ChartComponent;\n  public uniquekey: number;\n  handle: boolean = false;\n  report: Report;\n  // yPosition: number;\n  // xPosition: number;\n  contextMenuPosition = { x: '0px', y: '0px' };\n  property: ChartProperty;\n  public style: any = {\n    position: '',\n    left: '',\n    top: '',\n    width: '',\n    height: ''\n  };\n  showGhostLoader: boolean = true;\n  GhostLoaderType = GhostLoaderType;\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  yPosition: number;\n  xPosition: number;\n  sanitizedHtmlText: SafeHtml;\n  currentDate: string;\n\n  constructor(\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _sendToDashboardService: SendToDashboardService,\n    private _commonService: CommonService,\n    private sanitizer: DomSanitizer\n  ) {\n    this.property = new ChartProperty();\n  }\n\n  @HostListener('window:mousedown', ['$event'])\n  click(event): void {\n    if (this.isEditable && event.which === 3 && this.contextMenu.menuOpened) {\n      this.contextMenu.closeMenu();\n    }\n  }\n\n  ngOnInit(): void {\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n    this.report=this._reportBuilderMasterService.report;\n    if (this.reportData?.htmlText) {\n      this.reportData.sanitizedHtmlText = this.sanitizer.bypassSecurityTrustHtml(this.reportData.htmlText);\n      // Dynamically update the date after a 3-second delay\n      setTimeout(() => {\n        const dateElement = document.getElementById('currentDate');\n        this.currentDate = new Date().toLocaleDateString('en-US');\n        if (dateElement) {\n          dateElement.textContent = this.currentDate;\n        }\n      }, 3000); // Delay of 3 seconds\n    }\n    this.property.element = this.reportData;\n    this.onchartClickedEvent.emit(this.property);\n    this.style = {\n      position: 'absolute',\n      left: `${this.reportData.xPosition}px`,\n      top: `${this.reportData.yPosition}px`,\n      width: `${this.reportData.width}px`,\n      height: `${this.reportData.height}px`,\n    };\n    this.chartRendered.emit();\n    this.showGhostLoader = false;\n  }\n\n  ngOnDestroy(): void {\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n  onTextChartClicked(): void {\n    this.onchartClickedEvent.emit(this.property);\n  }\n\n  onContextMenu(event: MouseEvent, chart: TextChart): void {\n    event.preventDefault();\n    this.contextMenuPosition.x = event.clientX + 'px';\n    this.contextMenuPosition.y = event.clientY + 'px';\n    this.contextMenu.menuData = { 'chart': chart };\n    this.contextMenu.menu.focusFirstItem('mouse');\n    this.contextMenu.openMenu();\n  }\n\n  onChartRightClickDelete(): void {\n    this.onchartRightClickDeleteEvent.emit(this.uniquekey);\n  }\n\n  chartResizeMinDimensions(event: ResizeEvent): boolean {\n    const MIN_DIMENSIONS_PX: number = 0;\n    if (\n      event.rectangle.width &&\n      event.rectangle.height &&\n      (event.rectangle.width < MIN_DIMENSIONS_PX ||\n        event.rectangle.height < MIN_DIMENSIONS_PX)\n    ) {\n      return false;\n    }\n    return true;\n  }  \n  dragStart($event: DragEvent): void{\n    this.handle = true;\n  }\n  /**\n   * call cdk drag end event\n   *\n   * @param $event\n   */\n  dragEnd($event: DragEvent): void{\n    \n    this.handle = false;\n    // this.xPosition = this.reportData.xPosition;\n    // this.yPosition = this.reportData.yPosition;\n  }\n\n  onResizing(event: ResizeEvent): void {\n    const centralPage: HTMLElement = document.getElementById('central-page');\n    const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n    if(event.rectangle.right >= centralPageBounds.right && event.edges.right){\n      event.rectangle.right = centralPageBounds.right;\n    } else if(event.rectangle.left < centralPageBounds.left){\n      event.rectangle.left = centralPageBounds.left;\n    } else if(event.rectangle.bottom > centralPageBounds.bottom){\n      event.rectangle.bottom = centralPageBounds.bottom;\n    } else if(event.rectangle.top < centralPageBounds.top){\n      event.rectangle.top = centralPageBounds.top;\n    }\n    event.rectangle.width = event.rectangle.right - event.rectangle.left;\n    event.rectangle.height = event.rectangle.bottom - event.rectangle.top;\n    if(event.edges.bottom !== 0 && event.edges.top !== 0 && event.edges.left !== 0 && event.edges.right !== 0){\n      event.edges.top = this.yPosition + Number(event.edges.top);\n      event.edges.left = this.xPosition + Number(event.edges.left);\n      this.reportData.resizeChart(event, this.property.apexChart);\n      this._commonService.isReportBuilderDirty=true;\n    }\n  }\n\n  resizeEnd(){\n    this.xPosition = this.reportData.xPosition;\n    this.yPosition = this.reportData.yPosition;\n }\n\n  // Below is original written onResizing\n\n  // onResizing(event: ResizeEvent): void {\n  //   const centralPage: HTMLElement = document.getElementById('central-page');\n  //   const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n  //   //const margin = 10; // Define a margin to keep the component away from the edges\n\n  //   // Check if the left edge is being dragged\n  //   // if (event.edges.left) {\n  //     // If the left edge goes beyond the boundary, adjust the left position\n  //     if (event.rectangle.left < centralPageBounds.left) {\n  //       // console.log(event.rectangle.left)\n  //         event.rectangle.left = centralPageBounds.left;\n  //         // if(event.rectangle.left <= centralPageBounds.left){\n\n  //         // }\n\n  //     }\n  \n\n  // // Check if the right edge is being dragged\n  // // if (event.edges.right) {\n  //     // If the right edge goes beyond the boundary, adjust the right position\n  //     else if (event.rectangle.right > centralPageBounds.right) {\n  //       // console.log(event.rectangle.right)\n  //         event.rectangle.right = centralPageBounds.right;\n          \n  //     }\n  \n\n  // // Check if the top edge is being dragged\n  // // if (event.edges.top) {\n  //     // If the top edge goes beyond the boundary, adjust the top position\n  //     else if (event.rectangle.top < centralPageBounds.top) {\n  //       // console.log(event.rectangle.top)\n  //         event.rectangle.top = centralPageBounds.top;\n  //     }\n  \n\n  // // // Check if the bottom edge is being dragged\n  // // if (event.edges.bottom) {\n  //     // If the bottom edge goes beyond the boundary, adjust the bottom position\n  //     else if (event.rectangle.bottom > centralPageBounds.bottom) {\n  //       // console.log(event.rectangle.bottom)\n  //         event.rectangle.bottom = centralPageBounds.bottom;\n  //     }\n  \n  //   event.rectangle.width = event.rectangle.right - event.rectangle.left;\n  //   console.log(event.rectangle.width)\n  //   event.rectangle.height = event.rectangle.bottom - event.rectangle.top;\n  //   if(event.edges.bottom !== 0 && event.edges.top !== 0 && event.edges.left !== 0 && event.edges.right !== 0){\n  //     this.reportData.resizeChart(event, this.property.apexChart);\n  //     this._commonService.isReportBuilderDirty=true;\n  //   }\n    \n  // }\n\n  // resizeEnd(){\n  //   // this.xPosition = this.reportData.xPosition;\n  //   // this.yPosition = this.reportData.yPosition;\n  // }\n\n\n\n\n  // onResize(event: ResizeEvent): void {\n  //   const centralPage = document.getElementById('central-page');\n  //   const centralPageBounds = centralPage.getBoundingClientRect();\n\n  //   const newWidth = Math.min(event.rectangle.width, centralPageBounds.right - event.rectangle.left);\n  //   const newHeight = Math.min(event.rectangle.height, centralPageBounds.bottom - event.rectangle.top);\n  //   const newLeft = Math.max(event.rectangle.left, centralPageBounds.left);\n  //   const newTop = Math.max(event.rectangle.top, centralPageBounds.top);\n\n  //   this.style = {\n  //     position: 'absolute',\n  //     left: `${newLeft}px`,\n  //     top: `${newTop}px`,\n  //     width: `${newWidth}px`,\n  //     height: `${newHeight}px`,\n  //   };\n  // }\n//   onResizeEnd(event: any) {\n//     // Finalize the dimensions and position\n//     this.reportData.width = event.rectangle.width;\n//     this.reportData.height = event.rectangle.height;\n\n//     // Update the position if needed\n//     this.reportData.xPosition = event.rectangle.left; // or calculate based on your logic\n//     this.reportData.yPosition = event.rectangle.top; // or calculate based on your logic\n// }\n\n  // onResizeEnd(event: ResizeEvent): void {\n  //   const centralPage = document.getElementById('central-page');\n  //   const centralPageBounds = centralPage.getBoundingClientRect();\n\n  //   if (event.rectangle.right > centralPageBounds.right) {\n  //     event.rectangle.width = centralPageBounds.right - event.rectangle.left;\n  //   }\n  //   if (event.rectangle.bottom > centralPageBounds.bottom) {\n  //     event.rectangle.height = centralPageBounds.bottom - event.rectangle.top;\n  //   }\n  //   if (event.rectangle.left < centralPageBounds.left) {\n  //     event.rectangle.width -= (centralPageBounds.left - event.rectangle.left);\n  //     event.rectangle.left = centralPageBounds.left;\n  //   }\n  //   if (event.rectangle.top < centralPageBounds.top) {\n  //     event.rectangle.height -= (centralPageBounds.top - event.rectangle.top);\n  //     event.rectangle.top = centralPageBounds.top;\n  //   }\n\n  //   this.style = {\n  //     position: 'absolute',\n  //     left: `${event.rectangle.left}px`,\n  //     top: `${event.rectangle.top}px`,\n  //     width: `${event.rectangle.width}px`,\n  //     height: `${event.rectangle.height}px`,\n  //   };\n  //   this.reportData.width = event.rectangle.width;\n  //   this.reportData.height = event.rectangle.height;\n  //   this._commonService.isReportBuilderDirty = true;\n  // }\n\n  onResizeEnd(event: ResizeEvent): void {\n    const centralPage: HTMLElement = document.getElementById('central-page');\n    const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n    if(event.rectangle.right >= centralPageBounds.right && event.edges.right){\n      event.rectangle.right = centralPageBounds.right;\n    } else if(event.rectangle.left < centralPageBounds.left){\n      event.rectangle.left = centralPageBounds.left;\n    } else if(event.rectangle.bottom > centralPageBounds.bottom){\n      event.rectangle.bottom = centralPageBounds.bottom;\n    } else if(event.rectangle.top < centralPageBounds.top){\n      event.rectangle.top = centralPageBounds.top;\n    }\n    event.rectangle.width = event.rectangle.right - event.rectangle.left;\n    event.rectangle.height = event.rectangle.bottom - event.rectangle.top;\n    if(event.edges.bottom !== 0 && event.edges.top !== 0 && event.edges.left !== 0 && event.edges.right !== 0){\n      this.reportData.resizeChart(event, this.property.apexChart);\n      this._commonService.isReportBuilderDirty=true;\n    }\n  }\n\n  onChartRightClickSendToDashboard(): void {\n    const sendToDashboardData: ISendToDashboardData = {\n      filter: null,\n      filterCategory: null,\n      appVersionId: this.report.appVersionId,\n      type: 'element',\n      element: this.reportData\n    };\n    this._sendToDashboardService.sendToDashboard(sendToDashboardData);\n  }\n  \n\n}\n","import { SafeHtml } from '@angular/platform-browser';\nimport { Chart } from '../chart/chart';\nimport { TextComponent } from './text.component';\nexport class TextChart extends Chart {\n\t// Attributes for LineChart\n\tcolor: string;\n\tfontWeight?: string;\n\ttextDecoration?: string;\n\tfontStyle?: string;\n\tdecimalPrecision?: number;\n\tdataColor?: string;\n\ttext?: string;\n\thtmlText?: string;\n\tsanitizedHtmlText?: SafeHtml;\n\ttextFontStyle?: Array<string>;\n\tcomponent = TextComponent;\n\t/**\n\t * Constructor\n\t */\n\t constructor(text?: TextChart) {\n        super(text);\n        if(text){\n            this.textChart(text);\n        }else{\n            this.newText();\n        }\n    }\n\t/*\n     *\n\t *intialize object with default value\n\t *\n\t */\n\tnewText(): void{\n        this.text = 'Text';\n\t\tthis.color = '#000000';\n\t\tthis.border = '1px solid';\n\t\tthis.borderColor = '#000000';\n\t\tthis.title.isVisible = true;\n\t\tthis.style.width = 300;\n\t\tthis.style.height = 200;\n\t\tthis.subType = 'text';\n\t\tthis.textDecoration = '';\n\t\tthis.fontWeight = '';\n\t\tthis.textFontStyle = [''];\n\t\tthis.fontStyle = '';\n    }\n\t/*\n     *initialize object with value\n\t *\n\t *\n\t */\n    textChart(text: TextChart): void{\n        this.text = text.text;\n        this.htmlText = text.htmlText;\n\t\tthis.color = text.color;\n\t\tthis.border = text.border;\n\t\tthis.borderColor = text.borderColor;\n\t\tthis.title.isVisible = text ? text.title.isVisible : true;\n\t\tthis.style.width = text.style.width;\n\t\tthis.style.height = text.style.height;\n\t\tthis.subType = text.subType;\n\t\tthis.textDecoration = text.textDecoration;\n\t\tthis.fontStyle = text.fontStyle;\n\t\tthis.textFontStyle = text.textFontStyle;\n\t\tthis.fontWeight = text.fontWeight;\n    }\n}\n","\nexport enum Type {\n    bar = 1,\n    card = 2,\n    pie = 3,\n    line = 4,\n    donut = 5,\n    table = 6,\n    guage = 7,\n    columns = 8,\n    text = 9,\n    image = 10,\n    lineColumn = 11,\n    stackedLineColumn = 12,\n    fullDoubleBar = 13,\n    doubleBar = 14,\n    multiLineMultiColumn = 15,\n};\n\n\nexport interface ChartType{\n    type: Type;\n    subType?: number;\n}\n","import { AxElement } from '../../../elements/ax-element';\nimport { BarChart } from '../bar-chart/bar-chart';\nimport { CardChart } from '../card-chart/card-chart';\nimport { LineChart } from '../line-chart/line-chart';\nimport { LineColumnChart } from '../line-column-chart/line-column-chart'; // Import your new component\nimport { PieChart } from '../pie-chart/pie-chart';\nimport { TextChart } from '../text/text-chart';\nimport { Chart } from './chart';\nimport { Type } from './chart-type';\n\nexport class ChartFactory {\n\n    chartType: any = Type;\n\n    createChartObject(chart: Chart): Chart {\n        let chartObj;\n        switch (chart.subType) {\n            case 'pie-chart':\n                chartObj = new PieChart(chart as PieChart);\n                break;\n            case 'donut-chart':\n                chartObj = new PieChart(chart as PieChart);\n                break;\n            case 'bar-chart':\n                chartObj = new BarChart(chart as BarChart);\n                break;\n            case 'double-chart':\n                chartObj = new BarChart(chart as BarChart);\n                break;\n            case 'line-chart':\n                chartObj = new LineChart(chart as LineChart);\n                break;\n            case 'line-column-chart':  // Add this case for line-column-chart\n                chartObj = new LineColumnChart(chart as LineColumnChart);  // Assuming you have this component\n                break;\n            case 'card-chart':\n                chartObj = new CardChart(chart as CardChart);\n                break;\n            case 'text':\n                chartObj = new TextChart(chart as TextChart);\n                chartObj.type = 'static-control-element';\n                break;\n        }\n        return chartObj;\n    }\n\n    createChartObjectByType(selectedChart: AxElement): Chart {\n        let chartObj;\n        switch (selectedChart.type) {\n            case this.chartType.pie:\n                chartObj = new PieChart();\n                chartObj.donutSize = 0;\n                break;\n            case this.chartType.bar:\n                chartObj = new BarChart();\n                chartObj.orientation = selectedChart.subType;\n                chartObj.setDefaultName();\n                break;\n            case this.chartType.doubleBar:\n                chartObj = new BarChart();\n                chartObj.orientation = selectedChart.subType;\n                chartObj.showStack = true;\n                chartObj.setDefaultName();\n                break;\n            case this.chartType.fullDoubleBar:\n                chartObj = new BarChart();\n                chartObj.orientation = selectedChart.subType;\n                chartObj.showStack = true;\n                chartObj.stackType = \"100%\";\n                chartObj.setDefaultName();\n                break;\n            case this.chartType.line:\n                chartObj = new LineChart();\n                break;\n            case this.chartType.lineColumn:  // Add this case for line-column-chart type\n                chartObj = new LineColumnChart();  // Instantiate your new LineColumnChart\n                break;\n            case this.chartType.multiLineMultiColumn:  // Add this case for line-column-chart type\n                chartObj = new LineColumnChart(); \n                chartObj.isMultiSeries = true; // Instantiate your new LineColumnChart\n                break;\n            case this.chartType.stackedLineColumn:\n                chartObj = new LineColumnChart();  \n                chartObj.showStack = true;  \n                break;\n            case this.chartType.card:\n                chartObj = new CardChart();\n                break;\n            case this.chartType.donut:\n                chartObj = new PieChart();\n                chartObj.donutSize = 50;\n                chartObj.subType = 'donut-chart';\n                break;\n            case this.chartType.table:\n                chartObj = new BarChart();\n                chartObj.setDefaultName();\n                break;\n            case this.chartType.text:\n                chartObj = new TextChart();\n                chartObj.type = 'static-control-element';\n                break;\n        }\n        return chartObj;\n    }\n}\n","import { Font } from './font';\n\nexport class TextStyle {\n\n\tfont: Font;\n\twordWrap: boolean ;\n\talignment: string ;\n\ttextSize: number;\n\ttextContrast: number;\n\tbackgroundColor: string;\n\n\tconstructor(textStyle?: TextStyle){\n\t\tif(textStyle){\n\t\t\tthis.textStyle(textStyle);\n\t\t}\n\t\telse{\n\t\t\tthis.newTextStyle();\n\t\t}\n\n\t}\n\t//function to create new text style object\n\tnewTextStyle(): void{\n\t\tthis.font=new Font();\n\t\tthis.wordWrap= false;\n\t\tthis.alignment= '';\n\t\tthis.textSize = 0;\n\t\tthis.textContrast= 0;\n\t\tthis.backgroundColor='';\n\t}\n\t/**function to create text style object with existing values\n    *\n    *@param TextStyle\n    *\n    */\n\ttextStyle(textStyle: TextStyle): void{\n\t\tthis.font= new Font(textStyle.font) ;\n\t\tthis.wordWrap=  textStyle.wordWrap ;\n\t\tthis.alignment=  textStyle.alignment ;\n\t\tthis.textSize =  textStyle.textSize;\n\t\tthis.textContrast=  textStyle.textContrast;\n\t\tthis.backgroundColor=  textStyle.backgroundColor;\n\t}\n}\n","export class ColumnStyle{\n    oddColor: string;\n    evenColor: string;\n    constructor(columnStyle?: ColumnStyle){\n        this.oddColor=columnStyle && columnStyle.oddColor || '#FFFFFF';\n        this.evenColor=columnStyle && columnStyle.evenColor || '#FFFFFF';\n    }\n}\n","export class RowStyle{\n    oddColor: string;\n    evenColor: string;\n    constructor(rowStyle?: RowStyle){\n        this.oddColor=rowStyle && rowStyle.oddColor || '#FFFFFF';\n        this.evenColor=rowStyle && rowStyle.evenColor || '#FFFFFF';\n    }\n}\n","import { Border } from '../graphical-report/chart/border';\nimport { TextStyle } from '../graphical-report/chart/text-style';\nimport { Title } from '../graphical-report/chart/title';\nimport { ColumnStyle } from './column-style';\nimport { RowStyle } from './row-style';\n\nexport class TableStyle{\n border: Border;\n header: TextStyle;\n body: TextStyle;\n rowStyle: RowStyle;\n columnStyle: ColumnStyle;\n footer: TextStyle;\n subFooter: TextStyle;\n subHeader: TextStyle;\n title:Title\n\n constructor(tableStyle?: TableStyle){\n     if(tableStyle){\n         this.tableStyle(tableStyle);\n     }\n     else{\n         this.newTableStyle();\n     }\n\n }\n\n//function to create new table style object\n newTableStyle(): void{\n    this.border= new Border();\n    this.border.ManipulateObjectForTabular();\n    this.rowStyle= new RowStyle();\n    this.columnStyle= new ColumnStyle();\n    this.header=  new TextStyle();\n    this.header.backgroundColor='#F2F8FF';\n    this.body=  new TextStyle();\n    this.body.backgroundColor='#FFFFFF';\n    this.body.textSize=12;\n    this.footer=  new TextStyle();\n    this.footer.backgroundColor='#DEEEFF';\n    this.subFooter= new TextStyle();\n    this.subFooter.backgroundColor='#F5FAFF';\n    this.subHeader=new TextStyle();\n    this.subHeader.backgroundColor='#F2F8FF';\n    this.title=new Title();\n    this.title.text=\"Table Name\";\n\n }\n/**function to create table style object with existing values\n*\n*@param TableStyle\n*/\n tableStyle(tableStyle: TableStyle): void{\n    this.border= new Border (tableStyle.border) ;\n    this.rowStyle=  new RowStyle(tableStyle.rowStyle) ;\n    this.columnStyle= new ColumnStyle(tableStyle.columnStyle);\n    this.header =  new TextStyle(tableStyle.header);\n    this.body =  new TextStyle(tableStyle.body);\n    this.footer =  new TextStyle(tableStyle.footer);\n    this.subFooter =  new TextStyle(tableStyle.subFooter);\n    this.subHeader=new TextStyle(tableStyle.subHeader);\n    this.title=new Title(tableStyle.title);\n }\n}\n","import { EventEmitter, Type } from '@angular/core';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { AxElement } from '../../elements/ax-element';\nimport { AttributeData } from '../../fields/attribute-data';\nimport { Matrix } from '../graphical-report/chart/matrix';\nimport { TableStyle } from './table-style';\n\nexport class TabularReport extends AxElement{\n    component: Type<any>;\n    matrix: Matrix;\n    showSerialNo: boolean;\n    showGrandTotal: boolean;\n    tableStyle: TableStyle;\n\tisDirty: boolean;\n    rowGrouping: Array<AttributeData>;\n    colGrouping: Array<AttributeData>;\n\treportChangeEvent: EventEmitter<any>;\n    subTotal: boolean;\n    rowCount: boolean;\n    showSum: boolean;\n    showMax: boolean;\n    showMin: boolean;\n    showAvg: boolean;\n    isDataLoaded: boolean;\n    columnSpan: number;\n    serialNoColWidth: number;\n    sCount: Array<number>;\n    attribute: Array<AttributeData>;\n    sorting: Array<AttributeData>;\n    integerArray: Array<string>;\n    numberFieldExist: boolean=false;\n    colData = new Map<string, number>();\n    rowData=new Map<string,number>();\n    cloneDataCount=Array<number>();\n    secondColData=new Map<string,any>();\n    integerIndex=Array<number>();\n    seriesData=new Map<number,any>();\n    dataRender=new Map<number,any>();\n    firstColData=new Map<number,any>();\n    dataIndex=Array<number>();\n    secondColSeries: Array<string>;\n    firstColSeries: Array<string>;\n    grandTotal: Array<number>;\n    grandTotal2: Array<number>;\n    sideTotal=new Map<number,any>();\n    totalRowCount=new Map<number,number>();\n    rowCountIndex=new Map<number,any>();\n    sideGrandTotal: Array<number>;\n    integerData: Array<number>;\n    integerIndexing: Array<number>;\n    countArray: Array<number>;\n    rowsData: Array<string>;\n    countsData=new Map<number,any>();\n    countsTotal: Array<number>;\n    gTotalIntegerIndexing: Array<number>;\n    countIntegerIndexing: Array<number>;\n    countTotalIntegerIndexing: Array<number>;\n    dataIndexSTotal=new Map<number,number>();\n    colSubTotal=new Map<number,any>();\n    colSubTotalCount=new Map<number,any>();\n    sideSubTotal=new Map<number,any>();\n    countSTotal=new Map<number,number>();\n    countsSubTotal=new Map<number,any>();\n    cloneIntegerArray: Array<any>;\n    showBottomRow: boolean;\n    pageIndex: number=1;\n    pageSize: number=10;\n    pageLength: number;\n    sqlQuery: string;\n    isCustomElement: boolean;\n    constructor(tabularReport?: TabularReport){\n        super(tabularReport);\n        this.type='tabular';\n        this.subType='tabular-report';\n        if(tabularReport){\n            this.tabularReport(tabularReport);\n        }\n        else{\n            this.newTabularReport();\n        }\n    }\n\n    //function to create new tabular report object\n    newTabularReport(): void{\n        this.matrix=new Matrix();\n        this.showSerialNo= true;\n        this.showGrandTotal=false;\n        this.tableStyle=  new TableStyle();\n        this.rowGrouping=[];\n        this.colGrouping=[];\n        this.subTotal=false;\n        this.rowCount=false;\n        this.columnSpan=0;\n        this.showSum=false;\n        this.showMax=false;\n        this.showMin=false;\n        this.showAvg=false;\n        this.rowGrouping=[];\n        this.colGrouping=[];\n        this.sCount=[];\n        this.sorting=[];\n        this.serialNoColWidth = 55;\n        this.isDataLoaded=false;\n        this.showBottomRow=false;\n        this.pageIndex=0;\n        this.pageSize=10;\n        this.pageLength=0;\n        this.sqlQuery='';\n        this.isCustomElement=false;\n\n    }\n\t/**function to create tabular report object with existing values\n    *\n    *@param TabularReport\n    */\n    tabularReport(tabularReport: TabularReport): void{\n        this.matrix=new Matrix(tabularReport.matrix) ;\n        this.showSerialNo= tabularReport.showSerialNo;\n        this.showGrandTotal= tabularReport.showGrandTotal;\n        this.subTotal=tabularReport.subTotal;\n        this.tableStyle=  new TableStyle(tabularReport.tableStyle);\n        this.rowGrouping=tabularReport.rowGrouping;\n        this.colGrouping=tabularReport.colGrouping;\n        this.rowCount=tabularReport.rowCount;\n        this.columnSpan=tabularReport.columnSpan;\n        this.showSum=tabularReport.showSum;\n        this.showMax=tabularReport.showMax;\n        this.showMin=tabularReport.showMin;\n        this.showAvg=tabularReport.showAvg;\n        this.serialNoColWidth = tabularReport.serialNoColWidth;\n        this.rowGrouping=tabularReport.rowGrouping ? tabularReport.rowGrouping : [];\n        this.colGrouping=tabularReport.colGrouping ? tabularReport.colGrouping : [];\n        this.sorting=tabularReport.sorting? tabularReport.sorting:[];\n        this.showBottomRow=tabularReport.showBottomRow;\n        this.pageIndex=tabularReport.pageIndex;\n        this.pageSize=tabularReport.pageSize;\n        this.pageLength=tabularReport.pageLength;\n        this.sqlQuery=tabularReport.sqlQuery;\n        this.isCustomElement=tabularReport.isCustomElement;\n    }\n\n    /**function to set serial No Toggle\n    *\n    *@param MatSlideToggleChange\n    */\n    serialNoToggle($event: MatSlideToggleChange): void{\n        this.showSerialNo = $event.checked;\n    }\n\n    /**function to set Grand Total Toggle\n    *\n    *@param MatSlideToggleChange\n    */\n    grandTotalToggle($event: MatSlideToggleChange,tabularReport: TabularReport): void{\n        this.showGrandTotal = $event.checked;\n        this.showSum = true;\n        if($event.checked && tabularReport.colGrouping.length===0){\n            tabularReport.matrix.attributes.forEach((attribute) => {\n                if(attribute.widgetType==='int-widget' || attribute.widgetSubType==='numeric'){\n                attribute.aggregate.showSum=true;\n                }\n            });\n        }\n    }\n\n\n\n\n/**function to update group data value when sub total toggle value changed\n*\n*@param TabularReport\n*/\nsubTotalToggle(tabularReport: TabularReport): TabularReport{\n        if(tabularReport.colGrouping.length>0 && tabularReport.rowGrouping.length>1){\n            tabularReport=this.countSubTotal(tabularReport);\n        }\n\n        if(tabularReport.colGrouping.length===0){\n        const i=0;\n        if(tabularReport.rowGrouping.length===3){\n          if(tabularReport.matrix.attributes[2] && tabularReport.matrix.attributes[2].rowSpan && tabularReport.matrix.attributes[2].groupData[i]){\n            tabularReport=this.rowSpan(tabularReport,2);\n\n         }\n        }\n        if (tabularReport.rowGrouping.length<3){\n          if(tabularReport.matrix.attributes[1].rowSpan && tabularReport.matrix.attributes[1].groupData[i]){\n                tabularReport=this.rowSpan(tabularReport,1);\n          }\n        }\n        }\n        return tabularReport;\n    }\n\n    /**function to calculate 2nd and 3rd row grouping data values to show subtotal\n    *\n    *@param TabularReport\n    *@param number\n    */\n    rowSpan(tabularReport: TabularReport, _number: number): TabularReport{\n        let i=0;\n        let groupData=0;\n        let counter=0;\n        if(_number===1){\n        while(i<tabularReport.matrix.attributes[0].groupData.length){\n            groupData=tabularReport.matrix.attributes[_number-1].groupData[i];\n            const subSeries=tabularReport.matrix.attributes[_number].groupData.slice(i,i+groupData);\n            let subIndex=0;\n            counter=0;\n            while(subIndex<subSeries.length){\n                if(subSeries[subIndex]>1){\n                    counter++;\n                    subIndex+=subSeries[subIndex];\n                }\n                else{\n                    subIndex+=1;\n                }\n            }\n            tabularReport.matrix.attributes[_number-1].cloneGroupData[i]+=counter;\n        i=i+groupData;\n        }}\n\n        if(_number===2){\n            i=0;\n            while(i<tabularReport.matrix.attributes[0].groupData.length){\n                groupData=tabularReport.matrix.attributes[0].groupData[i];\n                const subSeries=tabularReport.matrix.attributes[1].groupData.slice(i,i+groupData);\n                let subIndex=0;\n                counter=0;\n                while(subIndex<subSeries.length){\n                    const nIndex=i+subIndex;\n                    const gData=tabularReport.matrix.attributes[1].groupData[nIndex];\n                    const subSeries2=tabularReport.matrix.attributes[2].groupData.slice(nIndex,nIndex+gData);\n                        let ssindex=0;\n                        while(ssindex<subSeries2.length){\n                            if(subSeries2[ssindex]>1){\n                                ssindex+=subSeries2[ssindex];\n                                tabularReport.matrix.attributes[0].cloneGroupData[i]++;\n                                tabularReport.matrix.attributes[_number-1].cloneGroupData[nIndex]++;\n                            }\n                            else{\n                                ssindex++;\n                            }\n                        }\n                    if(subSeries[subIndex]>1){\n                        counter++;\n                        subIndex+=subSeries[subIndex];\n                    }\n                    else{\n                        subIndex+=1;\n                    }\n                }\n\n                i=i+groupData;\n            }\n    }\n\n\n        return tabularReport;\n    }\n    /**function to count subtotal when column grouping is applied\n    *\n    *@param TabularReport\n    *@param number\n    */\n    countSubTotal(tabularReport: TabularReport): TabularReport{\n        let i=0;\n        let index=0;\n        while(i<tabularReport.matrix.attributes[0].series.length){\n            const data1=Array(tabularReport.firstColData.get(0).length).fill(0);\n            const data2=Array(tabularReport.dataRender.get(0).length).fill(0);\n            const gData=tabularReport.matrix.attributes[0].groupData[i];\n            const data=tabularReport.matrix.attributes[1].series.slice(i,i+gData);\n            let max=[...new Set(data)].length;\n            max=index+max;\n            const subTotal=tabularReport.rowCount? data2 :data1;\n            const sideSubTotal=Array(tabularReport.sideTotal.get(0).length).fill(0);\n            const countSubTotal=Array(tabularReport.countsData.get(0).length).fill(0);\n            let countSTotal=0;\n             while(index<max){\n                 const dataIndex=tabularReport.dataIndexSTotal.get(index);\n                 const countTotalValues=tabularReport.totalRowCount.get(dataIndex);\n                 const countsSubTotal=tabularReport.countsData.get(dataIndex);\n                 countSTotal=countSTotal+countTotalValues;\n                 const sideTotalValues=tabularReport.sideTotal.get(dataIndex);\n                 const dataSeriesValues=tabularReport.rowCount? tabularReport.dataRender.get(dataIndex):tabularReport.firstColData.get(dataIndex);\n                sideTotalValues.forEach((element,_index) => {\n                    sideSubTotal[_index]=(sideSubTotal[_index]+element);\n                });\n\n                 dataSeriesValues.forEach((element,ind) => {\n                    subTotal[ind]=(subTotal[ind]+element);\n                  });\n\n                 countsSubTotal.forEach((element,countIndex) => {\n                    countSubTotal[countIndex]=(countSubTotal[countIndex]+element);\n                 });\n               index++;\n             }\n             tabularReport.countSTotal.set((i+gData)-1,countSTotal);\n             tabularReport.sideSubTotal.set((i+gData)-1,sideSubTotal);\n             tabularReport.colSubTotal.set((i+gData)-1,subTotal);\n             tabularReport.countsSubTotal.set((i+gData)-1,countSubTotal);\n             i=i+tabularReport.matrix.attributes[0].groupData[i];\n        }\n        return tabularReport;\n    }\n}\n\n","import { ChartFactory } from '../report/graphical-report/chart/chart-factory';\nimport { AxElement } from './ax-element';\nimport { Chart } from '../report/graphical-report/chart/chart';\nimport { TabularReport } from '../report/tabular-report/tabular-report';\n\nexport class ElementFactory {\n    chartFactory: ChartFactory;\n    constructor() {\n        this.chartFactory = new ChartFactory();\n    }\n\n    // Element Factory methods\n    getElementObject(element: AxElement): AxElement {\n        let _element;\n        switch (element.type) {\n            case 'chart-element':\n                _element = this.chartFactory.createChartObject(element as Chart);\n                return _element;\n            case 'static-control-element':\n                _element = this.chartFactory.createChartObject(element as Chart);\n                return _element;\n            case 'tabular':\n                _element= new TabularReport(element as TabularReport);\n                return _element;\n        }\n    }\n\n    /**function to create axElements object with existing values\n    *\n    *@param AxElement\n    *\n    */\n    createElement(elements: Array<AxElement>): Array<AxElement>{\n        const _elements: Array<AxElement> = [];\n        if(elements){\n            elements.forEach((element) => {\n                const _element=this.getElementObject(element);\n                _elements.push(_element);\n            });\n        }\n        return _elements;\n    }\n\n}\n","import { AxElement } from '../../../elements/ax-element';\nimport { ElementFactory } from '../../../elements/element-factory';\nimport { AttributeData } from '../../../fields/attribute-data';\n\nexport class Page  {\n    id: number;\n    guid: string;\n    name: string;\n    elements: Array<AxElement>;\n    isDeleted: boolean;\n    enableDrillThrough: boolean;\n    drillData: Array<AttributeData>;\n    constructor(page?: Page) {\n        if(page){\n            this.page(page);\n        }\n        else{\n            this.newPage();\n        }\n    }\n\n    /**function to create pages object with existing values\n    *\n    *@param page\n    *\n    */\n    static createPages(pages: Array<Page> ): Array<Page>{\n        const _pages: Array<Page> = [];\n        if(pages){\n            pages.forEach((page) => {\n                _pages.push(new Page(page));\n            });\n        }\n        return _pages;\n    }\n\n    // Function to create new page object\n    newPage(): void{\n        this.name='Untitled page';\n        this.elements=[];\n        this.isDeleted=false;\n        this.enableDrillThrough=false;\n        this.drillData=[];\n    }\n\n    /**function to create page object with existing values\n    *\n    *@param Page\n    *\n    */\n    page(_page: Page): void{\n        const elementFactory = new ElementFactory();\n        this.id=_page.id;\n        this.name=_page.name ? _page.name : 'Untitled page';\n        this.elements= elementFactory.createElement(_page.elements);\n        this.isDeleted=_page.isDeleted;\n        this.enableDrillThrough=_page.enableDrillThrough|| false;\n        this.drillData=_page.drillData || [];\n    }\n\n}\n\n","export enum EnlightenReportType {\n    graphical = 1,\n    tabular = 2\n};\n\nexport enum ChartAggregate {\n\tnone = 'none',\n\tsum = 'sum',\n\taverage  = 'average',\n\tcount = 'count',\n}\n\nexport interface IReport {\n    name: string;\n    type: EnlightenReportType;\n}\n\n","import { Type } from '@angular/core';\nimport { EntityBase } from './entity-base';\nimport { Page } from '../enlighten-lib/report/graphical-report/page/page';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { FilterCategory } from '../enlighten-lib/filters/filter-category';\nimport { EnlightenReportType, IReport } from '../enlighten-lib/report/ireport';\n\nexport class Report extends EntityBase implements IReport {\n    name: string;\n    description: string;\n    type: EnlightenReportType;\n    pages: Array<Page>;\n    appVersionId: number;\n    isDirty: boolean;\n    dataModelId: number;\n    filters?: Array<AxFilter>;\n    categories?: Array<FilterCategory>;\n    component: Type<any>;\n    constructor(report?: Report){\n        super(report);\n        if(report){\n            this.report(report);\n        }\n        else{\n            this.newReport();\n        }\n    }\n\n    // Function to create new report object\n    newReport(): void{\n        this.name ='Untitled Report';\n        this.description = ' ';\n        this.type = EnlightenReportType.graphical;\n        this.pages = [new Page()];\n        this.appVersionId = null;\n        this.dataModelId = null;\n        this.isDirty = false;\n        this.filters = [];\n        this.categories = [];\n    }\n\n    /**function to create report object with existing values\n    *\n    *@param Report\n    *\n    */\n    report(report: Report): void{\n        this.name = report.name ;\n        this.description = report.description ;\n        this.type =  report.type ;\n        this.pages =  Page.createPages(report.pages);\n        this.appVersionId =  report.appVersionId ;\n        this.dataModelId =  report.dataModelId;\n        this.isDirty =  report.isDirty;\n        this.filters =  AxFilter.createFilters(report.filters);\n        this.categories =  FilterCategory.createCategories(report.categories);\n    }\n\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { Report } from '../common-utils/report';\nimport { AxElement } from './elements/ax-element';\nimport { ElementFactory } from './elements/element-factory';\nimport { Page } from './report/graphical-report/page/page';\n\n\n\n@Injectable()\nexport class ReportControlService {\n  elementFactory: ElementFactory;\n  createJsonObject;\n\n  /*\n  * Constructor\n\n\n   */\n  constructor() {\n    this.elementFactory = new ElementFactory();\n  }\n\n\n  createReportObject(report: Report): Report {\n    const reportObj = new Report(report);\n    report.pages = this.createPageObjectsArray(report.pages);\n    return reportObj;\n  }\n\n\n  createPageObjectsArray(pages: Array<Page>): Array<Page> {\n    const pageArray = new Array<Page>();\n    pages.forEach((page) => {\n      page.elements = this.createElementObject(page.elements);\n      pageArray.push(new Page(page));\n    });\n    return pageArray;\n  }\n\n  createElementObject(elements: Array<AxElement>): Array<AxElement> {\n    const elementsArray = new Array<AxElement>();\n    elements.forEach((element) => {\n      elementsArray.push(this.elementFactory.getElementObject(element));\n    });\n    return elementsArray;\n  }\n\n\n}\n","// External libs\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { BehaviorSubject, Observable} from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n// Classes from ax-common-ui-lib\nimport { ChartType } from './graphical-report/chart/chart-type';\nimport { Report } from '../../common-utils/report';\nimport { ReportControlService } from '../report-control.service';\nimport { BreadCrumb, BreadCrumbsService } from '../../bread-crumbs/bread-crumbs.service';\nimport { ScreenType } from '../filters/condition-type';\nimport { CommonService } from '../../common.service';\n\n@Injectable()\nexport class ReportBuilderMasterService {\n    // Private\n    public _chartType: BehaviorSubject<ChartType | null> = new BehaviorSubject(null);\n    public report: Report;\n    public pageClickedEvent = new EventEmitter<any>();\n    /**\n     * Constructor\n     */\n    constructor(private _httpClient: HttpClient,\n        private _reportControlService: ReportControlService,\n        private _breadCrumbService: BreadCrumbsService,\n        private _commonService: CommonService) { }\n\n\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Public methods\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Get report by the id provided in route\n     */\n    getReport(reportId: number): Observable<Report> {\n        return this._httpClient.get<Report>('reports/' + reportId).pipe(\n            tap((response) => {\n                this.report = this._reportControlService.createReportObject(response);\n                this.setBreadCrumb();\n\n            })\n        );\n    }\n\n    /***\n     * Set the chart Type On click  list of chart @ date 15-09-2021\n     */\n    setChartType(newValue: ChartType): void {\n        this._chartType.next(newValue);\n    }\n\n    resetChartType(): void {\n        this._chartType.next(null);\n    }\n\n    /**\n     * @param reportData\n     * Call save report API\n     */\n\n    saveReport(report: Report): Promise<Report> {\n        const cloneReport=new Report(report);\n        return new Promise((resolve, reject) => {\n            this._httpClient.put('reports',cloneReport).subscribe((response: Report) => {\n                resolve(response);\n                this._commonService.getPageList(this.report.appVersionId);\n            }, reject);\n        });\n\n    }\n    /**\n     * Set editable bread crumb for report\n     */\n    setBreadCrumb(): void{\n        this._breadCrumbService.removeScreenBreadCrumbs(ScreenType.drillThrough);\n        const crumb: BreadCrumb = new BreadCrumb();\n        crumb.itemId = this.report.id;\n        crumb.title = this.report.name;\n        crumb.url = location.href;\n        crumb.screenType = ScreenType.reportBuilder;\n        crumb.isEditable = true;\n        this._breadCrumbService.addBreadCrumb(crumb);\n        this._breadCrumbService.update();\n    }\n}\n","<!-- Resizable div -->\n<div id=\"line-column-chart-container\" class=\"chart-resize \" mwlResizable (validateResize)=\"chartResizeMinDimensions($event)\"\n  [ngClass]=\"{'full-body' : !isEditable && (screenType !== screenTypes.drillThrough),'selected-resize':reportData.isSelected && !handle, 'resize-class': !handle}\"\n  (resizing)=\"onResizing($event)\" [style.top.px]=\"reportData.yPosition\" style=\"width: fit-content;height: fit-content;\"\n  [style.left.px]=\"reportData.xPosition\" [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n  (resizeEnd)=\"resizeEnd()\">\n  <!-- Chart bodt -->\n  <ng-container *ngIf=\"showGhostLoader\">\n    <ng-container *ngIf=\"reportData.orientation == LineColumnChartOrientation.horizontal\">\n      <app-ghost-loader [elementType]=\"GhostLoaderType.LineColumnChartLoaderHorizontal\"></app-ghost-loader>\n    </ng-container>\n    <ng-container *ngIf=\"reportData.orientation != LineColumnChartOrientation.horizontal\">\n      <app-ghost-loader [elementType]=\"GhostLoaderType.LineColumnChartLoaderVertical\"></app-ghost-loader>\n    </ng-container>\n\n  </ng-container>\n  <div class=\"line-column-chart-box chart-padding\" [style.width.px]=\"reportData.width\" [style.height.px]=\"reportData.height\"\n    style=\"max-width: 100%; max-width: 100%;\" (cdkDragStarted)=\"dragStart($event)\" (cdkDragEnded)=\"dragEnd($event)\"\n    [ngClass]=\"{\n            'selected':reportData.isSelected,\n            'full-body' : !isEditable,\n            'hidden': showGhostLoader ,\n            'bold-title':reportData.title.fontStyle.fontWeight == 'bold',\n            'normal-title':reportData.title.fontStyle.fontWeight == 'normal',\n            'underline-title':reportData.title.fontStyle.textDecoration == 'underline',\n            'italic-title':reportData.title.fontStyle.isItalicFont,\n            'bold-legend':reportData.legend.fontStyle.fontWeight == 'bold',\n            'normal-legend':reportData.legend.fontStyle.fontWeight == 'normal',\n            'underline-legend':reportData.legend.fontStyle.textDecoration == 'underline',\n            'italic-legend':reportData.legend.fontStyle.isItalicFont\n        }\" cdkDrag [id]=\"'cdk-drop-'+reportData.guid\" (click)=\"chartSelect(); $event.stopPropagation();\"\n    (cdkDropListDropped)=\"attributeDropped($event)\" [cdkDragData]=\"reportData\" cdkDragBoundary=\".page\" cdkDropList\n    (contextmenu)=\"onContextMenu($event, reportData)\"\n    [cdkDragDisabled]=\"!isEditable || (screenType === screenTypes.drillThrough)\">\n    <div [ngClass]=\"{'full-body' : !isEditable }\" class=\"chart-inner-container\">\n      <!-- Filter Container -->\n      <!-- for future use-->\n      <div class=\"filter-body pl-3\"\n        [ngClass]=\"{'local-body' : !isEditable, 'hidden': screenType != ScreenType.reportBuilder && !ShowFilters }\"\n        *ngIf=\"isEditable || reportData.filters.length>0 || reportData.categories.length>0\"\n        (click)=\"$event.stopPropagation();\">\n        <lib-report-filter [filters]=\"reportData.filters\" [categories]=\"reportData.categories\" [reportId]=\"reportId\"\n          [dataModel]=\"dataModel\" [screenType]=\"screenType\" [isEditable]=\"isEditable\" [appVersion]=\"appVersionId\"\n          (dirtyFlowCheckEvent)=\"dirtyFlowCheckEvent()\" (applyFilterEvent)=\"applyLocalFilter()\">\n        </lib-report-filter>\n      </div>\n      <!-- Chart Container -->\n      <div class=\"line-column-chart-body\"\n        [ngClass]=\"{'dashboard-chart-full-body': !isEditable && !reportData.filters.length && !reportData.categories.length, 'pt-2': isEditable || reportData.filters.length>0 || reportData.categories.length>0, 'pb-2':isEditable }\">\n        <div id=\"{{reportData.guid}}\" class=\"chart h-full\tw-full\" #chart></div>\n      </div>\n\n      <!---------------------------------------- Mat Menu trigger For Menu Options ----------------------------->\n      <ng-container>\n        <div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n          [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n        </div>\n\n        <!-- Mat Menu PopUp -->\n        <mat-menu #contextMenu=\"matMenu\">\n          <div class=\"chart-menu\">\n            <ng-template matMenuContent let-item=\"reportData\">\n              <ng-container *ngIf='isEditable'>\n                <button mat-menu-item (click)=\"sendToDashboard($event)\">Pin to Dashboard</button>\n                <button mat-menu-item (click)=\"openOptionPopUp($event)\">Delete</button>\n              </ng-container>\n              <button mat-menu-item *ngIf=\"screenTypes.dashboardBuilder === screenType\"\n                (click)=\"onDeleteClick($event)\">Remove From Dashboard</button>\n              <button mat-menu-item *ngIf=\"isDrillThrough && pages.length > 0\" [matMenuTriggerFor]=\"drillThrough\">Drill\n                Through</button>\n            </ng-template>\n          </div>\n        </mat-menu>\n      </ng-container>\n      <mat-menu #drillThrough=\"matMenu\">\n        <div class=\"chart-menu\">\n          <ng-container *ngFor=\" let page of pages\">\n            <button mat-menu-item (click)='pageClick(page)'> {{page.name}}</button>\n          </ng-container>\n        </div>\n      </mat-menu>\n      <!-- --------------------------------------------------------------------------- -->\n    </div>\n  </div>\n  <ng-container *ngIf='isEditable && !showGhostLoader'>\n    <!-- Resize handles  -->\n    <div class=\"resize-handle-top\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ top: true }\">\n      <div class=\"drag-box drag-box-top\"></div>\n    </div>\n    <div class=\"resize-handle-left\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ left: true }\">\n      <div class=\"drag-box drag-box-left\"></div>\n    </div>\n    <div class=\"resize-handle-right\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ right: true }\">\n      <div class=\"drag-box drag-box-right\"></div>\n    </div>\n    <div class=\"resize-handle-bottom\" [class.hide]=\"handle\" mwlResizeHandle [resizeEdges]=\"{ bottom: true }\">\n      <div class=\"drag-box drag-box-bottom\"></div>\n    </div>\n  </ng-container>\n</div>","import {\n  Component,\n  OnInit,\n  ViewEncapsulation,\n  ViewChild,\n  Input,\n  Output,\n  EventEmitter,\n  AfterViewInit,\n  OnDestroy,\n  HostListener\n} from '@angular/core';\nimport {\n  ApexAxisChartSeries,\n  ApexChart,\n  ChartComponent,\n  ApexDataLabels,\n  ApexXAxis,\n  ApexPlotOptions,\n  ApexYAxis,\n  ApexLegend,\n  ApexTitleSubtitle,\n  ApexGrid,\n  ApexNoData\n} from 'ng-apexcharts';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { Subject } from 'rxjs';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { ResizeEvent } from 'angular-resizable-element';\nimport { Router } from '@angular/router';\nimport { ChartProperty } from '../chart/chart-property';\nimport { AttributeData } from '../../../fields/attribute-data';\nimport { CrossFilterDto, ElementsDto } from '../../../../common-dto/elements-dto';\nimport { FieldsListService } from '../../../../field-list-lib/fields-list.service';\nimport { Dimension } from '../chart/dimension';\nimport { Matrix } from '../chart/matrix';\nimport { IGraphicalReportComponent } from '../igraphical-report.component';\nimport { LineColumnChart, LineColumnChartOrientation, ChartDisplayType } from './line-column-chart';\nimport { Report } from '../../../../common-utils/report';\nimport { ReportBuilderMasterService } from '../../report-builder-master.service';\nimport { ISendToDashboardData } from '../../../../dashboard-lib/show-dashboards/show-dashboards.component';\nimport { SendToDashboardService } from '../../../../dashboard-lib/send-to-dashboard.service';\nimport { ElementService } from '../../element.service';\nimport { IChartComponent } from '../ichart-component';\nimport { CommonService } from '../../../../common.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { AxFilter } from'../../../filters/ax-filter';\nimport { AxExpression } from '../../../ax-expression/ax-expression';\nimport { SearchNode } from '../../../filters/search-node';\nimport { Attribute } from '../../../data-model/attribute';\nimport { AxExpTextList } from '../../../ax-expression/ax-exp-text-list';\nimport { ScopeType, ScreenType } from '../../../filters/condition-type';\nimport { Page } from '../page/page';\nimport { DrillThroughService } from '../../../../drill-through/drill-through.service';\nimport { DashboardBuilderService } from '../../../../dashboard-lib/dashboard-builder.service';\nimport { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';\nimport { FiltersService } from '../../../../filters/filters.service';\n\n// Creating custom type for bar chart options that are going to be consumed by apex chart\nexport type LineColumnChartOptions = {\n  series: ApexAxisChartSeries;\n  chart: ApexChart;\n  dataLabels: ApexDataLabels;\n  plotOptions: ApexPlotOptions;\n  xaxis: ApexXAxis;\n  yaxis: ApexYAxis | ApexYAxis[]; \n  legend: ApexLegend;\n  grid: ApexGrid;\n  title: ApexTitleSubtitle;\n  noData: ApexNoData;\n  tooltip: ApexTooltip;\n  fill: ApexFill;\n  states: ApexStates;\n};\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'line-column-chart',\n  templateUrl: './line-column-chart.component.html',\n  styleUrls: ['./line-column-chart.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class LineColumnChartComponent\n  implements\n      IGraphicalReportComponent,\n      OnInit,\n      AfterViewInit,\n      OnDestroy,\n      IChartComponent\n{\n  @Output() onchartClickedEvent = new EventEmitter<any>();\n  @Output() onchartRightClickDeleteEvent = new EventEmitter<any>();\n  @Output() chartRendered = new EventEmitter();\n  @Input() currentPageId: number;\n\n  // Binding element of bar chart to the apex chart component\n  @ViewChild('lineColumnChartContainer') lineColumnChartContainer: ChartComponent;\n\n  /***\n   * MatMenuTrigger Use for right click on the chart action\n   */\n\n  @ViewChild(MatMenuTrigger)\n  contextMenu: MatMenuTrigger;\n\n  // Accepting reportData having axis and values.\n  @Input() reportData: LineColumnChart;\n  @Input() isEditable: boolean;\n  @Input() guid: string;\n  @Input() screenType: ScreenType;\n  @Input() drillThroughFilterInput: AxFilter;\n  @Input() drillThroughParentType: ScreenType;\n  @Input() appVersionId: number;\n  ScreenType = ScreenType;\n  ShowFilters: Boolean =  false;\n\n  titleText: string = '';\n  report: Report;\n  // uniquekey of chart\n  public uniquekey: number;\n  property: ChartProperty;\n  public isDirty: boolean;\n  handle: boolean = false;\n  dataEvent: string = 'dataEvent';\n  componentRef: IChartComponent;\n  isDataPointSelected: boolean=false;\n  selectedDataPoints: Array<Array<number>> = []; // Holds the all selected points.\n  selectedSeriesIndexes: Array<number> =[];\n  contextMenuPosition = { x: '0px', y: '0px' };\n  pages: Array<Page> = [];\n  chart: ApexCharts;\n  chartId;\n  highlightedByOtherChart = false;\n  isDrillThrough: boolean;\n  appManifest: any;\n  yPosition: number;\n  xPosition: number;\n  /****\n   * Resize  chart  styles\n   */\n\n  reportId: number = 0;\n\n  // Object for bar chart options. This is of custom type.\n  public lineColumnChartOptions: Partial<LineColumnChartOptions>;\n\n  /*\n   * Subject object which helps unsubscribe all the subscribed objects in the component\n   */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  // eslint-disable-next-line @typescript-eslint/member-ordering\n\n  private drillThroughFilter: AxFilter;\n  showGhostLoader: boolean = true;\n  GhostLoaderType = GhostLoaderType;\n  LineColumnChartOrientation = LineColumnChartOrientation;\n  /*** Constructor\n   *\n   */\n  constructor(\n      private _fieldsListService: FieldsListService, // Used for get matrix data\n      private _reportBuilderMasterService: ReportBuilderMasterService,\n      private _sendToDashboardService: SendToDashboardService,\n      private _elementService: ElementService,\n      private _commonService: CommonService,\n      private _drillThroughService: DrillThroughService,\n      private _dashboardService: DashboardBuilderService,\n      private _router: Router,\n      private _filterService: FiltersService\n  ) {\n      this.property = new ChartProperty();\n  }\n\n  public get screenTypes(): typeof ScreenType {\n      return ScreenType;\n  }\n\n  @HostListener('window:mousedown', ['$event'])\n  click(event): void {\n      if (event.which === 3 && this.contextMenu.menuOpened) {\n          this.contextMenu.closeMenu();\n      }\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // 0\n\n  /**\n   * This will get called after the UI render.\n   */\n  ngAfterViewInit(): void {\n      setTimeout(() => {\n          this.property.apexChart = new ApexCharts(\n              document.getElementById(this.reportData.guid.toString()),\n              this.lineColumnChartOptions\n          );\n          this.property.apexChart.render();\n          this.getChartData();\n          this.updateChartSeries();\n      }, 0);\n  }\n\n  /**\n   * NgOnInit LifeCycle hook.\n   * This will get called on component initialization.\n   */\n  ngOnInit(): void {\n      this.xPosition = this.reportData.xPosition;\n      this.yPosition = this.reportData.yPosition;\n      this.componentRef = this;\n      this.ShowFilters = this._filterService.setVisibilityOfFilterComponent(this.reportData.filters,this.reportData.categories);\n      this.report = this._reportBuilderMasterService.report;\n      this.reportId = this.report?.id;\n      this.property.element = this.reportData;\n      // ApexChart Configurations\n      this.initializeLineColumnChartOptions();\n\n      //Subscribers for barChart\n      this.subscribers();\n  }\n\n  /**\n   * This will initialize bar-chart options.basically did apexChart configuration here.\n   */\n  initializeLineColumnChartOptions(): void{\n      const _reportData = this.reportData;\n      this.lineColumnChartOptions = {\n          title: {\n              text: this.reportData.title.text,\n              align: this.reportData.title.position,\n              style: {\n                  color: this.reportData.title.textColor,\n                  fontFamily: this.reportData.title.textStyle,\n                  fontSize: this.reportData.title.textSize\n              }\n          },\n          noData: {\n              text: 'No data to display',\n              align: 'center'\n          },\n          chart: {\n              id: 'apx-' + this.reportData.guid,\n              type: 'line',\n              height: '100%',\n              width: '100%',\n              stacked: this.reportData.showStack,\n              background: this.reportData.backgroundColor,\n              events: {\n                  dataPointSelection: (crossFilterEvent, chart, opts): void => {\n                      this.isDrillThrough=false;\n                      if (crossFilterEvent && crossFilterEvent.button === 2 && opts.dataPointIndex >=0)\n                      {\n                          this.isDrillThrough=true;\n                          this.createDrillThroughFilter(this.reportData.dimension.attribute.series[opts.dataPointIndex]);\n                      }\n                  },\n                  // for deselecting the matrix\n                  click: (crossFilterEvent, chart, opts): void=> {\n                      this.chartSelect();\n                      const target = crossFilterEvent.target as HTMLElement;\n                      if(opts.dataPointIndex >=0){\n                          if(this.highlightedByOtherChart){\n                              this.selectedSeriesIndexes = [];\n                          }\n                          this.saveSelectDataPoints(opts.globals.selectedDataPoints);\n                          this.dataPointSelection(opts);\n                      }else if(!(target instanceof HTMLElement)){\n                          this.resetCrossFilter();\n                      }\n                      this.highlightedByOtherChart = false;\n                      // deselect all selected points.\n                      this.clearSelectedDataPoint();\n                  },\n                },\n              toolbar: {\n                  show: true,\n                  export: {\n                      csv: {\n                        filename: this.reportData.title.text\n                      },\n                      svg: {\n                        filename: this.reportData.title.text\n                      },\n                      png: {\n                        filename: this.reportData.title.text\n                      }\n                    },\n              },\n              animations: {\n                  enabled: false\n              }\n\n          },\n          plotOptions: {\n              bar: {\n                  horizontal:\n                      this.reportData.orientation === LineColumnChartOrientation.horizontal\n              }\n          },\n          dataLabels: {\n              enabled: this.reportData.showDataLabels,\n              style: {\n                  colors: [this.reportData.dataLabelColor]\n              }\n          },\n          yaxis: [\n              {\n                  axisBorder: {\n                      color: this.reportData.borderColor\n                  },\n                  labels: {\n                      show: this.reportData.showAxis,\n                      maxWidth: 95,\n                      align: 'left',\n                      style: {\n                          colors: this.reportData.legend.textColor,\n                          fontFamily: this.reportData.legend.textStyle,\n                          fontSize: this.reportData.legend.textSize\n                      }\n                  },\n                  tooltip: {\n                      enabled: true,\n                      offsetX: 0\n                  },\n                  title: {\n                    text: 'Line Chart',\n                  }\n              },\n              {\n                  opposite: true,\n                  axisBorder: {\n                      color: this.reportData.borderColor\n                  },\n                  labels: {\n                      show: this.reportData.showAxis,\n                      maxWidth: 95,\n                      align: 'right',\n                      style: {\n                          colors: this.reportData.legend.textColor,\n                          fontFamily: this.reportData.legend.textStyle,\n                          fontSize: this.reportData.legend.textSize\n                      }\n                  },\n                  tooltip: {\n                      enabled: true,\n                      offsetX: 0\n                  },\n                  title: {\n                    text: 'Column Chart',\n                  }\n              }],\n          grid: {\n              xaxis: {\n                  lines: {\n                      show: false\n                  }\n              }\n          },\n          legend: {\n              position: this.reportData.legend.position,\n              show: this.reportData.legend.enable,\n              fontSize: this.reportData.legend.textSize,\n              fontFamily: this.reportData.legend.textStyle,\n              horizontalAlign: 'left',\n              labels: {\n                  colors: this.reportData.legend.textColor\n              },\n              markers: {\n                  fillColors: this.getSeriesColors(),\n              }\n          },\n          series: [],\n          xaxis: {\n              labels: {\n                  show: this.reportData.showAxis,\n                  trim: true,\n                  rotate: -60,\n                  maxHeight: 85,\n              },\n              axisBorder: {\n                  color: this.reportData.borderColor\n              },\n              tickAmount: 40,\n              tickPlacement: 'between',\n          },\n          states: {\n              active: {\n                  allowMultipleDataPointsSelection: true,\n              },\n          },\n           fill: {\n             colors: [function({ seriesIndex }) {\n               return  _reportData.matrix.attributes[seriesIndex].color;\n             }]\n           }\n\n      };\n  }\n\n  /**\n   * This will return series color.\n   */\n  getSeriesColors(): Array<string>{\n      const seriesColors = [];\n      this.reportData?.matrix?.attributes.forEach((atrribute: AttributeData)=>{\n          seriesColors.push(atrribute.color);\n      });\n      return seriesColors;\n  }\n\n  /**\n   * Subscribers for barChart..\n   */\n  subscribers(): void{\n\n      /*whenever we change the global filters we got call back from this subscriber*/\n      this._elementService.refreshDataEvent$\n          .pipe(takeUntil(this._unsubscribeAll))\n          .subscribe((val: boolean) => {\n              if (val) {\n                  this.getChartData();\n              }\n          });\n\n      /*when we click on bar chart event will be emitted from this subscriber*/\n      this._elementService.crossFilterEvent.subscribe((crossFilter: CrossFilterDto) => {\n          if(crossFilter.resetFilter || crossFilter.values.length == 0)\n          {\n              this.deselectDataPoints(crossFilter);\n          }else{\n\n              this.createCrossFilter(crossFilter);\n              this.highlightedByOtherChart = true;\n          }\n\n      });\n      // Get pageslist\n      this._commonService.pageList$.subscribe((page) => {\n      this.pages=[];\n      this.reportData.matrix.attributes?.forEach((attribute) => {\n              page?.forEach((_page) => {\n                      _page?.drillData?.forEach((drillData) => {\n                          if((drillData.columnName===attribute.columnName && drillData.tableName===attribute.tableName)\n                              || (this.reportData.dimension.attribute && this.reportData.dimension.attribute.columnName === drillData.columnName && this.reportData.dimension.attribute.tableName === drillData.tableName)){\n                              this.pages.push(_page);\n                          }\n                      });\n              });\n          });\n      this.pages = this.pages.filter(p => p.id !== this.currentPageId);\n      });\n  }\n\n  /**\n   * Clone selected data points\n   *\n   * @param dataPoints\n   */\n  saveSelectDataPoints(dataPoints: Array<Array<number>>){\n      this.selectedDataPoints = [];\n      dataPoints.forEach((matrixs,ind) => {\n          const points = [];\n          matrixs.forEach((matrix)=>{\n              points.push(matrix);\n          });\n          this.selectedDataPoints.push(points);\n      });\n  }\n\n  /**\n   * Created filter object for cross filtering.\n   *\n   *  @param CrossFilterDto\n   */\n  createCrossFilter(crossFilterData: CrossFilterDto): void{\n      const axExpression= new AxExpression();\n      axExpression.comparisonOperator.text = 'In';\n      axExpression.comparisonOperator.value = 'IN';\n      axExpression.valueType = 2;\n      axExpression.field= new Attribute(crossFilterData.attributeData as unknown as Attribute);\n      const axExpTextList = new AxExpTextList();\n      crossFilterData.values.forEach((value)=>{\n          axExpTextList.value.push(value);\n      });\n      axExpression.value= axExpTextList;\n      const _searchNodes= new SearchNode();\n      _searchNodes.expression= axExpression;\n      const _filter = new AxFilter();\n      _filter.searchNodes.push(_searchNodes);\n      _filter.appVersionId=0;\n      this.getCrossFilterData(_filter,crossFilterData);\n  }\n\n   /**\n    * pushed the filter object into basic filter and applied the filter on the data\n    *\n    *  @param CrossFilterDto\n    *  @param AxFilter\n    */\n   getCrossFilterData(_filter: AxFilter, crossFilterData: CrossFilterDto): void{\n      if (this.reportData.matrix.attributes.length && this.reportData.dimension.attribute) {\n          const elementDto = new ElementsDto(this.reportData);\n          elementDto.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n          elementDto.filters.localFilters.basic.push(_filter);\n          elementDto.filters.localFilters.category =this._elementService.getValidFilterCategory(this.reportData.categories);\n          elementDto.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic);\n          elementDto.filters.globalFilters.category =this._elementService.getValidFilterCategory(this._elementService.filtersDto.category);\n          elementDto.reportId = this.reportId;\n          if(crossFilterData.selectedIndexLength === 0){\n              elementDto.filters.localFilters.basic=[];\n              this.deselectDataPoints(crossFilterData);\n          }\n          this._fieldsListService\n          .getMatrixData(elementDto)\n          .then((entitiesAttribute: ElementsDto) => {\n              const selectedDataPointArray =[];\n              entitiesAttribute.dimension.attribute.series.forEach((_elementDto) => {\n                  const seriesIndex=(this.reportData.dimension.attribute.series.indexOf(_elementDto));\n                  selectedDataPointArray.push(seriesIndex);\n               });\n              //if matrix is not same then crossfilter should not apply\n              if (entitiesAttribute != null) {\n                  this.highlightSeriesData(selectedDataPointArray);\n              }\n          });\n      }\n  }\n\n  /**\n   * set data to chart if entitiesAttribute is not equal to null then this method will call and will highlight the matrix\n   */\n  highlightSeriesData(indexList: Array<number>): void {\n      const  _reportData = this.reportData;\n\n      this.property.apexChart.updateOptions({\n         fill: {\n             colors: [function({ seriesIndex,dataPointIndex }) {\n               if(indexList.includes(dataPointIndex) ) {\n                 return  _reportData.matrix.attributes[seriesIndex].color;\n             } else {\n                  return  _reportData.matrix.attributes[seriesIndex].color+  '60';\n               }\n             }]\n           }\n     });\n  }\n\n  /**\n   * Clear the selected data points.\n   */\n  clearSelectedDataPoint(): void{\n      this.selectedDataPoints.forEach((matrixs,ind) => {\n          matrixs.forEach((matrix,matInd)=>{\n              this.property.apexChart.toggleDataPointSelection(ind,matrix);\n          });\n      });\n      this.selectedDataPoints = [];\n  }\n\n  /**\n   *\n   * Called when we select a bar by a click event\n   *\n   * @param opts\n   */\n   dataPointSelection(opts: any): void{\n      let crossFilterDto: CrossFilterDto;\n      if(opts.dataPointIndex >=0){\n          crossFilterDto = {\n              values: [],\n              attributeData: this.reportData.dimension.attribute,\n              chartType: this.reportData.type,\n              elementGuid: this.reportData.guid,\n              resetFilter:false,\n              selectedIndexLength: 1\n          };\n          if(this.selectedSeriesIndexes.includes(opts.dataPointIndex)){\n              const ind = this.selectedSeriesIndexes.indexOf(opts.dataPointIndex);\n              this.selectedSeriesIndexes.splice(ind,1);\n          }else{\n              this.selectedSeriesIndexes.push(opts.dataPointIndex);\n          }\n\n          //if index is already present in selectedDataPoints array then pop the specific index\n            this.selectedSeriesIndexes.forEach((index) => {\n              if(crossFilterDto.values.includes(this.reportData.dimension.attribute.series[index])){\n                  crossFilterDto.values.splice(crossFilterDto.values.indexOf(this.reportData.dimension.attribute.series[index]),1);\n              }\n              else{\n              crossFilterDto.values.push(this.reportData.dimension.attribute.series[index]);\n              }\n          });\n      }\n      this._elementService.triggerCrossFilter(crossFilterDto);\n\n  }\n\n  /**\n   * Reset cross filter and emit reset cross filter event.\n   */\n  resetCrossFilter(): void{\n      let crossFilterDto: CrossFilterDto;\n      crossFilterDto = {\n          values: null,\n          attributeData:null,\n          chartType: this.reportData.type,\n          elementGuid: this.reportData.guid,\n          resetFilter:true,\n          selectedIndexLength: 0\n\n      };\n      this.selectedSeriesIndexes= [];\n      this._elementService.triggerCrossFilter(crossFilterDto);\n\n  }\n\n\n  /**\n   * On destroy\n   */\n  ngOnDestroy(): void {\n      // Unsubscribe from all subscriptions\n      this._unsubscribeAll.next();\n      this._unsubscribeAll.complete();\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n\n/**\n * Get data\n */\n getChartData(): void {\n    if (this.reportData.matrix.attributes.length && this.reportData.dimension.attribute) {\n        if (this.drillThroughParentType == ScreenType.dashboardBuilder || this.drillThroughParentType == ScreenType.containerDashboard) {\n            this.reportData.apiType = 'dashboard';\n        }\n        const data = new ElementsDto(this.reportData);\n        if (this.screenType === this.screenTypes.drillThrough) {\n            data.filters.globalFilters.basic.push(this.drillThroughFilterInput);\n        } else {\n            data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);\n            data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);\n        }\n        data.filters.localFilters.basic = this._elementService.getValidFilter(this.reportData.filters);\n        data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.reportData.categories);\n        data.reportId = this.reportId;\n        data.isCustomElement = this.reportData.isCustomElement;\n        this._fieldsListService.getMatrixData(data).then((entitiesAttribute: ElementsDto) => {\n            if (entitiesAttribute != null) {\n                this.chartRendered.emit();\n                this.setDataToChart(entitiesAttribute);\n                this.showGhostLoader = false;\n            }\n        });\n    } else {\n        this.chartRendered.emit();\n        this.showGhostLoader = false;\n    }\n}\n\n  /**\n   * set data to chart if entitiesAttribute is not equal to null then this method will call\n   */\n  /**\n * setDataToChart\n * Updated to merge incoming service data with the existing matrix attributes,\n * so that user-set displayType (and related properties) are preserved.\n */\nsetDataToChart(entitiesAttribute: ElementsDto): void {\n    console.log(\"Starting setDataToChart with entitiesAttribute:\", entitiesAttribute);\n    const startTime = performance.now(); // Start time measurement\n\n    // Create a more unique key using both name and table name\n    const keyFromAttr = (attr: AttributeData): string => {\n        return `${attr.name}_${attr.tableName || attr.columnName || 'default'}`;\n    };\n\n    // Store existing attributes with their properties\n    const existingAttrs = new Map(\n        this.reportData.matrix.attributes.map(attr => [\n            keyFromAttr(attr),\n            {\n                displayType: attr.displayType || ChartDisplayType.Column,\n                aggregateFn: attr.aggregateFn,\n                color: attr.color,\n                series: attr.series\n            }\n        ])\n    );\n\n    // Merge incoming attributes while preserving properties\n    const mergedAttributes: AttributeData[] = [];\n    entitiesAttribute.matrix.attributes.forEach(attribute => {\n        const newAttr = new AttributeData(attribute);\n        const lookupKey = keyFromAttr(newAttr);\n        const existing = existingAttrs.get(lookupKey);\n\n        if (existing) {\n            // Preserve existing properties\n            newAttr.displayType = existing.displayType;\n            newAttr.aggregateFn = existing.aggregateFn;\n            newAttr.color = existing.color;\n        } else {\n            // Set defaults for new attributes\n            newAttr.displayType = attribute.displayType\n                ? attribute.displayType\n                : (this.reportData.matrix.attributes.length === 0 ? ChartDisplayType.Line : ChartDisplayType.Column);\n            newAttr.aggregateFn = attribute.aggregateFn || 'count';\n            newAttr.color = attribute.color;\n        }\n        newAttr.series = attribute.series;\n        mergedAttributes.push(newAttr);\n    });\n\n    // Update model\n    this.reportData.matrix.attributes = mergedAttributes;\n    this.reportData.dimension.attribute = entitiesAttribute.dimension.attribute;\n\n    // Create series data with proper type information\n    const seriesData = mergedAttributes.map(attribute => ({\n        name: attribute.label,\n        type: attribute.displayType === ChartDisplayType.Line ? 'line' : 'column', // Convert enum to ApexCharts type\n        data: attribute.series.map(val => Number(val)),\n        color: attribute.color,\n        yAxisIndex: attribute.displayType === ChartDisplayType.Line ? 0 : 1\n    }));\n\n    const options = {\n        series: seriesData,\n        xaxis: {\n            categories: this.reportData.dimension.attribute.series || []\n        },\n        yaxis: [\n            {\n                title: { \n                    text: this.reportData.yAxisLeftTitle || 'Line Chart'\n                }\n            },\n            {\n                opposite: true,\n                title: {\n                    text: this.reportData.yAxisRightTitle || 'Column Chart'\n                }\n            }\n        ]\n    };\n\n    this.property.apexChart.updateOptions(options, true, true);\n    const endTime = performance.now(); // End time measurement\n    console.log(\"setDataToChart completed in\", (endTime - startTime).toFixed(2), \"milliseconds\");\n}\n\n  /**\n   * attributeDropped\n   * Called when attribute is dragged from left side fields list and dropped on the bar chart\n   *\n   * @param $event\n   */\n  attributeDropped($event: CdkDragDrop<any>): void {\n      //--commented\n  //     $event.item.data.aggregateFn = 'count';\n  //     if (\n  //         this.reportData.matrix.attributes.length === 0 &&\n  //         this.reportData.dimension.attribute == null\n  //     ) {\n  //         this.reportData.matrix = new Matrix();\n  //         this.reportData.matrix.attributes.push(new AttributeData($event.item.data));\n  //         this.reportData.dimension = new Dimension();\n  //         this.reportData.dimension.attribute = new AttributeData($event.item.data);\n  //         this.reportData.dimension.attribute.aggregateFn = 'none';\n  //     } else if (\n  //         this.reportData.matrix.attributes.length > 0 &&\n  //         $event.item.data.enlightenType instanceof Text &&\n  //         this.reportData.dimension.attribute == null\n  //     ) {\n  //         this.reportData.dimension.attribute = new AttributeData($event.item.data);\n  //     } else {\n  //         this.reportData.matrix.attributes.push(new AttributeData($event.item.data));\n  //         const seriesData = [];\n  //         this.reportData.matrix.attributes.forEach((attr) => {\n  //             seriesData.push({\n  //                 name: attr.label,\n  //                 data: attr.series,\n  //                 color: attr.color\n  //             });\n  //         });\n  //         this.barChartOptions.series = seriesData;\n  //     }\n  //     this._commonService.isReportBuilderDirty = true;\n  //     this.getChartData();\n  //     const seriesData = [];\n  //     this.reportData.matrix.attributes.forEach((attr) => {\n  //         seriesData.push({\n  //             name: attr.label,\n  //             data: attr.series,\n  //             color: attr.color\n  //         });\n  //     });\n  //     this.property.apexChart.updateSeries(seriesData);\n  // }\n  $event.item.data.aggregateFn = 'count';\n      const isMatrixEmpty = this.reportData.matrix.attributes.length === 0;\n      const isDimensionEmpty = this.reportData.dimension.attribute == null;\n      const isTextType = $event.item.data.enlightenType instanceof Text;\n\n      if (isMatrixEmpty && isDimensionEmpty) {\n          this.initializeMatrixAndDimension($event.item.data);\n      } else if (!isMatrixEmpty && isDimensionEmpty && isTextType) {\n          this.setDimensionAttribute($event.item.data);\n      } else {\n          this.addMatrixAttribute($event.item.data);\n      }\n\n      this._commonService.isReportBuilderDirty = true;\n      this.getChartData();\n      this.updateChartSeries();\n  }\n\n  private initializeMatrixAndDimension(data: any): void {\n    this.reportData.matrix = new Matrix();\n    const attr = new AttributeData(data);\n    // Force the first metric's displayType to Line\n    attr.displayType = ChartDisplayType.Line;\n    this.reportData.matrix.attributes.push(attr);\n\n    this.reportData.dimension = new Dimension();\n    const dimAttr = new AttributeData(data);\n    // For dimensions, keep aggregateFn as 'none'\n    dimAttr.aggregateFn = 'none';\n    this.reportData.dimension.attribute = dimAttr;\n    }\n\n\n  private setDimensionAttribute(data: any): void {\n      this.reportData.dimension.attribute = new AttributeData(data);\n  }\n\n  private addMatrixAttribute(data: any): void {\n    const newAttr = new AttributeData(data);\n    // If this is the first attribute, force displayType to Line;\n    // otherwise, default to Column if not set.\n    if (this.reportData.matrix.attributes.length === 0) {\n        newAttr.displayType = ChartDisplayType.Line;\n    } else if (!newAttr.displayType) {\n        newAttr.displayType = ChartDisplayType.Column;\n    }\n    newAttr.aggregateFn = 'count';\n    this.reportData.matrix.attributes.push(newAttr);\n    this.updateChartSeries();\n    }\n\n\nprivate updateChartSeries(): void {\n  if (!this.reportData?.matrix?.attributes?.length) {\n    return;\n  }\n\n  // Create series data by converting enum to proper ApexCharts string\n  const seriesData = this.reportData.matrix.attributes.map(attr => ({\n    name: attr.label,\n    type: attr.displayType === ChartDisplayType.Line ? 'line' : 'column',\n    data: attr.series.map(val => Number(val)),\n    color: attr.color,\n    yAxisIndex: attr.displayType === ChartDisplayType.Line ? 0 : 1\n  }));\n\n  // Check if any series is set to 'line'\n  const hasLineSeries = this.reportData.matrix.attributes.some(\n    attr => attr.displayType === ChartDisplayType.Line\n  );\n  // If at least one series is line, disable stacking even if showStack is true\n  const stacked = !hasLineSeries && this.reportData.showStack;\n\n  // Update chart options including animation for smooth transition\n  this.property.apexChart.updateOptions({\n    chart: {\n      stacked: this.reportData.showStack,\n      animations: {\n        enabled: true,\n        easing: 'easeinout',\n        speed: 800\n      }\n    },\n    series: seriesData,\n    xaxis: {\n      categories: this.reportData.dimension.attribute?.series || []\n    },\n    yaxis: [\n      {\n        title: { text: this.reportData.yAxisLeftTitle || 'Line Chart' },\n        seriesName: 'Line'\n      },\n      {\n        opposite: true,\n        title: { text: this.reportData.yAxisRightTitle || 'Column Chart' },\n        seriesName: 'Column'\n      }\n    ]\n  }, true, true);\n}\n\n  chartSelect(): void {\n      this.onchartClickedEvent.emit(this.property);\n  }\n  /**\n   * Created filter object for cross filtering.\n   *\n   *  @param CrossFilterDto\n   */\n   createDrillThroughFilter(series: any): void{\n      const axExpression= new AxExpression();\n      axExpression.comparisonOperator.text = 'In';\n      axExpression.comparisonOperator.value = 'IN';\n      axExpression.valueType = 2;\n      axExpression.field= new Attribute(this.reportData.dimension.attribute as unknown as Attribute);\n      const axExpTextList = new AxExpTextList();\n      axExpTextList.value.push(series);\n      axExpTextList.isSearchable = true;\n      axExpression.value= axExpTextList;\n      const _searchNodes= new SearchNode();\n      _searchNodes.expression= axExpression;\n      this.drillThroughFilter = new AxFilter();\n      this.drillThroughFilter.searchNodes.push(_searchNodes);\n      this.drillThroughFilter.appVersionId=0;\n  }\n\n\n  /***\n   * On chart context  click Function\n   */\n  onContextMenu(event: MouseEvent, chart: LineColumnChart): void {\n      if(!this.isEditable &&\n          ([this.screenTypes.containerDashboard, this.screenTypes.drillThrough].includes(this.screenType))\n          && !this.pages.length){\n          event.preventDefault();\n          return;\n      }\n\n      if (!this.isEditable && (this.screenType !== ScreenType.drillThrough)) {\n          const centralPage: HTMLElement = document.getElementById(this.guid);\n          const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n          event.preventDefault();\n          this.contextMenuPosition.x = ( event.clientX -centralPageBounds.x ) + 'px';\n          this.contextMenuPosition.y = (event.clientY-centralPageBounds.y) + 'px';\n          this.contextMenu.menuData = { chart: chart };\n          this.contextMenu.menu.focusFirstItem('mouse');\n          this.contextMenu.openMenu();\n      }\n      else{\n          event.preventDefault();\n          this.contextMenuPosition.x = event.clientX + 'px';\n          this.contextMenuPosition.y = event.clientY + 'px';\n          this.contextMenu.menuData = { chart: chart };\n          this.contextMenu.menu.focusFirstItem('mouse');\n          this.contextMenu.openMenu();\n      }\n  }\n  /***\n   * Delete chart Function\n   */\n  openOptionPopUp(): void {\n      this.onchartRightClickDeleteEvent.emit(this.uniquekey);\n  }\n\n  onDeleteClick(event: MouseEvent): void {\n      this._commonService.isDashboardBuilderDirty = true;\n      event.preventDefault();\n      event.stopPropagation();\n      // item.isDeleted = true_d\n      this._dashboardService.deleteDashboardElement(this.reportData);\n      this.contextMenu.closeMenu();\n  }\n\n\n  /***\n   * Pin to Dashboard Function\n   */\n  sendToDashboard(): void {\n      const sendToDashboardData: ISendToDashboardData = {\n          filter: null,\n          filterCategory: null,\n          appVersionId: this.report.appVersionId,\n          type: 'element',\n          element: this.reportData\n      };\n      this._sendToDashboardService.sendToDashboard(sendToDashboardData);\n  }\n\n  /****\n   * chartResizeMinDimensions =   this function use  Resize min dimensions validation\n   */\n\n  chartResizeMinDimensions(event: ResizeEvent): boolean {\n      const MIN_DIMENSIONS_PX: number = 50;\n      this._commonService.isReportBuilderDirty = true;\n      if (\n          event.rectangle.width &&\n          event.rectangle.height &&\n          (event.rectangle.width < MIN_DIMENSIONS_PX ||\n              event.rectangle.height < MIN_DIMENSIONS_PX)\n      ) {\n          return false;\n      }\n      return true;\n  }\n\n  /****\n   * onResizing = this function use for resize the  chart\n   */\n  onResizing(event: ResizeEvent): void {\n      const centralPage: HTMLElement = document.getElementById('central-page');\n      const centralPageBounds: DOMRect = centralPage.getBoundingClientRect();\n      if (event.rectangle.right >= centralPageBounds.right && event.edges.right) {\n          event.rectangle.right = centralPageBounds.right;\n      } else if (event.rectangle.left < centralPageBounds.left) {\n          event.rectangle.left = centralPageBounds.left;\n      } else if (event.rectangle.bottom > centralPageBounds.bottom) {\n          event.rectangle.bottom = centralPageBounds.bottom;\n      } else if (event.rectangle.top < centralPageBounds.top) {\n          event.rectangle.top = centralPageBounds.top;\n      }\n      event.rectangle.width = event.rectangle.right - event.rectangle.left;\n      event.rectangle.height = event.rectangle.bottom - event.rectangle.top;\n      if (\n          event.edges.bottom !== 0 &&\n          event.edges.top !== 0 &&\n          event.edges.left !== 0 &&\n          event.edges.right !== 0\n      ) {\n          event.edges.top = this.yPosition + Number(event.edges.top);\n          event.edges.left = this.xPosition + Number(event.edges.left);\n          this.reportData.resizeChart(event, this.property.apexChart);\n      }\n  }\n\n  /**\n   * Called when resizing ends\n   */\n  resizeEnd(){\n     this.xPosition = this.reportData.xPosition;\n     this.yPosition = this.reportData.yPosition;\n  }\n\n  /**\n   * to set isDirty after changes in bar-chart filter\n   *\n   */\n  dirtyFlowCheckEvent(): void {\n      this._commonService.isReportBuilderDirty = true;\n  }\n\n  /**\n   * call cdk drag start event\n   *\n   * @param $event\n   */\n  dragStart($event: DragEvent): void {\n      this.handle = true;\n  }\n  /**\n   * call cdk drag end event\n   *\n   * @param $event\n   */\n  dragEnd($event: DragEvent): void {\n      this.handle = false;\n      this.xPosition = this.reportData.xPosition;\n      this.yPosition = this.reportData.yPosition;\n  }\n  /**\n   * Deselecting the selected matrix\n   *\n   */\n    deselectDataPoints(crossFilterData: CrossFilterDto): void{\n      const _reportData= this.reportData;\n      this.selectedDataPoints.forEach((dataPointIndexs,ind)=>{\n          // if(this.reportData.guid != crossFilterData.elementGuid){\n              dataPointIndexs.forEach((attributeInd)=>{\n                  this.property.apexChart.toggleDataPointSelection(ind,attributeInd);\n              });\n          // }\n      }); this.property.apexChart.updateOptions({\n          fill: {\n              colors: [function({ value,seriesIndex }) {\n                return  _reportData.matrix.attributes[seriesIndex].color;\n              }]\n          }\n    });\n      this.selectedDataPoints = [];\n}\n\n  /**\n   * Called on page name clicked on dropdown options of drill through pages\n   *\n   * @param page\n   */\n  pageClick(page: Page): void{\n      if(this.screenType !== ScreenType.drillThrough){\n          if(this.drillThroughParentType ? this.drillThroughParentType == ScreenType.reportBuilder : this.isEditable){\n              this._drillThroughService.setParentData(this.reportId, this._reportBuilderMasterService.report.name, this._router.url);\n              this.navigateToDrillThrough(page);\n          }\n          else{\n              this._dashboardService.dashboard$.pipe(takeUntil(this._unsubscribeAll)).subscribe((dashboard) => {\n                  this._drillThroughService.setParentData(this.reportId, dashboard.name, this._router.url);\n                  this.navigateToDrillThrough(page);\n              });\n          }\n      } else {\n          this.navigateToDrillThrough(page);\n      }\n  }\n\n  /**\n   * Navigate to drill through component with page id as route params\n   * Checks the parent URL if it is already exists or not\n   *\n   * @param page\n   */\n  navigateToDrillThrough(page: Page){\n      const parentUrl: string = this._drillThroughService.getParentData().url;\n      this._drillThroughService.drillPage(page,this.drillThroughFilter);\n      if(!parentUrl){\n          this._router.navigate([this._router.url +'/drill-through/' + page.id]);\n      } else {\n          this._router.navigate([parentUrl,'drill-through',page.id]);\n      }\n  }\n\n  /**\n   * Apply local filter.\n   */\n  applyLocalFilter(): void{\n      this.getChartData();\n  }\n}","import { Type } from '@angular/core';\nimport { Chart } from '../chart/chart';\nimport { Dimension } from '../chart/dimension';\nimport { Legend } from '../chart/legend';\nimport { Matrix } from '../chart/matrix';\nimport { LineColumnChartComponent } from './line-column-chart.component';\nexport enum LineColumnChartOrientation {\n  horizontal = 1,\n  vertical = 2\n}\n\nexport enum LineColumnLegend {\n  top = 'top',\n  bottom = 'bottom',\n}\n\nexport enum ChartAggregate {\n  none = 'none',\n  sum = 'sum',\n  average = 'average',\n  count = 'count',\n}\n\nexport enum ChartDisplayType {\n  Line = 'line',\n  Column = 'column'\n}\n\n//holds properties of linecolumnchart\nexport class LineColumnChart extends Chart {\n  component: Type<LineColumnChartComponent> = LineColumnChartComponent;\n\n  // Attributes for LineColumnChart\n  colorType: string;\n  colorFormatting: string;\n  formatRule: string;\n  dimension: Dimension;\n  matrix: Matrix;\n  orientation: LineColumnChartOrientation;\n  legend: Legend;\n  showAxis: boolean;\n  showAxisTitle: boolean;\n  show: boolean;\n  borderColor: string;\n  axisData: string;\n  showGrid: boolean;\n  seriesColor: Array<string>;\n  aggregate: string;\n  yAxisLeftTitle: string = 'Line Chart';\n  yAxisRightTitle: string = 'Column Chart';\n\n\n  /**\n   Constructor\n   * */\n  constructor(lineColumnChart?: LineColumnChart) {\n    super(lineColumnChart);\n    if(lineColumnChart){\n      this.lineColumnChart(lineColumnChart);\n    }\n    else{\n      this.newlineColumnChart();\n    }\n  }\n\n    //function to create linecolumn chart object\n    newlineColumnChart(): void{\n    this.dimension =  new Dimension();\n    this.matrix =  new Matrix();\n    this.legend =  new Legend();\n    this.colorType =  '';\n    this.colorFormatting =  '';\n    this.formatRule =  '';\n    this.showAxis =  true;\n    this.showAxisTitle =  true;\n    this.show =  true;\n    this.borderColor =  '';\n    this.axisData =  'Axis Title';\n    this.showGrid =  true;\n    this.orientation =  LineColumnChartOrientation.vertical;\n    this.subType =  'line-column-chart';\n    this.aggregate = 'count';\n    this.title.text = \"Line-Column chart\";\n  }\n\n  /**function to create line-column chart object with existing value\n  *\n  *@param LineColumnChart\n  */\n  lineColumnChart(lineColumnChart: LineColumnChart): void{\n    this.dimension =  new Dimension(lineColumnChart.dimension) ;\n    this.matrix =  new Matrix(lineColumnChart.matrix);\n    this.legend =  new Legend(lineColumnChart.legend);\n    this.colorType =  lineColumnChart.colorType;\n    this.colorFormatting =  lineColumnChart.colorFormatting;\n    this.formatRule =  lineColumnChart.formatRule;\n    this.showAxis =  lineColumnChart.showAxis ;\n    this.showAxisTitle =  lineColumnChart.showAxisTitle;\n    this.show =  lineColumnChart.show ;\n    this.borderColor =  lineColumnChart.borderColor;\n    this.axisData =  lineColumnChart.axisData ;\n    this.showGrid =  lineColumnChart.showGrid ;\n    this.orientation =  lineColumnChart.orientation ;\n    this.subType =  lineColumnChart.subType ;\n    this.aggregate =  lineColumnChart.aggregate ;\n    this.yAxisLeftTitle = lineColumnChart.yAxisLeftTitle || 'Line Chart';\n    this.yAxisRightTitle = lineColumnChart.yAxisRightTitle || 'Column Chart';\n  }\n\n  // update  chart orientation\n  updateOrientation(apexChart: ApexCharts): void {\n    apexChart.updateOptions({\n      plotOptions: {\n        bar: {\n          horizontal: this.orientation === LineColumnChartOrientation.horizontal\n        }\n      }\n    });\n  }\n\n  updateXaxis(apexChart: ApexCharts): void {\n    let series = [];\n    if (this.dimension.attribute) {\n        series = this.dimension.attribute.series;\n    }\n\n    // Base configuration for both axes\n    const axisConfig = {\n        show: this.showAxis,\n        axisBorder: {\n            show: this.showAxis,\n            color: this.borderColor\n        },\n        labels: {\n            show: this.showAxis,\n            maxWidth: 95,\n            style: {\n                colors: this.legend.textColor,\n                fontFamily: this.legend.textStyle,\n                fontSize: this.legend.textSize\n            }\n        },\n        tooltip: {\n            enabled: true,\n            offsetX: 0\n        }\n    };\n\n    apexChart.updateOptions({\n        xaxis: {\n            ...axisConfig,\n            categories: series,\n            labels: {\n                ...axisConfig.labels,\n                trim: true,\n                rotate: -60,\n                maxHeight: 85\n            },\n            tickAmount: 40,\n            tickPlacement: 'between'\n        },\n        yaxis: [\n            {\n                ...axisConfig,\n                title: {\n                    text: this.yAxisLeftTitle,  // Use the left axis title from the model\n                    show: this.showAxisTitle\n                }\n            },\n            {\n                ...axisConfig,\n                opposite: true,\n                title: {\n                    text: this.yAxisRightTitle, // Use the right axis title from the model\n                    show: this.showAxisTitle\n                }\n            }\n        ]\n    });\n  }\n\n\n  // Update chart grid  property\n  updateGrid(apexChart: ApexCharts): void {\n    apexChart.updateOptions({\n      grid: {\n        show: this.showGrid,\n      }\n    });\n  }\n\n\n  setDefaultName(): void{\n    switch (this.orientation) {\n      case LineColumnChartOrientation.vertical:\n        if(this.showStack){\n          this.title.text= 'Stacked Line Column Chart';\n        }else{\n          this.title.text= 'Vertical Line Column Chart';\n        }\n        \n\n        break;\n      case LineColumnChartOrientation.horizontal:\n        if(this.showStack){\n          this.title.text= 'Stacked Line Column Chart';\n        }else{\n          this.title.text= 'Horizontal Line Column Chart';\n        }\n        break;\n\n    }\n  }\n}\n","import { IEnlightenType } from './types/ienlighten-type';\nimport { ChoiceList } from './types/choicelist';\nimport { DateTime } from './types/datetime';\nimport { Hyperlink } from './types/hyperlink';\nimport { AxLocation } from './types/ax-location';\nimport { Toggle } from './types/toggle';\nimport { Video } from './types/video';\nimport { Utils } from '../utils/utils';\nimport { AxFile } from './types/ax-file';\nimport { AxText } from './types/ax-text';\nimport { AxNumber } from './types/ax-number';\nimport { AxImage } from './types/ax-image';\nimport { AxDocument } from './types/ax-document';\nimport { Aggregate } from '../report/tabular-report/aggregate';\nimport { ValueFormatting } from '../report/tabular-report/value-formatting';\nimport { Attribute } from '../data-model/attribute';\nimport { OrderByType } from '../report/tabular-report/orderby-type';\nimport { AxDate } from './types/ax-date';\nimport { AxTime } from './types/ax-time';\nimport { AxoUtils } from '../../axo-utils/axo-utils';\nimport { ConditionalFormatting } from '../../data-view-lib/data-view/conditional-formatting';\nimport { TagStyle } from '../../data-view-lib/data-view/tag-style';\nimport { ChartDisplayType } from '../report/graphical-report/line-column-chart/line-column-chart';\n\nexport class AttributeData {\n    name: string;\n    prompt: string;\n    entityName: string;\n    sqlType: string;\n    enlightenType: IEnlightenType;\n    attributes: AttributeData[];\n    series: Array<any>;\n    labels: Array<any>;\n    color?: string;\n    entity: string;\n    tableName: string;\n    columnName: string;\n    aggregateFn: string;\n    type: string;\n    aggregate: Aggregate;\n    alignment: string;\n    valueFormatting: ValueFormatting;\n    rowSpan: boolean;\n    colSpan: boolean;\n    groupData: Array<number>;\n    cloneGroupData: Array<number>;\n    isSortable: boolean;\n    groupBy: OrderByType;\n    cloneSeries: Array<any>;\n    uniqueSeries: Array<any>;\n    label: string;\n    widgetType: string;\n    widgetSubType: string;\n    dateFormat: string;\n    colWidth: number;\n    orderSequence: number;\n    guid: string;\n    isHidden: boolean;\n    referenceTableName: string;\n    referenceColumnName: string;\n    isManyToManyRefKey: boolean;\n    sqlFunctions: string = '';\n    selectQueryColumnName: String;\n    seriesFormatting: Array<TagStyle>;\n    conditionalFormatting: Array<ConditionalFormatting>;\n    displayType: ChartDisplayType = ChartDisplayType.Column; // Default to column\n\n    /**\n     * Constructor\n     *\n     * @param any\n     */\n    constructor(attributeData?: AttributeData | Attribute | any) {\n        this.guid = AxoUtils.guid();\n        this.name = attributeData.name ? attributeData.name : '';\n    \tthis.prompt = attributeData.prompt ? attributeData.prompt : '';\n        this.entityName = attributeData.tableName ? attributeData.tableName : '';\n        this.sqlType = attributeData.sqlType ? attributeData.sqlType : '';\n        this.attributes = [];\n        this.series = [];\n        this.labels = attributeData.labels ? attributeData.labels : [];\n        const utils = new Utils();\n        this.color = attributeData.color ? attributeData.color : utils.color;\n        this.tableName = this.entityName;\n        this.columnName = attributeData.name;\n        this.aggregateFn = attributeData && attributeData.aggregateFn||'';\n        this.type = attributeData && attributeData.type || 'int';\n        this.aggregate= attributeData && attributeData.aggregate || new Aggregate();\n        this.alignment=attributeData && attributeData.alignment || 'center';\n        this.valueFormatting=attributeData && new ValueFormatting(attributeData.valueFormatting) || new ValueFormatting();\n        this.enlightenType=attributeData && attributeData.enlightenType;\n        this.groupData=attributeData && attributeData.groupData || {};\n        this.rowSpan=attributeData && attributeData.rowSpan || false;\n        this.isSortable=attributeData && attributeData.isSortable || false;\n        this.groupBy=attributeData && attributeData.groupBy || OrderByType.none;\n        this.colSpan=attributeData && attributeData.colSpan || false;\n        this.label= attributeData && attributeData.label || '';\n        this.widgetType =attributeData && attributeData.widgetType || '';\n        this.widgetSubType =attributeData && attributeData.widgetSubType || '';\n        this.dateFormat=attributeData&&attributeData.dateFormat||'';\n        this.colWidth=attributeData&&attributeData.colWidth||100;\n        this.orderSequence=attributeData && attributeData.orderSequence||0;\n        this.isHidden = attributeData && attributeData.isHidden || false;\n        this.referenceTableName = attributeData && attributeData.referenceTableName || '';\n        this.referenceColumnName = attributeData && attributeData.referenceColumnName || '';\n        this.isManyToManyRefKey = attributeData && attributeData.isManyToManyRefKey || false;\n        this.sqlFunctions = attributeData && attributeData.sqlFunctions || '';\n        this.selectQueryColumnName = attributeData && attributeData.selectQueryColumnName || '';\n        this.seriesFormatting=[];\n        this.conditionalFormatting = attributeData && attributeData.conditionalFormatting || [];\n        this.displayType = attributeData?.displayType || ChartDisplayType.Column;\n        if(attributeData.type==='date'||attributeData.type==='datetime'||attributeData.type==='time'||attributeData.type==='timestamp' || (attributeData.widgetType==='datepicker-widget' && attributeData.type=='longtext')){\n            this.setDefaultDateFormat(attributeData);\n        }\n        if(!this.enlightenType){\n        switch (attributeData.type) {\n            case 'choicelist':\n                this.enlightenType = new ChoiceList();\n                break;\n\n            case 'datetime':\n                this.enlightenType = new DateTime();\n                if(this.valueFormatting.date===''){\n                    this.valueFormatting.date='YYYY-MM-ddTHH:mm:ss';\n                }\n                break;\n            case 'longtext':\n                if(attributeData.widgetType==='datepicker-widget'){\n                    this.enlightenType = new DateTime();\n                    if(this.valueFormatting.date===''){\n                        this.valueFormatting.date='YYYY-MM-ddTHH:mm:ss';\n                    }\n                }\n                break;\n\n            case 'timestamp':\n                this.enlightenType = new DateTime();\n                if(this.valueFormatting.date===''){\n                    this.valueFormatting.date='YYYY-MM-ddTHH:mm:ss';\n                }\n                    break;\n\n            case 'document':\n                this.enlightenType = new AxDocument();\n                break;\n\n            case 'file':\n                this.enlightenType = new AxFile();\n                break;\n\n            case 'hyperlink':\n                this.enlightenType = new Hyperlink();\n                break;\n\n            case 'image':\n                this.enlightenType = new AxImage();\n                break;\n\n            case 'location':\n                this.enlightenType = new AxLocation();\n                break;\n\n            case 'int':\n                this.enlightenType = new AxNumber();\n                break;\n\n            case 'toggle':\n                this.enlightenType = new Toggle();\n                break;\n\n            case 'video':\n                this.enlightenType = new Video();\n                break;\n            case 'date':\n                this.enlightenType = new AxDate();\n                break;\n\n            case 'time':\n                this.enlightenType = new AxTime();\n                break;\n\n            default:\n                this.enlightenType = new AxText();\n                break;\n\n        }\n      }\n    }\n\n    setDefaultDateFormat(attributeData: AttributeData): void{\n        if(this.valueFormatting.date==='MMMM dd, YYYY hh:mm:ss aa'){\n            this.valueFormatting.date='';\n        }\n        switch (attributeData.widgetSubType) {\n            case 'datetime':\n                this.enlightenType = new DateTime();\n                if(this.valueFormatting.date===''){\n                    this.valueFormatting.date='MMMM dd, YYYY hh:mm:ss aa';\n                }\n                break;\n            case 'both':\n                if(attributeData.widgetType==='datepicker-widget'){\n                    this.enlightenType = new DateTime();\n                    if(this.valueFormatting.date===''){\n                        this.valueFormatting.date='MMMM dd, YYYY hh:mm:ss aa';\n                    }\n                }\n                break;\n            case 'date':\n                this.enlightenType = new AxDate();\n                if(this.valueFormatting.date===''){\n                    this.valueFormatting.date='YYYY-MM-dd';\n                }\n                break;\n\n            case 'time':\n                this.enlightenType = new AxTime();\n                if(this.valueFormatting.date===''){\n                    this.valueFormatting.date='HH:mm:ss';\n                }\n                break;\n            case 'timestamp':\n                this.enlightenType=new DateTime();\n                if(this.valueFormatting.date===''){\n                    this.valueFormatting.date='MMMM dd, YYYY hh:mm:ss aa';\n                }\n                break;\n        }\n    }\n}\n","import { AttributeData } from '../../../fields/attribute-data';\n\nexport class Dimension {\n\tattribute?: AttributeData;\n\tvalues: Array<string>;\n\tconstructor(dimension?: Dimension){\n\t\tthis.attribute =dimension && dimension.attribute &&new AttributeData(dimension.attribute) || null;\n\t\tthis.values = dimension && dimension.values || [];\n\t}\n}\n","import { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { FilterCategory } from '../enlighten-lib/filters/filter-category';\nimport { AttributeData } from '../enlighten-lib/fields/attribute-data';\nimport { Chart } from '../enlighten-lib/report/graphical-report/chart/chart';\nimport { Dimension } from '../enlighten-lib/report/graphical-report/chart/dimension';\nimport { Matrix } from '../enlighten-lib/report/graphical-report/chart/matrix';\n\n\nexport class ElementsDto {\n    type: string;\n    apiType: string;\n    elementId: number;\n    dimension: Dimension;\n    matrix: Matrix;\n    reportId: number;\n    sqlQuery: string;\n    orderBy: Array<AttributeData>;\n    filters: ElementFilters;\n    pageIndex: number;\n    pageSize: number;\n    pageLength: number;\n    isCustomElement: boolean;\n\n\n\n    constructor(elementsDto?: Chart | any) {\n        if(elementsDto){\n            this.elementData(elementsDto);\n        }else{\n            this.newElementData();\n        }\n    }\n    /**\n     *Initalize object with  default value.\n     */\n    private newElementData(elementsDto?: Chart | any): void{\n        this.dimension = new Dimension();\n        this.matrix = new Matrix();\n        this.apiType = '';\n        this.elementId = 0;\n        this.type = '';\n        this.filters = new ElementFilters();\n        this.orderBy=[];\n        this.pageIndex=0;\n        this.pageSize=10;\n        this.pageLength=0;\n    }\n\n    /**\n     * Initalize object with  value.\n     *\n     * @param elementsDto\n     */\n    private elementData(elementsDto?: Chart | any): void{\n        this.dimension =elementsDto.dimension;\n        this.matrix = new Matrix(elementsDto.matrix);\n        this.apiType = elementsDto.apiType;\n        this.elementId = elementsDto.id;\n        this.type = elementsDto.subType;\n        this.orderBy=elementsDto.orderBy;\n        this.pageIndex=elementsDto.pageIndex;\n        this.pageSize=elementsDto.pageSize;\n        this.pageLength=elementsDto.pageLength;\n        this.filters = new ElementFilters();\n        this.sqlQuery = elementsDto.sqlQuery;\n        this.isCustomElement = elementsDto.isCustomElement;\n    }\n\n\n\n}\n\nexport class ElementFilters{\n\n    localFilters: FilterDto;\n    globalFilters: FilterDto;\n\n    constructor() {\n        this.localFilters = new FilterDto();\n        this.globalFilters = new FilterDto();\n    }\n\n}\n\nexport class FilterDto{\n    basic: Array<AxFilter> = [];\n    category: Array<FilterCategory> = [];\n\n}\n\nexport class CrossFilterDto{\n    values: Array<any>;\n    attributeData: AttributeData;\n    chartType: string;\n    elementGuid: string;\n    resetFilter: boolean;\n    selectedIndexLength: number;\n}\nexport class DrillThroughDto{\n    value: any;\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { CrossFilterDto, FilterDto,} from '../../common-dto/elements-dto';\nimport { CommonService } from '../../common.service';\nimport { AxExpDateRangeValue } from '../ax-expression/ax-exp-date-range-value';\nimport { AxExpDateTimeValue } from '../ax-expression/ax-exp-date-time';\nimport { AxExpDateTimeRangeValue } from '../ax-expression/ax-exp-date-time-range-value';\nimport { AxExpDateValue } from '../ax-expression/ax-exp-date-value';\nimport { AxExpNumberValue } from '../ax-expression/ax-exp-number-value';\nimport { AxExpTimeValue } from '../ax-expression/ax-exp-time';\nimport { AxTimeRange } from '../ax-expression/ax-exp-time-range';\nimport { AxNumberRange } from '../ax-expression/ax-number-range';\nimport { AxFilter } from '../filters/ax-filter';\nimport { ScopeType } from '../filters/condition-type';\nimport { FilterCategory } from '../filters/filter-category';\n\n\n\nexport interface ChangeData{\n  entityScope: ScopeType;\n}\n\n@Injectable()\nexport class ElementService {\n\n  filtersDto: FilterDto = new FilterDto();\n  crossFilterEnabled: BehaviorSubject<boolean | false> = new BehaviorSubject(false);\n  crossFilterEvent = new EventEmitter<any>();\n  private _refreshDataEvent: BehaviorSubject<boolean | false> = new BehaviorSubject(false);\n  // Debounce source: collapses multiple rapid filter auto-applies into a single refresh event.\n  // Without this, N dashboard filters each firing on init causes N × chartCount redundant API calls.\n  private _refreshDataSubject: Subject<boolean> = new Subject<boolean>();\n  /**\n   * Constructor\n   */\n  constructor(private _commonService: CommonService) {\n    this._refreshDataSubject.pipe(debounceTime(500)).subscribe(val => {\n      this._refreshDataEvent.next(val);\n    });\n  }\n\n\n  get refreshDataEvent$(): Observable<boolean> {\n    return this._refreshDataEvent.asObservable();\n  }\n\n  /**\n   * method calls through report filter when global filter fields values are selected.\n   */\n  refreshElementData(): void {\n    this._refreshDataSubject.next(true);\n  }\n\n  /**\n   * method calls through destroy element event subscribe\n   */\n   destroyRefreshElementData(): void {\n    this._refreshDataEvent.next(false);\n  }\n  /**\n   * Check Filter value is empty or NOT\n   *\n   * @param filters\n   * @returns\n   */\n  getValidFilter(filters: Array<AxFilter>, filterType: number = 0): Array<AxFilter>{\n    if(filters.length === 0 )\n    {\n      return [];\n    }\n    return filters.filter(filter =>{\n        // let isValidFilter = this.getValidValue(filter);\n    //    let isValid =filter.searchNodes[0].expression.value.searchable();\n        // return filter.searchNodes[0].expression.value && isValidFilter && filter.searchNodes[0].expression.value.isSearchable && !filter.isDeleted;\n        return filter.searchNodes[0].expression.searchable() && !filter.isDeleted;\n\n      }\n    );\n  }\n\n  /**\n   * return value is value or not as per the value type.\n   * i.e string,number,object\n   * @param value\n   * @returns\n   */\n  returnValidValue(value:any): boolean{\n    switch (typeof value) {\n      case \"number\":\n        return value?true:false\n      case \"string\":\n        return value?true:false\n      case \"object\":\n        if(Array.isArray(value)){\n          return value.length > 0;\n        }\n        else{\n          return value?true:false\n        }\n      default:\n        return false;\n    }\n  }\n\n  /**\n   * checks value has a property value and checks the value is valid or not.\n   * @param filter\n   * @returns\n   */\n  getValidValue(filter:any): boolean{\n    const value = filter.searchNodes[0].expression.value as any;\n    if(value && value.hasOwnProperty(\"value\")){\n      return this.returnValidValue(value.value);\n    }\n    else{\n      return this.returnValidValue(value);\n    }\n  }\n\n  /**\n   * Check filter category is empty or Not\n   *\n   * @param filterCategory\n   * @returns\n   */\n    getValidFilterCategory(filterCategory: Array<FilterCategory>, filterType: number = 0): Array<FilterCategory>{\n    if(filterCategory.length === 0){\n      return null;\n    }\n    return  filterCategory.filter(category => category.isSearchable  &&  !category.isDeleted && category.filters.length );\n  }\n  // method used to trigger the crossFilter\n  triggerCrossFilter(crossFilterDto: CrossFilterDto): void{\n    this.crossFilterEvent.emit(crossFilterDto);\n    if(crossFilterDto.resetFilter){\n      this.crossFilterEnabled.next(false);\n    }else{\n      this.crossFilterEnabled.next(true);\n    }\n  }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { AttributesDto } from '../../common-dto/attributes-dto';\nimport { FilterProperty } from '../../enlighten-lib/property/filter-property';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { AxoUtils } from '../../axo-utils/axo-utils';\nimport { WidgetSubType } from '../../forms/page/common/widget-enums';\nimport { ScreenType } from '../../enlighten-lib/filters/condition-type';\nimport { ElementService } from '../../enlighten-lib/report/element.service';\n\n@Injectable()\nexport class MultiSelectFilterService {\n  refreshFilterPropertyEvent: EventEmitter<any> = new EventEmitter();\n  parentEventEmitterRef: EventEmitter<any> = new EventEmitter();\n  refreshChildFilterEventEmitterRef: EventEmitter<any> = new EventEmitter();\n  private _parentFilterList: BehaviorSubject<any[] | null> = new BehaviorSubject(null);\n  /**\n   * Constructor\n   */\n  constructor(private _httpClient: HttpClient, private _configuration: CommonLibConfigurationService, private elementService: ElementService) { }\n  /**\n   * Getter for entities\n   */\n  get parentFilterList$(): Observable<AxFilter[]> {\n    return this._parentFilterList.asObservable();\n  }\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshChildFilter(parentFilterKey: string | number, parentFilter: AxFilter): void {\n    this.refreshChildFilterEventEmitterRef.emit({ parentKey: parentFilterKey, parentValue: parentFilter });\n  }\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshFilterProperty(filter: any): void {\n    const filterProperty = new FilterProperty();\n    filterProperty.filter = filter;\n    this.refreshFilterPropertyEvent.emit(filterProperty);\n  }\n\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshFilterListProperty(filters: Array<AxFilter>): void {\n    this._parentFilterList.next(filters);\n  }\n  /**\n   * when parent filter add to child filter then call\n   */\n  refreshParentEventEmitter(guid: string): void {\n    this.parentEventEmitterRef.emit(guid);\n  }\n\n  /**\n   * Get Category list by the app-version id\n   */\n  getAttributeSeries(data: AttributesDto): Promise<AttributesDto> {\n    data.filter = this.removeInvalidFilter(data);\n    return new Promise((resolve, reject) => {\n      this._httpClient.post('attributesdata', data).subscribe((response: any) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  /**\n   * Removed Parent Filter if parent has invalid value\n   *\n   * @param data\n   * @returns\n   */\n  removeInvalidFilter(data: AttributesDto): AxFilter{\n    const filter = new AxFilter(data.filter);\n    const filterValue = filter?.parent?.searchNodes[0]?.expression?.value;\n    if(filterValue && !this.elementService.getValidValue(filter.parent)){\n      filter.parent = null;\n    }\n    return filter;\n  }\n\n  getDistinctWidgetValue(formId: string, widgetIdentifier: string, startIndex: number, limit: number,searchedTerm: string) {\n    const formData = new FormData();\n    formData.append('form_id', formId);\n    formData.append('widget_identifier', widgetIdentifier);\n    formData.append('page_index',startIndex.toString());\n    formData.append('page_size',limit.toString());\n    formData.append('searchText',searchedTerm);\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this._configuration.axonatorX1Url + 'getDistinctWidgetValues/', formData).subscribe((response: any) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  /**\n   * Register panel scroll event (this is listener for mat options scroll.)\n   */\n  registerPanelScrollEvent(componentRef: any): void {\n    // Get options panel form select directive.\n    const panel = componentRef.selectElem.panel.nativeElement;\n\n    //Added Scroll event listener.\n    panel.addEventListener('scroll', (event) => {\n\n      // current scrolled position\n      const pos = event.srcElement.offsetHeight + event.srcElement.scrollTop;\n\n      //max scroll position\n      const max = event.srcElement.scrollHeight;\n\n      //Scrolled position and max scrolled position are same that mean scrolled reached at bottom. then load next page attribute list\n      if ((max - pos) < 2) {\n\n        //Saved current scroll position.\n        componentRef.attributeListScrollPos = event.srcElement.scrollTop;\n\n        componentRef.startIndex=componentRef.startIndex + 10;\n        //Fetch distinct values of widget values of next page as lazy load.\n        if (componentRef.screenType === ScreenType.dataList || componentRef.screenType === ScreenType.dataView || componentRef.screenType === ScreenType.dataViewBuilder) {\n          if(componentRef.expression.field.widgetSubType === WidgetSubType.fixedList){\n            componentRef.seriesList = componentRef.expression.field.fixedSeries;\n          }\n          else{\n            this.getDistinctWidgetValue(componentRef.formId, componentRef.expression.field.name,componentRef.startIndex,componentRef.limit,componentRef.searchedTerm).then((data: Array<any>) => {\n              if(data.length>0){\n                data.forEach((seriesData) => {\n                  componentRef.seriesList=componentRef.seriesList as Array<any>;\n                  if(!componentRef.seriesList.includes(seriesData)){\n                    componentRef.seriesList.push(seriesData);\n                  }\n                });\n              }\n            });\n          }\n          componentRef.isNoData = componentRef.seriesList.length ? true : false;\n        }\n        //Fetch Attribute list of next page as lazy load.\n        else{\n            this.getAttributeList(componentRef);\n        }\n\n\n      }\n    });\n  }\n  /**\n   * Get the Attribute form object list.this\n   */\n  getAttributeList(componentRef: any): void {\n    if (componentRef.totalAttribute > componentRef.seriesList.length) {\n      //Increase current page number.\n      componentRef.currentAttributePage++;\n      //Called attributDto object list api\n      const attributeData = new AttributesDto();\n      attributeData.reportId = componentRef.reportId;\n      attributeData.filter = componentRef.filter;\n      attributeData.currentPage = componentRef.currentAttributePage;\n      attributeData.serachText = componentRef.searchedTerm;\n      componentRef._multiSelectFilterService.getAttributeSeries(attributeData).then((attribute) => {\n        componentRef.seriesType = componentRef.filter.searchNodes[0].expression.field.widgetSubType;\n        if(componentRef.seriesType === WidgetSubType.dateTime || componentRef.seriesType === WidgetSubType.dateTimeOld){\n          this.setDateTimeListSeriesValue(attribute, componentRef);\n        }else{\n          this.setAttributeSeriesValue(attribute, componentRef);\n        }\n        componentRef.isNoData = componentRef.seriesList.length ? true : false;\n        componentRef.totalAttribute = attribute.totalRecords;\n      }).catch((error) => {\n        componentRef.isattributeLoaded = true;\n      });\n    }\n  }\n  /**\n   * set date time drop down list value\n   *\n   * @param attribute\n   * @param componentRef\n   */\n  setDateTimeListSeriesValue(attribute: AttributesDto, componentRef: any): void{\n    attribute.series.forEach((seriesValue) => {\n      componentRef.seriesList.push({\n        'localDateTime': AxoUtils.formatDateToCustomDateFormat(AxoUtils.formatDateFromUTCToLocal(seriesValue), 'YYYY-MM-DD hh:mm:ss a'),\n        'utcDateTime': seriesValue,\n      });\n    });\n    componentRef.totalAttribute = attribute.totalRecords;\n    componentRef.seriesList.forEach((value) => {\n      if (componentRef.expressionValue.value.length && !componentRef.expressionValue.value.includes(value.utcDateTime)) {\n        componentRef.seriesList.push(value);\n      }\n    });\n  }\n  /**\n   * Set attribute drop down list value\n   *\n   * @param attribute\n   * @param componentRef\n   */\n  setAttributeSeriesValue(attribute: AttributesDto, componentRef: any): void{\n    attribute.series.forEach((series) => {\n      if (!componentRef.seriesList.includes(series)) {\n        componentRef.seriesList.push(series);\n      }\n    });\n    componentRef.expressionValue.value.forEach((value) => {\n      if (!componentRef.seriesList.includes(value)) {\n        componentRef.seriesList.push(value);\n      }\n    });\n  }\n\n\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport const Constants = {\n    defaultValue: 'default_value',\n    isVisible: 'isVisible',\n    copyField: 'copy_field',\n    filterConditionJs: 'filter_conditions_js',\n    prefix: 'Prefix_val',\n    postfix: 'Postfix_val',\n    changedField: 'changed_field',\n    url: 'url',\n    formName: 'form_name',\n    length: 'Length',\n    onValueChange: 'on_value_change',\n    selectedType: 'Selected_type',\n    expandHelp: 'expand_help',\n    templateContent: 'Template_content',\n    checkButtonText: 'check_btn_txt',\n    payButtonText: 'pay_btn_txt',\n    integrationId: '',\n    errorCount: 'error_count',\n    conditionJs: 'conditions_js',\n    isError: 'is_error',\n    isEncrypted: 'isencrypted',\n    validate: 'validate',\n    integrationObjectId: 'integration_obj_id',\n    headerTitle: 'prompt',\n    isSticky: 'sticky',\n    isStickyGroup: 'groupheader_sticky',\n    initialDisplayMode: 'display_mode',\n    subType: 'sub_type',\n    helpMessage: 'help_message',\n    marPrompt: 'mar_prompt',\n    hiPrompt: 'hi_prompt',\n    ghSubType:'gh_sub_type',\n    tePrompt: 'te_prompt',\n    frPrompt: 'fr_prompt',\n    arPrompt: 'ar_prompt',\n    JPPrompt: 'JP_prompt',\n    IDPrompt: 'ID_prompt',\n    THPrompt: 'TH_prompt',\n    CNPrompt: 'CN_prompt',\n    isAllowChanging: 'allow_changing',\n    mode: 'mode',\n    dateFormat: 'display_date_format',\n    key: 'key',\n    id: 'fid',\n    prompt: 'prompt',\n    identifier: 'identifier',\n    shortName: 'short_name',\n    placeholder: 'place_holder',\n    searchable: 'searchable',\n    widgetLayout: 'widget_layout',\n    formControl: 'form_control',\n    value: 'value',\n    required: 'required',\n    type: 'type',\n    formType: 'ft',\n    hidden: 'hidden',\n    isHidden: 'hidden',\n    validators: '',\n    isEditable: 'display_mode',\n    helpText: 'help_text',\n    HELP_TEXT_ML: 'help_text_ml',\n    formGroup: 'form_group',\n    valueWithoutMask: 'value_without_mask',\n    verificationStatus: '',\n    label: '',\n    token: '',\n    loadingId: 'loading_id',\n    whichObject: 'which_object',\n    repopulateValue: 'repopulate',\n    isSearchable: 'searchable',\n    displayMode: 'display_mode',\n    validityConditionJs: 'validity_conditions_js',\n    validityConditions: 'validity_conditions',\n    visibilityConditionJs: 'conditions_js',\n    visibilityConditions: 'conditions',\n    invalidityMsg: 'invalidity_msg',\n    mainType: 'main_type',\n    fontSize: 'font_size',\n    unique: 'unique',\n    indent: 'indent',\n    oldValue: 'old_value',\n    newValue: 'new_value',\n    unit: 'unit',\n    latitude: 'latitude',\n    longitude: 'longitude',\n    captureType: 'capture_type',\n    captureLocation: 'capture_location',\n    mapZoomLevel: 'zoom_level',\n    allowPausing: 'allow_pause',\n    showPolylineSelection: 'show_polyline_selection',\n    showPointSelection: 'show_point_selection',\n    showPolygonSelection: 'show_polygon_selection',\n    changeField: 'change_field',\n    updateIdentifierCheck: 'update_identifier_check',\n    inputType: 'input_type',\n    minLength: 'min_length',\n    maxLength: 'max_length',\n    mask: 'mask',\n    isMultiline: 'allow_multiline',\n    case: 'case',\n    defaultCase: '',\n    onValueEdit: 'onValueEdit',\n    choices: 'choices',\n    hiChoices: 'hi_choices',\n    marChoices: 'mar_choices',\n    telChoices: 'tel_choices',\n    frChoices: 'fr_choices',\n    arChoices: 'ar_choices',\n    JPChoices: 'JP_choices',\n    IDChoices: 'ID_choices',\n    THChoices: 'TH_choices',\n    CNChoices: 'CN_choices',\n    defaultText: 'default_text',\n    otherMask: 'other_mask',\n    isOtpVerificationRequired: 'otp_verification_required',\n    validityDependents: 'validity_dependents',\n    mastringType: '',\n    maxDecimal: 'max_decimal',\n    minNumber: 'min_number',\n    allowMultipleEmails: 'allow_multiple_emails',\n    saveNumber: 'save_number',\n    maxNumber: 'max_number',\n    multiSelect: 'multi_select',\n    qrSubType: 'qrcode_sub_type',\n    dependant: 'dependents',//Dependant\n    submitWithoutVerification: 'submit_without_verification',\n    dataSource: '',//dataSource: DataSource;\n    defaultChoice: 'default_choice',\n    allowBarCodeQrCodeSearch: 'bar_qr_search',\n    apiMethod: 'api_method',\n    apiUrl: 'api_url',\n    applyGeoFence: 'apply_geofence',\n    referenceForm: 'reference_form',\n    filterConditions: 'filter_conditions',\n    showLocation: 'show_location',\n    imageFixedListJson: 'mg_fixed_list_json',//ImageFixedListJson\n    downloadWhenSelected: 'dws',\n    enChoices: 'en_choices',\n    choicesMl: 'choices_ml',\n    fieldMapJson: 'field_map_json',//FieldMapJsonObject\n    userName: 'username',\n    applyAccessLevels: 'apply_access_levels',\n    addReference: 'add_reference',\n    choicesSource: 'choices_source',\n    password: 'password',\n    barQRSearch: 'bar_qr_search',\n    isStatus: 'is_status',\n    allowedDocumentTypes: 'allowed_file_type',\n    fileSizeLimit: 'file_size_limit',\n    allowedFileTypeTemp: 'allowed_file_types_temp',\n    allowedFileTypes: 'allowed_file_types',\n    allowPublicUrl: 'allow_public_url',\n    imagePublicUrls: 'public_image_urls',\n    documentPublicUrls: 'public_doc_urls',\n    note: 'note',\n    allowedImageTypes: '',\n    languageSource: 'languages_source',//Array<LanguageObject>\n    langDefault: 'lang_default',\n    placeHolder: 'place_holder',\n    allowViewObject: 'allow_view_object',\n\n    // languageSource\n    languageName: 'name',\n    languageCode: 'code',\n\n    ID: 'fid',\n    NAME: 'fn',\n    PUBLIC_ID: 'public_id',\n    BEHAVIORS: 'behaviors',\n    FORM_ICONS: 'fi',\n    CHILDS: 'childs',\n    IS_PUBLIC: 'is_public',\n    SINGLE_RECORD_REPORTS: 'single_record_reports',\n    ALLOW_AD_HOC: 'allow_ad_hoc',\n    FORM_ID: 'fid',\n    GENERATE_REPORT_ON_SUBMIT: 'generate_report_on_submit',\n    FORM_SCRIPT: 'form_script',\n    MULTI_LANGUAGE: 'multilanguage',\n    ALLOW_VIEW_OBJECT: 'allow_view_object',\n    TYPE: 'ft',\n    COUNT: 'count',\n    PROMPT: 'prompt',\n    KEY: 'key',\n    SHORT_NAME: 'short_name',\n    SEARCHABLE: 'searchable',\n\n    // DEAFAULT_TEXT: 'default_text',\n    INPUT_TYPE: 'input_type',\n    INDENT: 'indent',\n    PROMPT_ML: 'prompt_ml',\n    OTHER_MASK: 'other_mask',\n    HELP_TEXT: 'help_text',\n    UNIT: 'unit',\n    // FILTER_CONDITIONS: 'filter_conditions_js',\n    // CHANGED_FIELD: 'changed_field',\n    MAX_NUMBER: 'max_number',\n    OTP_VERIFICATION_REQUIRED: 'otp_verification_required',\n    VALIDATION_SCRIPT: 'validity_conditions_js',\n    CHOICES_ML: 'choices_ml',\n    REPOPULATE: 'repopulate',\n    MAX_LENGTH: 'max_length',\n    MIN_LENGTH: 'min_length',\n    VALIDITY_DEPENDENTS: 'validity_dependents',\n    DISPLAY_MODE: 'display_mode',\n    PLACEHOLDER: 'place_holder',\n    MAIN_TYPE: 'main_type',\n    // TYPE: 'type',\n    ON_VALUE_CHANGE: 'on_value_change',\n    ON_VALUE_EDIT: 'onValueEdit',\n    MAX_DECIMAL: 'max_decimal',\n    WIDGET_LAYOUT: 'widget_layout',\n    FORMULA_DEPENDENTS: 'formula_dependents',\n    PREDEFIND_VALUE: 'default_text',\n    NEW_VALUE: 'new_value',\n    UNIQUE: 'unique',\n    INVALIDITY_MSG: 'invalidity_msg',\n    SUB_TYPE: 'sub_type',\n    CASE: 'case',\n    HIDDEN: 'hidden',\n    FONT_SIZE: 'font_size',\n    EXPAND_HELP: 'expand_help',\n    SAVE_NUMBER: 'save_number',\n    REQUIRED: 'required',\n    MASK: 'mask',\n    CHOICES: 'choices',\n    TOKEN: 'token',\n    SUBMIT_WITHOUT_VERIFICATION: 'submit_without_verification',\n    CONDITIONS: 'conditions_js',\n    IDENTIFIER: 'identifier',\n    ALLOW_MULTILINE: 'allow_multiline',\n    LOADING_ID: 'loading_id',\n    OLD_VALUE: 'old_value',\n    DATA_SOURCE: 'choices_source',\n    MULTI_SELECT: 'multi_select',\n\n    // Barcode constant\n    textEditable: 'text_editable',\n    barCodeSubType: 'barcode_sub_type',\n    multipleSelection: 'multipleSelection',\n    teChoices: 'string',\n    scanQRCode: 'scan_qrcodes',\n    deviceProfilesTemp: 'deviceProfiles_temp',\n    defaultDeviceProfileId: 'defaultDeviceProfileId',\n    deviceProfiles: 'deviceProfiles',\n\n    // deviceProfilesTemp constants\n    disconnectDisplayName: 'disconnectDisplayName',\n    showTimer: 'showTimer',\n    deviceProfileParams: 'deviceProfileParams',\n    connectDisplayName: 'connectDisplayName',\n    deviceProfilesTempId: 'id',\n    deviceProfilesTempName: 'name',\n\n    // deviceProfileParams constantcs\n\n    // QR code constant\n    // Verification\n    collectedId: 'collection_id',\n    collectionType: 'collection_type',\n    collectionName: '',\n    collectionNameSource: '',\n    savePhoto: 'save_photo',\n    actionType: 'action_type',\n    matchFoundMessage: 'match_found_msg',\n    matchFoundColor: 'match_found_clr',\n    onImageCapture: 'on_image_capture',\n    noMatchFoundMessage: 'no_match_found_msg',\n    noMatchFoundColor: 'no_match_found_clr',\n    customFunction: '',\n    showImage: 'show_image',\n    field: 'changed_field', //enum\n    generateMultipleObjects: 'generate_multiple_objects',\n    allowGroupScan: 'allow_group_scan',\n\n    customFunctionMsg: 'custom_function_msg',\n    selectionField: 'selection_field',\n    // Counter\n    ChangedField: '',\n    counterUnit: 'unit',\n    // child form   \n    childForm: 'child_form',\n    isShowInlineList: '',\n    recordLimitType: 'record_limit_type',\n    deleteSpecificRecord: '',\n    showInlineList: '',\n    childShowInline: 'child_show_inline',\n    recordLimitField: 'record_limit_field',\n    childFormId: 'child_form',\n    restrictionMode: 'restriction_mode',\n    recordLimit: 'record_limit',\n    // static media\n    showPrompt: 'show_prompt',\n    height: 'height',\n    staticMediaFile: 'static_media_file',\n    staticMedia: 'staticmedia',\n    TimeRestriction: 'time_restriction',\n\n    // date time\n    toDatelabel: 'to_date_label',\n    displayDateFormat: 'display_date_format',\n    fromDateLabel: 'from_date_label',\n    datePickerType: 'date_picker_type',\n    allowPast: 'allow_past',\n    allowFuture: 'allow_future',\n    displayTimeFormat: 'displayTimeFormat',\n    displayDateTimeFormat: 'displayDateTimeFormat',\n\n    //date range\n    fromDate: 'from',\n    toDate: 'to',\n    // formula\n    outPutType: 'output_type',\n    computationLogic: '',\n    computation: 'computation',\n\n    // sub form\n    markup: 'markup',\n    entryMode: 'entry_mode',\n\n    // image\n    generatePublicUrl: '',\n    includeNotes: 'include_note',\n    showTimeStamp: 'add_time_stamp_on_photo',\n    allowBrowsing: 'allow_browsing',\n    allowAnnotations: 'allow_annotation',\n\n\n    //Geofences\n\n    pointSelection: '',\n    polygonSelection: '',\n    polyLineSelection: '',\n    zoomLevel: '',\n    centreLocation: 'centre_loc',\n\n    //Apply geofences\n    geoFence: 'geofence',\n\n\n    //Value\n    formObjectTitle: 'fot',\n    formObjectSubTitle: 'fost',\n    picture: 'pic',\n    formObjectId: 'foid',\n    formId: 'fid',\n    thumb: 'thumb',\n    location: 'loc',\n    Latitude: 'lat',\n    Longitude: 'long',\n    Location: 'location',\n    lat: 'lat',\n    long: 'long',\n    code: 'code',\n    name: 'name',\n    image: 'image',\n    date: 'date',\n    mediaType: 'media_type',\n    annotations: 'annotations',\n    annotationsLength: 'annotations_length',\n    thumbnail: 'thumbnail',\n    inside: 'inside',\n    file: 'file',\n    isSubFormWidget: 'is_subform_widget',\n    Radius: 'radius',\n    Centre: 'centre',\n    LocationGPSValue: 'location_gps_value',\n    Status: 'status',\n    SubTitle: 'subtitle',\n    Title: 'title',\n    GeoFenceLocation: 'geofence_location',\n    LVStatus: 'lvstatus',\n    Id: 'id',\n    Picture: 'picture',\n\n    // ScriptNode\n    // visibilityConditions: 'conditions',\n    operator: 'operator',\n    nodes: 'nodes',\n    expression: 'expression',\n    expressionIdentifier: 'expression_identifier',\n    valueIdentifier: 'expression_value_id',\n    fixedValue: 'expression_value_fixed',\n    operatorId: 'expression_operator_id',\n    expressionOperator: 'expression_operator',\n    expressionValue: 'expression_value',\n    expressionOperatorSql: 'expression_operator_sql',\n    expressionOperandSql: 'expression_operand_sql',\n    //image annotations\n    ViewResponse: 'viewres',\n    Field: 'field',\n    PublicImageUrls: 'public_image_urls',\n    Notes: 'notes',\n    Frame: 'frame',\n    Points: 'points',\n    MediaType: 'mediaType',\n    Path: 'path',\n\n    //document value\n    extension: 'ext',\n\n    //verification value\n    mfo: 'mfo',\n    Found: 'found',\n    CollectionId: 'CollectionId',\n    Ux: 'ux',\n    Text: 'text',\n    ForeGroundColor: 'fgcolor',\n    BackGroundColor: 'bgcolor',\n    Message: 'message',\n    isValid: 'is_valid',\n    form: 'form',\n    formObject: 'formObject',\n    hideEditButton: 'hide_edit_btn',\n\n    // Task Detail\n    assetForm: 'af',\n    formField: 'fields',\n    assetFormObject: 'afo',\n    assignTo: 'assignTo',\n    assignToId: 'assignToId',\n    availableTo: 'users',\n    trackingActionVerb: 'tav',\n    taskType: 'task_type',\n    assignedBy: 'assignedBy',\n    short_description: 'short_description',\n    description: 'description',\n    isTaskRejected: 'itr',\n    rejectionComments: 'rejection_comments',\n    workFlowName: 'wfn',\n    created: 'created',\n    updated: 'updated',\n    sections: 'sections',\n\n    formNamePlural: 'FormNamePlural',\n    form_Name: 'fn',\n    updatedDate: 'ud',\n    listViewTitle: 'lvt',\n    listViewSubTitle: 'lvst',\n    assetFormObjectId: 'afoid',\n    assetCreator: 'ac'\n};\n","import { JsonConverter,  JsonCustomConvert } from \"json2typescript\";\n\n@JsonConverter\nexport class ParseFloatConverter implements JsonCustomConvert<Number> {\n    serialize(number: Number): string {\n       return number.toString();\n    }\n\n    deserialize(number: string): Number {\n        return parseFloat(number);\n    }\n}","import { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../../common/constants';\nimport { ParseFloatConverter } from '../../value-converters/parse-float-converter';\n\n\n@JsonObject('LocationValue')\nexport class LocationValue {\n  @JsonProperty(Constants.long,ParseFloatConverter,PropertyConvertingMode.IGNORE_NULLABLE )\n  longitude: number = 0;\n\n  @JsonProperty(Constants.lat,ParseFloatConverter,PropertyConvertingMode.IGNORE_NULLABLE )\n  latitude: number = 0;\n\n    constructor(locationValue?: LocationValue){\n        if(locationValue){\n            this.createLocationValue(locationValue);\n        }\n        else{\n            this.createNewLocationValue();\n        }\n    }\n\n      // Function to create new location value\n      createNewLocationValue(): void{\n       this.longitude = null;\n       this.latitude = null;\n    }\n\n    /**function to create location value with existing value\n    *\n    *@param locationValue\n    *\n    */\n    createLocationValue(locationValue?): void{\n        this.longitude = locationValue.longitude;\n        this.latitude = locationValue.latitude;\n    }\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\nimport { FormObject } from '../../form-object';\nimport { LocationValue } from './location-object-value';\n\n\n@JsonObject(\"ReferenceListValue\")\nexport class ReferenceListValue {\n    \n   @JsonProperty(Constants.formObjectTitle,String,PropertyConvertingMode.IGNORE_NULLABLE) \n   formObjectTitle: string = '';\n\n   @JsonProperty(Constants.formObjectSubTitle,String,PropertyConvertingMode.IGNORE_NULLABLE) \n   formObjectSubTitle : string = '';\n\n   @JsonProperty(Constants.picture,String,PropertyConvertingMode.IGNORE_NULLABLE) \n   picture : string = '';\n\n   @JsonProperty(Constants.formObjectId,String,PropertyConvertingMode.IGNORE_NULLABLE) \n   formObjectId: string= null;\n\n   @JsonProperty(Constants.thumb,String,PropertyConvertingMode.IGNORE_NULLABLE) \n   thumb: string = '';\n\n   @JsonProperty(Constants.location,LocationValue,PropertyConvertingMode.IGNORE_NULLABLE) \n   location : LocationValue = null;\n\n    constructor(referenceListObject?: ReferenceListValue){\n        if(referenceListObject){\n            this.createReferenceListValue(referenceListObject);\n        }\n        else{\n            this.createNewReferenceListValue();\n        }\n    }\n\n      // Function to create new referenceListObject object\n      createNewReferenceListValue(): void{\n      this.formObjectId = null;\n      this.formObjectSubTitle = null;\n      this.picture = null;\n      this.formObjectTitle = null;\n      this.thumb = null;\n      this.location = null;\n    }\n\n    /**function to create referenceListObject  with existing values\n    *\n    *@param referenceListObject\n    *\n    */\n    createReferenceListValue(referenceListObject?): void{\n        this.formObjectId = referenceListObject.formObjectId;\n        this.formObjectSubTitle = referenceListObject.formObjectSubTitle;\n        this.picture = referenceListObject.picture;\n        this.formObjectTitle = referenceListObject.formObjectTitle;\n        this.thumb = referenceListObject.thumb;\n        this.location = referenceListObject.location;\n    }\n}\n","import { JsonConverter,  JsonCustomConvert } from 'json2typescript';\n\n\n@JsonConverter\nexport class ImageAnnotationValueConverter implements JsonCustomConvert<any> {\n    serialize(value: any): string {\n        return value;\n     }\n\n    deserialize(value: any): any {\n        if (typeof (value) == 'string') {\n            return null;\n        }\n        else {\n            return value;\n        } \n    }\n}\n","import { JsonConverter,  JsonCustomConvert } from \"json2typescript\";\n\n@JsonConverter\nexport class ParseIntConverter implements JsonCustomConvert<Number> {\n    serialize(number: Number): string {\n       return number.toString();\n    }\n\n    deserialize(value: any): Number {\n        if (typeof (value) == 'string' && value != \"\") {\n            return parseInt(value);\n        }\n        else if (typeof (value) === 'number') {\n            return value;\n        } \n        else {\n            return value;\n        }\n    }\n}","import { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../../common/constants';\nimport { ImageAnnotationValueConverter } from '../../value-converters/image-annotation-value-converter';\nimport { ParseFloatConverter } from '../../value-converters/parse-float-converter';\nimport { ParseIntConverter } from '../../value-converters/parse-int-converter';\n\n@JsonObject('ImageWidgetValue')\nexport class ImageWidgetValue {\n    @JsonProperty(Constants.mediaType, ParseIntConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    mediaType: number = 0;\n\n    @JsonProperty(Constants.annotations, ImageAnnotationValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    annotations: Array<any> = [];\n\n    @JsonProperty(Constants.annotationsLength, Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    annotationsLength: number = 0;\n\n    @JsonProperty(Constants.image, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    image: string = '';\n\n    @JsonProperty(Constants.thumbnail, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    thumbnail: string = '';\n\n    @JsonProperty(Constants.name, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    name: string = '';\n\n    @JsonProperty(Constants.date, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    date: string = '';\n\n    @JsonProperty( Constants.long, ParseFloatConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    longitude: number = 0;\n\n    @JsonProperty( Constants.lat, ParseFloatConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    latitude: number = 0;\n\n    // @JsonProperty(Constants.longitude || Constants.long, ParseFloatConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    // longitude: number = 0;\n\n    // @JsonProperty(Constants.latitude || Constants.lat, ParseFloatConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    // latitude: number = 0;\n\n    constructor(imageObject?: ImageWidgetValue) {\n        if (imageObject) {\n            this.createImageObjectValue(imageObject);\n        }\n        else {\n            this.createNewImageObjectValue();\n        }\n    }\n\n    // Function to create new image object\n    createNewImageObjectValue(): void {\n        this.mediaType = null;\n        this.annotations = null;\n        this.annotationsLength = null;\n        this.image = null;\n        this.name = null;\n        this.date = null;\n        this.longitude = null;\n        this.latitude = null;\n        this.thumbnail = null;\n    }\n\n    /**function to create image object with existing values\n    *\n    *@param imageObject\n    *\n    */\n    createImageObjectValue(imageObject?:ImageWidgetValue): void {\n        this.mediaType = imageObject.mediaType;\n        this.annotations = imageObject.annotations;\n        this.annotationsLength = imageObject.annotationsLength;\n        this.image = imageObject.image;\n        this.name = imageObject.name;\n        this.date = imageObject.date;\n        this.longitude = imageObject.longitude;\n        this.latitude = imageObject.latitude;\n        this.thumbnail = imageObject.thumbnail;\n    }\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\n\n@JsonObject(\"DocumentWidgetValue\")\nexport class DocumentWidgetValue {\n    @JsonProperty(Constants.id,String,PropertyConvertingMode.IGNORE_NULLABLE) \n    id : string = '';\n\n    @JsonProperty(Constants.name,String,PropertyConvertingMode.IGNORE_NULLABLE) \n    name : string = '';\n\n    @JsonProperty(Constants.extension,String,PropertyConvertingMode.IGNORE_NULLABLE) \n    extension : string = '';\n\n    @JsonProperty(Constants.file,String,PropertyConvertingMode.IGNORE_NULLABLE) \n    file : string = '';\n\n\n    @JsonProperty(Constants.Path,String,PropertyConvertingMode.IGNORE_NULLABLE) \n    path : string = '';\n\n    constructor(documentObject?: DocumentWidgetValue){\n        if(documentObject){\n            this.createDocumentObjectValue(documentObject);\n        }\n        else{\n            this.createNewDocumentObjectValue();\n        }\n    }\n\n      // Function to create new document object\n      createNewDocumentObjectValue(): void{\n       this.name = null;\n    }\n\n    /**function to create document object with existing values\n    *\n    *@param documentObject\n    *\n    */\n    createDocumentObjectValue(documentObject?): void{\n       this.name = documentObject.name;\n    }\n}\n","import { Type } from '@angular/core';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../../common/constants';\nimport { LocationValue } from './location-object-value';\n\n@JsonObject('GPSWidgetValue')\nexport class GPSWidgetValue {\n  @JsonProperty(Constants.type, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  type: string = '';\n\n  @JsonProperty(Constants.value, [LocationValue], PropertyConvertingMode.IGNORE_NULLABLE)\n  value: Array<LocationValue> = null;\n\n  @JsonProperty(Constants.note, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  note: string = '';\n\n  constructor(gpsObject?: GPSWidgetValue) {\n    if (gpsObject) {\n      this.createGPSValue(gpsObject);\n    }\n    else {\n      this.createNewGPSValue();\n    }\n  }\n  /**\n   * set image widget value of object\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  // Function to create new gps object\n  createNewGPSValue(): void {\n    this.type = null;\n    this.value = null;\n  }\n\n  /**\n   * function to create gps object with existing values\n   *\n   *@param gpsObject\n   *\n   */\n  createGPSValue(gpsObject): void {\n    this.type = gpsObject.type;\n    this.value = gpsObject.value;\n  }\n}\n","import { JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from \"./common/constants\";\n\nexport class FormObject {\n     @JsonProperty(Constants.picture, String, PropertyConvertingMode.IGNORE_NULLABLE)\n     picture: string;\n\n     @JsonProperty(Constants.ID, String, PropertyConvertingMode.IGNORE_NULLABLE)\n     id: string;\n\n     //@JsonProperty(Constants.id, String, PropertyConvertingMode.IGNORE_NULLABLE)\n     guid: string;\n     \n\n    constructor() {\n      this.guid = '' \n\n    }\n}\n","import { JsonConverter,  JsonCustomConvert } from \"json2typescript\";\n\n@JsonConverter\nexport class ParseStringConverter implements JsonCustomConvert<String> {\n    serialize(value: string): string {\n       return value;\n    }\n\n    deserialize(value: any): String {\n        if (typeof (value) == 'string') {\n            return value;\n        }\n        else if (typeof (value) === 'number') {\n            return value.toString();\n        } \n    }\n}","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\nimport { ParseFloatConverter } from \"../../value-converters/parse-float-converter\";\n\n\n@JsonObject(\"GeoFenceLocationValue\")\nexport class GeoFenceLocationValue {\n  @JsonProperty(Constants.Longitude,ParseFloatConverter,PropertyConvertingMode.IGNORE_NULLABLE )   \n  longitude: number = 0;\n\n  @JsonProperty(Constants.Longitude,ParseFloatConverter,PropertyConvertingMode.IGNORE_NULLABLE ) \n  latitude: number = 0;\n\n  @JsonProperty(Constants.Radius,ParseFloatConverter,PropertyConvertingMode.IGNORE_NULLABLE ) \n  radius: number = 0;\n\n  @JsonProperty(Constants.LocationGPSValue,ParseFloatConverter,PropertyConvertingMode.IGNORE_NULLABLE ) \n  locationGPSValue: number = 0;\n  \n    constructor(locationValue?: GeoFenceLocationValue){\n        if(locationValue){\n            this.createLocationValue(locationValue);\n        }\n        else{\n            this.createNewLocationValue();\n        }\n    }\n\n      // Function to create new location value\n      createNewLocationValue(): void{\n       this.longitude = null;\n       this.latitude = null;\n    }\n\n    /**function to create location value with existing value\n    *\n    *@param locationValue\n    *\n    */\n    createLocationValue(locationValue?): void{\n        this.longitude = locationValue.longitude;\n        this.latitude = locationValue.latitude;\n    }\n}\n","import { StickyStyler } from \"@angular/cdk/table\";\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\nimport { FormObject } from \"../../form-object\";\nimport { ParseStringConverter } from \"../../value-converters/parse-string-converter\";\nimport { GeoFenceLocationValue } from \"./geo-fence-location-value\";\n\n@JsonObject(\"ChildRecordValue\")\nexport class ChildRecordValue {\n\n  @JsonProperty(Constants.Id, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  Id: String = null;\n\n  @JsonProperty(Constants.Status, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  status: string = '';\n\n  @JsonProperty(Constants.Picture, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  picture: string = '';\n\n  @JsonProperty(Constants.SubTitle, ParseStringConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  subTitle: string = null;\n\n  @JsonProperty(Constants.Title, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  title: string = '';\n\n  @JsonProperty(Constants.GeoFenceLocation, GeoFenceLocationValue, PropertyConvertingMode.IGNORE_NULLABLE)\n  geoFenceLocation: GeoFenceLocationValue = null;\n\n  @JsonProperty(Constants.LVStatus, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  lvStatus: string = '';\n\n  @JsonProperty(Constants.geoFence, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  geoFence: string = '';\n\n  @JsonProperty(Constants.Location, GeoFenceLocationValue, PropertyConvertingMode.IGNORE_NULLABLE)\n  location: GeoFenceLocationValue = null;\n\n  @JsonProperty(Constants.formId, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  formId: String = null;\n\n  @JsonProperty(Constants.NAME, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  name: string = '';\n\n  @JsonProperty(Constants.formObjectTitle, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  formObjectTitle: string = '';\n\n  @JsonProperty(Constants.formObjectSubTitle, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  formObjectSubTitle: string = '';\n\n  @JsonProperty(Constants.formObjectId, FormObject, PropertyConvertingMode.IGNORE_NULLABLE)\n  formObjectId: FormObject = null;\n\n    \nconstructor(applyGeoFenceObject ?: ChildRecordValue) {\n  if (applyGeoFenceObject) {\n    this.createGeoFenceValue(applyGeoFenceObject);\n  } else {\n    this.createNewGeoFenceValue();\n  }\n}\n\n// Function to create new apply geofence object\ncreateNewGeoFenceValue(): void {\n  this.geoFence = null;\n  this.formObjectTitle = null;\n  this.formObjectSubTitle = null;\n  this.formObjectId = null;\n  this.picture = null;\n  this.location = null;\n}\n\n/**function to create apply geofence object with existing values\n *\n *@param applyGeoFenceObject\n *\n */\ncreateGeoFenceValue(applyGeoFenceObject ?): void {\n  this.geoFence = applyGeoFenceObject.geoFence;\n  this.formObjectTitle = applyGeoFenceObject.formObjectTitle;\n  this.formObjectSubTitle = applyGeoFenceObject.formObjectSubTitle;\n  this.formObjectId = applyGeoFenceObject.formObjectId;\n  this.picture = applyGeoFenceObject.picture;\n  this.location = applyGeoFenceObject.location;\n}\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\nimport { LocationValue } from \"./location-object-value\";\n\n\n@JsonObject(\"GeoFenceWidgetValue\")\nexport class GeoFenceWidgetValue {\n    @JsonProperty(Constants.Radius,String,PropertyConvertingMode.IGNORE_NULLABLE) \n    radius : string = '';\n    @JsonProperty(Constants.type,String,PropertyConvertingMode.IGNORE_NULLABLE) \n    type : string = '';\n    @JsonProperty(Constants.centreLocation,LocationValue,PropertyConvertingMode.IGNORE_NULLABLE) \n    centerLocationValue : LocationValue;\n    constructor(geoFenceObject?: GeoFenceWidgetValue){\n        if(geoFenceObject){\n            this.createGeoFenceValue(geoFenceObject);\n        }\n        else{\n            this.createNewGeoFenceValue();\n        }\n    }\n\n      // Function to create new geofence object\n      createNewGeoFenceValue(): void{\n       this.radius = null;\n       this.type = null;\n       this.centerLocationValue = null;\n    }\n\n    /**function to create geofence object with existing values\n    *\n    *@param geoFenceObject\n    *\n    */\n    createGeoFenceValue(geoFenceObject?): void{\n        this.radius = geoFenceObject.radius;\n        this.type = geoFenceObject.type;\n        this.centerLocationValue = geoFenceObject.centerLocationValue;\n    }\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\n\n\n@JsonObject(\"LanguageWidgetValue\")\nexport class LanguageWidgetValue {\n\n    @JsonProperty(Constants.code, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    code: string = '';\n\n    @JsonProperty(Constants.name, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    name: string = '';\n\n    constructor(languageObject?: LanguageWidgetValue) {\n        if (languageObject) {\n            this.createLanguageValue(languageObject);\n        }\n        else {\n            this.createNewLanguageValue();\n        }\n    }\n\n    // Function to create new langauge object\n    createNewLanguageValue(): void {\n        this.code = null;\n        this.name = null;\n    }\n\n    /**function to create langauge object with existing values\n    *\n    *@param langaugeObject\n    *\n    */\n    createLanguageValue(langaugeObject?): void {\n        this.code = langaugeObject.code;\n        this.name = langaugeObject.name;\n    }\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\n\n\nexport class DateRangeValue {\n   \n    @JsonProperty(Constants.fromDate,String,PropertyConvertingMode.IGNORE_NULLABLE )  \n    from : string = '';\n    \n    @JsonProperty(Constants.toDate,String,PropertyConvertingMode.IGNORE_NULLABLE ) \n    to : string = '';\n\n    constructor(dateRangeObject?: DateRangeValue){\n        if(dateRangeObject){\n            this.createLanguageValue(dateRangeObject);\n        }\n        else{\n            this.createNewLanguageValue();\n        }\n    }\n\n      // Function to create new langauge object\n      createNewLanguageValue(): void{\n       this.from = null;\n       this.to = null;\n    }\n\n    /**function to create langauge object with existing values\n    *\n    *@param dateRangeObject\n    *\n    */\n    createLanguageValue(dateRangeObject?): void{\n       this.from = dateRangeObject.from;\n       this.to = dateRangeObject.to;\n    }\n}\n","import { JsonConverter,  JsonCustomConvert, JsonConvert } from 'json2typescript';\nimport { GeoFenceWidgetValue } from '../widgets/widget-value/geo-fence-widget-value';\n\n\n@JsonConverter\nexport class GeoFenceValueConverter implements JsonCustomConvert<any> {\n    serialize(value: any): string {\n        return value;\n     }\n\n    deserialize(value: any): any {\n        if (typeof (value) == 'string') {\n            value = JSON.parse(value)\n            const jsonConvert: JsonConvert = new JsonConvert();\n            value = jsonConvert.deserialize(value, GeoFenceWidgetValue);\n            return value;\n        }\n        else {\n            return value;\n        } \n    }\n}\n","import { JsonConverter,  JsonCustomConvert } from 'json2typescript';\nimport { StringToBooleanValue } from '../common/widget-enums';\n\n@JsonConverter\nexport class StringToBooleanValueConverter implements JsonCustomConvert<boolean> {\n    serialize(value: boolean): string {\n      return value?'1':'2';\n    }\n\n    deserialize(value: any): boolean {\n      return (value === StringToBooleanValue.true || value == 1)? true : false;\n    }\n}\n","import { JsonConverter,  JsonCustomConvert } from \"json2typescript\";\nimport { ValueDisplayMode } from \"../common/widget-enums\";\n\n@JsonConverter\nexport class DisplayModeToBoolean implements JsonCustomConvert<boolean> {\n    serialize(value: boolean): string {\n       return value.toString();\n    }\n\n    deserialize(value: string): boolean {\n      return value === ValueDisplayMode.true? true : false;\n    }\n}\n\n\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Code } from \"../../common/widget-enums\";\n\n@JsonObject(\"\")\nexport  class MultipleLanguages {\n\n  @JsonProperty(Code.en,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  en : string = '';\n  \n  @JsonProperty(Code.hi,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  hi : string = '';\n\n  @JsonProperty(Code.mar,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  mar : string = '';\n\n  @JsonProperty(Code.tel,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  tel : string = '';\n\n  @JsonProperty(Code.fr,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  fr : string = '';\n  \n  @JsonProperty(Code.de,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  de : string = '';\n\n  @JsonProperty(Code.es,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  es : string = '';\n\n  @JsonProperty(Code.ar,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  ar : string = '';\n\n  @JsonProperty(Code.ID,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  ID: string = '';\n  \n  @JsonProperty(Code.JP,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  JP : string = '';\n\n  @JsonProperty(Code.TH,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  TH : string = '';\n\n  \n\n    constructor(value?: MultipleLanguages){\n        if(value){\n            this.createValue(value);\n        }\n        else{\n            this.createNewValue();\n        }\n    }\n\n      // Function to create new prompt value \n      createNewValue(): void{\n       this.en = null;\n       this.hi = null;\n       this.mar = null;\n       this.tel = null;\n       this.fr = null;\n       this.ar = null;\n       this.ID = null;\n       this.de =null;\n       this.JP = null;\n       this.es = null;\n       this.TH = null;\n    }\n\n    /**function to create prompt value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?:MultipleLanguages): void{\n       this.en = value.en;\n       this.hi = value.hi;\n       this.mar = value.mar;\n       this.tel = value.tel;\n       this.fr = value.fr;\n       this.ar = value.ar;\n       this.ID = value.ID;\n       this.de = value.de;\n       this.JP = value.JP;\n       this.es = value.es;\n       this.TH = value.TH;\n    }\n}\n","import 'reflect-metadata';\n\nexport const PropertyPanelField = (metadata: PropertyPanelFieldMetadata) => (target: any, key: string) => {\n    Reflect.defineMetadata(key, metadata, target);\n};\n\nexport interface PropertyPanelFieldMetadata {\n    inputType?: 'text' | 'number' | 'select' | 'toggle' | 'defaultchoicelist' | 'textarea' | 'choicetext' | 'prompttext' | 'icon' | 'button';\n    label?: string;\n    choices?: Array<Choice>;\n    choicelist?: Array<Choice>;\n    default?: string;\n    required?: boolean;\n    conditionInputType?: string;\n    conditionInputData?: Array<any>;\n    propertyType?: 'common' | 'ui';\n    helpText?: string;\n    sortIndex?: number;\n    colSpan?: number;\n    borderTop?: boolean;\n    borderBottom?: boolean;\n    reference?: string;\n    multiselect?: boolean;\n    code?: string;\n    isEditable?: boolean;\n    isDescriptionField?: boolean;\n    placeholder?: string;\n}\n\nexport interface Choice {\n    text: string;\n    value: any;\n}\n","import { JsonConverter, JsonCustomConvert } from 'json2typescript';\n\n@JsonConverter\nexport class ObjectToStringConverter implements JsonCustomConvert<any> {\n  serialize(value: any): string {\n    // Convert object to string\n    try {\n      return JSON.stringify(value);\n    } catch (e) {\n      console.error('Error serializing value:', e);\n      return value;\n    }\n  }\n\n  deserialize(value: any): any {\n    // Convert string back to object\n    try {\n      return JSON.stringify(value);\n    } catch (e) {\n      console.error('Error deserializing value:', e);\n      return value;\n    }\n  }\n}\n","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { WidgetLayout } from '../common/widget-enums';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { ScriptNode, ScriptNodeConverter } from './script-condition';\nimport { ValidityValueConverter } from '../value-converters/validate-converter';\nimport { ParseStringConverter } from '../value-converters/parse-string-converter';\nimport { DisplayModeToBoolean } from '../value-converters/displayMode-to-bool';\nimport { ChoicesMl } from './widget-value/choices-ml';\nimport { MultipleLanguages } from './widget-value/multiple-languages';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { AxoUtils } from '../../../axo-utils/axo-utils';\nimport { ObjectToStringConverter } from '../value-converters/object-to-string-converter';\n\n/*\n * This is abstract class that must be inherited in every widget.Also widget must be implements all abstract methods of this class.\n * Common methods of widgets are implemented in this class.\n */\n@JsonObject('Widget')\nexport abstract class Widget {\n    @JsonProperty(Constants.id, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    id: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label', propertyType: 'common', helpText: 'Label of the field', code:'en', required: true, sortIndex: 1 })\n    @JsonProperty(Constants.prompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    prompt: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (Hindi)', propertyType: 'common', code:'hi', helpText: 'Name of the field in Hindi'})\n    @JsonProperty(Constants.hiPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    hiprompt: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (Marathi)', propertyType: 'common', code:'mar', helpText: 'Name of the field in Marathi'})\n    @JsonProperty(Constants.marPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    marprompt: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (telugu)', propertyType: 'common', code:'tel', helpText: 'Name of the field in telugu'})\n    @JsonProperty(Constants.tePrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    teprompt: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (french)', propertyType: 'common', code:'fr', helpText: 'Name of the field in french'})\n    @JsonProperty(Constants.frPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    frprompt: string = '';\n    \n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (arabic)', propertyType: 'common', code:'ar', helpText: 'Name of the field in arabic'})\n    @JsonProperty(Constants.arPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    arprompt: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (Japanese)', propertyType: 'common', code:'JP', helpText: 'Name of the field in Japanese'})\n    @JsonProperty(Constants.JPPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    JPprompt: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (Bahasa)', propertyType: 'common', code:'ID', helpText: 'Name of the field in Bahasa'})\n    @JsonProperty(Constants.IDPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    IDprompt: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (Thai)', propertyType: 'common', code:'TH', helpText: 'Name of the field in Thai'})\n    @JsonProperty(Constants.THPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    THprompt: string = '';\n\n    @PropertyPanelField({ inputType: 'prompttext', label: 'Label (Chinese)', propertyType: 'common', code:'CN', helpText: 'Name of the field in Chinese'})\n    @JsonProperty(Constants.CNPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    CNprompt: string = '';\n\n    @PropertyPanelField({inputType: 'select', label: 'Choices', propertyType: 'common', helpText: 'Choices for the widget'})\n    @JsonProperty(Constants.choices, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    choices: string = '';\n\n    @PropertyPanelField({ inputType: 'text', label: 'Unique Identifier', propertyType: 'common', helpText: 'Auto-generated Unique Identifier of the field', required: true })\n    @JsonProperty(Constants.identifier, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    identifier: string = '';\n\n    @PropertyPanelField({ inputType: 'text', label: 'Short name', propertyType: 'common', helpText: 'Short name of field' })\n    @JsonProperty(Constants.shortName, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    shortName: string = '';\n\n    @PropertyPanelField({ inputType: 'text', label: 'Place Holder', propertyType: 'common', helpText: 'Enter Place Holder to show when no value is entered while filling this form.' })\n    @JsonProperty(Constants.placeholder, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    placeholder: string = '';\n\n    // @JsonProperty(Constants.searchable, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    // searchable: boolean = false;\n\n    @JsonProperty(Constants.defaultValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    defaultValue: string = '';\n\n    @PropertyPanelField({\n        inputType: 'select', choices: [{ value: 'one_line', text: 'One Line' }, { value: 'two_line', text: 'Two line' }],\n        label: 'Widget Layout', helpText: 'Allow widget name and value to be displayed in a single line or two lines in the mobile app.'\n    })\n    @JsonProperty(Constants.widgetLayout, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    widgetLayout: WidgetLayout = null;\n\n    @PropertyPanelField({ inputType: 'toggle', label: 'Required', propertyType: 'common', helpText: 'Is this field required?' })\n    @JsonProperty(Constants.required, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    required: boolean = false;\n\n    @JsonProperty(Constants.type, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    type: string = '';\n\n    @PropertyPanelField({ inputType: 'toggle', label: 'Hidden', propertyType: 'common', helpText: 'Hide this field while filling the form.' })\n    @JsonProperty(Constants.hidden, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    isHidden: boolean = false;\n\n    @JsonProperty(Constants.subType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    subType: string = '';\n\n    @JsonProperty(Constants.validityDependents, [], PropertyConvertingMode.IGNORE_NULLABLE)\n    validityDependents: [];\n    @JsonProperty(Constants.isEditable, DisplayModeToBoolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    isEditable: boolean = true;\n\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n\n    // @JsonProperty(Constants.verificationStatus, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // verificationStatus: string = '';\n\n    // @JsonProperty(Constants.label, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // label: string = '';\n\n    // @JsonProperty(Constants.token, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // token: string = '';\n\n    @JsonProperty(Constants.loadingId, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    loadingId: boolean = false;\n\n    @PropertyPanelField({ inputType: 'toggle', label: 'Is this field searchable?', propertyType: 'common', helpText: 'Should this field be searchable when using offline in mobile app?' })\n    @JsonProperty(Constants.isSearchable, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    isSearchable: boolean = false;\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Value display mode',\n        choices: [{ value: 'editable', text: 'Editable' }, { value: 'readonly', text: 'Readonly' }],\n        propertyType: 'common', helpText: 'Should this value be editable or readonly when filling this form in mobile or web app?'\n    })\n    @JsonProperty(Constants.displayMode, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    displayMode: string = 'editable';\n\n    // @JsonProperty(Constants.invalidityMsg, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // invalidityMsg: string = '';\n\n    @JsonProperty(Constants.mainType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    mainType: string = '';\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Font Size', choices: [{ value: 'large', text: 'Large' },\n        { value: 'medium', text: 'Medium' }, { value: 'small', text: 'Small' }], propertyType: 'common', helpText: 'Font size will effect the field\\'s label size when filling this form in mobile app.'\n    })\n    @JsonProperty(Constants.fontSize, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    fontSize: string = '';\n\n    @PropertyPanelField({ inputType: 'toggle', label: 'Unique', propertyType: 'common', helpText: 'Is this field unique?' })\n    @JsonProperty(Constants.unique, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    unique: boolean = false;\n\n    @PropertyPanelField({\n        inputType: 'number', label: 'Increase Indent by', propertyType: 'common',\n        helpText: 'Enter count by which you want the widget\\'s indent increased.'\n    })\n    @JsonProperty(Constants.indent, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    indent: string = '';\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Default Help Mode',\n        choices: [{ value: true, text: 'Expanded' }, { value: false, text: 'Collapse' }], propertyType: 'common',\n        helpText: 'The default mode for the Help contents set for this field when filling this form in mobile app.'\n    })\n    @JsonProperty(Constants.expandHelp, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    expandHelp: boolean = false;\n\n    @PropertyPanelField({\n        inputType: 'text', label: 'Copy field', propertyType: 'common',\n        helpText: 'Copy value from the field specified here in the selected field while filling this form'\n    })\n    @JsonProperty(Constants.copyField, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    copyField: string = '';\n\n\n    @PropertyPanelField({\n        inputType: 'text', label: 'On Value Change', propertyType: 'common',\n        helpText: 'Function to be called on value change'\n    })\n    @JsonProperty(Constants.onValueChange, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    onValueChange: string = '';\n\n    @JsonProperty(Constants.filterConditionJs, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    filterConditionJs: string = '';\n\n    // @JsonProperty(Constants.helpMessage, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // helpMessage: string = '';\n\n    // @JsonProperty(Constants.key, ParseStringConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    // key: string = '';\n\n    // @JsonProperty(Constants.mapZoomLevel, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // mapZoomLevel: string = '';\n\n    @JsonProperty(Constants.showPolylineSelection, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    showPolylineSelection: string = '';\n\n    // @JsonProperty(Constants.showPointSelection, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // showPointSelection: string = '';\n\n    // @JsonProperty(Constants.showPolygonSelection, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // showPolygonSelection: string = '';\n\n    // @JsonProperty(Constants.isError, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    // isError: boolean = false;\n\n    // @JsonProperty(Constants.isEncrypted, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // isEncrypted: string = '';\n\n    @JsonProperty(Constants.validate, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    validate: boolean = false;\n\n\n    choicesMl: ChoicesMl;\n\n    // @JsonProperty(Constants.enChoices, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // enChoices: string = '';\n\n    // @JsonProperty(Constants.allowedDocumentTypes, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // allowedDocumentTypes: string[] = [];\n\n    // @JsonProperty(Constants.isSubFormWidget, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    // isSubFormWidget: boolean = false;\n\n    // @JsonProperty('conditions', ScriptNodeConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    // conditions = \"\"\n    // visibilityConditions: ScriptNode;\n\n    @PropertyPanelField({\n        inputType: 'button', label: 'Validity', propertyType:'common', helpText: 'Conditions when this field should be Visible when filling this form.'\n      })\n    @JsonProperty('validity_conditions', ObjectToStringConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    validityConditions: any = '' ;\n\n    @PropertyPanelField({\n        inputType: 'button', label: 'Visibility', propertyType:'common', helpText: 'Conditions when this field\\'s value will be Valid when filling this form.'\n      })\n    @JsonProperty(Constants.visibilityConditions, ObjectToStringConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    visibilityConditions: any = '';\n\n    @PropertyPanelField({ inputType: 'text', label: 'Validity Error Message', propertyType: 'common', helpText: 'Error message to be displayed when the value of this field is invalid.', required: false })\n    @JsonProperty(Constants.invalidityMsg, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    invalidityMsg: string = ''; \n    // @JsonProperty('validity_conditions', ScriptNodeConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    // validityConditions: ScriptNode;\n\n    @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n    dependant: [];//Dependant\n\n\n    @JsonProperty(Constants.visibilityConditionJs, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    visibilityConditionJs: string = '';\n\n    @JsonProperty(Constants.validityConditionJs, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    validityConditionJs: string = '';\n\n    @JsonProperty(Constants.isVisible,StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    isVisible: boolean = true;\n\n    @JsonProperty(Constants.HELP_TEXT_ML, MultipleLanguages, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpTextMl: MultipleLanguages;\n\n    @JsonProperty(Constants.PROMPT_ML, MultipleLanguages, PropertyConvertingMode.IGNORE_NULLABLE)\n    promptMl: MultipleLanguages;\n\n    // @JsonProperty(Constants.isVisible, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    // isVisible: boolean = true;\n\n\n    @PropertyPanelField({ inputType: 'toggle', label: 'Sticky Field', propertyType: 'common', helpText: 'Make this field stick to the top when filling this form in the mobile app.' })\n    @JsonProperty(Constants.isSticky, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    isSticky: boolean = false;\n\n    @JsonProperty(Constants.repopulateValue, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    repopulateValue: boolean = false;\n\n    // widgetIcon: string = null;\n\n    // name: string;\n    markup = null;\n    widgetSelect = false;\n\n    abstract value: any;\n\n    /*\n     * Constructor\n     */\n    constructor(field?: Widget) {\n        if (field) {\n            // if (typeof field.validityConditions !== 'string') {\n            //     field.validityConditions = ` { \n            //     \"validity_conditions_js\": \"${field.validityConditionJs}\",\n            //     \"validity_conditions\":${JSON.stringify(field.validityConditions)},\n            //     \"invalidity_msg\": \"${field.invalidityMsg}\"\n            //   }`;\n            // }\n            this.widget(field);\n        } else {\n            this.newWidget();\n        }\n    }\n\n    // Function to create new widget object\n    newWidget(): void {\n        // this.conditions = '';\n        this.isVisible = true;\n        this.repopulateValue = false;\n        this.prompt = '';\n        this.promptMl = new MultipleLanguages;\n        this.identifier = '';\n        this.shortName = '';\n        this.placeholder = '';\n        // this.searchable = null;\n        // this.defaultValue = '';\n        this.isHidden = false;\n        this.required = false;\n        this.isEditable = true;\n        this.helpText = '';\n        // this.verificationStatus = '';\n        // this.label = '';\n        // this.token = '';\n        this.loadingId = false;\n        this.visibilityConditionJs = '';\n        this.isSearchable = false;\n        this.displayMode = 'editable';\n        this.invalidityMsg = '';\n        this.fontSize = 'medium';\n        this.unique = false;\n        this.indent = '0';\n        this.expandHelp = false;\n        this.copyField = '';\n        this.onValueChange = '';\n        this.filterConditionJs = '';\n        this.dependant = [];\n        // this.helpMessage = '';\n        // this.key = null;\n        this.marprompt = '';\n        this.hiprompt = '';\n        this.teprompt = '';\n        this.frprompt = '';\n        this.arprompt = '';\n        this.JPprompt = '';\n        this.IDprompt = '';\n        this.THprompt = '';\n        this.CNprompt = '';\n        //this.value = null;\n        // this.allowedDocumentTypes = ['pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx'];\n        // this.visibilityConditions = ;\n        this.validate = false;\n        // this.widgetIcon = 'axo_square_text';\n        this.isSticky = false;\n        // this.validityConditions = ` { \n        //     \"validity_conditions_js\": \" \",\n        //     \"validity_conditions\": {\n        //     \"nodes\": []},\n        //     \"invalidity_msg\": \"test\"\n        //   }`;          \n          this.id = AxoUtils.guid();\n    }\n\n    /**function to create widget object with existing values\n     *\n     *@param Report\n     *\n     */\n    widget(field): void {\n        this.repopulateValue = field.repopulateValue;\n        this.isVisible=field.isVisible;\n        this.prompt = field.prompt;\n        this.promptMl = field.promptMl;\n        this.widgetLayout = WidgetLayout.twoLine;\n        this.identifier = field.identifier;\n        this.shortName = field.shortName;\n        this.placeholder = field.placeholder;\n        // this.searchable = field.searchable;\n        // this.defaultValue = field.defaultValue;\n        this.isHidden = field.isHidden;\n        this.required = field.required;\n        this.validityDependents = field.validityDependents;\n        this.isEditable = field.isEditable;\n        this.helpText = field.helpText;\n        // this.verificationStatus = field.verificationStatus;\n        // this.label = field.label;\n        // this.token = field.token;\n        this.loadingId = field.loadingId;\n        this.visibilityConditionJs = field.visibilityConditionJs;\n        this.isSearchable = field.isSearchable;\n        this.displayMode = field.displayMode;\n        this.visibilityConditions = field.visibilityConditions;\n        this.validityConditions = field.validityConditions;\n        this.invalidityMsg = field.invalidityMsg;\n        this.fontSize = field.fontSize;\n        this.unique = field.unique;\n        this.indent = field.indent;\n        this.expandHelp = field.expandHelp;\n        this.copyField = field.copyField;\n        this.onValueChange = field.onValueChange;\n        this.filterConditionJs = field.filterConditionsJs;\n        // this.helpMessage = field.helpMessage;\n        // this.key = field.key;\n        this.marprompt = field.marprompt;\n        this.hiprompt = field.hiprompt;\n        this.teprompt = field.teprompt;\n        this.frprompt = field.frprompt;\n        this.arprompt = field.arprompt;\n        this.JPprompt = field.JPprompt;\n        this.IDprompt = field.IDprompt;\n        this.THprompt = field.THprompt;\n        this.CNprompt = field.CNprompt;\n        // this.allowedDocumentTypes = field.allowedDocumentTypes\n        // this.visibilityConditions = field.visibilityConditions;\n        this.validate = field.validate;\n        // this.widgetIcon = field.widgetIcon;\n        this.isSticky = field.isSticky;\n        // this.conditions =field.conditions;\n        this.id = field.id;\n        this.widgetLayout = field.widgetLayout;\n        this.dependant = field.dependant;\n    }\n\n\n\n    abstract getWidgetValue(): any;\n\n    abstract setWidgetValue(value: any);\n\n    abstract getWidgetSerializedValue(): string;\n\n    abstract component?: Type<any>;\n\n\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { Widget } from '../../forms/page/widgets/widget';\nimport { AxForm } from '../../../public-api';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PropertiesService {\n  _widgetClickEvent = new EventEmitter<Widget>();\n  _formClickEvent = new EventEmitter<AxForm>();\n  _propertyChange = new EventEmitter<AxForm>();\n\n  /**\n   * Constructor\n   */\n  constructor() { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Public methods\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   *to emit widget click event on widget click\n   *\n   * @param widget\n   */\n   widgetClickEvent(widget: Widget): void {\n    this._widgetClickEvent.emit(widget);\n  }\n\n  formClickEvent(): void {\n    this._formClickEvent.emit();\n  }\n  \n  propertyChange(): void {\n    this._propertyChange.emit();\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Widget } from '../../forms/page/widgets/widget';\nimport { cloneDeep } from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ClipboardService {\n  private readonly CLIPBOARD_STORAGE_KEY = 'clipboardWidgets';\n  private clipboardWidget: Widget | null = null;\n  private clipboardWidgets: Widget[] = JSON.parse(localStorage.getItem(this.CLIPBOARD_STORAGE_KEY) || '[]');\n  private AIWidgets: Widget[] = [];\n  private lastActionWasCut: boolean = false;\n  private selectedClipboardIndex: number | null = null;\n\n\n  private widgetCopiedSubject = new Subject<Widget>(); // New Subject for triggering on copy\n  widgetCopied$ = this.widgetCopiedSubject.asObservable(); // Observable for other components to subscribe\n\n  private generateAIWidgetSubject = new Subject<Widget>(); // New Subject for triggering on copy\n  widgetAI$ = this.generateAIWidgetSubject.asObservable(); // Observable for other components to subscribe\n\n  private openAITabSubject = new Subject<number>();\n  openATTab$ = this.openAITabSubject.asObservable();\n\n  private isCommandoFetching = new Subject<boolean>();\n  commandoFetch$ = this.isCommandoFetching.asObservable();\n\n  constructor() {}\n\n\n  hasAIResponse(): boolean {\n    return this.AIWidgets.length > 0;  // Check if any widgets exist in the clipboard\n  }\n  \n  private saveClipboardToLocalStorage(): void {\n    // Removed local storage logic\n  }\n\n  setCommandoFetchingStatus(status: boolean): void{\n    this.isCommandoFetching.next(status);\n  }\n\n  openAITab(value: number): void{\n    this.openAITabSubject.next(value);\n  }\n\n  copyWidget(widget: Widget): void {\n    widget.widgetSelect = false;\n    this.lastActionWasCut = false;\n    this.clipboardWidget = cloneDeep(widget);\n    this.clipboardWidgets.unshift(cloneDeep(widget));\n    this.widgetCopiedSubject.next(this.clipboardWidget); // Emit the copied widget\n  }\n\n  copyAIWidget(widget: Widget): void {\n    this.lastActionWasCut = false;\n    this.clipboardWidget = cloneDeep(widget);\n    this.AIWidgets.push(cloneDeep(widget));\n    this.generateAIWidgetSubject.next(this.clipboardWidget); // Emit the copied widget\n  }\n\n  cutWidget(widget: Widget): void {\n    widget.widgetSelect = false;\n    this.clipboardWidget = widget;\n    this.lastActionWasCut = true;\n    this.clipboardWidget = cloneDeep(widget);\n    this.clipboardWidgets.unshift(cloneDeep(widget));\n    this.widgetCopiedSubject.next(this.clipboardWidget); // Emit the copied widget\n  }\n\n  pasteWidget(): Widget | null {\n    this.widgetCopiedSubject.next(this.clipboardWidget); // Emit the copied widget\n    if (this.lastActionWasCut && this.clipboardWidget) {\n      const widgetToPaste = this.clipboardWidget;\n      this.clearClipboard();\n      return widgetToPaste;\n    } else if (this.clipboardWidgets.length > 0) {\n      return this.clipboardWidget ? cloneDeep(this.clipboardWidget) : null;\n    }\n    return null;\n  }\n    pasteWidgetAI(): Widget | null {\n    if (this.lastActionWasCut && this.clipboardWidget) {\n      const widgetToPaste = this.clipboardWidget;\n      this.clearClipboard();\n      return widgetToPaste;\n    } else if (this.AIWidgets.length > 0) {\n      return this.clipboardWidget ? cloneDeep(this.clipboardWidget) : null;\n    }\n    return null;\n  }\n  \n\n  setClipboardWidget(widget: Widget): void {\n    this.clipboardWidget = cloneDeep(widget);\n    \n  }\n\n  wasLastActionCut(): boolean {\n    return this.lastActionWasCut;\n  }\n\n  clearClipboard(): void {\n    this.clipboardWidget = null;\n    this.clipboardWidgets = [];\n  }\n  clearAIWidgets(): void {\n    this.AIWidgets = [];\n  }\n\n  getClipboardContents(): Widget[] {\n    return this.clipboardWidgets;\n  }\n\n  selectClipboardWidget(index: number): void {\n    if (index >= 0 && index < this.clipboardWidgets.length) {\n      this.selectedClipboardIndex = index;\n      this.clipboardWidget = cloneDeep(this.clipboardWidgets[index]);\n    } else {\n     \n    }\n  }\n\n  selectClipboardAIWidget(index: number): void {\n    if (index >= 0 && index < this.AIWidgets.length) {\n      this.selectedClipboardIndex = index;\n      this.clipboardWidget = cloneDeep(this.AIWidgets[index]);\n    } else {\n     \n    }\n  }\n\n  deleteSelectedClipboardWidget(): void {\n    if (this.selectedClipboardIndex != null) {\n      this.clipboardWidgets.splice(this.selectedClipboardIndex, 1);\n      this.selectedClipboardIndex = null;\n    } else {\n      \n    }\n  }\n\n  deleteSelectedClipboardAIWidget(): void {\n    if (this.selectedClipboardIndex != null) {\n      this.AIWidgets.splice(this.selectedClipboardIndex, 1);\n      this.selectedClipboardIndex = null;\n    } else {\n      \n    }\n  }\n  getAIWidgets(): Widget[] {\n    return this.AIWidgets;\n  }\n  private widgetsSource = new BehaviorSubject<Widget[]>([]);\n  widgets$ = this.widgetsSource.asObservable();\n\n  setWidgets(widgets: Widget[]): void {\n    this.widgetsSource.next(widgets);\n  }\n\n  setClipboardWidgets(widgets: Widget[]): void {\n    this.clipboardWidgets = widgets;\n  }\n\n  getClipboardWidgets(): Widget[] {\n    return this.clipboardWidgets;\n  }\n\n  private fsBot = new Subject<string>();\n  fsBot$ = this.fsBot.asObservable();\n\n  setfsBot(value: string): void {\n    this.fsBot.next(value);\n  }\n\n  private openTabSubject = new Subject<string>();\n  openTab$ = this.openTabSubject.asObservable();\n\n  openTab(tabName: string) {\n    this.openTabSubject.next(tabName);\n  }\n}\n","import { JsonConvert, JsonConverter, JsonCustomConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\n\n@JsonObject('ScriptExpression')\nexport class ScriptExpression{\n    @JsonProperty('expression_identifier',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression_identifier:string = \"\";\n\n    @JsonProperty('expression_value_id',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression_value_id: string = \"\";\n\n    @JsonProperty('expression_value_fixed',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression_value_fixed: any =\"\";\n\n    @JsonProperty('expression_operator_id',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression_operator_id:string =\"\"\n\n    @JsonProperty('expression_operator',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression_operator:ScriptOperator = ScriptOperator.equals;\n\n    @JsonProperty('expression_value',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression_value: string = \"\";\n\n    @JsonProperty('expression_operand_sql',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression_operand_sql:string = \"\";\n\n    @JsonProperty('expression_operator_sql',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression_operator_sql:string = \"\"\n}\n\n@JsonObject('nodes')\nexport class ScriptNode{\n\n    @JsonProperty(Constants.operator,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    operator:ScriptNodeOperator = null;\n\n    @JsonProperty(\"nodes\",[ScriptNode],PropertyConvertingMode.IGNORE_NULLABLE)\n    nodes:Array<ScriptNode> = [];\n\n    @JsonProperty(Constants.type,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    type:ScriptNodeType = null;\n\n    @JsonProperty(Constants.expression,ScriptExpression,PropertyConvertingMode.IGNORE_NULLABLE)\n    expression:ScriptExpression = null;\n}\n\nexport enum ScriptNodeType{\n    group= \"condition_group\",\n    condition = \"condition\"\n}\n\nexport enum ScriptOperator{\n    equals = \"equals\"\n}\nexport enum ScriptNodeOperator{\n    and = \"AND\",\n    or = \"OR\",\n    not = \"NOT\"\n}\n\n\n\n@JsonConverter\nexport class ScriptNodeConverter implements JsonCustomConvert<ScriptNode> {\n    serialize(nodes: ScriptNode): any {\n        const jsonConvert: JsonConvert = new JsonConvert();\n        return jsonConvert.serialize(nodes);\n    }\n\n    deserialize(nodes: any):any{\n        const jsonConvert: JsonConvert = new JsonConvert();\n        if(nodes == ''){\n            return null;\n        }\n        else{\n            return jsonConvert.deserialize(nodes,ScriptNode);\n        }\n        \n    }\n}","<!--  Choicelist component widget -->\n<ng-container *ngIf=\"widget\">\n  <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\"\n    (click)=\"onWidgetClick()\">\n    <div class=\"flex gap-2 justify-between box-border\">\n      <div class=\"flex gap-2 items-center box-border\">\n        <!-- <mat-icon svgIcon=\"axo_sculptor_choice_list\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n        <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\">\n          <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt'\n            [formControlName]=\"widget.id + '_prompt'\" #inputField (mousedown)=\"preventFocus($event)\"\n            (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\"\n            (blur)=\"updateIdentifier()\" class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n            (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n        </form>\n      </div>\n      <ng-container *ngIf=\"widget.isHidden\">\n        <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n      </ng-container>\n    </div>\n    <div class='form-field-input'>\n      <div class=\"icon-input-container\">\n        <mat-icon svgIcon=\"axo_sculptor_choice_list\" class=\"icon relative\"></mat-icon>\n        <input [placeholder]=\"widget.placeholder?widget.placeholder:'Enter your response'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        <mat-icon svgIcon=\"axo_sculptor_down-arrow_new\" class=\"icon2 relative \"></mat-icon>\n      </div>\n    </div>\n    <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\"\n        class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n  </div>\n  <div class=\"tooltip-container\">\n    <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n    <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n    <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\"\n        class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n    <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon\n        svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n    <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\"\n        class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n    </button>\n    <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n  </div>\n\n</ng-container>","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { ChoiceList } from '../../../forms/page/widgets/choicelist';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-choice-list',\n  templateUrl: './choice-list.component.html',\n  styleUrls: ['./choice-list.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ChoiceListComponent implements OnInit {\n// ---------------inputs-------------------------------\n@Input() widget: ChoiceList;\n@Input() group: FormGroup;\n@ViewChild('inputField') inputField: ElementRef;\n\n// --------------------------------------------\n/**\n * constructor\n *\n * @param _propertiesService\n */\nconstructor(\n  private _propertiesService: PropertiesService,\n  private _widgetProperties: WidgetsService,\n  private _formBuilderMasterService: FormBuilderMasterService,\n  private _widgetDropListComponent: WidgetDropListComponent\n) { }\n\n// -----------------------------------------------------------------------------------------------------\n// @ Lifecycle hooks start\n// -----------------------------------------------------------------------------------------------------\n/**\n * on init\n */\nngOnInit(): void {\n}\n\nngAfterViewInit():void{\n  const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n  textareaElement.style.height = \"20px\";\n  textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n  // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n  // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n  textareaElement.addEventListener(\"keyup\", e => {\n    const element = e.target as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${element.scrollHeight}px`;\n  })\n}\n// -----------------------------------------------------------------------------------------------------\n// @ Lifecycle hooks end\n// -----------------------------------------------------------------------------------------------------\n\n/**\n * to emit widgetClickEvent to show properties of selected widget\n */\nonWidgetClick(): void {\n  this._propertiesService.widgetClickEvent(this.widget);\n}\nvalid:any;\ndebounceTimeout:any;\nasync updateIdentifier(): Promise<void> {\n  // Clear any existing timeout to debounce the function calls\n  if (this.debounceTimeout) {\n      clearTimeout(this.debounceTimeout);\n  }\n\n  // Set a new timeout\n  this.debounceTimeout = setTimeout(async () => {\n      try {\n          const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n          const promptCleaned = this.widget.prompt.replace(/\\d/g, '').replace(/[^a-zA-Z0-9]/g, '_');\n\n          if (this.widget.prompt !== newIdentifier) {\n              this.valid = await this._widgetDropListComponent.validateUniqueIdentifier(this.widget);\n\n              if (this.valid && !this.widget.identifier.includes(promptCleaned)) {\n                  await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n              }\n          }\n\n          this.isEditable = false; // Set back to read-only after updating\n      } catch (error) {\n          \n      }\n  }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n\n  // const promptDivElement = document.getElementById(this.getTextAreaId());\n  // this.widget.prompt = promptDivElement.innerText;\n}\n  /**\n   * to emit widgetDeleteEvent to Delete Widget\n   */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Code } from \"../../common/widget-enums\";\nimport { ChoiceListOption, ChoiceListOptionConverter } from \"./choice-list-options\";\n\n@JsonObject(\"choices_ml\")\nexport class ChoicesMl {\n\n    @JsonProperty(Code.en, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    en: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.hi, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    hi: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.mar, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    mar: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.tel, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    tel: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.fr, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    fr: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.ar, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    ar: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.ID, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    ID: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.JP, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    JP: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.TH, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    TH: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.de, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    de: Array<ChoiceListOption> = [];\n\n    @JsonProperty(Code.es, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    es: Array<ChoiceListOption> = [];\n\n    constructor(value?: ChoicesMl) {\n        if (value) {\n            this.createValue(value);\n        }\n        else {\n            this.createNewValue();\n        }\n    }\n\n    // Function to create new audio/video value \n    createNewValue(): void {\n        this.en = null;\n        this.hi = null;\n        this.mar = null;\n        this.tel = null;\n        this.fr = null;\n        this.ar = null;\n        this.ID = null;\n        this.de = null;\n        this.JP = null;\n        this.es = null;\n        this.TH = null;\n    }\n\n    /**function to create audio/video value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?): void {\n        this.en = value.en;\n        this.hi = value.hi;\n        this.mar = value.mar;\n        this.tel = value.tel;\n        this.fr = value.fr;\n        this.ar = value.ar;\n        this.ID = value.ID;\n        this.de = value.de;\n        this.JP = value.JP;\n        this.es = value.es;\n        this.TH = value.TH;\n    }\n}\n","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { DataSource, SetValueModeType, WidgetLayout, WidgetSubType, WidgetType } from '../common/widget-enums';\nimport { ReferenceListValue } from './widget-value/reference-list-object-value';\nimport { ChoiceListOption, ChoiceListOptionConverter } from './widget-value/choice-list-options';\nimport { ParseIntConverter } from '../value-converters/parse-int-converter';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { ScriptNode, ScriptNodeConverter } from './script-condition';\nimport { ChoiceListComponent } from '../../../sculptor-lib/widgets/choice-list/choice-list.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { ChoicesMl } from './widget-value/choices-ml';\nimport { DisplayModeToBoolean } from '../value-converters/displayMode-to-bool';\nimport { first } from 'lodash';\n\n@JsonObject('ChoiceList')\nexport class ChoiceList extends Widget {\n  @PropertyPanelField({\n    inputType: 'select', label: 'Data source',\n    choices: [{ value: 'fixed_list', text: 'Fixed List' }, { value: 'reference_list', text: 'Reference List' }],\n    required: true, helpText: 'Select Source', sortIndex: 2, isEditable: true,\n  })\n  @JsonProperty(Constants.choicesSource, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  choicesSource: string = '';\n  @JsonProperty(Constants.isEditable, DisplayModeToBoolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  isEditable: boolean = true;\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n  // @JsonProperty(Constants.dataSource, DataSource, PropertyConvertingMode.IGNORE_NULLABLE)\n  // dataSource: DataSource;\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  @PropertyPanelField({\n    inputType: 'defaultchoicelist', label: 'Reference to', choices: [], required: false,\n    helpText: 'Reference to what type of objects?', sortIndex: 3 , conditionInputType: 'choicesSource', conditionInputData: ['reference_list']\n  })\n  @JsonProperty(Constants.referenceForm, ParseIntConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  referenceForm: string;\n\n  @PropertyPanelField({\n    inputType: 'choicetext', label: 'Choices', conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'],\n    helpText: 'Enter comma separated choice options', sortIndex: 4\n  })\n  \n  @JsonProperty('choices', ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // choices: Array<ChoiceListOption> = [];\n  choices: any;\n\n  @PropertyPanelField({\n    inputType: 'defaultchoicelist', label: 'Default Choice', choices: [], conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'],\n    helpText: 'Select Source', sortIndex: 5\n  })\n  @JsonProperty(Constants.defaultChoice, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultChoice: string;\n\n  @JsonProperty(Constants.defaultValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultValue: string;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Allow Barcode/QR code search', conditionInputType: 'inputType',\n    helpText: 'Allow barcode or QR code scan for search option', sortIndex: 9\n  })\n  @JsonProperty(Constants.allowBarCodeQrCodeSearch, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  allowBarCodeQrCodeSearch: boolean = false;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Multiple Selection', \n    helpText: 'Allow selecting multiple choices or only one?', sortIndex: 7\n  })\n  @JsonProperty(Constants.multiSelect, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  multiSelect: boolean = false;\n\n  // @PropertyPanelField({\n  //   inputType: 'select', label: 'Method', choices: [{ value: 'get', text: 'GET' }, { value: 'post', text: 'POST' }, { value: 'put', text: 'PUT' }, { value: 'patch', text: 'PATCH' }],\n  //   helpText: 'Method', sortIndex: 13\n  // })\n  @JsonProperty(Constants.apiMethod, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  apiMethod: string = '';\n\n  @JsonProperty(Constants.mode,String,PropertyConvertingMode.IGNORE_NULLABLE)\n  mode: SetValueModeType=null;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Apply Geofence', conditionInputType: 'choicesSource', conditionInputData: ['reference_list'],\n    helpText: 'Apply geofence while submitting the form?', sortIndex: 13\n  })\n  @JsonProperty(Constants.applyGeoFence, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  applyGeoFence: boolean = false;\n\n  @JsonProperty(Constants.oldValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  oldValue: string = '';\n\n  @JsonProperty(Constants.filterConditions, ScriptNodeConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  filterConditions: ScriptNode = null;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Show Location', conditionInputType: 'choicesSource', conditionInputData: ['reference_list'],\n    helpText: 'Allow Showing Location', sortIndex: 12\n  })\n  @JsonProperty(Constants.showLocation, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  showLocation: boolean = false;\n  // @JsonProperty(Constants.imageFixedListJson, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // imageFixedListJson: string = '';//ImageFixedListJson\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Download when selected', conditionInputType: 'choicesSource', conditionInputData: ['reference_list'],\n    helpText: 'Download reference form on selecting', sortIndex: 11\n  })\n  @JsonProperty(Constants.downloadWhenSelected, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  downloadWhenSelected: boolean = false;\n  // @JsonProperty(Constants.fieldMapJson, ChoiceListFieldMapConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // fieldMap: Array<ChoiceListFieldMap> = [];//FieldMapJsonObject\n\n  // @PropertyPanelField({\n  //   inputType: 'text', label: 'Username',\n  //   helpText: 'Username', sortIndex: 14\n  // })\n  @JsonProperty(Constants.userName, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  username: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Apply Access Levels', conditionInputType: 'choicesSource', conditionInputData: ['reference_list'],\n    helpText: 'Use Access Levels to filter search results', sortIndex: 14\n  })\n  @JsonProperty(Constants.applyAccessLevels, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  applyAccessLevels: boolean = true;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Adding reference', conditionInputType: 'choicesSource', conditionInputData: ['reference_list'],\n    helpText: 'Allow adding reference', sortIndex: 8\n  })\n  @JsonProperty(Constants.addReference, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  addReference: boolean = false;\n\n  @JsonProperty(Constants.newValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  newValue: string = '';\n\n  // @PropertyPanelField({\n  //   inputType: 'text', label: 'Password',\n  //   helpText: 'Password', sortIndex: 15\n  // })\n  @JsonProperty(Constants.password, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  password: string = '';\n\n  @JsonProperty(Constants.fontSize, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  fontSize: string = '';\n  @JsonProperty(Constants.barQRSearch, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  barQRSearch: string = '';\n\n  // @PropertyPanelField({\n  //   inputType: 'toggle', label: 'Is Status', conditionInputType: 'choicesSource', conditionInputData: ['reference_list'],\n  //   helpText: 'To specify whether this field will be available for setting as list view status or not', sortIndex: 16\n  // })\n  @JsonProperty(Constants.isStatus, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  isStatus: boolean = false;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Repopulate value',\n    helpText: 'Should the value once entered, repopulate while filling the subsequent records?', sortIndex: 10\n  })\n  @JsonProperty(Constants.repopulateValue, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  repopulateValue: boolean = false;\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Unit', conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'],\n    helpText: 'Select unit', sortIndex: 6\n  })\n  @JsonProperty(Constants.unit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  unit: string = '';\n\n  // @PropertyPanelField({\n  //   inputType: 'text', label: 'API URL',\n  //   helpText: 'API URL', sortIndex: 12\n  // })\n  @JsonProperty(Constants.apiUrl, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  apiUrl: string = '';\n\n  @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  dependents: [];//Dependant\n\n  // @PropertyPanelField({\n  //   inputType: 'prompttext', label: 'Choices (Default)(English)',\n  //   helpText: 'Enter choices, one per line', code: 'en', sortIndex: 17, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list']\n  // })\n  // @JsonProperty(Constants.choices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // choices: string;\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Hindi)', code: 'hi', helpText: 'Enter choices, one per line', sortIndex: 20, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'] })\n  @JsonProperty(Constants.hiChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  hiChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Marathi)', code: 'mar', helpText: 'Enter choices, one per line', sortIndex: 21, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'] })\n  @JsonProperty(Constants.marChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  marChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (telugu)', code: 'tel', helpText: 'Enter choices, one per line', sortIndex: 22, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'] })\n  @JsonProperty(Constants.telChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  telChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (french)', code: 'fr', helpText: 'Enter choices, one per line', sortIndex: 23, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'] })\n  @JsonProperty(Constants.frChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  frChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (arabic)', code: 'ar', helpText: 'Enter choices, one per line', sortIndex: 24, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list']})\n  @JsonProperty(Constants.arChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  arChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Japanese)', code: 'JP', helpText: 'Enter choices, one per line', sortIndex: 25, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'] })\n  @JsonProperty(Constants.JPChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  JPChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Bahasa)', code: 'ID', helpText: 'Enter choices, one per line', sortIndex: 26, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'] })\n  @JsonProperty(Constants.IDChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  IDChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Thai)', code: 'TH', helpText: 'Enter choices, one per line', sortIndex: 27 , conditionInputType: 'choicesSource', conditionInputData: ['fixed_list']})\n  @JsonProperty(Constants.THChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  THChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Chinese)', code: 'CN', helpText: 'Enter choices, one per line', sortIndex: 28, conditionInputType: 'choicesSource', conditionInputData: ['fixed_list'] })\n  @JsonProperty(Constants.CNChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  CNChoices: string = '';\n\n  @JsonProperty(Constants.choicesMl, ChoicesMl, PropertyConvertingMode.IGNORE_NULLABLE)\n  choicesMl: ChoicesMl;\n\n  @JsonProperty(Constants.validityDependents, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  validityDependents: [];\n\n  @JsonProperty(Constants.widgetLayout, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  widgetLayout: WidgetLayout = null;\n\n  // widgetIcon: string = 'axo_choice_list';\n  // validate: boolean = true;\n  name: string;\n  \n\n  component: Type<ChoiceListComponent> = ChoiceListComponent;\n\n  value: Array<ReferenceListValue> | Array<string> = null;\n  field_map_json: []\n\n\n\n  /* Constructor */\n  constructor(field?: Widget) {\n    super(field);\n    //this.id = id;\n    if (field && field.identifier) {\n      this.choiceList(field);\n    }\n    else {\n      this.newChoiceList();\n    }\n    // this.dataSource = field[Constants.DATA_SOURCE];\n    // this.choices = field[Constants.CHOICES].split('\\n');\n\n    this.createValidators();\n  }\n  /**\n   * get widget values\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n\n    if (this.value) {\n      if (this.subType === WidgetSubType.fixedList || this.subType === WidgetSubType.imageFixedList) {\n        return JSON.stringify(this.value);\n      }\n      else if (this.subType === WidgetSubType.referenceList) {\n        const jsonConvert: JsonConvert = new JsonConvert();\n        const value = this.value as Array<ReferenceListValue>;\n        const newValue = jsonConvert.serialize(value, ReferenceListValue);\n        return JSON.stringify(newValue);\n      }\n    }\n    else {\n      return '';\n    }\n  }\n\n  // Function to create new choice-list object\n  newChoiceList(): void {\n    this.isEditable = false;\n    this.prompt ='Choice List';\n    this.placeholder='Enter your response';\n    this.mode = SetValueModeType.onTap;\n    this.helpText = '';\n    this.choicesSource = 'fixed_list';\n    this.choicesMl = new ChoicesMl;\n    this.choices = 'Choice 1,Choice 2,Choice 3';\n    this.markup = '';\n    this.defaultChoice = '';\n    this.allowBarCodeQrCodeSearch = false;\n    this.unit = '';\n    this.apiMethod = '';\n    this.applyGeoFence = false;\n    this.repopulateValue = false;\n    this.oldValue = '';\n    this.referenceForm = '';\n    this.filterConditions = null;\n    this.showLocation = false;\n    //this.imageFixedListJson= null;//ImageFixedListJson\n    this.downloadWhenSelected = false;\n    //this.fieldMapJson= null;//FieldMapJsonObject\n    this.username = '';\n    this.applyAccessLevels = true;\n    this.addReference = false;\n    // this.choicesSource = '';\n    this.newValue = '';\n    this.password = '';\n    this.fontSize = '';\n    this.barQRSearch = '';\n    this.isStatus = true;\n    this.allowBarCodeQrCodeSearch = true;\n    this.apiUrl = '';\n    this.multiSelect = false;\n    this.mainType = 'choice'\n    this.subType = WidgetSubType.fixedList\n    this.type = WidgetType.choiceList;\n    this.dependents = [];\n    this.validityDependents = [];\n    this.name = 'Choice List';\n  }\n\n  /**function to create choice-list object with existing values\n  *\n  *@param Report\n  *\n  */\n  choiceList(field): void {\n    this.isEditable = field.isEditable;\n    this.placeholder=field.placeholder;\n    this.prompt = field.prompt;\n    this.mode = field.mode;\n    this.helpText = field.helpText;\n    this.choicesMl = field.ChoicesMl;\n    this.markup = field.markup;\n    this.choicesSource = field.choicesSource;\n    this.choices = field.choices;\n    this.defaultChoice = field.defaultChoice;\n    this.allowBarCodeQrCodeSearch = field.allowBarCodeQrCodeSearch;\n    this.unit = field.unit;\n    this.apiMethod = field.apiMethod;\n    this.applyGeoFence = field.applyGeoFence;\n    this.oldValue = field.oldValue;\n    this.referenceForm = field.referenceForm;\n    this.filterConditions = field.filterConditions;\n    this.showLocation = field.showLocation;\n    // this.imageFixedListJson= field.imageFixedListJson;//ImageFixedListJson\n    this.downloadWhenSelected = field.downloadWhenSelected;\n    //this.fieldMapJson= field.fieldMapJson;//FieldMapJsonObject\n    this.username = field.username;\n    this.applyAccessLevels = field.applyAccessLevels;\n    this.addReference = field.addReference;\n    // this.choicesSource = field.choicesSource;\n    this.newValue = field.newValue;\n    this.password = field.password;\n    this.fontSize = field.fontSize;\n    this.barQRSearch = field.barQRSearch;\n    this.isStatus = field.isStatus;\n    this.allowBarCodeQrCodeSearch = field.allowBarCodeQrCodeSearch;\n    this.apiUrl = field.apiUrl;\n    this.multiSelect = field.multiSelect;\n    this.mainType = field.mainType;\n    this.type = field.type;\n    this.subType = field.subType;\n    this.identifier = field.identifier;\n    this.dependents = field.dependant;\n    this.repopulateValue = field.repopulateValue;\n    this.validityDependents = field.validityDependents;\n    this.widgetLayout = field.widgetLayout;\n    this.widgetLayout = WidgetLayout.twoLine;\n    this.name = field.name;\n  }\n\n  /*\n * Override createValidators\n * Create all Validators of  choice-list widget. ~(Required validator added from common widget)\n */\n  createValidators(): void {\n    //super.createValidators();\n  }\n\n\n\n  /**\n   * Create FormControl for widget\n   */\n  createFormControl(): void {\n    //this.formControl = new FormControl(this.value,this.validators);\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = ChoiceList.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}\n","import { JsonConverter, JsonCustomConvert } from \"json2typescript\";\n\n@JsonConverter\nexport class ValueWithoutMaskConverter implements JsonCustomConvert<string> {\n    serialize(value: string): string {\n        return value.toString();\n    }\n\n    deserialize(value: any): string {\n        if (typeof (value) == 'string') {\n            return value;\n        }\n        else{\n            return value[0];\n        }\n    }\n\n}\n","<!-- Text box widget -->\n<ng-container *ngIf=\"widget\">\n  <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\"\n    (click)=\"onWidgetClick()\">\n    <div class=\"flex gap-2 justify-between box-border\">\n      <div class=\"flex gap-2 items-center box-border\">\n        <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\">\n          <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt'\n            [formControlName]=\"widget.id + '_prompt'\" #inputField (mousedown)=\"preventFocus($event)\"\n            (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\"\n            (blur)=\"updateIdentifier()\" class=\"prompt-text box-border\" [readonly]=\"!isEditable\" (dblclick)=\"onDoubleClick($event)\"\n            matTooltip=\"Double Click to Edit\"></textarea>\n        </form>\n      </div>\n      <ng-container *ngIf=\"widget.isHidden\">\n        <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n      </ng-container>\n\n    </div>\n\n    <div [ngClass]=\"widget.isMultiline ? 'text-area' : 'form-field-input'\">\n      <div class=\"icon-input-container flex\">\n\n        <div *ngIf=\"!widget.isMultiline\" [ngSwitch]=\"widget.inputType\" class=\"icon-parent\">\n          <mat-icon *ngSwitchCase=\"'numeric'\" svgIcon=\"axo_number_color\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'decimal'\" svgIcon=\"axo_decimal\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'email'\" svgIcon=\"axo_email\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'phone'\" svgIcon=\"axo_sculptor_phone\" class=\"field-icon \"></mat-icon>\n          <mat-icon *ngSwitchDefault svgIcon=\"axo_sculptor_text\" class=\"field-icon\"></mat-icon>\n        </div>\n\n        <div *ngIf=\"widget.isMultiline\" class=\"icon-parent mb-16\">\n          <mat-icon svgIcon=\"axo_sculptor_multilinetext\" class=\"\"></mat-icon>\n        </div>\n\n        <input [placeholder]=\"widget.placeholder ? widget.placeholder : 'Enter your response'\" readonly=true\n          [formControlName]=\"widget.id\" *ngIf=\"!widget.isMultiline\" />\n        <textarea [placeholder]=\"widget.placeholder ? widget.placeholder : 'Enter your response'\" readonly=true\n          [formControlName]=\"widget.id\" *ngIf=\"widget.isMultiline\" rows=\"3\"></textarea>\n      </div>\n\n    </div>\n    <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\"\n        class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n\n  </div>\n  <div class=\"tooltip-container\">\n    <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n    <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n    <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\"\n        class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n    <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon\n        svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n    <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\"\n        class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n    </button>\n    <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n  </div>\n\n</ng-container>","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { TextBox } from '../../../forms/page/widgets/textbox';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'widget-textBox',\n  templateUrl: './textbox.component.html',\n  styleUrls: ['./textbox.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class TextBoxComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: TextBox;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n\n\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n                            // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n\n\n\n\n  /**    console.log(\"***save***\");\n\n   * to emit widgetDeleteEvent to Delete Widget\n   */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n    // Reset confirmation when hovering over other widgets\n\n    showConfirmation: boolean = false;\n    confirmbutton () {\n      this.showConfirmation = !this.showConfirmation;\n    }\n    @HostListener('mouseenter')\n    onMouseEnter() {\n      this.showConfirmation = false;\n    }\n    copyWidget(): void {\n      this._widgetProperties.widgetCopyEvent(this.widget);\n    }\n    cutWidget(): void {\n      this._widgetProperties.widgetCutEvent(this.widget);\n    }\n    isPasteInProgress: boolean = false;\n    pasteWidget(): void {\n      this.isPasteInProgress = true;\n    // Call the widget paste event\n      this._propertiesService.widgetClickEvent(this.widget);\n      this._widgetProperties.widgetPasteEvent();\n  \n    // Set a timeout to reset the flag after a certain period\n  setTimeout(() => {\n    // Reset the flag after a certain period (e.g., 500 milliseconds)\n    this.isPasteInProgress = false;\n  }, 500); // Adjust the timeout duration as needed\n  }\n  calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n\n  previousValue: string = '';\n\nonModelChange(currentValue: string): void {\n  if (this.previousValue !== currentValue) {\n    this.previousValue = currentValue;\n    this.updateIdentifier(); // Call only if the value has changed\n  }\n}\n\nonEnterKey(inputField: HTMLTextAreaElement): void {\n  this.onModelChange(inputField.value); // Ensure change detection on enter\n  inputField.blur(); // Trigger blur after enter\n}\n\nonBlur(): void {\n  this.onModelChange(this.widget.prompt); // Check for value changes on blur\n}\n\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Case, WidgetLayout, WidgetType } from '../common/widget-enums';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { TextBoxMaskConverter } from '../value-converters/textBox-mask-converter';\nimport { ValueWithoutMaskConverter } from '../value-converters/value-without-mask-converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { TextBoxComponent } from '../../../sculptor-lib/widgets/textbox/textbox.component';\nimport { ChoicesMl } from './widget-value/choices-ml';\nimport { StringToNumberConverter } from '../value-converters/string-to-number -converter';\nimport { ChoiceListOptionConverter } from './widget-value/choice-list-options';\n\ntype TextBoxValueValue = Type<string | number>;\n@JsonObject('TextBox')\nexport class TextBox extends Widget {\n  component: Type<TextBoxComponent> = TextBoxComponent;\n\n\n  value: TextBoxValueValue;\n  // widgetIcon: string = 'axo_square_text';\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Input Type',\n    choices: [{ value: 'email', text: 'Email' },\n    { value: 'numeric', text: 'Numeric' }, { value: 'decimal', text: 'Decimal' },\n    { value: 'address', text: 'Address' }, { value: 'text', text: 'Plain Text' }, { value: 'phone', text: 'Phone' }],\n    required: true, helpText: 'Select Input Type', sortIndex: 2, isEditable: true})\n  @JsonProperty(Constants.inputType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  inputType: string = '';\n\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Minimum Length', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Select Minimum Length', colSpan: 50, sortIndex: 3\n  })\n  @JsonProperty(Constants.minLength, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  minLength: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Maximum Length', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Select Maximum Length', colSpan: 50, sortIndex: 4\n  })\n  @JsonProperty(Constants.maxLength, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxLength: string;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Mask',\n    choices: [{ value: '', text: 'None' }, { value: 'date', text: 'Date (15/08/1947)' },\n    { value: 'hour', text: 'Hour (12:00)' }, { value: 'date_hour', text: 'Date & Hour (15/08/1947 12:00)' },\n    { value: 'zip_code', text: 'ZIP Code (12345-678)' }, { value: 'crazy_zip_code', text: 'Crazy ZIP Code (1-23-45-67)' },\n    { value: 'telephone', text: 'Telephone (1234-5678)' }, { value: 'telephone_with_code_area', text: 'Telephone with Code Area ((02) 4021-2265)' },\n    { value: 'us_telephone', text: 'US Telephone ((123) 456-7899)' }, { value: 'ip_address', text: 'IP Address (127.000.000.001)' },\n    { value: 'money', text: 'Money (1.000,00)' }, { value: 'other', text: 'Other' }],\n    conditionInputType: 'inputType', conditionInputData: ['text', 'phone'],\n    helpText: 'Select User Input Format', sortIndex: 29\n  })\n  @JsonProperty('mask', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  mask: string = null;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'is Multiline', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Allow multiline', sortIndex: 6\n  })\n  @JsonProperty(Constants.isMultiline, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  isMultiline: boolean;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Case', choices: [{ value: '', text: '' },\n    { value: 'capital', text: 'Capital' }, { value: 'small', text: 'Small' }, { value: 'title', text: 'Title' }],\n    conditionInputType: 'inputType', conditionInputData: ['text'], helpText: 'Select Case', sortIndex: 5\n  })\n  @JsonProperty('case', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  case: Case;\n\n  @JsonProperty(Constants.defaultCase, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultCase: string;\n\n  @PropertyPanelField({ inputType: 'text', label: 'On Value Edit', helpText: 'This function will be called on every character change in the text', sortIndex: 7 })\n  @JsonProperty(Constants.onValueEdit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  onValueEdit: string;\n\n  @PropertyPanelField({ inputType: 'text', label: 'Default text', helpText: 'Enter Default Text'})\n  @JsonProperty(Constants.defaultText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultText: string;\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Enter other mask', conditionInputType: 'mask', conditionInputData: ['other'],\n    helpText: 'Enter other mask', sortIndex: 8\n  })\n  @JsonProperty(Constants.otherMask, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  otherMask: string;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'OTP Verification\t', conditionInputType: 'inputType', conditionInputData: ['phone'],\n    helpText: 'Required OTP verification', sortIndex: 9\n  })\n  @JsonProperty(Constants.isOtpVerificationRequired, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  isOtpVerificationRequired: boolean;\n\n  @JsonProperty(Constants.mastringType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  mastringType: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Decimal Places', conditionInputType: 'inputType', conditionInputData: ['decimal'],\n    helpText: 'Select Maximum Digits after decimal point', sortIndex: 10\n  })\n  @JsonProperty(Constants.maxDecimal, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxDecimal: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Minimum Number', conditionInputType: 'inputType', conditionInputData: ['numeric'],\n    helpText: 'Select Minimum Number', sortIndex: 11\n  })\n  @JsonProperty(Constants.minNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  minNumber: string;\n\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Allow Multiple Email IDs?', conditionInputType: 'inputType', conditionInputData: ['email'],\n    helpText: 'Allow Multiple Email ID\\'s', sortIndex: 12\n  })\n  @JsonProperty(Constants.allowMultipleEmails, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  allowMultipleEmails: boolean;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: '  Save number', conditionInputType: 'inputType', conditionInputData: ['phone'],\n    helpText: 'Save the phone number on the server', sortIndex: 13\n  })\n  @JsonProperty(Constants.saveNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  saveNumber: string = '1';\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Maximum Number', conditionInputType: 'inputType', conditionInputData: ['numeric'],\n    helpText: 'The maximum limit for the number can be 2147483647', sortIndex: 14\n  })\n  @JsonProperty(Constants.maxNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxNumber: string;\n\n  @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  dependents: [];//Dependant\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Verification Mandatory?', conditionInputType: 'isOtpVerificationRequired', conditionInputData: ['true'],\n    helpText: 'Submit record without OTP verification', sortIndex: 15\n  })\n  @JsonProperty(Constants.submitWithoutVerification, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  submitWithoutVerification: string;\n\n  @JsonProperty(Constants.valueWithoutMask, ValueWithoutMaskConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  valueWithoutMask: string = '';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Unit', conditionInputType: 'inputType', conditionInputData: ['numeric', 'decimal'],\n    helpText: 'Select unit', sortIndex: 16\n  })\n  @JsonProperty(Constants.unit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  unit: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Multiple Selection', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Allow selecting multiple choices or only one?', sortIndex: 17\n  })\n  @JsonProperty(Constants.multiSelect, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  multiSelect: boolean = false;\n\n  // @JsonProperty('updateIdentifierCheck', StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // updateidentifiercheck: boolean = false;\n\n  // @JsonProperty(Constants.field, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // changedField: string;\n\n  @JsonProperty(Constants.choicesMl, ChoicesMl, PropertyConvertingMode.IGNORE_NULLABLE)\n  choicesMl: ChoicesMl;\n\n  // @JsonProperty(Constants.newValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // newValue: string = '';\n\n  // @JsonProperty(Constants.oldValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // oldValue: string = '';\n\n  @PropertyPanelField({ inputType: 'toggle', label: 'Repopulate value', helpText: 'Should the value once entered, repopulate while filling the subsequent records?', sortIndex: 18 })\n  @JsonProperty(Constants.repopulateValue, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  repopulateValue: boolean = false;\n\n  @JsonProperty(Constants.widgetLayout, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  widgetLayout: WidgetLayout = null;\n\n  @PropertyPanelField({\n    inputType: 'prompttext', label: 'Choices (Default)(English)', conditionInputType: 'inputType', conditionInputData: ['text','numeric','decimal','address','phone'],\n    helpText: 'Enter choices, one per line', code: 'en', sortIndex: 19\n  })\n  @JsonProperty(Constants.choices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  choices: string;\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Hindi)', code: 'hi', helpText: 'Enter choices, one per line', sortIndex: 20 })\n  @JsonProperty(Constants.hiChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  hiChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Marathi)', code: 'mar', helpText: 'Enter choices, one per line', sortIndex: 21 })\n  @JsonProperty(Constants.marChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  marChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (telugu)', code: 'tel', helpText: 'Enter choices, one per line', sortIndex: 22 })\n  @JsonProperty(Constants.telChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  telChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (french)', code: 'fr', helpText: 'Enter choices, one per line', sortIndex: 23 })\n  @JsonProperty(Constants.frChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  frChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (arabic)', code: 'ar', helpText: 'Enter choices, one per line', sortIndex: 24 })\n  @JsonProperty(Constants.arChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  arChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Japanese)', code: 'JP', helpText: 'Enter choices, one per line', sortIndex: 25 })\n  @JsonProperty(Constants.JPChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  JPChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Bahasa)', code: 'ID', helpText: 'Enter choices, one per line', sortIndex: 26 })\n  @JsonProperty(Constants.IDChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  IDChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Thai)', code: 'TH', helpText: 'Enter choices, one per line', sortIndex: 27 })\n  @JsonProperty(Constants.THChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  THChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Chinese)', code: 'CN', helpText: 'Enter choices, one per line', sortIndex: 28 })\n  @JsonProperty(Constants.CNChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  CNChoices: string = '';\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  name: string;\n\n  constructor(field?: any) {\n    super(field);\n        if (field) {\n      this.textBox(field);\n    }\n    else {\n      this.newTextBox();\n    }\n  }\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any): void {\n    this.value = value;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue(): string {\n\n    if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n\n  /**function to create text-box object with existing values\n  *\n  *@param field\n  *\n  */\n  textBox(field): void {\n    this.helpText = field.helpText;\n    this.inputType = field.inputType;\n    this.choicesMl = field.ChoicesMl;\n    this.minLength = field.minLength;\n    this.maxLength = field.maxLength;\n    this.mask = field.mask;\n    this.isMultiline = field.isMultiline;\n    this.case = field.case;\n    // this.defaultCase = field.defaultCase;\n    this.onValueEdit = field.onValueEdit;\n    this.defaultText = field.defaultText;\n    this.otherMask = field.otherMask;\n    this.isOtpVerificationRequired = field.isOtpVerificationRequired;\n    this.validityDependents = field.validityDependents;\n    // this.mastringType = field.mastringType;\n    this.maxDecimal = field.maxDecimal;\n    this.minNumber = field.minNumber;\n    this.allowMultipleEmails = field.allowMultipleEmails;\n    this.saveNumber = field.saveNumber;\n    this.maxNumber = field.maxNumber;\n    this.dependents = field.dependant;\n    this.submitWithoutVerification = field.submitWithoutVerification;\n    // this.valueWithoutMask = field.valueWithoutMask;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.unit = field.unit;\n    this.multiSelect = field.multiSelect;\n    this.name = field.name;\n    this.subType = field.inputType;\n    this.mainType = field.mainType;\n    // this.newValue = field.newValue;\n    // this.oldValue = field.oldValue;\n    this.repopulateValue = field.repopulateValue;\n    this.widgetLayout = field.widgetLayout;\n    this.markup = field.markup;\n    // this.changedField = \"identifier\";\n    this.choices = field.choices;\n    this.hiChoices = field.hiChoices;\n    this.marChoices = field.marChoices;\n    this.telChoices = field.telChoices;\n    this.frChoices = field.frChoices;\n    this.arChoices = field.arChoices;\n    this.JPChoices = field.JPChoices;\n    this.IDChoices = field.IDChoices;\n    this.THChoices = field.THChoices;\n    this.CNChoices = field.CNChoices;\n    this.placeholder=field.placeholder;\n  }\n\n  // Function to create new text-box object\n  newTextBox(): void {\n    this.helpText = '';\n    this.inputType = 'text';\n    this.choicesMl = new ChoicesMl;\n    this.minLength = '0';\n    this.maxLength = '1000';\n    this.repopulateValue = false;\n    this.mask = '';\n    this.isMultiline = false;\n    this.case = Case.none;\n    // this.defaultCase = null;\n    this.onValueEdit = '';\n    this.isOtpVerificationRequired = false;\n    this.validityDependents = [];\n    // this.mastringType = null;\n    this.maxDecimal = '2';\n    this.minNumber = '0';\n    this.allowMultipleEmails = false;\n    this.saveNumber = '1';\n    this.maxNumber = '999999';\n    this.dependents = [];\n    this.submitWithoutVerification = '2';\n    // this.valueWithoutMask = '';\n    this.type = WidgetType.textBox;\n    this.identifier = 'textBox';\n    this.unit = '';\n    this.multiSelect = false;\n    this.name = 'TextBox';\n    this.subType = 'text';\n    // this.changedField = \"identifier\";\n    this.mainType = 'text';\n    // this.newValue = '';\n    // this.oldValue = '';\n    this.widgetLayout = WidgetLayout.twoLine;\n    this.defaultText = '';\n    this.otherMask = '';\n    this.markup = '';\n    this.choices = '';\n    this.hiChoices = '';\n    this.marChoices = '';\n    this.telChoices = '';\n    this.frChoices = '';\n    this.arChoices = '';\n    this.JPChoices = '';\n    this.IDChoices = '';\n    this.THChoices = '';\n    this.CNChoices = '';\n    this.placeholder='Enter your response'\n  }\n\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    if(key == \"inputType\"){\n    }\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n\n    const indexMap = new Map<string, number>();\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    const prop = []; // to hold sorted property names\n    const newProp = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = TextBox.getPropertyPanelFieldMetadata(this, propertyName);\n      if(propertyName == \"inputType\"){\n      }\n      if (metadata) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex) {\n          prop.splice(metadata.sortIndex, 0, propertyName);\n        }\n        else {\n          newProp.push(propertyName);\n        }\n      }\n    }\n    const data = {\n      properties: properties,\n      keys: prop.concat(newProp)\n    };\n    return data;\n  }\n\n}","import { JsonConverter,  JsonCustomConvert } from \"json2typescript\";\nimport { BooleanValue } from \"../common/widget-enums\";\n\n@JsonConverter\nexport class StringToNumberConverter implements JsonCustomConvert<number> {\n    serialize(value: number): string {\n       return value.toString();\n    }\n\n    deserialize(value: any): number {\n        if(typeof(value) === \"string\"){\n            return value == \"\" ? null : parseInt(value);\n        }else{\n            return value;\n        }\n    }\n}\n\n\n","<!-- Search widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n      <div class=\"flex gap-2 justify-between box-border\">\n        <div class=\"flex gap-2 justify-center items-center box-border\">\n          <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>  \n          </form>\n        </div>\n        <ng-container *ngIf=\"widget.isHidden\">\n          <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n        </ng-container>\n\n      </div>\n\n      <div [ngClass]=\"widget.isMultiline ? 'text-area' : 'form-field-input'\">\n        <div class=\"icon-input-container flex\">\n\n          <div *ngIf=\"!widget.isMultiline\" [ngSwitch]=\"widget.inputType\" class=\"icon-parent\">\n          <mat-icon *ngSwitchCase=\"'numeric'\" svgIcon=\"axo_number\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'decimal'\" svgIcon=\"axo_decimal\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'email'\" svgIcon=\"axo_email\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'phone'\" svgIcon=\"axo_sculptor_phone\" class=\"field-icon \"></mat-icon>\n          <mat-icon *ngSwitchDefault svgIcon=\"axo_sculptor_search\" class=\"field-icon\"></mat-icon>\n        </div>\n\n        <div *ngIf=\"widget.isMultiline\" class=\"icon-parent mb-16\">\n          <mat-icon svgIcon=\"axo_sculptor_multilinetext\" class=\"\"></mat-icon>\n        </div>\n\n          <input [placeholder]=\"widget.placeholder ? widget.placeholder : 'Enter your response'\" readonly=true [formControlName]=\"widget.id\"\n          *ngIf=\"!widget.isMultiline\" />\n          <textarea [placeholder]=\"widget.placeholder ? widget.placeholder : 'Enter your response'\" readonly=true [formControlName]=\"widget.id\"\n          *ngIf=\"widget.isMultiline\" rows=\"3\"></textarea>\n        </div>\n\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../../common-property-panel/properties/properties.service';\nimport { Search } from '../../../../forms/page/widgets/search';\nimport { WidgetsService } from '../../widgets.service';\nimport { FormBuilderMasterService } from '../../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'lib-search',\n  templateUrl: './search.component.html',\n  styleUrls: ['./search.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class SearchComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Search;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n                            // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n\n  updateIdentifier(): void {\n    if(this.widget.prompt.replace(/[^a-zA-Z0-9]/g, '_') !== this.widget.identifier)\n      if(!this.widget.identifier.includes(this.widget.prompt.replace(/\\d/g  , '').replace(/[^a-zA-Z0-9]/g, '_')))\n      this._widgetDropListComponent.addUniqueIdentifier(this.widget); \n      // else if (this.widget.identifier !== this.widget.prompt.replace(/\\s+/g, '_'))\n      //   this._widgetDropListComponent.addUniqueIdentifier(this.widget); \n      this.isEditable = false; // Set back to read-only after updating\n\n      // const promptDivElement = document.getElementById(this.getTextAreaId());\n      // this.widget.prompt = promptDivElement.innerText;\n  }\n  /**\n   * to emit widgetDeleteEvent to Delete Widget\n   */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n    // Reset confirmation when hovering over other widgets\n\n    showConfirmation: boolean = false;\n    confirmbutton () {\n      this.showConfirmation = !this.showConfirmation;\n    }\n    @HostListener('mouseenter')\n    onMouseEnter() {\n      this.showConfirmation = false;\n    }\n    copyWidget(): void {\n      this._widgetProperties.widgetCopyEvent(this.widget);\n    }\n    cutWidget(): void {\n      this._widgetProperties.widgetCutEvent(this.widget);\n    }\n    isPasteInProgress: boolean = false;\n     pasteWidget(): void {\n      this.isPasteInProgress = true;\n    // Call the widget paste event\n      this._propertiesService.widgetClickEvent(this.widget);\n      this._widgetProperties.widgetPasteEvent();\n  \n    // Set a timeout to reset the flag after a certain period\n  setTimeout(() => {\n    // Reset the flag after a certain period (e.g., 500 milliseconds)\n    this.isPasteInProgress = false;\n  }, 500); // Adjust the timeout duration as needed\n  }\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Case, WidgetLayout, WidgetType } from '../common/widget-enums';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { TextBoxMaskConverter } from '../value-converters/textBox-mask-converter';\nimport { ValueWithoutMaskConverter } from '../value-converters/value-without-mask-converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { TextBoxComponent } from '../../../sculptor-lib/widgets/textbox/textbox.component';\nimport { ChoicesMl } from './widget-value/choices-ml';\nimport { StringToNumberConverter } from '../value-converters/string-to-number -converter';\nimport { ChoiceListOptionConverter } from './widget-value/choice-list-options';\nimport { SearchComponent } from '../../../sculptor-lib/widgets/search/search/search.component';\n\ntype SearchValue = Type<string | number>;\n@JsonObject('Search')\nexport class Search extends Widget {\n  component: Type<SearchComponent> = SearchComponent;\n  value: SearchValue;\n  // widgetIcon: string = 'axo_square_text';\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Input Type',\n    choices: [{ value: 'email', text: 'Email' },\n    { value: 'numeric', text: 'Numeric' }, { value: 'decimal', text: 'Decimal' },\n    { value: 'address', text: 'Address' }, { value: 'text', text: 'Plain Text' }, { value: 'phone', text: 'Phone' }],\n    required: true, helpText: 'Select Input Type', sortIndex: 2\n  })\n  @JsonProperty(Constants.inputType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  inputType: string = '';\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Minimum Length', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Select Minimum Length', colSpan: 50, sortIndex: 4\n  })\n  @JsonProperty(Constants.minLength, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  minLength: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Maximum Length', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Select Maximum Length', colSpan: 50, sortIndex: 5\n  })\n  @JsonProperty(Constants.maxLength, StringToNumberConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxLength: String;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Mask',\n    choices: [{ value: 'none', text: 'None' }, { value: 'date', text: 'Date (15/08/1947)' },\n    { value: 'hour', text: 'Hour (12:00)' }, { value: 'date_hour', text: 'Date & Hour (15/08/1947 12:00)' },\n    { value: 'zip_code', text: 'ZIP Code (12345-678)' }, { value: 'crazy_zip_code', text: 'Crazy ZIP Code (1-23-45-67)' },\n    { value: 'telephone', text: 'Telephone (1234-5678)' }, { value: 'telephone_with_code_area', text: 'Telephone with Code Area ((02) 4021-2265)' },\n    { value: 'us_telephone', text: 'US Telephone ((123) 456-7899)' }, { value: 'ip_address', text: 'IP Address (127.000.000.001)' },\n    { value: 'money', text: 'Money (1.000,00)' }, { value: 'other', text: 'Other' }],\n    conditionInputType: 'inputType', conditionInputData: ['text', 'phone'],\n    helpText: 'Select User Input Format', sortIndex: 3\n  })\n  @JsonProperty('mask', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  mask: string = null;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'is Multiline', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Allow multiline', sortIndex: 7\n  })\n  @JsonProperty(Constants.isMultiline, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  isMultiline: boolean;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Case', choices: [{ value: '', text: '' },\n    { value: 'capital', text: 'Capital' }, { value: 'small', text: 'Small' }, { value: 'title', text: 'Title' }],\n    conditionInputType: 'inputType', conditionInputData: ['text'], helpText: 'Select Case', sortIndex: 6\n  })\n  @JsonProperty('case', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  case: Case;\n\n  @JsonProperty(Constants.defaultCase, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultCase: string;\n\n  @PropertyPanelField({ inputType: 'text', label: 'On Value Edit', helpText: 'This function will be called on every character change in the text', sortIndex: 8 })\n  @JsonProperty(Constants.onValueEdit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  onValueEdit: string;\n\n  @PropertyPanelField({ inputType: 'text', label: 'Default text', helpText: 'Enter Default Text'})\n  @JsonProperty(Constants.defaultText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultText: string;\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Enter other mask', conditionInputType: 'mask', conditionInputData: ['other'],\n    helpText: 'Enter other mask', sortIndex: 9\n  })\n  @JsonProperty(Constants.otherMask, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  otherMask: string;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'OTP Verification\t', conditionInputType: 'inputType', conditionInputData: ['phone'],\n    helpText: 'Required OTP verification', sortIndex: 10\n  })\n  @JsonProperty(Constants.isOtpVerificationRequired, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  isOtpVerificationRequired: boolean;\n\n  @JsonProperty(Constants.mastringType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  mastringType: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Decimal Places', conditionInputType: 'inputType', conditionInputData: ['decimal'],\n    helpText: 'Select Maximum Digits after decimal point', sortIndex: 11\n  })\n  @JsonProperty(Constants.maxDecimal, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxDecimal: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Minimum Number', conditionInputType: 'inputType', conditionInputData: ['numeric'],\n    helpText: 'Select Minimum Number', sortIndex: 12\n  })\n  @JsonProperty(Constants.minNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  minNumber: string;\n\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Allow Multiple Email IDs?', conditionInputType: 'inputType', conditionInputData: ['email'],\n    helpText: 'Allow Multiple Email ID\\'s', sortIndex: 13\n  })\n  @JsonProperty(Constants.allowMultipleEmails, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  allowMultipleEmails: boolean;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: '  Save number', conditionInputType: 'inputType', conditionInputData: ['phone'],\n    helpText: 'Save the phone number on the server', sortIndex: 14\n  })\n  @JsonProperty(Constants.saveNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  saveNumber: string = '1';\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Maximum Number', conditionInputType: 'inputType', conditionInputData: ['numeric'],\n    helpText: 'The maximum limit for the number can be 2147483647', sortIndex: 15\n  })\n  @JsonProperty(Constants.maxNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxNumber: string;\n\n  @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  dependents: [];//Dependant\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Verification Mandatory?', conditionInputType: 'isOtpVerificationRequired', conditionInputData: ['true'],\n    helpText: 'Submit record without OTP verification', sortIndex: 16\n  })\n  @JsonProperty(Constants.submitWithoutVerification, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  submitWithoutVerification: string;\n\n  // @JsonProperty(Constants.valueWithoutMask, ValueWithoutMaskConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // valueWithoutMask: string = '';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Unit', conditionInputType: 'inputType', conditionInputData: ['numeric', 'decimal'],\n    helpText: 'Select unit', sortIndex: 17\n  })\n  @JsonProperty(Constants.unit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  unit: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Multiple Selection', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Allow selecting multiple choices or only one?', sortIndex: 18\n  })\n  @JsonProperty(Constants.multiSelect, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  multiSelect: boolean = false;\n\n  // @JsonProperty('updateIdentifierCheck', StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // updateidentifiercheck: boolean = false;\n\n  // @JsonProperty(Constants.field, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // changedField: string;\n\n  @JsonProperty(Constants.choicesMl, ChoicesMl, PropertyConvertingMode.IGNORE_NULLABLE)\n  choicesMl: ChoicesMl;\n\n  // @JsonProperty(Constants.newValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // newValue: string = '';\n\n  // @JsonProperty(Constants.oldValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // oldValue: string = '';\n\n  @PropertyPanelField({ inputType: 'toggle', label: 'Repopulate value', helpText: 'Should the value once entered, repopulate while filling the subsequent records?', sortIndex: 19 })\n  @JsonProperty(Constants.repopulateValue, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  repopulateValue: boolean = false;\n\n  @JsonProperty(Constants.widgetLayout, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  widgetLayout: WidgetLayout = null;\n\n  @PropertyPanelField({\n    inputType: 'prompttext', label: 'Choices (Default)(English)', conditionInputType: 'inputType', conditionInputData: ['text','numeric','decimal','address','phone'],\n    helpText: 'Enter choices, one per line', code: 'en', sortIndex: 20\n  })\n  @JsonProperty(Constants.choices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  choices: string;\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Hindi)', code: 'hi', helpText: 'Enter choices, one per line', sortIndex: 21 })\n  @JsonProperty(Constants.hiChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  hiChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Marathi)', code: 'mar', helpText: 'Enter choices, one per line', sortIndex: 22 })\n  @JsonProperty(Constants.marChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  marChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (telugu)', code: 'tel', helpText: 'Enter choices, one per line', sortIndex: 23 })\n  @JsonProperty(Constants.telChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  telChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (french)', code: 'fr', helpText: 'Enter choices, one per line', sortIndex: 24 })\n  @JsonProperty(Constants.frChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  frChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (arabic)', code: 'ar', helpText: 'Enter choices, one per line', sortIndex: 25 })\n  @JsonProperty(Constants.arChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  arChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Japanese)', code: 'JP', helpText: 'Enter choices, one per line', sortIndex: 26 })\n  @JsonProperty(Constants.JPChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  JPChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Bahasa)', code: 'ID', helpText: 'Enter choices, one per line', sortIndex: 27 })\n  @JsonProperty(Constants.IDChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  IDChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Thai)', code: 'TH', helpText: 'Enter choices, one per line', sortIndex: 28 })\n  @JsonProperty(Constants.THChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  THChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Chinese)', code: 'CN', helpText: 'Enter choices, one per line', sortIndex: 29 })\n  @JsonProperty(Constants.CNChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  CNChoices: string = '';\n\n  name: string;\n\n  constructor(field?: any) {\n    super(field);\n        if (field) {\n      this.Search(field);\n    }\n    else {\n      this.newSearch();\n    }\n  }\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any): void {\n    this.value = value;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue(): string {\n\n    if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n\n  /**function to create search object with existing values\n  *\n  *@param field\n  *\n  */\n  Search(field): void {\n    this.prompt = field.prompt;\n    this.helpText = field.helpText;\n    this.inputType = field.inputType;\n    this.choicesMl = field.ChoicesMl;\n    this.minLength = field.minLength;\n    this.maxLength = field.maxLength;\n    this.mask = field.mask;\n    this.isMultiline = field.isMultiline;\n    this.case = field.case;\n    // this.defaultCase = field.defaultCase;\n    this.onValueEdit = field.onValueEdit;\n    this.defaultText = field.defaultText;\n    this.otherMask = field.otherMask;\n    this.isOtpVerificationRequired = field.isOtpVerificationRequired;\n    this.validityDependents = field.validityDependents;\n    // this.mastringType = field.mastringType;\n    this.maxDecimal = field.maxDecimal;\n    this.minNumber = field.minNumber;\n    this.allowMultipleEmails = field.allowMultipleEmails;\n    this.saveNumber = field.saveNumber;\n    this.maxNumber = field.maxNumber;\n    this.dependents = field.dependant;\n    this.submitWithoutVerification = field.submitWithoutVerification;\n    // this.valueWithoutMask = field.valueWithoutMask;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.unit = field.unit;\n    this.multiSelect = field.multiSelect;\n    this.name = field.name;\n    this.subType = field.inputType;\n    this.mainType = field.mainType;\n    // this.newValue = field.newValue;\n    // this.oldValue = field.oldValue;\n    this.repopulateValue = field.repopulateValue;\n    this.widgetLayout = field.widgetLayout;\n    this.markup = field.markup;\n    // this.changedField = \"identifier\";\n    this.choices = field.choices;\n    this.hiChoices = field.hiChoices;\n    this.marChoices = field.marChoices;\n    this.telChoices = field.telChoices;\n    this.frChoices = field.frChoices;\n    this.arChoices = field.arChoices;\n    this.JPChoices = field.JPChoices;\n    this.IDChoices = field.IDChoices;\n    this.THChoices = field.THChoices;\n    this.CNChoices = field.CNChoices;\n  }\n\n  // Function to create new search object\n  newSearch(): void {\n    this.prompt = 'Search';\n    this.type = WidgetType.search;\n    this.subType = 'text';\n    this.mainType = 'text';\n    this.helpText = '';\n    this.inputType = 'text';\n    this.choicesMl = new ChoicesMl;\n    this.minLength = '0';\n    this.maxLength = '1000';\n    this.repopulateValue = false;\n    this.mask = '';\n    this.isMultiline = false;\n    this.case = Case.none;\n    // this.defaultCase = null;\n    this.onValueEdit = '';\n    this.isOtpVerificationRequired = false;\n    this.validityDependents = [];\n    // this.mastringType = null;\n    this.maxDecimal = '2';\n    this.minNumber = '0';\n    this.allowMultipleEmails = false;\n    this.saveNumber = '1';\n    this.maxNumber = '999999';\n    this.dependents = [];\n    this.submitWithoutVerification = '2';\n    // this.valueWithoutMask = '';\n    this.type = WidgetType.search;\n    this.identifier = 'search';\n    this.unit = '';\n    this.multiSelect = false;\n    this.name = 'Search';\n    // this.changedField = \"identifier\";\n    // this.newValue = '';\n    // this.oldValue = '';\n    this.widgetLayout = WidgetLayout.twoLine;\n    this.defaultText = '';\n    this.otherMask = '';\n    this.markup = '';\n    this.choices = '';\n    this.hiChoices = '';\n    this.marChoices = '';\n    this.telChoices = '';\n    this.frChoices = '';\n    this.arChoices = '';\n    this.JPChoices = '';\n    this.IDChoices = '';\n    this.THChoices = '';\n    this.CNChoices = '';\n  }\n\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n\n    const indexMap = new Map<string, number>();\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    const prop = []; // to hold sorted property names\n    const newProp = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = Search.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex) {\n          prop.splice(metadata.sortIndex, 0, propertyName);\n        }\n        else {\n          newProp.push(propertyName);\n        }\n      }\n    }\n    const data = {\n      properties: properties,\n      keys: prop.concat(newProp)\n    };\n    return data;\n  }\n\n}\n","<!-- Button widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n      <div class=\"flex gap-2 justify-between box-border\">\n        <div class=\"flex gap-2 justify-center items-center box-border\">\n          <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n          </form>\n        </div>\n        <ng-container *ngIf=\"widget.isHidden\">\n          <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n        </ng-container>\n\n      </div>\n\n      <div [class.selected-widget]=\"widget.widgetSelect\" [ngClass]=\"widget.isMultiline ? 'text-area' : 'form-field-input'\">\n        <div class=\"icon-input-container flex\">\n\n          <div *ngIf=\"!widget.isMultiline\" [ngSwitch]=\"widget.inputType\" class=\"icon-parent\">\n          <mat-icon *ngSwitchCase=\"'numeric'\" svgIcon=\"axo_number\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'decimal'\" svgIcon=\"axo_decimal\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'email'\" svgIcon=\"axo_email\" class=\"field-icon\"></mat-icon>\n          <mat-icon *ngSwitchCase=\"'phone'\" svgIcon=\"axo_sculptor_phone\" class=\"field-icon \"></mat-icon>\n          <mat-icon *ngSwitchDefault svgIcon=\"axo_sculptor_button\" class=\"field-icon\"></mat-icon>\n        </div>\n\n        <div *ngIf=\"widget.isMultiline\" class=\"icon-parent mb-16\">\n          <mat-icon svgIcon=\"axo_sculptor_multilinetext\" class=\"\"></mat-icon>\n        </div>\n\n          <input [placeholder]=\"widget.placeholder ? widget.placeholder : 'Enter your response'\" readonly=true [formControlName]=\"widget.id\"\n          *ngIf=\"!widget.isMultiline\" />\n          <textarea [placeholder]=\"widget.placeholder ? widget.placeholder : 'Enter your response'\" readonly=true [formControlName]=\"widget.id\"\n          *ngIf=\"widget.isMultiline\" rows=\"3\"></textarea>\n        </div>\n\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"clipboard-icon\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\"  matTooltip=\"Help\"></mat-icon></button>\n\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"clipboard-icon\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\"  matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../../common-property-panel/properties/properties.service';\nimport { Search } from '../../../../forms/page/widgets/search';\nimport { WidgetsService } from '../../widgets.service';\nimport { FormBuilderMasterService } from '../../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\nimport { Button } from '../../../../forms/page/widgets/button';\n@Component({\n  selector: 'lib-button',\n  templateUrl: './button.component.html',\n  styleUrls: ['./button.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ButtonComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Button;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n                            // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  updateIdentifier(): void {\n    if(this.widget.prompt.replace(/[^a-zA-Z0-9]/g, '_') !== this.widget.identifier)\n      if(!this.widget.identifier.includes(this.widget.prompt.replace(/\\d/g  , '').replace(/[^a-zA-Z0-9]/g, '_')))\n      this._widgetDropListComponent.addUniqueIdentifier(this.widget); \n      // else if (this.widget.identifier !== this.widget.prompt.replace(/\\s+/g, '_'))\n      //   this._widgetDropListComponent.addUniqueIdentifier(this.widget); \n      this.isEditable = false; // Set back to read-only after updating\n\n    // const promptDivElement = document.getElementById(this.getTextAreaId());\n    // this.widget.prompt = promptDivElement.innerText;\n  }\n\n  /**\n   * to emit widgetDeleteEvent to Delete Widget\n   */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n    // Reset confirmation when hovering over other widgets\n\n    showConfirmation: boolean = false;\n    confirmbutton () {\n      this.showConfirmation = !this.showConfirmation;\n    }\n    @HostListener('mouseenter')\n    onMouseEnter() {\n      this.showConfirmation = false;\n    }\n    copyWidget(): void {\n      this._widgetProperties.widgetCopyEvent(this.widget);\n    }\n    cutWidget(): void {\n      this._widgetProperties.widgetCutEvent(this.widget);\n    }\n    isPasteInProgress: boolean = false;\n     pasteWidget(): void {\n      this.isPasteInProgress = true;\n    // Call the widget paste event\n      this._propertiesService.widgetClickEvent(this.widget);\n      this._widgetProperties.widgetPasteEvent();\n  \n    // Set a timeout to reset the flag after a certain period\n  setTimeout(() => {\n    // Reset the flag after a certain period (e.g., 500 milliseconds)\n    this.isPasteInProgress = false;\n  }, 500); // Adjust the timeout duration as needed\n  }\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n      \n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Case, WidgetLayout, WidgetType } from '../common/widget-enums';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { TextBoxMaskConverter } from '../value-converters/textBox-mask-converter';\nimport { ValueWithoutMaskConverter } from '../value-converters/value-without-mask-converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { TextBoxComponent } from '../../../sculptor-lib/widgets/textbox/textbox.component';\nimport { ChoicesMl } from './widget-value/choices-ml';\nimport { StringToNumberConverter } from '../value-converters/string-to-number -converter';\nimport { ChoiceListOptionConverter } from './widget-value/choice-list-options';\nimport { ButtonComponent } from '../../../sculptor-lib/widgets/button/button/button.component';\n\ntype ButtonValue = Type<string | number>;\n@JsonObject('Button')\nexport class Button extends Widget {\n  component: Type<ButtonComponent> = ButtonComponent;\n  value: ButtonValue;\n  // widgetIcon: string = 'axo_square_text';\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Input Type',\n    choices: [{ value: 'email', text: 'Email' },\n    { value: 'numeric', text: 'Numeric' }, { value: 'decimal', text: 'Decimal' },\n    { value: 'address', text: 'Address' }, { value: 'text', text: 'Plain Text' }, { value: 'phone', text: 'Phone' }],\n    required: true, helpText: 'Select Input Type', sortIndex: 2\n  })\n  @JsonProperty(Constants.inputType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  inputType: string = '';\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Minimum Length', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Select Minimum Length', colSpan: 50, sortIndex: 4\n  })\n  @JsonProperty(Constants.minLength, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  minLength: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Maximum Length', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Select Maximum Length', colSpan: 50, sortIndex: 5\n  })\n  @JsonProperty(Constants.maxLength, StringToNumberConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxLength: String;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Mask',\n    choices: [{ value: 'none', text: 'None' }, { value: 'date', text: 'Date (15/08/1947)' },\n    { value: 'hour', text: 'Hour (12:00)' }, { value: 'date_hour', text: 'Date & Hour (15/08/1947 12:00)' },\n    { value: 'zip_code', text: 'ZIP Code (12345-678)' }, { value: 'crazy_zip_code', text: 'Crazy ZIP Code (1-23-45-67)' },\n    { value: 'telephone', text: 'Telephone (1234-5678)' }, { value: 'telephone_with_code_area', text: 'Telephone with Code Area ((02) 4021-2265)' },\n    { value: 'us_telephone', text: 'US Telephone ((123) 456-7899)' }, { value: 'ip_address', text: 'IP Address (127.000.000.001)' },\n    { value: 'money', text: 'Money (1.000,00)' }, { value: 'other', text: 'Other' }],\n    conditionInputType: 'inputType', conditionInputData: ['text', 'phone'],\n    helpText: 'Select User Input Format', sortIndex: 3\n  })\n  @JsonProperty('mask', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  mask: string = null;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'is Multiline', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Allow multiline', sortIndex: 7\n  })\n  @JsonProperty(Constants.isMultiline, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  isMultiline: boolean;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Case', choices: [{ value: '', text: '' },\n    { value: 'capital', text: 'Capital' }, { value: 'small', text: 'Small' }, { value: 'title', text: 'Title' }],\n    conditionInputType: 'inputType', conditionInputData: ['text'], helpText: 'Select Case', sortIndex: 6\n  })\n  @JsonProperty('case', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  case: Case;\n\n  @JsonProperty(Constants.defaultCase, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultCase: string;\n\n  @PropertyPanelField({ inputType: 'text', label: 'On Value Edit', helpText: 'This function will be called on every character change in the text', sortIndex: 8 })\n  @JsonProperty(Constants.onValueEdit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  onValueEdit: string;\n\n  @PropertyPanelField({ inputType: 'text', label: 'Default text', helpText: 'Enter Default Text'})\n  @JsonProperty(Constants.defaultText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultText: string;\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Enter other mask', conditionInputType: 'mask', conditionInputData: ['other'],\n    helpText: 'Enter other mask', sortIndex: 9\n  })\n  @JsonProperty(Constants.otherMask, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  otherMask: string;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'OTP Verification\t', conditionInputType: 'inputType', conditionInputData: ['phone'],\n    helpText: 'Required OTP verification', sortIndex: 10\n  })\n  @JsonProperty(Constants.isOtpVerificationRequired, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  isOtpVerificationRequired: boolean;\n\n  @JsonProperty(Constants.mastringType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  mastringType: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Decimal Places', conditionInputType: 'inputType', conditionInputData: ['decimal'],\n    helpText: 'Select Maximum Digits after decimal point', sortIndex: 11\n  })\n  @JsonProperty(Constants.maxDecimal, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxDecimal: string;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Minimum Number', conditionInputType: 'inputType', conditionInputData: ['numeric'],\n    helpText: 'Select Minimum Number', sortIndex: 12\n  })\n  @JsonProperty(Constants.minNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  minNumber: string;\n\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Allow Multiple Email IDs?', conditionInputType: 'inputType', conditionInputData: ['email'],\n    helpText: 'Allow Multiple Email ID\\'s', sortIndex: 13\n  })\n  @JsonProperty(Constants.allowMultipleEmails, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  allowMultipleEmails: boolean;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: '  Save number', conditionInputType: 'inputType', conditionInputData: ['phone'],\n    helpText: 'Save the phone number on the server', sortIndex: 14\n  })\n  @JsonProperty(Constants.saveNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  saveNumber: string = '1';\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Maximum Number', conditionInputType: 'inputType', conditionInputData: ['numeric'],\n    helpText: 'The maximum limit for the number can be 2147483647', sortIndex: 15\n  })\n  @JsonProperty(Constants.maxNumber, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  maxNumber: string;\n\n  @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  dependents: [];//Dependant\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Verification Mandatory?', conditionInputType: 'isOtpVerificationRequired', conditionInputData: ['true'],\n    helpText: 'Submit record without OTP verification', sortIndex: 16\n  })\n  @JsonProperty(Constants.submitWithoutVerification, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  submitWithoutVerification: string;\n\n  // @JsonProperty(Constants.valueWithoutMask, ValueWithoutMaskConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // valueWithoutMask: string = '';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Unit', conditionInputType: 'inputType', conditionInputData: ['numeric', 'decimal'],\n    helpText: 'Select unit', sortIndex: 17\n  })\n  @JsonProperty(Constants.unit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  unit: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Multiple Selection', conditionInputType: 'inputType', conditionInputData: ['text'],\n    helpText: 'Allow selecting multiple choices or only one?', sortIndex: 18\n  })\n  @JsonProperty(Constants.multiSelect, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  multiSelect: boolean = false;\n\n  // @JsonProperty('updateIdentifierCheck', StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // updateidentifiercheck: boolean = false;\n\n  // @JsonProperty(Constants.field, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // changedField: string;\n\n  @JsonProperty(Constants.choicesMl, ChoicesMl, PropertyConvertingMode.IGNORE_NULLABLE)\n  choicesMl: ChoicesMl;\n\n  // @JsonProperty(Constants.newValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // newValue: string = '';\n\n  // @JsonProperty(Constants.oldValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // oldValue: string = '';\n\n  @PropertyPanelField({ inputType: 'toggle', label: 'Repopulate value', helpText: 'Should the value once entered, repopulate while filling the subsequent records?', sortIndex: 19 })\n  @JsonProperty(Constants.repopulateValue, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  repopulateValue: boolean = false;\n\n  @JsonProperty(Constants.widgetLayout, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  widgetLayout: WidgetLayout = null;\n\n  @PropertyPanelField({\n    inputType: 'prompttext', label: 'Choices (Default)(English)', conditionInputType: 'inputType', conditionInputData: ['text','numeric','decimal','address','phone'],\n    helpText: 'Enter choices, one per line', code: 'en', sortIndex: 20\n  })\n  @JsonProperty(Constants.choices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  choices: string;\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Hindi)', code: 'hi', helpText: 'Enter choices, one per line', sortIndex: 21 })\n  @JsonProperty(Constants.hiChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  hiChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Marathi)', code: 'mar', helpText: 'Enter choices, one per line', sortIndex: 22 })\n  @JsonProperty(Constants.marChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  marChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (telugu)', code: 'tel', helpText: 'Enter choices, one per line', sortIndex: 23 })\n  @JsonProperty(Constants.telChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  telChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (french)', code: 'fr', helpText: 'Enter choices, one per line', sortIndex: 24 })\n  @JsonProperty(Constants.frChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  frChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (arabic)', code: 'ar', helpText: 'Enter choices, one per line', sortIndex: 25 })\n  @JsonProperty(Constants.arChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  arChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Japanese)', code: 'JP', helpText: 'Enter choices, one per line', sortIndex: 26 })\n  @JsonProperty(Constants.JPChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  JPChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Bahasa)', code: 'ID', helpText: 'Enter choices, one per line', sortIndex: 27 })\n  @JsonProperty(Constants.IDChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  IDChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Thai)', code: 'TH', helpText: 'Enter choices, one per line', sortIndex: 28 })\n  @JsonProperty(Constants.THChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  THChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Chinese)', code: 'CN', helpText: 'Enter choices, one per line', sortIndex: 29 })\n  @JsonProperty(Constants.CNChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  CNChoices: string = '';\n\n  name: string;\n\n  constructor(field?: any) {\n    super(field);\n        if (field) {\n      this.Button(field);\n    }\n    else {\n      this.newButton();\n    }\n  }\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any): void {\n    this.value = value;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue(): string {\n\n    if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n\n  /**function to create search object with existing values\n  *\n  *@param field\n  *\n  */\n  Button(field): void {\n    this.prompt = field.prompt;\n    this.helpText = field.helpText;\n    this.inputType = field.inputType;\n    this.choicesMl = field.ChoicesMl;\n    this.minLength = field.minLength;\n    this.maxLength = field.maxLength;\n    this.mask = field.mask;\n    this.isMultiline = field.isMultiline;\n    this.case = field.case;\n    // this.defaultCase = field.defaultCase;\n    this.onValueEdit = field.onValueEdit;\n    this.defaultText = field.defaultText;\n    this.otherMask = field.otherMask;\n    this.isOtpVerificationRequired = field.isOtpVerificationRequired;\n    this.validityDependents = field.validityDependents;\n    // this.mastringType = field.mastringType;\n    this.maxDecimal = field.maxDecimal;\n    this.minNumber = field.minNumber;\n    this.allowMultipleEmails = field.allowMultipleEmails;\n    this.saveNumber = field.saveNumber;\n    this.maxNumber = field.maxNumber;\n    this.dependents = field.dependant;\n    this.submitWithoutVerification = field.submitWithoutVerification;\n    // this.valueWithoutMask = field.valueWithoutMask;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.unit = field.unit;\n    this.multiSelect = field.multiSelect;\n    this.name = field.name;\n    this.subType = field.inputType;\n    this.mainType = field.mainType;\n    // this.newValue = field.newValue;\n    // this.oldValue = field.oldValue;\n    this.repopulateValue = field.repopulateValue;\n    this.widgetLayout = field.widgetLayout;\n    this.markup = field.markup;\n    // this.changedField = \"identifier\";\n    this.choices = field.choices;\n    this.hiChoices = field.hiChoices;\n    this.marChoices = field.marChoices;\n    this.telChoices = field.telChoices;\n    this.frChoices = field.frChoices;\n    this.arChoices = field.arChoices;\n    this.JPChoices = field.JPChoices;\n    this.IDChoices = field.IDChoices;\n    this.THChoices = field.THChoices;\n    this.CNChoices = field.CNChoices;\n  }\n\n  // Function to create new search object\n  newButton(): void {\n    this.prompt = 'Text';\n    this.subType = 'text';\n    this.mainType = 'text';\n    this.helpText = '';\n    this.inputType = 'text';\n    this.choicesMl = new ChoicesMl;\n    this.minLength = '0';\n    this.maxLength = '1000';\n    this.repopulateValue = false;\n    this.mask = 'none';\n    this.isMultiline = false;\n    this.case = Case.none;\n    // this.defaultCase = null;\n    this.onValueEdit = '';\n    this.isOtpVerificationRequired = false;\n    this.validityDependents = [];\n    // this.mastringType = null;\n    this.maxDecimal = '2';\n    this.minNumber = '0';\n    this.allowMultipleEmails = false;\n    this.saveNumber = '1';\n    this.maxNumber = '999999';\n    this.dependents = [];\n    this.submitWithoutVerification = '2';\n    // this.valueWithoutMask = '';\n    this.type = WidgetType.search;\n    this.identifier = 'search';\n    this.unit = '';\n    this.multiSelect = false;\n    this.name = 'Search';\n    // this.changedField = \"identifier\";\n    // this.newValue = '';\n    // this.oldValue = '';\n    this.widgetLayout = WidgetLayout.twoLine;\n    this.defaultText = '';\n    this.otherMask = '';\n    this.markup = '';\n    this.choices = '';\n    this.hiChoices = '';\n    this.marChoices = '';\n    this.telChoices = '';\n    this.frChoices = '';\n    this.arChoices = '';\n    this.JPChoices = '';\n    this.IDChoices = '';\n    this.THChoices = '';\n    this.CNChoices = '';\n  }\n\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n\n    const indexMap = new Map<string, number>();\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    const prop = []; // to hold sorted property names\n    const newProp = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = Button.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex) {\n          prop.splice(metadata.sortIndex, 0, propertyName);\n        }\n        else {\n          newProp.push(propertyName);\n        }\n      }\n    }\n    const data = {\n      properties: properties,\n      keys: prop.concat(newProp)\n    };\n    return data;\n  }\n\n}\n","<!-- QR Code widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_qrcode\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea> \n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_qrcode\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Scan QR code'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { QrCode } from '../../../forms/page/widgets/qr-code';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n\n\n@Component({\n  selector: 'lib-qr-code',\n  templateUrl: './qr-code.component.html',\n  styleUrls: ['./qr-code.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class QrCodeComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: QrCode;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { QrCodeComponent } from '../../../sculptor-lib/widgets/qr-code/qr-code.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\n\n@JsonObject('QrCode')\nexport class QrCode extends Widget {\n  component: Type<QrCodeComponent> = QrCodeComponent;\n\n  createFormControl() {\n    throw new Error('Method not implemented.');\n  }\n  /* SubPage may have more than one widget so make this as group widget*/\n\n  value: string = '';\n  // widgetIcon: string = 'axo_qrcode';\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Subtype', choices: [{ value: 'number', text: 'Default' }, { value: 'scan_with_location', text: 'Scan With Location' }],\n    helpText: 'Select Subtype', sortIndex: 2\n  })\n  @JsonProperty(Constants.qrSubType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  qrSubType: string = ''\n  @PropertyPanelField({\n    inputType: 'choicetext', label: 'Choices (Default)(English)', choices: [],\n    helpText: 'Enter choices, one per line', sortIndex: 3\n  })\n  @JsonProperty(Constants.choices, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  choices: string = ''\n\n  @JsonProperty(Constants.indent, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  indent: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Capture GPS Location',\n    helpText: 'Capture GPS Location', conditionInputData: ['scan_with_location'], conditionInputType: 'qrSubType', sortIndex: 4\n  })\n  @JsonProperty(Constants.captureLocation, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  captureLocation: boolean;\n\n  @JsonProperty(Constants.fontSize, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  fontSize: string = '';\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  name: string;\n  constructor(field?: QrCode) {\n    super(field);\n    if (field) {\n      this.qrCode(field);\n    }\n    else {\n      this.newQrCode();\n    }\n  }\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n  // Function to create new report object\n  newQrCode(): void {\n    this.prompt='QR Code';\n    this.helpText = '';\n    this.qrSubType = 'default';\n    this.choices = '';\n    this.indent = '';\n    this.captureLocation = true;\n    this.type = WidgetType.qrCodeScanner;\n    this.mainType = 'scan';\n    this.subType = 'number';\n    this.fontSize = '';\n    this.name = 'Qr Code';\n    this.markup = '';\n    this.placeholder='Scan QR code'\n\n  }\n  /**function to create report object with existing values\n  *\n  *@param Report\n  *\n  */\n  qrCode(field): void {\n    this.prompt = field.prompt;\n    this.helpText = field.helpText;\n    this.indent = field.indent;\n    this.choices = field.choices;\n    this.captureLocation = field.captureLocation;\n    this.type = field.type;\n    // this.identifier = field.identifier;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.qrSubType = field.qrSubType;\n    this.fontSize = field.fontSize;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder=field.placeholder;\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = QrCode.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}\n","<!-- Bar Code widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_barcode\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n              <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\">\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>        \n              </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"sculptor_barcode\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Scan barcode'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { BarCode } from '../../../forms/page/widgets/bar-code';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-barcode',\n  templateUrl: './barcode.component.html',\n  styleUrls: ['./barcode.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport default class BarcodeComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: BarCode;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight-6}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { DeviceProfilesTemp } from './widget-value/deviceProfilesTemp';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport BarcodeComponent from '../../../sculptor-lib/widgets/barcode/barcode.component';\nimport { WidgetType } from '../common/widget-enums';\nimport { ChoiceListOptionConverter } from './widget-value/choice-list-options';\n\n@JsonObject('BarCode')\nexport class BarCode extends Widget {\n  component: Type<BarcodeComponent> = BarcodeComponent;\n\n\n  value: string = '';\n  // widgetIcon: string = 'axo_barcode';\n  @PropertyPanelField({\n    inputType: 'select', label: 'Subtype', choices: [{ value: 'number', text: 'Default' }, { value: 'scan_with_location', text: 'Scan With location' }],\n    helpText: 'Select Subtype', sortIndex: 2\n  })\n  @JsonProperty(Constants.barCodeSubType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  barCodeSubType: string = '';\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Text Editable',\n    helpText: 'Allow entering barcode number manually', sortIndex: 3\n  })\n  @JsonProperty(Constants.textEditable, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  textEditable: boolean = false;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Multiple Selection',\n    helpText: 'Allow selecting multiple choices or only one?', sortIndex: 9\n  })\n  @JsonProperty(Constants.multiSelect, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  multiSelect: boolean = false;\n\n  @JsonProperty(Constants.teChoices, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  teChoices: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Scan QR Codes?',\n    helpText: 'Allow to scan QR codes', sortIndex: 4\n  })\n  @JsonProperty(Constants.scanQRCode, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  scanQRCode: boolean = false;\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Device Profiles',\n    helpText: 'Enter the Device profiles', sortIndex: 5\n  })\n  @JsonProperty(Constants.deviceProfilesTemp, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  deviceProfilesTemp: String = ''\n  // deviceProfilesTemp: Array<DeviceProfilesTemp> = null;\n\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Default Device Profile', choices: [{ value: 'builtin_camera', text: 'Build In Camera' }],\n    helpText: 'Select the Default Device profile', sortIndex: 6\n  })\n  @JsonProperty(Constants.defaultDeviceProfileId, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultDeviceProfileId: string = 'defaultDeviceProfileId';\n\n  @JsonProperty(Constants.deviceProfiles, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  deviceProfiles: Array<any> = [];//DeviceProfilesObject\n  /* SubPage may have more than one widget so make this as group widget*/\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Capture GPS Location',\n    helpText: 'Capture GPS Location', conditionInputData: ['scan_with_location'], conditionInputType: 'barCodeSubType', sortIndex: 8\n  })\n  @JsonProperty(Constants.captureLocation, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  captureLocation: boolean = false;\n\n  // @JsonProperty(Constants.defaultChoice, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // defaultChoice: string;\n\n  @PropertyPanelField({\n    inputType: 'prompttext', label: 'Choices (Default)(English)',\n    helpText: 'Enter choices, one per line', code: 'en', sortIndex: 10\n  })\n  @JsonProperty(Constants.choices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  choices: string;\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Hindi)', code: 'hi', helpText: 'Enter choices, one per line', sortIndex: 11 })\n  @JsonProperty(Constants.hiChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  hiChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Marathi)', code: 'mar', helpText: 'Enter choices, one per line', sortIndex: 12 })\n  @JsonProperty(Constants.marChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  marChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (telugu)', code: 'tel', helpText: 'Enter choices, one per line', sortIndex: 13 })\n  @JsonProperty(Constants.telChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  telChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (french)', code: 'fr', helpText: 'Enter choices, one per line', sortIndex: 14 })\n  @JsonProperty(Constants.frChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  frChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (arabic)', code: 'ar', helpText: 'Enter choices, one per line', sortIndex: 15 })\n  @JsonProperty(Constants.arChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  arChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Japanese)', code: 'JP', helpText: 'Enter choices, one per line', sortIndex: 16 })\n  @JsonProperty(Constants.JPChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  JPChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Bahasa)', code: 'ID', helpText: 'Enter choices, one per line', sortIndex: 17 })\n  @JsonProperty(Constants.IDChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  IDChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Thai)', code: 'TH', helpText: 'Enter choices, one per line', sortIndex: 18 })\n  @JsonProperty(Constants.THChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  THChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Chinese)', code: 'CN', helpText: 'Enter choices, one per line', sortIndex: 19 })\n  @JsonProperty(Constants.CNChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  CNChoices: string = '';\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  name: string;\n  constructor(field?: BarCode) {\n    super(field);\n    if (field) {\n      this.barCode(field);\n    }\n    else {\n      this.newBarCode();\n    }\n  }\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n\n  // Function to create new report object\n  newBarCode(): void {\n    this.prompt ='Barcode';\n    this.helpText='';\n    this.barCodeSubType = 'number';\n    this.textEditable = false;\n    this.scanQRCode = false;\n    this.multiSelect = false;\n    this.deviceProfiles = [];\n    this.deviceProfilesTemp = '';\n    this.defaultDeviceProfileId= 'builtin_camera';\n    this.captureLocation = true;\n    this.mainType = 'scan';\n    this.subType = 'number';\n    // this.defaultChoice = '';\n    this.type = WidgetType.barCodeScanner;\n    this.name = 'Barcode';\n    this.markup = '';\n    this.choices = '';\n    this.hiChoices = '';\n    this.marChoices = '';\n    this.telChoices = '';\n    this.frChoices = '';\n    this.arChoices = '';\n    this.JPChoices = '';\n    this.IDChoices = '';\n    this.THChoices = '';\n    this.CNChoices = '';\n    this.placeholder='Scan barcode';\n  }\n\n\n  /**\n   * function to create report object with existing values\n   *\n   *@param Report\n   *\n   */\n  barCode(field): void {\n    this.prompt=field.prompt;\n    this.helpText = field.helpText;\n    this.textEditable = field.textEditable;\n    this.scanQRCode = field.scanQRCode;\n    this.multiSelect = field.multiSelect;\n    this.deviceProfiles = field.deviceProfiles;\n    this.deviceProfilesTemp = field.deviceProfilesTemp;\n    this.defaultDeviceProfileId = field.defaultDeviceProfileId;\n    this.captureLocation = field.captureLocation;\n    // this.defaultChoice = field.defaultChoice;\n    this.barCodeSubType = field.barCodeSubType;\n    this.type = field.type;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.choices = field.choices;\n    this.hiChoices = field.hiChoices;\n    this.marChoices = field.marChoices;\n    this.telChoices = field.telChoices;\n    this.frChoices = field.frChoices;\n    this.arChoices = field.arChoices;\n    this.JPChoices = field.JPChoices;\n    this.IDChoices = field.IDChoices;\n    this.THChoices = field.THChoices;\n    this.CNChoices = field.CNChoices;\n    this.placeholder=field.placeholder;\n  }\n  /**\n   * Create FormControl for widget\n   */\n  createFormControl() {\n    throw new Error('Method not implemented.');\n  }\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = BarCode.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}","<!-- Image widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_photo\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea> \n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_photo\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Capture'\" readonly=true\n          [formControlName]=\"widget.id\" />\n          <mat-icon svgIcon=\"sculptor_camera\" class=\"icon relative \"></mat-icon>\n          <mat-icon svgIcon=\"axo_sculptor_folder\" class=\"icon relative ml-[5px]\"></mat-icon>\n\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { AxImage } from '../../../forms/page/widgets/ax-image';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-image',\n  templateUrl: './image.component.html',\n  styleUrls: ['./image.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class ImageComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: AxImage;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    // const rows = (this.widget.prompt.length / textareaElement.cols);\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n      // console.log(element.scrollHeight);\n      // const rows = (this.widget.prompt.length / textareaElement.cols);\n      // console.log(this.widget.prompt.length)\n      // console.log(textareaElement.cols);\n      // console.log(rows, \"-\", element.rows);\n      // ;\n      // console.dir(element.selectionStart);\n\n      //   const position = getCursorPosition(textarea);\n  \n      // function getCursorPosition(textarea) {\n      //   return textarea.selectionStart;\n      // }\n\n\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            const promptCleaned = this.widget.prompt.replace(/\\d/g, '').replace(/[^a-zA-Z0-9]/g, '_');\n\n            if (this.widget.prompt !== newIdentifier) {\n                this.valid = await this._widgetDropListComponent.validateUniqueIdentifier(this.widget);\n\n                if (this.valid && !this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            \n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n\n    // // const promptDivElement = document.getElementById(this.getTextAreaId());\n    // this.widget.prompt = promptDivElement.innerText;\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { ImageWidgetValue } from './widget-value/image-widget-value';\nimport { StringToBooleanConverter } from '../value-converters/string-to-bool-converter';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { ImageComponent } from '../../../sculptor-lib/widgets/image/image.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\nimport { DisplayModeToBoolean } from '../value-converters/displayMode-to-bool';\n\n@JsonObject('AxImage')\nexport class AxImage extends Widget{\n    component: Type<ImageComponent> = ImageComponent;\n    value: Array<ImageWidgetValue> = [];\n\n\n    // @JsonProperty(Constants.allowedImageTypes, [String], PropertyConvertingMode.IGNORE_NULLABLE)\n    // allowedImageTypes: string[] = [];\n    // @JsonProperty()\n    // maxSize: string;\n    // @JsonProperty()\n    // minSize: string;\n\n    @PropertyPanelField ({\n        inputType: 'toggle', label: 'Show Timestamp',\n        helpText: 'To show timestamp when image is captured', sortIndex: 3\n    })\n    @JsonProperty(Constants.showTimeStamp, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    showTimeStamp: boolean = false;\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n\n    // @JsonProperty(Constants.generatePublicUrl, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    // generatePublicUrl: boolean = false;\n\n    @PropertyPanelField ({\n        inputType: 'toggle', label: 'Allow browsing',\n        helpText: 'Allow browsing gallery?', sortIndex: 2\n    })\n    @JsonProperty(Constants.allowBrowsing, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    allowBrowsing: boolean = false;\n    \n    @JsonProperty(Constants.allowAnnotations, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    allowAnnotations: boolean = false;\n\n    @PropertyPanelField ({\n        inputType: 'toggle', label: 'Include Notes?',\n        helpText: 'Include note to each annotation by default?', sortIndex: 4\n    })\n    @JsonProperty(Constants.includeNotes, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    includeNotes: boolean = false;\n\n    @PropertyPanelField ({\n        inputType: 'toggle', label: 'Generate public URL for accessing photos?',\n        helpText: 'Generate public URL for accessing photos?', sortIndex: 5\n    })\n    @JsonProperty(Constants.allowPublicUrl, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    allowPublicUrl: boolean = false;\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    @JsonProperty(Constants.isEditable, DisplayModeToBoolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    isEditable: boolean = false;\n\n    // @JsonProperty(Constants.imagePublicUrls, [String], PropertyConvertingMode.IGNORE_NULLABLE)\n    // publicUrls: string[] = [];\n\n    // widgetIcon: string = 'axo_image';\n    name: string;\n    constructor(field?: Widget){\n        super(field);\n        if(field){\n            this.image(field);\n        }\n        else{\n            this.newImage();\n        }\n    }\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n     getWidgetSerializedValue() {\n        if(this.value){\n            const jsonConvert: JsonConvert = new JsonConvert();\n            const value = this.value as Array<ImageWidgetValue>;\n            const newValue = jsonConvert.serialize(value,ImageWidgetValue);\n            return JSON.stringify(newValue);\n        }\n        else{\n            return'';\n        }\n\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n    // Function to create new Image object\n    newImage(): void{\n      this.prompt='Photo';\n      // this.allowedImageTypes = ['png','jpg','jpeg','gif'];\n        // this.maxSize='';\n        // this.minSize='';\n        this.helpText='';\n        this.includeNotes= true;\n        this.showTimeStamp= false;\n        // this.generatePublicUrl= false;\n        this.allowBrowsing= true;\n        this.allowAnnotations= true;\n        this.allowPublicUrl= true\n        this.type = WidgetType.imageCapture;\n        this.mainType = 'photo';\n        this.subType = '';\n        this.name = 'Image';\n        this.markup = '';\n    }\n\n    /**function to create Image object with existing values\n    *\n    *@param field\n    *\n    */\n    image(field): void{\n      this.prompt=field.prompt;\n        // this.allowedImageTypes = field.allowedImageTypes;\n        // this.maxSize=field.maxSize;\n        // this.minSize=field.minSize;\n        this.helpText = field.helpText;\n        this.showTimeStamp=field.showTimeStamp;\n        // this.generatePublicUrl= field.generatePublicUrl;\n        this.allowBrowsing= field.allowBrowsing;\n        this.allowAnnotations= field.allowAnnotations;\n        this.includeNotes= field.includeNotes;\n        this.allowPublicUrl= field.allowPublicUrl;\n        this.type = WidgetType.imageCapture;\n        this.identifier = field.identifier;\n        this.mainType = field.mainType;\n        this.subType = field.subType;\n        this.name = field.name;\n        this.markup = field.markup;\n    }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties=['widgetLayout','repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = AxImage.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\n\n\n@JsonObject(\"AudioVideoWidgetValue\")\nexport class AudioVideoWidgetValue {\n\n  @JsonProperty(Constants.file,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n  file : string = null;\n\n    constructor(value?: AudioVideoWidgetValue){\n        if(value){\n            this.createAudioVideoValue(value);\n        }\n        else{\n            this.createNewAudioVideoValue();\n        }\n    }\n\n      // Function to create new audio/video value \n      createNewAudioVideoValue(): void{\n       this.file = null;\n    }\n\n    /**function to create audio/video value with existing value\n    *\n    *@param value\n    *\n    */\n    createAudioVideoValue(value?): void{\n       this.file = value.file;\n    }\n}\n","<!-- Video widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_video\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_video\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Capture or browse'\" readonly=true\n          [formControlName]=\"widget.id\" />\n          <mat-icon svgIcon=\"sculptor_camera\" class=\"icon relative \"></mat-icon>\n          <mat-icon svgIcon=\"axo_sculptor_folder\" class=\"icon relative ml-[5px]\"></mat-icon>\n\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { Video } from '../../../forms/page/widgets/video';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-video',\n  templateUrl: './video.component.html',\n  styleUrls: ['./video.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class VideoComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Video;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent : WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { AudioVideoWidgetValue } from './widget-value/audio-video-widget-value';\nimport { VideoComponent } from '../../../sculptor-lib/widgets/video/video.component';\nimport { PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\n\ntype VideoValue = Type<Array<AudioVideoWidgetValue>>;\n@JsonObject('Video')\nexport class Video extends Widget{\n    component: Type<VideoComponent> = VideoComponent;\n\n    @JsonProperty('value', String,PropertyConvertingMode.IGNORE_NULLABLE)\n    value: string= '';\n    @JsonProperty('values', [AudioVideoWidgetValue],PropertyConvertingMode.IGNORE_NULLABLE)\n    values: Array<AudioVideoWidgetValue> = null;\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n\n    // @JsonProperty(Constants.allowedDocumentTypes,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    // allowedDocumentTypes: string[];\n\n    // @JsonProperty(Constants.generatePublicUrl,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    // generatePublicUrl: boolean;\n\n    // @JsonProperty()\n    // maxSize: string;\n\n    // @JsonProperty()\n    // minSize: string;\n\n    @JsonProperty(Constants.mainType,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    mainType: string;\n\n    // @JsonProperty(Constants.placeHolder,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    // placeHolder: string;\n\n    @JsonProperty(Constants.indent,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    indent: string;\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    // widgetIcon: string = 'axo_video';\n    name: string;\n\n    constructor(field?: Widget){\n        super(field);\n        if(field){\n            this.video(field);\n        }\n        else{\n            this.newVideo();\n        }\n    }\n\n   /**\n    * get widget value\n    *\n    * @returns\n    */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n\n    // Function to create new video object\n    newVideo(): void{\n      this.prompt='Video';\n        // this.allowedDocumentTypes = ['mp4','m4v', 'mpg', 'wmv', 'mov'];\n        // this.generatePublicUrl= false;\n        // this.maxSize='';\n        // this.minSize='';\n        this.helpText = '';\n        this.isHidden= false;\n        this.mainType= '';\n        this.unique= false;\n        // this.placeHolder= '';\n        this.indent= '';\n        this.type = WidgetType.video;\n        this.mainType = 'audiovideo';\n        this.subType = 'number';\n        this.name = 'Video';\n        this.markup = '';\n        this.placeholder='Capture or browse videos';\n    }\n\n    /**function to create video object with existing values\n    *\n    *@param field\n    *\n    */\n    video(field): void{\n      this.prompt=field.prompt;\n        // this.allowedDocumentTypes = field.allowedDocumentTypes;\n        // this.generatePublicUrl= field.generatePublicUrl;\n        // this.maxSize=field.maxSize;\n        // this.minSize=field.minSize;\n        this.helpText = field.helpText;\n        this.isHidden= field.isHidden;\n        this.mainType= field.mainType;\n        this.unique= field.unique;\n        // this.placeHolder= field.placeHolder;\n        this.indent= field.indent;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.mainType = field.identifier;\n        this.subType = field.identifier;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder=field.placeholder;\n     }\n\n     /**\n      * this will return serialize of widget\n      */\n      getWidgetSerializedValue() {\n        if(this.values){\n            const jsonConvert: JsonConvert = new JsonConvert();\n            const value = this.values as Array<AudioVideoWidgetValue>;\n            const newValue = jsonConvert.serialize(value,AudioVideoWidgetValue);\n            return JSON.stringify(newValue);\n        }\n        else if(this.value){\n            return this.value.toString();\n        }\n        else{\n            return '';\n        }\n    }\n    \n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n\n    const indexMap = new Map<string, number>();\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    const prop = []; // to hold sorted property names\n    const newProp = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = Video.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n      }\n      else if (metadata && metadata.propertyType=='common') {\n        properties[propertyName] = metadata;\n        newProp.push(propertyName);\n      }\n    }\n    const data = {\n      properties: properties,\n      keys: newProp\n    };\n    return data;\n  }\n}\n","<!-- Audio widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_audio\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n              <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\">\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n              </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_audio\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Tap to enter audio'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { AxAudio } from '../../../forms/page/widgets/ax-audio';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'lib-audio',\n  templateUrl: './audio.component.html',\n  styleUrls: ['./audio.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class AudioComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: AxAudio;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { AudioVideoWidgetValue } from './widget-value/audio-video-widget-value';\nimport { PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { AudioComponent } from '../../../sculptor-lib/widgets/audio/audio.component';\nimport { WidgetType } from '../common/widget-enums';\n\ntype AudioWidgetValue = Type<Array<AudioVideoWidgetValue>>;\n@JsonObject('AxAudio')\nexport class AxAudio extends Widget{\n    component: Type<AudioComponent> = AudioComponent;\n\n    @JsonProperty('value', String,PropertyConvertingMode.IGNORE_NULLABLE)\n    value: string= '';\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n\n    // @JsonProperty(Constants.generatePublicUrl,String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // generatePublicUrl: boolean;\n\n    // @JsonProperty(Constants.generatePublicUrl,String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // maxSize: string;\n\n    // @JsonProperty(Constants.generatePublicUrl,String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // minSize: string;\n\n    @JsonProperty(Constants.mainType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    mainType: string = '';\n\n    // @JsonProperty(Constants.placeHolder, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // placeHolder: string = '';\n\n    @JsonProperty(Constants.indent, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    indent: string = '';\n    @JsonProperty('values', [AudioVideoWidgetValue],PropertyConvertingMode.IGNORE_NULLABLE)\n    values: Array<AudioVideoWidgetValue> = null;\n\n    // @JsonProperty(Constants.allowedFileTypes, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // allowedFileTypes: any[] = [];\n\n    // widgetIcon: string ='axo_audio';\n\n    // @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // markup: string = '';\n\n    name: string;\n    /*\n    * Constructor\n    */\n    constructor(field?: Widget){\n        super(field);\n        if(field){\n            this.audio(field);\n        }\n        else{\n            this.newAudio();\n        }\n    }\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n     getWidgetSerializedValue() {\n\n        if(this.value){\n            if(this.values){\n                const jsonConvert: JsonConvert = new JsonConvert();\n                const value = this.values as Array<AudioVideoWidgetValue>;\n                const newValue = jsonConvert.serialize(value,AudioVideoWidgetValue);\n                return JSON.stringify(newValue);\n            }\n            else{\n                return this.value.toString();\n            }\n        }\n        else{\n            return'';\n        }\n    }\n\n    // Function to create new Toggle object\n    newAudio(): void{\n        this.prompt='Audio';\n        // this.allowedDocumentTypes = ['mp3','m4a','wav.'];\n        // this.generatePublicUrl= false;\n        // this.maxSize = '';\n        // this.minSize = '';\n        this.helpText='';\n        this.isHidden= false;\n        this.mainType= '';\n        this.unique= false;\n        // this.placeHolder= '';\n        this.indent= '';\n        this.type = WidgetType.audio;\n        this.mainType = 'audiovideo';\n        this.subType = 'number';\n        this.name = 'Audio';\n        this.markup = '';\n        this.placeholder='Tap to enter audio';\n    }\n\n     /**function to create Toggle object with existing values\n    *\n    *@param field\n    *\n    */\n    audio(field): void{\n        this.prompt=field.prompt;\n        // this.allowedDocumentTypes = ['mp3','m4a','wav.'];\n        // this.generatePublicUrl= field.generatePublicUrl;\n        // this.maxSize = field.maxSize;\n        // this.minSize = field.minSize;\n        this.helpText = field.helpText;\n        this.isHidden= field.isHidden;\n        this.mainType= field.mainType;\n        this.unique= field.unique;\n        // this.placeHolder= field.placeHolder;\n        this.indent= field.indent;\n        this.type = WidgetType.audio;\n        this.identifier = field.identifier;\n        this.mainType = field.identifier;\n        this.subType = field.identifier;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder=field.placeHolder;\n    }\n\n      // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n\n    const indexMap = new Map<string, number>();\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    const prop = []; // to hold sorted property names\n    const newProp = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = AxAudio.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n      }\n      else if (metadata && metadata.propertyType=='common') {\n        properties[propertyName] = metadata;\n        newProp.push(propertyName);\n      }\n    }\n    const data = {\n      properties: properties,\n      keys: newProp\n    };\n    return data;\n  }\n}\n","    <!-- Document Code widget -->\n    <ng-container *ngIf=\"widget\">\n        <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n            <div class=\"flex gap-2 justify-between box-border\">\n                <div class=\"flex gap-2 items-center box-border\">\n                    <!-- <mat-icon svgIcon=\"axo_sculptor_document\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                    <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>  \n                    </form>\n                </div>\n                <ng-container *ngIf=\"widget.isHidden\">\n                  <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n                </ng-container>\n            </div>\n\n          <div class ='form-field-input'>\n            <div class=\"icon-input-container\">\n              <mat-icon svgIcon=\"axo_document\" class=\"icon relative\"></mat-icon>\n              <input [placeholder]=\"widget.placeholder?widget.placeholder:'Upload Document'\" readonly=true\n              [formControlName]=\"widget.id\" />\n            </div>\n          </div>\n          <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n        </div>\n        <div class=\"tooltip-container\">\n          <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n          <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n          <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n          <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n          <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n          </button>\n          <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n        </div>\n\n      </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { AxDocument } from '../../../forms/page/widgets/ax-document';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-document',\n  templateUrl: './document.component.html',\n  styleUrls: ['./document.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class DocumentComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: AxDocument;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { DocumentWidgetValue } from './widget-value/document-widget-value';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { PublicUrlsStringToArrayConverter } from '../value-converters/publicUrls-string-to-array';\nimport { DocumentComponent } from '../../../sculptor-lib/widgets/document/document.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\n\ntype DocumentValue = Type<string | Array<DocumentWidgetValue>>;\n@JsonObject('AxDocument')\nexport class AxDocument extends Widget {\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'File size limit',\n    helpText: 'Set the file size limit while uploading in MB.', sortIndex: 3\n  })\n  @JsonProperty(Constants.fileSizeLimit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  fileSizeLimit: string;\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Allowed file type',\n    choices: [{ value: 'doc', text: 'doc' }, { value: 'docx', text: 'docx' }, { value: 'pdf', text: 'pdf' },\n    { value: 'xls', text: 'xls' }, { value: 'xlsx', text: 'xlsx' }, { value: 'ppt', text: 'ppt' }, { value: 'pptx', text: 'pptx' },\n    { value: 'odt', text: 'odt' }, { value: 'txt', text: 'txt' }, { value: 'html', text: 'html' }],\n    helpText: 'enter the file extensions one on each line (doc, docx, pdf, xls, xlsx, ppt, pptx, odt, txt, html)', multiselect: true, sortIndex: 2\n  })\n  @JsonProperty(Constants.allowedFileTypes, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  allowedFileTypes = [];\n\n  @JsonProperty(Constants.allowedFileTypeTemp, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  allowedFileTypeTemp: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Generate public URL for accessing documents?',\n    helpText: 'Generate public URL for accessing documents?', sortIndex: 4\n  })\n  @JsonProperty(Constants.allowPublicUrl, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  allowPublicUrl: boolean = true;\n\n  @JsonProperty('values', [DocumentWidgetValue], PropertyConvertingMode.IGNORE_NULLABLE)\n  values: Array<DocumentWidgetValue> = null;\n\n  // @JsonProperty(Constants.documentPublicUrls, PublicUrlsStringToArrayConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  // publicUrls: string[] = [];\n\n  value: DocumentValue = null;\n  // widgetIcon: string = 'axo_document';\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  name: string;\n  component: Type<DocumentComponent> = DocumentComponent;\n\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.values) {\n      const jsonConvert: JsonConvert = new JsonConvert();\n      const value = this.values as Array<DocumentWidgetValue>;\n      const newValue = jsonConvert.serialize(value, DocumentWidgetValue);\n      return JSON.stringify(newValue);\n    }\n    else if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n\n\n  constructor(field?: Widget) {\n    super(field);\n    if (field) {\n      this.document(field);\n    }\n    else {\n      this.newDocument();\n    }\n  }\n  // Function to create new document object\n  newDocument(): void {\n    this.prompt='Document';\n    this.helpText='';\n    this.fileSizeLimit = '0';\n    this.allowedFileTypeTemp = '';\n    this.allowedFileTypes = ['pdf'];\n    this.allowPublicUrl = true;\n    this.type = WidgetType.document;\n    this.name = 'Document';\n    this.markup = '';\n    this.placeholder='Upload Document';\n\n  }\n\n  /**\n   * function to create document object with existing values\n   *\n   *@param field\n   *\n   */\n  document(field): void {\n    this.prompt=field.prompt;\n    this.helpText = field.helpText;\n    this.fileSizeLimit = field.fileSizeLimit;\n    this.allowedFileTypeTemp = field.allowedFileTypeTemp;\n    this.allowedFileTypes = field.allowedFileTypes;\n    this.allowPublicUrl = field.allowPublicUrl;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder=field.placeHolder;\n\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['widgetLayout', 'repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = AxDocument.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}","<!-- Web-link widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_link\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_link\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Enter your response'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { Link } from '../../../forms/page/widgets/link';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-link',\n  templateUrl: './link.component.html',\n  styleUrls: ['./link.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class LinkComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Link;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { LinkComponent } from '../../../sculptor-lib/widgets/link/link.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\n\n@JsonObject('Link')\nexport class Link extends Widget {\n\n  component: Type<LinkComponent> = LinkComponent;\n\n  value: string = '';\n  // widgetIcon: string ='axo_hyperlink';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Target URL',\n    helpText: 'Provide url to open'\n  })\n  @JsonProperty(Constants.url, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  url: string = '';\n  name: string;\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  constructor(field?: Link) {\n    super(field);\n    if (field) {\n      this.link(field);\n    }\n    else {\n      this.newLink();\n    }\n  }\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n  // Function to create new link object\n  newLink(): void {\n    this.prompt='Web Link';\n    this.helpText = '';\n    this.url = 'http://www.google.com';\n    this.type = WidgetType.hyperLink;\n    this.identifier = 'Web_Link';\n    this.mainType = 'hyperlink';\n    this.subType = 'hyperlink';\n    this.name = 'Link';\n    this.markup = '';\n    this.placeholder='Enter your reponse';\n  }\n\n  /**function to create link object with existing values\n  *\n  *@param field\n  *\n  */\n  link(field): void {\n    this.prompt=field.prompt;\n    this.helpText = field.helpText;\n    this.prompt = field.prompt;\n    this.url = field.url;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder=field.placeholder;\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['widgetLayout', 'repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = Link.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}\n","<!-- Toggle widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [class.selected-widget]=\"widget.widgetSelect\" [id]=\"widget.id\" (click)=\"onWidgetClick()\">\n      <div class=\"flex gap-2 items-center box-border\">\n          <!-- <mat-icon svgIcon=\"axo_sculptor_toggle\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n          <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n          </form>\n          <ng-container *ngIf=\"widget.isHidden\">\n            <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n          </ng-container>\n      </div>\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_toggle\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Click to enter'\" readonly=true\n          [formControlName]=\"widget.id\" />\n          <mat-slide-toggle [formControlName]=\"widget.id + '_' + key\"\n                    [(ngModel)]='widget[key]' class=\"w-9 .mat-slide-toggle-bar\"\n                    (ngModelChange)=\"onPropertyChange()\"> </mat-slide-toggle>\n                    <!-- <input [placeholder]=\"widget.placeholder?widget.placeholder:'Click to enter'\" readonly=true\n                    [formControlName]=\"widget.id\" />         -->\n                  </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { Toggle } from '../../../forms/page/widgets/toggle';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-toggle',\n  templateUrl: './toggle.component.html',\n  styleUrls: ['./toggle.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class ToggleComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Toggle;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n\n  /**\n   * to emit widgetDeleteEvent to Delete Widget\n   */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n\n  // Update local storage after propmt change\n  onPromptChange() {\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste eventDou\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","import { JsonConverter,  JsonCustomConvert } from 'json2typescript';\nimport { BooleanValue01 } from '../common/widget-enums';\n\n@JsonConverter\nexport class StringToBooleanValueConverterToggle implements JsonCustomConvert<boolean> {\n    serialize(value: boolean): string {\n      return value?'1':'0';\n    }\n\n    deserialize(value: any): boolean {\n      return (value === BooleanValue01.true || value == 1)? true : false;\n    }\n}\n","import { Type } from '@angular/core';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { Widget } from './widget';\nimport { ToggleComponent } from '../../../sculptor-lib/widgets/toggle/toggle.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { BooleanValue01, StringToBooleanValue, WidgetSubType, WidgetType } from '../common/widget-enums';\nimport { StringToBooleanValueConverterToggle } from '../value-converters/string-to-bool-value-converter-toggle';\n\n@JsonObject('Toggle')\nexport class Toggle extends Widget {\n  component: Type<ToggleComponent> = ToggleComponent;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Default Value',\n    helpText: 'Select default value of field', sortIndex: 2\n  })\n\n  @JsonProperty(Constants.defaultValue, StringToBooleanValueConverterToggle, PropertyConvertingMode.IGNORE_NULLABLE)\n  // defaultToggleValue: boolean = false;\n  default_value : boolean = false\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n  // widgetIcon: string = 'axo_toggle_button';\n  \n  // @JsonProperty(Constants.defaultText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // defaultValue: string = '';\n\n  @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  dependents: [];//Dependant\n\n  @JsonProperty(Constants.validityDependents, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  validityDependents: [];\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  value: boolean = false;\n  name: string;\n\n  /*\n  * Constructor\n  */\n  constructor(field?: Toggle) {\n    super(field);\n    if (field) {\n      this.toggle(field);\n    }\n    else {\n      this.newToggle();\n    }\n  }\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n\n  // Function to create new Toggle object\n  newToggle(): void {\n    this.prompt = 'Toggle';\n    this.helpText = '';\n    this.default_value = false;\n    this.type = WidgetType.toggle;\n    this.dependents = [];\n    this.validityDependents = [];\n    this.mainType = WidgetSubType.toggle;\n    this.subType = WidgetSubType.toggle;\n    this.name = 'Toggle';\n    this.markup = '';\n    this.placeholder='Click to enter';\n  }\n\n  /**function to create Toggle object with existing values\n *\n *@param field\n *\n */\n  toggle(field): void {\n    this.prompt = field.prompt;\n    this.helpText = field.helpText;\n    this.default_value = field.default_value;\n    // this.defaultToggleValue = field.defaultToggleValue;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.dependents = field.dependant;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.validityDependents = field.validityDependents;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder = field.placeholder;\n  }\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n\n    if (this.value) {\n      return this.value ? '\\'1\\'' : '\\'0\\'';\n    }\n    else {\n      return '';\n    }\n  }\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['widgetLayout', 'repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = Toggle.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}","import { JsonConvert, JsonConverter,  JsonCustomConvert } from \"json2typescript\";\nimport { LanguageWidgetValue } from \"../widgets/widget-value/language-widget-value\";\n\n@JsonConverter\nexport class LanguageSourceValueConverter implements JsonCustomConvert< LanguageWidgetValue []> {\n    serialize(number:  Array<LanguageWidgetValue>): string {\n       return number.toString();\n    }\n\n    deserialize(value: any):  LanguageWidgetValue[] {\n        const jsonConvert: JsonConvert = new JsonConvert();\n        if (typeof (value) === 'string') {\n            value = JSON.parse(value);\n            value = jsonConvert.deserializeArray<LanguageWidgetValue>(value, LanguageWidgetValue);\n            return value;\n        }\n        else if (typeof (value) === 'object') {\n            return value;\n        } \n    }\n}","<!-- Langauge widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n      <div class=\"flex gap-2 justify-between box-border\">\n       <div class=\"flex gap-2 items-center box-border\">\n          <!-- <mat-icon svgIcon=\"axo_sculptor_langauge\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n          <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea> \n          </form>\n        </div>\n        <ng-container *ngIf=\"widget.isHidden\">\n          <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n        </ng-container>\n      </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\" style=\"border: 1px solid #bed0df;\">\n          <mat-icon svgIcon=\"axo_sculptor_language\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Enter your response'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { Language } from '../../../forms/page/widgets/languages';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-language',\n  templateUrl: './language.component.html',\n  styleUrls: ['./language.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class LanguageComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Language;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { LanguageWidgetValue } from './widget-value/language-widget-value';\nimport { LanguageSourceValueConverter } from '../value-converters/language-source-value-converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { LanguageComponent } from '../../../sculptor-lib/widgets/language/language.component';\nimport { WidgetType } from '../common/widget-enums';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\n\ntype LanguageValue = Type<Array<LanguageWidgetValue>>;\n@JsonObject('Language')\nexport class Language extends Widget {\n  component: Type<LanguageComponent> = LanguageComponent;\n\n  value: LanguageValue;\n  // widgetIcon: string =  'axo_square_text';\n  @PropertyPanelField({\n    inputType: 'select', label: 'Default Langauge',\n    choices: [{ value: 'English', text: 'English' }],\n    required: false, helpText: 'Select Default Langauge'\n  })\n  @JsonProperty(Constants.langDefault, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  defaultValue: string = '';\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @JsonProperty(Constants.languageSource, LanguageSourceValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  languageSource: Array<LanguageWidgetValue> = null;\n\n  @JsonProperty(Constants.langDefault, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  langDefault: string = '';\n\n  @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  dependents: [];//Dependant\n\n  @JsonProperty(Constants.multiSelect, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  multiSelect: boolean = false;\n\n  @PropertyPanelField({ inputType: 'toggle', label: 'Repopulate value', helpText: 'Should the value once entered, repopulate while filling the subsequent records?' })\n  @JsonProperty(Constants.repopulateValue, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  repopulateValue: boolean = false;\n\n  @JsonProperty(Constants.validityDependents, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  validityDependents: [];\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  name: string;\n  \n  constructor(field?: Language) {\n    super(field);\n    if (field) {\n      this.language(field);\n    }\n    else {\n      this.newLanguage();\n    }\n    //this.clearValidators();\n  }\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      const jsonConvert: JsonConvert = new JsonConvert();\n      const value = this.value as LanguageValue;\n      const newValue = jsonConvert.serialize(value, LanguageWidgetValue);\n      return JSON.stringify(newValue);\n    }\n    else {\n      return '';\n    }\n\n  }\n  // Function to create new Date-Time object\n  newLanguage(): void {\n    this.prompt='Languages';\n    this.helpText = '';\n    this.defaultValue = 'English';\n    this.languageSource = null;//Array<LanguageObject>\n    this.langDefault = '';\n    this.type = WidgetType.language;\n    this.dependents = [];\n    this.multiSelect = false;\n    this.repopulateValue = false;\n    this.validityDependents = [];\n    this.name = 'Language';\n    this.markup = '';\n    this.placeholder='Enter your response';\n  }\n\n  /**function to create Date-Time object with existing values\n  *\n  *@param field\n  *\n  */\n  language(field): void {\n    this.prompt = field.prompt;\n    this.helpText = field.helpText;\n    this.defaultValue = field.defaultValue;\n    this.languageSource = field.languageSource;//Array<LanguageObject>\n    this.langDefault = field.langDefault;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.dependents = field.dependant;\n    this.multiSelect = field.multiSelect;\n    this.validityDependents = field.validityDependents;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder = field.placeholder;\n\n  }\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['widgetLayout'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = Language.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}","<!--  Date Time component widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n      <div class=\"flex gap-2 items-center box-border\">\n        <!-- <ng-container  [ngSwitch]=\"widget.datePickerType\">\n            <mat-icon *ngSwitchCase=\"'date'\" svgIcon=\"axo_date\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            <mat-icon *ngSwitchCase=\"'time'\" svgIcon=\"axo_sculptor_time\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            <mat-icon *ngSwitchCase=\"'both'\" svgIcon=\"axo_date_time\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            <mat-icon *ngSwitchCase=\"'date-range'\" svgIcon=\"axo_date_range\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            <mat-icon *ngSwitchDefault svgIcon=\"axo_sculptor_text\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n          </ng-container> -->\n          <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea> \n          </form>\n          <ng-container *ngIf=\"widget.isHidden\">\n            <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n          </ng-container>\n      </div>\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <ng-container [ngSwitch]=\"widget.datePickerType\">\n            <mat-icon *ngSwitchCase=\"'date'\" svgIcon=\"axo_date\" class=\"\"></mat-icon>\n            <mat-icon *ngSwitchCase=\"'time'\" svgIcon=\"axo_time\" class=\"\"></mat-icon>\n            <mat-icon *ngSwitchCase=\"'both'\" svgIcon=\"axo_date_time\" class=\"\"></mat-icon>\n            <mat-icon *ngSwitchCase=\"'date-range'\" svgIcon=\"axo_date_range\" class=\"\"></mat-icon>\n            <mat-icon *ngSwitchDefault svgIcon=\"axo_sculptor_text\" class=\"\"></mat-icon>\n          </ng-container>\n\n          <ng-container  [ngSwitch]=\"widget.datePickerType\">\n            <input [placeholder]=\"widget.placeholder?widget.placeholder:'Select date'\" readonly=true\n          [formControlName]=\"widget.id\" *ngSwitchCase=\"'date'\" />\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Select time'\" readonly=true\n          [formControlName]=\"widget.id\" *ngSwitchCase=\"'time'\" />\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Select date time'\" readonly=true\n          [formControlName]=\"widget.id\" *ngSwitchCase=\"'both'\" />\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Select date-range'\" readonly=true\n          [formControlName]=\"widget.id\" *ngSwitchCase=\"'date-range'\" />\n          </ng-container>\n\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { DateTime } from '../../../forms/page/widgets/datetime';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-date-time',\n  templateUrl: './date-time.component.html',\n  styleUrls: ['./date-time.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class DateTimeComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: DateTime;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { DateRangeValue } from './widget-value/dateRangeValue';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { DateTimeComponent } from '../../../sculptor-lib/widgets/date-time/date-time.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetSubType, WidgetType } from '../common/widget-enums';\nimport { ChoiceListOptionConverter } from './widget-value/choice-list-options';\n\ntype DateTimeValue = Type<string | number>;\n\n@JsonObject('DateTime')\nexport class DateTime extends Widget {\n  component: Type<DateTimeComponent> = DateTimeComponent;\n\n  // eslint-disable-next-line @typescript-eslint/member-ordering\n  @JsonProperty('value', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  value: DateTimeValue = null;\n\n\n  // eslint-disable-next-line @typescript-eslint/member-ordering\n  @PropertyPanelField({\n    inputType: 'select', label: 'Date picker type',\n    choices: [{ value: 'date', text: 'Date' },\n    { value: 'time', text: 'Time' }, { value: 'both', text: 'Date time both' },\n    { value: 'date-range', text: 'Date Range' }],\n    required: true, helpText: 'Date picker type?', sortIndex: 2, isEditable: true\n  })\n  @JsonProperty(Constants.datePickerType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  datePickerType: string = '';\n\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n  @JsonProperty(Constants.dateFormat, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  dateFormat: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Allow past', conditionInputType: 'datePickerType', conditionInputData: ['date', 'both'],\n    helpText: 'Allow past', sortIndex: 8\n  })\n  @JsonProperty(Constants.allowPast, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  allowPast: boolean = false;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Allow future', conditionInputType: 'datePickerType', conditionInputData: ['date', 'both'],\n    helpText: 'Allow future', sortIndex: 7\n  })\n  @JsonProperty(Constants.allowFuture, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  allowFuture: boolean = false;\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Label for ending date',\n    conditionInputType: 'datePickerType', conditionInputData: ['date-range'], helpText: 'Label for ending date',\n    sortIndex: 10\n  })\n  @JsonProperty(Constants.toDatelabel, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  toDatelabel: string = '';\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Date format',\n    choices: [{ value: 'MM/dd/YYYY', text: 'MM/dd/YYYY (02/21/2018)' }, { value: 'MM/dd/YY', text: 'MM/dd/YY (02/21/18)' }, { value: 'dd/MM/YYYY', text: 'dd/MM/YYYY (21/02/2018)' }, { value: 'dd/MM/YY', text: 'dd/MM/YY (21/02/18)' }, { value: 'dd-MM-YYYY', text: 'dd-MM-YYYY (21-02-2018)' }, { value: 'dd-MM-YY', text: 'dd-MM-YY (21-02-18)' }, { value: 'MM-dd-YYYY', text: 'MM-dd-YYYY (02-21-2018)' }, { value: 'MM-dd-YY', text: 'MM-dd-YY (02-21-18)' }, { value: 'YYYY-MM-dd', text: 'YYYY-MM-dd (2018-02-21)' }, { value: 'M/dd/YYYY', text: 'M/dd/YYYY (2/21/2018)' }, { value: 'M/dd/YY', text: 'M/dd/YY (2/21/18)' }, { value: 'd/M/YYYY', text: 'd/M/YYYY (21/2/2018)' }, { value: 'd/M/YY', text: 'd/M/YY (21/2/18)' }, { value: 'M-d-YYYY', text: 'M-d-YYYY (2-21-2018)' }, { value: 'M-d-YY', text: 'M-d-YY (2-21-18)' }, { value: 'd-M-YYYY', text: 'd-M-YYYY (21-2-2018)' }, { value: 'd-M-YY', text: 'd-M-YY (21-2-18)' }, { value: 'MMM d, YYYY', text: 'MMM d, YYYY (Feb 21, 2018)' }, { value: 'MMMM d, YYYY', text: 'MMMM d, YYYY (February 21, 2018)' }, { value: 'other', text: 'Other' }],\n    conditionInputType: 'datePickerType', conditionInputData: ['date'],\n    required: false, helpText: 'Date picker type?', sortIndex: 12\n  })\n  @JsonProperty(Constants.displayDateFormat, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  displayDateFormat: string = '';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Label for starting date',\n    conditionInputType: 'datePickerType', conditionInputData: ['date-range'], helpText: 'Label for starting date',\n    sortIndex: 9\n  })\n  @JsonProperty(Constants.fromDateLabel, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  fromDateLabel: string = '';\n\n  // display date time format\n  @PropertyPanelField({\n    inputType: 'select', label: 'Date Time format', conditionInputType: 'datePickerType', conditionInputData: ['both'],\n    choices: [{ value: 'YYYY-MM-dd HH:mm:ss', text: 'YYYY-MM-dd HH:mm:ss (2018-02-21 12:00:00)' }, { value: 'YYYY-MM-dd hh:mm:ss a', text: 'YYYY-MM-dd hh:mm:ss a (2018-10-29 10:02:48 AM)' }, { value: 'other', text: 'Other' }],\n    helpText: 'Set the Date Time format', sortIndex: 16\n  })\n  @JsonProperty(Constants.displayDateTimeFormat, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  displayDateTimeFormat: string = \"\"\n\n  // display time format\n  @PropertyPanelField({\n    inputType: 'select', label: 'Time format', conditionInputType: 'datePickerType', conditionInputData: ['time'],\n    choices: [{ value: 'HH:mm:ss', text: 'HH:mm:ss (12:00:00)' }, { value: 'HH:mm', text: 'HH:mm (12:00)' }, { value: 'other', text: 'Other' }],\n    helpText: 'Set the time format', sortIndex: 15\n  })\n  @JsonProperty(Constants.displayTimeFormat, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  displayTimeFormat: string = \"\"\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Other Datetime Format', conditionInputType: 'displayTimeFormat', conditionInputData: ['other'], helpText: 'Set custom date time format', sortIndex: 6\n  })\n\n  @JsonProperty(Constants.field, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  changedField: string;\n\n  @PropertyPanelField({ inputType: 'toggle', label: 'Repopulate value', helpText: 'Should the value once entered, repopulate while filling the subsequent records?' ,sortIndex: 11 })\n  @JsonProperty(Constants.repopulateValue, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  repopulateValue: boolean = false;\n\n  @PropertyPanelField({\n    inputType: 'prompttext', label: 'Choices (Default)(English)',\n    helpText: 'Enter choices, one per line', code: 'en', sortIndex: 20\n  })\n  @JsonProperty(Constants.choices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  choices: string;\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Hindi)', code: 'hi', helpText: 'Enter choices, one per line', sortIndex: 21 })\n  @JsonProperty(Constants.hiChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  hiChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Marathi)', code: 'mar', helpText: 'Enter choices, one per line', sortIndex: 22 })\n  @JsonProperty(Constants.marChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  marChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (telugu)', code: 'tel', helpText: 'Enter choices, one per line', sortIndex: 23 })\n  @JsonProperty(Constants.telChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  telChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (french)', code: 'fr', helpText: 'Enter choices, one per line', sortIndex: 24 })\n  @JsonProperty(Constants.frChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  frChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (arabic)', code: 'ar', helpText: 'Enter choices, one per line', sortIndex: 25 })\n  @JsonProperty(Constants.arChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  arChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Japanese)', code: 'JP', helpText: 'Enter choices, one per line', sortIndex: 26 })\n  @JsonProperty(Constants.JPChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  JPChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Bahasa)', code: 'ID', helpText: 'Enter choices, one per line', sortIndex: 27 })\n  @JsonProperty(Constants.IDChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  IDChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Thai)', code: 'TH', helpText: 'Enter choices, one per line', sortIndex: 28 })\n  @JsonProperty(Constants.THChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  THChoices: string = '';\n\n  @PropertyPanelField({ inputType: 'prompttext', label: 'Choices (Chinese)', code: 'CN', helpText: 'Enter choices, one per line', sortIndex: 29 })\n  @JsonProperty(Constants.CNChoices, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  CNChoices: string = '';\n\n  @JsonProperty(Constants.markup, ChoiceListOptionConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  // otherDisplayDateTimeFormat: string = ''\n  // widgetIcon: string = 'axo_datetime';\n  name: string;\n\n  constructor(field?: DateTime) {\n    super(field);\n    if (field) {\n      this.dateTimeObject(field);\n    }\n    else {\n      this.newDateTime();\n    }\n    this.createValidators();\n  }\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      if (typeof (this.value) === 'object') {\n        const value = this.value as DateRangeValue;\n        return JSON.stringify(value.from + ',' + value.to);\n      }\n      else {\n        const value = this.value as DateTimeValue;\n        return JSON.stringify(value.toString());\n      }\n    }\n    else {\n      return '';\n    }\n\n  }\n\n\n  // Function to create new Date-Time object\n  newDateTime(): void {\n    this.prompt='';\n    this.helpText = '';\n    this.datePickerType = '';\n    this.dateFormat = '';\n    this.allowPast = true;\n    this.allowFuture = true;\n    this.repopulateValue = false;\n    this.toDatelabel = 'To';\n    this.displayDateFormat = '';\n    this.displayTimeFormat = '';\n    this.fromDateLabel = 'From';\n    this.type = WidgetType.dateTime;\n    this.mainType = WidgetSubType.date;\n    this.subType = WidgetSubType.date;\n    this.changedField = 'date_picker_type';\n    this.dependant = [];\n    this.name = 'DateTime';\n    this.markup = '';\n    this.choices = '';\n    this.hiChoices = '';\n    this.marChoices = '';\n    this.telChoices = '';\n    this.frChoices = '';\n    this.arChoices = '';\n    this.JPChoices = '';\n    this.IDChoices = '';\n    this.THChoices = '';\n    this.CNChoices = '';\n    this.placeholder='Select date time';\n  }\n\n  /**function to create Date-Time object with existing values\n  *\n  *@param field\n  *\n  */\n  dateTimeObject(field): void {\n    this.prompt = field.prompt;\n    this.helpText = field.helpText;\n    this.datePickerType = field.datePickerType;\n    this.dateFormat = field.dateFormat;\n    this.allowPast = field.allowPast;\n    this.allowFuture = field.allowFuture;\n    this.toDatelabel = field.toDatelabel;\n    this.displayDateFormat = field.displayDateFormat;\n    this.displayTimeFormat = field.displayTimeFormat;\n    this.fromDateLabel = field.fromDateLabel;\n    this.type = field.type;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.identifier = field.identifier;\n    this.changedField = field.changedField;\n    this.repopulateValue = field.repopulateValue;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.choices = field.choices;\n    this.hiChoices = field.hiChoices;\n    this.marChoices = field.marChoices;\n    this.telChoices = field.telChoices;\n    this.frChoices = field.frChoices;\n    this.arChoices = field.arChoices;\n    this.JPChoices = field.JPChoices;\n    this.IDChoices = field.IDChoices;\n    this.THChoices = field.THChoices;\n    this.CNChoices = field.CNChoices;\n    this.placeholder=field.placeHolder;\n  }\n\n  /*\n* Override createValidators\n* Create all Validators of  text-box widget. ~(Required validator added from common widget)\n*/\n  createValidators(): void {\n    //super.createValidators();\n  }\n\n  /*\n  * Get input type of datetime widget.\n  */\n  getInputType(inputType): string {\n    if (inputType === 'both') {\n      return 'datetime-local';\n    } else if (inputType === 'date') {\n      return 'date';\n    } else if (inputType === 'time') {\n      return 'time';\n    } else if (inputType === 'date-range') {\n\n      return 'date-range';\n    }\n    return 'text';\n  }\n  /**\n   * Create FormControl for widget\n   */\n  createFormControl() {\n  }\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = DateTime.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}","<!-- Time Stamp widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_timestamp\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_timestamp\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Time Stamp'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { TimeStamp } from '../../../forms/page/widgets/timestamp';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'lib-timestamp',\n  templateUrl: './timestamp.component.html',\n  styleUrls: ['./timestamp.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class TimestampComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: TimeStamp;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Widget } from './widget';\nimport { SetValueModeType, WidgetLayout, WidgetType } from '../common/widget-enums';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { TimestampComponent } from '../../../sculptor-lib/widgets/timestamp/timestamp.component';\n\n@JsonObject('TimeStamp')\nexport class TimeStamp extends Widget{\n    component: Type<TimestampComponent> = TimestampComponent;\n\n    value:  string ='' ;\n    // widgetIcon: string ='axo_timestamp';\n\n    \n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n    // @JsonProperty(Constants.dateFormat,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    // dateFormat: string='';\n\n    // @JsonProperty(Constants.helpMessage,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    // helpMessage: string='';\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Mode',\n        choices: [ {value: SetValueModeType.onOpen, text: 'On Open'}, {value: SetValueModeType.onTap, text: 'On Tap'} ,{value: SetValueModeType.onSubmit, text: 'On Submit'}],\n        required: false, helpText: 'Mode' , sortIndex: 2\n      })\n    @JsonProperty(Constants.mode,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    mode: SetValueModeType=null;\n\n    @PropertyPanelField({ inputType: 'select', label: 'Date format', helpText: 'Set the Date format',\n      choices: [{ value: 'MM/dd/YYYY', text: 'MM/dd/YYYY (02/21/2018)' }, { value: 'MM/dd/YY', text: 'MM/dd/YY (02/21/18)' }, { value: 'dd/MM/YYYY', text: 'dd/MM/YYYY (21/02/2018)' }, { value: 'dd/MM/YY', text: 'dd/MM/YY (21/02/18)' }, { value: 'dd-MM-YYYY', text: 'dd-MM-YYYY (21-02-2018)' }, { value: 'dd-MM-YY', text: 'dd-MM-YY (21-02-18)' }, { value: 'MM-dd-YYYY', text: 'MM-dd-YYYY (02-21-2018)' }, { value: 'MM-dd-YY', text: 'MM-dd-YY (02-21-18)' }, { value: 'YYYY-MM-dd', text: 'YYYY-MM-dd (2018-02-21)' }, { value: 'M/dd/YYYY', text: 'M/dd/YYYY (2/21/2018)' }, { value: 'M/dd/YY', text: 'M/dd/YY (2/21/18)' }, { value: 'd/M/YYYY', text: 'd/M/YYYY (21/2/2018)' }, { value: 'd/M/YY', text: 'd/M/YY (21/2/18)' }, { value: 'M-d-YYYY', text: 'M-d-YYYY (2-21-2018)' }, { value: 'M-d-YY', text: 'M-d-YY (2-21-18)' }, { value: 'd-M-YYYY', text: 'd-M-YYYY (21-2-2018)' }, { value: 'd-M-YY', text: 'd-M-YY (21-2-18)' }, { value: 'MMM d, YYYY', text: 'MMM d, YYYY (Feb 21, 2018)' }, { value: 'MMMM d, YYYY', text: 'MMMM d, YYYY (February 21, 2018)' }, { value: 'other', text: 'Other' }],\n    })\n    @PropertyPanelField({\n      inputType: 'select', label: 'Date format',\n      choices: [{ value: 'MM/dd/YYYY', text: 'MM/dd/YYYY (02/21/2018)' }, { value: 'MM/dd/YY', text: 'MM/dd/YY (02/21/18)' }, { value: 'dd/MM/YYYY', text: 'dd/MM/YYYY (21/02/2018)' }, { value: 'dd/MM/YY', text: 'dd/MM/YY (21/02/18)' }, { value: 'dd-MM-YYYY', text: 'dd-MM-YYYY (21-02-2018)' }, { value: 'dd-MM-YY', text: 'dd-MM-YY (21-02-18)' }, { value: 'MM-dd-YYYY', text: 'MM-dd-YYYY (02-21-2018)' }, { value: 'MM-dd-YY', text: 'MM-dd-YY (02-21-18)' }, { value: 'YYYY-MM-dd', text: 'YYYY-MM-dd (2018-02-21)' }, { value: 'M/dd/YYYY', text: 'M/dd/YYYY (2/21/2018)' }, { value: 'M/dd/YY', text: 'M/dd/YY (2/21/18)' }, { value: 'd/M/YYYY', text: 'd/M/YYYY (21/2/2018)' }, { value: 'd/M/YY', text: 'd/M/YY (21/2/18)' }, { value: 'M-d-YYYY', text: 'M-d-YYYY (2-21-2018)' }, { value: 'M-d-YY', text: 'M-d-YY (2-21-18)' }, { value: 'd-M-YYYY', text: 'd-M-YYYY (21-2-2018)' }, { value: 'd-M-YY', text: 'd-M-YY (21-2-18)' }, { value: 'MMM d, YYYY', text: 'MMM d, YYYY (Feb 21, 2018)' }, { value: 'MMMM d, YYYY', text: 'MMMM d, YYYY (February 21, 2018)' }, { value: 'other', text: 'Other' }],\n      conditionInputType: 'datePickerType', conditionInputData: ['date'],\n      required: false, helpText: 'Date picker type?', sortIndex: 12\n    })\n    @JsonProperty(Constants.displayDateFormat,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    displayDateFormat: string='';\n\n    @PropertyPanelField({\n        inputType: 'toggle', label: 'Allow changing?', conditionInputType: 'mode',\n        helpText: 'Allow changing?' , conditionInputData:[SetValueModeType.onTap], sortIndex : 3\n      })\n    @JsonProperty(Constants.isAllowChanging ,StringToBooleanValueConverter,PropertyConvertingMode.IGNORE_NULLABLE)\n    isAllowChanging: boolean= false;\n    \n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    name: string;\n\n\n    /*\n    * Constructor\n    */\n    constructor(field?: TimeStamp){\n        super(field);\n        if(field){\n            this.timestamp(field);\n        }\n        else{\n            this.newTimestamp();\n        }\n    }\n\n    // Function to create new Toggle object\n    newTimestamp(): void{\n      this.prompt = 'Timestamp';\n      this.helpText = '';\n      this.markup = '';\n      this.mode = SetValueModeType.onTap;\n      this.isAllowChanging = false;\n      // this.dateFormat='';\n      // this.helpMessage = '';\n      this.type = WidgetType.timeStamp;\n      this.mainType = 'timestamp';\n      this.subType = 'timestamp';\n      this.validityDependents = [];\n      this.widgetLayout = WidgetLayout.twoLine;\n      this.name = 'TimeStamp';\n      this.placeholder='Time Stamp';\n\n    }\n\n     /**function to create Toggle object with existing values\n    *\n    *@param field\n    *\n    */\n    timestamp(field): void{\n      this.prompt = field.prompt;\n        this.helpText = field.helpText;\n        this.markup = field.markup;\n        this.mode = field.mode;\n        this.isAllowChanging = field.isAllowChanging;\n        // this.dateFormat=field.dateFormat;\n        // this.helpMessage = field.helpMessage;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.mainType = field.mainType;\n        this.subType = this.subType;\n        this.name = field.name;\n        this.placeholder=field.placeholder;\n\n\n    }\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n     getWidgetSerializedValue() {\n        if(this.value){\n            return this.value.toString();\n        }\n        else{\n            return '';\n        }\n    }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties=['repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = TimeStamp.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n}","<!-- Stopwatch widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n      <div class=\"flex gap-2 items-center box-border\">\n          <!-- <mat-icon svgIcon=\"axo_sculptor_stopwatch\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n          <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n          </form>\n          <ng-container *ngIf=\"widget.isHidden\">\n            <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n          </ng-container>\n      </div>\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_stopwatch\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Use stopwatch'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { StopWatch } from '../../../forms/page/widgets/stopwatch';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'lib-stopwatch',\n  templateUrl: './stopwatch.component.html',\n  styleUrls: ['./stopwatch.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class StopwatchComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: StopWatch;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Widget } from './widget';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { StopwatchComponent } from '../../../sculptor-lib/widgets/stopwatch/stopwatch.component';\nimport { WidgetType } from '../common/widget-enums';\n\n@JsonObject('StopWatch')\nexport class StopWatch extends Widget {\n  /* SubPage may have more than one widget so make this as group widget*/\n\n  component: Type<StopwatchComponent> = StopwatchComponent;\n\n  value: string = '';\n  // widgetIcon: string = 'axo_stopwatch';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Allow pausing?',\n    helpText: 'Allow Pause?', sortIndex: 2\n  })\n  @JsonProperty(Constants.allowPausing, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  isAllowPausing: boolean = false;\n\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  // @JsonProperty(Constants.formName, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // formName: string = '';\n  name: string;\n\n  constructor(field?: StopWatch) {\n    super(field);\n    if (field) {\n      this.stopwatch(field);\n    }\n    else {\n      this.newStopWatch();\n    }\n  }\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n\n  // Function to create new report object\n  newStopWatch(): void {\n    this.prompt = 'Stopwatch';\n    this.helpText = '';\n    this.isAllowPausing = false;\n    // this.formName = '';\n    this.type = WidgetType.stopWatch;\n    this.mainType = 'stopwatch';\n    this.subType = 'stopwatch';\n    this.validityDependents = [];\n    this.name = 'StopWatch';\n    this.markup = '';\n    this.placeholder='Use stopwatch';\n  }\n\n  /**function to create report object with existing values\n  *\n  *@param Report\n  *\n  */\n  stopwatch(field): void {\n    this.prompt = field.prompt;\n    this.helpText = field.helpText;\n    this.isAllowPausing = false;\n    // this.formName = field.formName;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.validityDependents = field.validityDependents;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder = field.placeholder;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['widgetLayout', 'repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = StopWatch.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n}","<!-- Group header widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n            <div class=\"flex items-center justify-between w-full box-border\">\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\">\n     <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" style=\"resize: none; overflow-y: hidden; white-space: pre-wrap;\"(input)=\"adjustTextAreaHeight($event)\" [style.height.px]=\"calculateHeight()\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"toggleEditable()\" matTooltip=\"Double Click to Edit\"></textarea>        \n                <!-- <mat-icon svgIcon=\"axo_sculptor_group_header\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n\n                </form>\n                <ng-container *ngIf=\"widget.isHidden\">\n                  <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4 header-eye\"></mat-icon>\n                </ng-container>\n                <!-- <mat-icon svgIcon=\"axo_sculptor_group_header\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <!-- <mat-icon svgIcon=\"axo_sculptor_group_header2\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <mat-icon svgIcon=\"axo_sculptor_group_header2\" class=\"group-header-dropdown-icon h-6 w-6 mr-5\"></mat-icon>\n            </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { GroupHeader } from '../../../forms/page/widgets/group-header';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-group-header',\n  templateUrl: './group-header.component.html',\n  styleUrls: ['./group-header.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class GroupHeaderComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: GroupHeader;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nonSingleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { StringToNumberConverter } from '../value-converters/string-to-number -converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { GroupHeaderComponent } from '../../../sculptor-lib/widgets/group-header/group-header.component';\nimport { WidgetType } from '../common/widget-enums';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\n\n\n@JsonObject('GroupHeader')\nexport class GroupHeader extends Widget {\n\n    component: Type<GroupHeaderComponent> = GroupHeaderComponent;\n    value: string = '';\n    // widgetIcon: string = 'axo_square_text';\n\n    @PropertyPanelField({\n        inputType: 'text', label: 'Header Title',\n        helpText: 'Group Title', sortIndex: 2\n    })\n    @JsonProperty(Constants.prompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    prompt: string = '';\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n\n    @PropertyPanelField({\n        inputType: 'toggle', label: 'Sticky Group',\n        helpText: 'Allow Groupheader to Stick at top', sortIndex: 3\n    })\n    @JsonProperty(Constants.isStickyGroup, StringToNumberConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    isStickyGroup: boolean;\n\n    // @JsonProperty(Constants.integrationId, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // integrationId: string = '';\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Initial Display Mode', choices: [{ value: 'expand', text: 'Expand' }, { value: 'collapse', text: 'Collapse' }], conditionInputData: ['header'], conditionInputType: 'ghSubType',\n        helpText: 'Select Initial Display Mode', sortIndex: 5\n    })\n    @JsonProperty('header_mode', String, PropertyConvertingMode.IGNORE_NULLABLE)\n    header_mode: string = '';\n\n    @JsonProperty(Constants.subType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    subType: string = '';\n\n    // @JsonProperty(Constants.helpMessage, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // helpMessage: string = '';\n\n    // @JsonProperty(Constants.marPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // marPrompt: string = '';\n\n    // @JsonProperty(Constants.hiPrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // hiPrompt: string = '';\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Subtype', choices: [{ value: 'header', text: 'Header' }, { value: 'label', text: 'Label' }],\n        helpText: 'Select subtype', sortIndex: 4\n    })\n    @JsonProperty(Constants.ghSubType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    ghSubType: string = '';\n\n    // @JsonProperty(Constants.tePrompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // tePrompt: string = '';\n\n    // @JsonProperty(Constants.formName, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // formName: string = '';\n\n    @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n    dependents: [];//Dependant\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: '';\n\n    @JsonProperty(Constants.validityDependents, [], PropertyConvertingMode.IGNORE_NULLABLE)\n    validityDependents: [];\n\n    // header_mode = \"expand\";\n    initialDisplayMode: string = '';\n    name: string;\n\n    constructor(field?: Widget) {\n        super(field);\n        if (field) {\n            this.groupHeader(field);\n        }\n        else {\n            this.newGroupHeader();\n        }\n        //this.clearValidators();\n    }\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n    getWidgetSerializedValue() {\n        if (this.value) {\n            return this.value.toString();\n        }\n        else {\n            return '';\n        }\n    }\n    // Function to create new Date-Time object\n    newGroupHeader(): void {\n        this.prompt='Group Header';\n        this.helpText ='';\n        this.prompt = 'Group Header';\n        this.dependents = [];\n        // this.markup = '';\n        this.isStickyGroup = false;\n        this.initialDisplayMode = 'editable';\n        this.subType = 'header';\n        // this.helpMessage = '';\n        // this.marPrompt = '';\n        // this.hiPrompt = '';\n        this.ghSubType = 'header';\n        // this.tePrompt = '';\n        this.mainType = 'groupheader';\n        this.type = WidgetType.groupHeader;\n        this.validityDependents = [];\n        this.header_mode = \"expand\"\n        this.name = 'GroupHeader';\n        this.placeholder='Group Header'\n\n    }\n\n    /**function to create Date-Time object with existing values\n    *\n    *@param field\n    *\n    */\n    groupHeader(field): void {\n        this.prompt=field.prompt;\n        this.helpText = field.helpText;\n        this.prompt = field.prompt;\n        this.dependents = field.dependant;\n        this.isStickyGroup = field.isStickyGroup;\n        this.initialDisplayMode = field.initialDisplayMode;\n        this.subType = field.subType;\n        // this.helpMessage = field.helpMessage;\n        // this.marPrompt = field.marPrompt;\n        // this.hiPrompt = field.hiPrompt;\n        this.ghSubType = field.ghSubType;\n        // this.tePrompt = field.tePrompt;\n        this.mainType = field.mainType;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        // this.markup = field.markup;\n        this.validityDependents = field.validityDependents;\n        this.header_mode = field.header_mode;\n        this.name = field.name;\n        this.placeholder=field.placeholder;\n    }\n    /*\n    * Override createValidators\n    */\n    createValidators(): void {\n        //super.createValidators();\n    }\n    /**\n     * Create FormControl for widget\n     */\n    createFormControl() {\n        throw new Error('Method not implemented.');\n    }\n\n    // Method to retrieve UI metadata for a property\n    public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n        return Reflect.getMetadata(key, target);\n    }\n\n    // Method to retrieve UI metadata for all properties\n    public getPropertyPanelFieldUIProperties(): any {\n        const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n        const excludedProperties = ['widgetLayout', 'repopulateValue'];\n        // Get the list of property  names using Object.getOwnPropertyNames\n        const propertyNames = Object.getOwnPropertyNames(this);\n        let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n        const commonProperties = []; // to hold property names without sortIndex\n        // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n        for (const propertyName of propertyNames) {\n            const metadata = GroupHeader.getPropertyPanelFieldMetadata(this, propertyName);\n            if (metadata && !excludedProperties.includes(propertyName)) {\n                properties[propertyName] = metadata;\n                if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n                }\n                else if (metadata.sortIndex != null) {\n                    uiProperties.splice(metadata.sortIndex, 1, propertyName);\n                }\n                else {\n                    commonProperties.push(propertyName);\n                }\n            }\n        }\n        uiProperties = uiProperties.filter(a => a);\n        const data = {\n            properties: properties,\n            keys: uiProperties.concat(commonProperties)\n        };\n        return data;\n    }\n}\n","<!-- GPS widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_gps\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div  class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_gps\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Tap to capture'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { GPS } from '../../../forms/page/widgets/gps';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-gps',\n  templateUrl: './gps.component.html',\n  styleUrls: ['./gps.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class GpsComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: GPS;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { GPSWidgetValue } from './widget-value/gps-widget-value';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { GpsComponent } from '../../../sculptor-lib/widgets/gps/gps.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { SetValueModeType, WidgetType } from '../common/widget-enums';\n\ntype GPSValue = Type<Array<GPSWidgetValue>>;\n@JsonObject('GPS')\nexport class GPS extends Widget {\n    component: Type<GpsComponent> = GpsComponent;\n\n    // @JsonProperty(Constants.allowPausing, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // allowPausing: boolean = false;\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Capture type', choices: [{ value: 'manual', text: 'Manual' }, { value: 'ontap', text: 'On Tap' }, { value: 'onsubmit', text: 'On Submit' }],\n        helpText: 'Capture type', sortIndex: 2\n    })\n    @JsonProperty(Constants.captureType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    captureType: string = '';\n    @JsonProperty(Constants.mode, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    mode: SetValueModeType=null;\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Point Selection', choices: [{ value: '1', text: 'Show' }, { value: '2', text: 'Hide' }], conditionInputType: 'captureType', conditionInputData: ['manual'],\n        helpText: 'Allow Point selection option while selecting location', sortIndex: 3\n    })\n    @JsonProperty(Constants.showPointSelection, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    showPointSelection: string = '';\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Polygon Selection', choices: [{ value: '1', text: 'Show' }, { value: '2', text: 'Hide' }], conditionInputType: 'captureType', conditionInputData: ['manual'],\n        helpText: 'Allow Polygon selection option while selecting location', sortIndex: 4\n    })\n    @JsonProperty(Constants.showPolygonSelection, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    showPolygonSelection: string = '';\n\n    @PropertyPanelField({\n        inputType: 'select', label: 'Polyline Selection', choices: [{ value: '1', text: 'Show' }, { value: '2', text: 'Hide' }], conditionInputType: 'captureType', conditionInputData: ['manual'],\n        helpText: 'Allow Polyline selection option while selecting location', sortIndex: 5\n    })\n    @JsonProperty(Constants.showPolylineSelection, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    showPolylineSelection: string = '';\n\n    @PropertyPanelField({\n        inputType: 'number', label: 'Map zoom level', conditionInputType: 'captureType', conditionInputData: ['manual'],\n        helpText: 'The default zoom level for map', sortIndex: 6\n    })\n    @JsonProperty(Constants.mapZoomLevel, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    mapZoomLevel: string = '';\n\n    @JsonProperty(Constants.changeField, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    changeField: string = '';\n\n    @JsonProperty(Constants.updateIdentifierCheck, Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    updateIdentifierCheck: number;\n\n    @JsonProperty(Constants.allowViewObject, Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    allowViewObject: number;\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    // widgetIcon: string = 'axo_location';\n\n    value: GPSValue;\n    // validate: boolean = true;\n    name: string;\n\n    constructor(field?: Widget) {\n        super(field);\n        if (field) {\n            this.gps(field);\n        }\n        else {\n            this.newGps();\n        }\n    }\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n    getWidgetSerializedValue() {\n        if (this.value) {\n            const jsonConvert: JsonConvert = new JsonConvert();\n            const value = this.value as GPSValue;\n            const newValue = jsonConvert.serialize(value, GPSWidgetValue);\n            if (Array.isArray(newValue)) { return JSON.stringify(newValue[0].value[0]); }\n            else { return ''; }\n\n        }\n        else {\n            return '';\n        }\n\n    }\n    // Function to create new report object\n    newGps(): void {\n        this.prompt='Location';\n        this.helpText = '';\n        this.captureType = 'manual';\n        this.mode = SetValueModeType.onTap\n        this.showPointSelection = '1';\n        // this.allowPausing = false;\n        this.showPolygonSelection = '1';\n        this.mapZoomLevel = '15';\n        this.changeField = '';\n        this.value = null;\n        this.showPolylineSelection = '1';\n        this.type = WidgetType.captureGpsLocation;\n        this.identifier = 'Location'\n        this.mainType = 'scan';\n        this.subType = 'number';\n        this.name = 'GPS';\n        this.markup = '';\n        this.placeholder='Tap to capture';\n    }\n\n    /**function to create counter object with existing values\n    *\n    *@param field\n    *\n    */\n    gps(field): void {\n        this.prompt=field.prompt;\n        this.helpText = field.helpText;\n        this.captureType = field.captureType;\n        this.mode = field.mode;\n        this.showPointSelection = field.showPointSelection;\n        // this.allowPausing = field.allowPausing;\n        this.showPolygonSelection = field.showPolygonSelection;\n        this.mapZoomLevel = field.mapZoomLevel;\n        this.changeField = field.changeField;\n        this.value = field.value;\n        this.showPolylineSelection = field.showPolylineSelection;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.type = field.type;\n        this.mainType = field.mainType;\n        this.subType = field.subType;\n        this.identifier = field.identifier;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder=field.placeholder;\n    }\n\n    // Method to retrieve UI metadata for a property\n    public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n        return Reflect.getMetadata(key, target);\n    }\n\n    // Method to retrieve UI metadata for all properties\n    public getPropertyPanelFieldUIProperties(): any {\n        const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n        const excludedProperties = ['widgetLayout', 'repopulateValue'];\n        // Get the list of property  names using Object.getOwnPropertyNames\n        const propertyNames = Object.getOwnPropertyNames(this);\n        let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n        const commonProperties = []; // to hold property names without sortIndex\n        // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n        for (const propertyName of propertyNames) {\n            const metadata = GPS.getPropertyPanelFieldMetadata(this, propertyName);\n            if (metadata && !excludedProperties.includes(propertyName)) {\n                properties[propertyName] = metadata;\n                if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n                }\n                else if (metadata.sortIndex != null) {\n                    uiProperties.splice(metadata.sortIndex, 1, propertyName);\n                }\n                else {\n                    commonProperties.push(propertyName);\n                }\n            }\n        }\n        uiProperties = uiProperties.filter(a => a);\n        const data = {\n            properties: properties,\n            keys: uiProperties.concat(commonProperties)\n        };\n        return data;\n    }\n}\n","import { JsonConverter,  JsonCustomConvert } from 'json2typescript';\nimport { RecordLimitType } from '../common/widget-enums';\n\n@JsonConverter\nexport class RecordLimitTypeConverter implements JsonCustomConvert<number> {\n    serialize(value: number): number {\n        return value;\n    }\n\n    deserialize(value: string): any {\n        switch (value) {\n            case\"1\":\n                return RecordLimitType.fixed\n            case\"2\":\n                return RecordLimitType.variable\n            default:\n                return value     \n        }\n    }\n}","import { JsonConverter,  JsonCustomConvert } from 'json2typescript';\nimport { RestrictionMode } from '../common/widget-enums';\n\n@JsonConverter\nexport class RestrictionModeConverter implements JsonCustomConvert<number> {\n    serialize(value: number): number {\n        return value;\n    }\n\n    deserialize(value: string): any {\n        switch (value) {\n            case\"1\":\n                return RestrictionMode.disable\n            case\"2\":\n                return RestrictionMode.hide\n            default:\n                return value       \n        }\n    }\n}","<!-- Child Record widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_child\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea> \n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_child_records\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Enter your response'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { ChildRecord } from '../../../forms/page/widgets/child-record';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service'; \nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-child-record',\n  templateUrl: './child-record.component.html',\n  styleUrls: ['./child-record.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ChildRecordComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: ChildRecord;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { JsonConverter, JsonCustomConvert } from \"json2typescript\";\n@JsonConverter\nexport class NumberToStringConverter implements JsonCustomConvert<string> {\n    serialize(value: string): any {\n        return value;\n    }\n    deserialize(value: any): string {\n        if (typeof value === 'number') {\n            return value.toString();\n        }\n        return value || '';\n    }\n}","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { RecordLimitType, RestrictionMode, WidgetType } from '../common/widget-enums';\nimport { ChildRecordValue } from './widget-value/child-record-value';\nimport { ParseIntConverter } from '../value-converters/parse-int-converter';\nimport { RecordLimitTypeConverter } from '../value-converters/record-limit-type-converter';\nimport { RestrictionModeConverter } from '../value-converters/restriction-mode-converter';\nimport { ChildRecordComponent } from '../../../sculptor-lib/widgets/child-record/child-record.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { ParseStringConverter } from '../value-converters/parse-string-converter';\nimport { first } from 'lodash';\nimport { NumberToStringConverter } from '../value-converters/number-to-string-converter';\n\n@JsonObject('ChildRecord')\nexport class ChildRecord extends Widget {\n\n  component?: Type<ChildRecordComponent> = ChildRecordComponent;\n\n  value: Array<ChildRecordValue> = [];\n  /* SubPage may have more than one widget so make this as group widget*/\n  @PropertyPanelField({\n    inputType: 'defaultchoicelist', label: 'Child Form', choices: [],\n    required: true, helpText: 'Select Source', sortIndex: 2\n  })\n  @JsonProperty(Constants.childForm, ParseIntConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  childFormId: string;\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Show Inline List',\n    helpText: 'Allow child form to show inline', sortIndex: 3\n  })\n  // @JsonProperty(Constants.isShowInlineList, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  // isShowInlineList: boolean;\n  @JsonProperty(Constants.childShowInline, NumberToStringConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  childShowInline: string;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Record Limit Type', choices: [{ value: '', text: '' }, { value: 1, text: 'Fixed' }, { value: 2, text: 'Variable' }],\n    helpText: 'Record Limit Type', sortIndex: 4\n  })\n  @JsonProperty(Constants.recordLimitType, RecordLimitTypeConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  recordLimitType: RecordLimitType;\n  // @JsonProperty(Constants.deleteSpecificRecord, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // deleteSpecificRecord: string;\n  @JsonProperty(Constants.showInlineList, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  showInlineList: boolean;\n\n  // @JsonProperty(Constants.childShowInline, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // childShowInline: string;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Record Limit Field', choices: [], conditionInputType: 'recordLimitType', conditionInputData: ['2'],\n    helpText: 'Record Limit Field', sortIndex: 6\n  })\n  @JsonProperty(Constants.recordLimitField, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  recordLimitField: string;\n  // @JsonProperty(Constants.childFormId, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  // childFormId: string;\n  @PropertyPanelField({\n    inputType: 'select', label: 'Restriction Mode', choices: [{ value: 1, text: 'Disable' }, { value: 2, text: 'Hide' }], conditionInputType: 'recordLimitType', conditionInputData: ['1', '2'],\n    helpText: 'Maximum number of records user will be able to add', sortIndex: 7\n  })\n  @JsonProperty(Constants.restrictionMode, RestrictionModeConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  restrictionMode: RestrictionMode;\n\n  @PropertyPanelField({\n    inputType: 'number', label: 'Record Limit', conditionInputType: 'recordLimitType', conditionInputData: ['1'],\n    helpText: 'Record Limit', sortIndex: 5\n  })\n  @JsonProperty(Constants.recordLimit, ParseIntConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  recordLimit: number = null;\n  // widgetIcon: string = 'axo_child_records';\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n  name: string;\n\n  constructor(field?: Widget) {\n    super(field);\n    if (field) {\n      this.childRecord(field);\n    }\n    else {\n      this.newChildRecord();\n    }\n  }\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      const jsonConvert: JsonConvert = new JsonConvert();\n      const value = this.value as Array<ChildRecordValue>;\n      const newValue = jsonConvert.serialize(value, ChildRecordValue);\n      return JSON.stringify(newValue);\n    }\n    else {\n      return '';\n    }\n\n  }\n\n  // Function to create new report object\n  newChildRecord(): void {\n    this.prompt='Children';\n    //this.childForm = null;\n    // this.isShowInlineList = false;\n    // this.deleteSpecificRecord = '';\n    this.helpText='';\n    this.recordLimitType = null;\n    this.childShowInline = '';\n    this.recordLimitField = '';\n    this.childFormId = '';\n    this.restrictionMode = 1;\n    this.recordLimit = 1;\n    this.type = WidgetType.childRecords;\n    this.mainType = 'child_records';\n    this.subType = 'child_records';\n    this.name = 'ChildRecord';\n    this.markup = '';\n    this.placeholder='Enter Your response'\n  }\n  /**function to create report object with existing values\n  *\n  *@param Report\n  *\n  */\n  childRecord(field): void {\n    this.prompt=field.prompt;\n    // this.childForm = field.childForm;\n    this.helpText = field.helpText;\n    this.recordLimitType = field.recordLimitType;\n    // this.deleteSpecificRecord = field.deleteSpecificRecord;\n    // this.isShowInlineList = field.childForm;\n    this.childShowInline = field.childShowInline;\n    this.recordLimitField = field.recordLimitField;\n    this.childFormId = field.childFormId;\n    this.restrictionMode = field.restrictionMode;\n    this.recordLimit = field.recordLimit;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder=field.placeholder;\n  }\n\n  /**\n   * Create FormControl for widget\n   */\n  createFormControl() {\n    throw new Error('Method not implemented.');\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['widgetLayout', 'repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = ChildRecord.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n\n}\n","<!-- Bar Code widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_formula\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea> \n                  </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n                <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n        <div class='form-field-input'>\n            <div class=\"icon-input-container\">\n                <mat-icon svgIcon=\"axo_sculptor_formula\" class=\"icon relative\"></mat-icon>\n                <input [placeholder]=\"widget.placeholder?widget.placeholder:'Tap to enter'\" readonly=true\n                [formControlName]=\"widget.id\" />\n              </div>\n        </div>\n        <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n        <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n        <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n        <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n        <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n        <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n        </button>\n        <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n      </div>\n\n</ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { Formula } from '../../../forms/page/widgets/formula';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\nimport { Widget } from '../../../../public-api';\n\n@Component({\n  selector: 'lib-formula',\n  templateUrl: './formula.component.html',\n  styleUrls: ['./formula.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormulaComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Formula;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            const promptCleaned = this.widget.prompt.replace(/\\d/g, '').replace(/[^a-zA-Z0-9]/g, '_');\n\n            if (this.widget.prompt !== newIdentifier) {\n                this.valid = await this._widgetDropListComponent.validateUniqueIdentifier(this.widget);\n\n                if (this.valid && !this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            \n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n    \n    // const promptDivElement = document.getElementById(this.getTextAreaId());\n    // this.widget.prompt = promptDivElement.innerText;\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { OutputType, WidgetType } from '../common/widget-enums';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { FormulaComponent } from '../../../sculptor-lib/widgets/formula/formula.component';\n\n\n@JsonObject('Formula')\nexport class Formula extends Widget {\n\n    /* SubPage may have more than one widget so make this as group widget*/\n    @PropertyPanelField({\n        inputType: 'select', label: 'Output type?',\n        choices: [{ value: 'text', text: 'Text' },\n        { value: 'number', text: 'Number' }],\n        helpText: 'Select Input Type', sortIndex: 2\n    })\n    @JsonProperty(Constants.outPutType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    outPutType: OutputType = null;\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n    // @JsonProperty(Constants.computationLogic, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // computationLogic: string = '';\n    // @JsonProperty(Constants.unit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // unit: number = 0;\n    @JsonProperty(Constants.oldValue, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    oldValue: string = '';\n\n    @PropertyPanelField({\n        inputType: 'textarea', label: 'Computation Logic',\n        helpText: 'Computation Logic', sortIndex: 3\n    })\n    @JsonProperty(Constants.computation, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    computation: string = '';\n\n    @PropertyPanelField({\n        inputType: 'text', label: 'Enter unit',\n        helpText: 'Select unit', sortIndex: 4\n    })\n    @JsonProperty(Constants.unit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    unit: string = '';\n\n    @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n    dependents: [];//Dependant\n\n    // @JsonProperty(Constants.unit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // unit: string = '';\n    component?: Type<FormulaComponent> = FormulaComponent;\n    value: string = '';\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n    // widgetIcon: string = 'axo_sculptor_formula';\n    name: string;\n\n    constructor(field?: Formula) {\n        super(field);\n        if (field) {\n            this.formula(field);\n        }\n        else {\n            this.newFormula();\n        }\n    }\n\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n    /**\n     * this will return serialize of widget\n     */\n    getWidgetSerializedValue() {\n        if (this.value) {\n            return this.value.toString();\n        }\n        else {\n            return '';\n        }\n    }\n    // Function to create new report object\n    newFormula(): void {\n        this.prompt='Formula';\n        this.helpText = '';\n        this.outPutType = null;\n        // this.computationalLogic = \n        this.unit = '';\n        this.oldValue = '';\n        this.computation = `function compute(){ \n            //enter code here  \n            return 0\n            }`;\n        this.type = WidgetType.formula;\n        this.mainType = 'computed';\n        this.subType = 'text';\n        this.name = 'Formula';\n        this.markup = '';\n        this.placeholder='Tap to enter';\n    }\n    /**function to create report object with existing values\n    *\n    *@param Report\n    *\n    */\n    formula(field): void {\n        this.prompt=field.prompt;\n        this.helpText = field.helpText;\n        this.outPutType = field.outPutType;\n        // this.computationalLogic = field.computationalLogic;\n        this.unit = field.unit;\n        this.oldValue = field.oldValue;\n        this.computation = field.computation;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.mainType = field.mainType;\n        this.subType = field.subType;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder=field.placeholder;\n    }\n\n    // Method to retrieve UI metadata for a property\n    public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n        return Reflect.getMetadata(key, target);\n    }\n\n    // Method to retrieve UI metadata for all properties\n    public getPropertyPanelFieldUIProperties(): any {\n        const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n        const excludedProperties = ['repopulateValue'];\n        // Get the list of property  names using Object.getOwnPropertyNames\n        const propertyNames = Object.getOwnPropertyNames(this);\n        let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n        const commonProperties = []; // to hold property names without sortIndex\n        // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n        for (const propertyName of propertyNames) {\n            const metadata = Formula.getPropertyPanelFieldMetadata(this, propertyName);\n            if (metadata && !excludedProperties.includes(propertyName)) {\n                properties[propertyName] = metadata;\n                if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n                }\n                else if (metadata.sortIndex != null) {\n                    uiProperties.splice(metadata.sortIndex, 1, propertyName);\n\n                }\n                else {\n                    commonProperties.push(propertyName);\n                }\n            }\n        }\n        uiProperties = uiProperties.filter(a => a);\n        const data = {\n            properties: properties,\n            keys: uiProperties.concat(commonProperties)\n        };\n        return data;\n    }\n}\n","<!-- Bar Code widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_number\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n                <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n        <div class='form-field-input'>\n            <div class=\"icon-input-container\">\n                <mat-icon svgIcon=\"axo_autoNumber\" class=\"icon relative\"></mat-icon>\n                <input [placeholder]=\"widget.placeholder?widget.placeholder:'0'\" readonly=true\n                [formControlName]=\"widget.id\" />\n              </div>\n        </div>\n        <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n        <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n        <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n        <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n        <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n        <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n        </button>\n        <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n      </div>\n\n</ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { AutoNumber } from '../../../forms/page/widgets/auto-number';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service'; \nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-auto-number',\n  templateUrl: './auto-number.component.html',\n  styleUrls: ['./auto-number.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class AutoNumberComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: AutoNumber;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { AutoNumberComponent } from '../../../sculptor-lib/widgets/auto-number/auto-number.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\n\n\ntype AutuNumberValue = Type<number>;\n@JsonObject('AutoNumber')\nexport class AutoNumber extends Widget {\n    component?: Type<AutoNumberComponent> = AutoNumberComponent;\n    /* SubPage may have more than one widget so make this as group widget*/\n\n    value: AutuNumberValue = null;\n    // widgetIcon: string = 'axo_number';\n\n    @PropertyPanelField({\n        inputType: 'text', label: 'Enter Prefix', conditionInputType: 'selectedType', conditionInputData: ['regular'],\n        helpText: 'Enter Prefix', sortIndex: 3\n    })\n    @JsonProperty(Constants.prefix, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    prefix: string = '';\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n    @PropertyPanelField({\n        inputType: 'text', label: 'Enter Postfix', conditionInputType: 'selectedType', conditionInputData: ['regular'],\n        helpText: 'Enter Postfix', sortIndex: 4\n    })\n    @JsonProperty(Constants.postfix, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    postfix: string = '';\n    @PropertyPanelField({\n        inputType: 'text', label: 'Enter length', conditionInputType: 'selectedType', conditionInputData: ['regular'],\n        helpText: 'Enter length', sortIndex: 6 ,\n        required: true\n    })\n    @JsonProperty(Constants.length, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    length: string = '';\n    \n    @PropertyPanelField({\n        inputType: 'text', label: 'Template',\n        helpText: 'Provide Template', sortIndex: 5, conditionInputType: 'selectedType', conditionInputData: ['custom'],\n    })\n    @JsonProperty(Constants.templateContent, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    templateContent: string = '';\n    @PropertyPanelField({\n        inputType: 'select', label: 'Type',\n        choices: [{ value: 'regular', text: 'Regular' },\n        { value: 'custom', text: 'Custom' }],\n        helpText: 'Select Type', sortIndex: 2\n    })\n    @JsonProperty(Constants.selectedType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    selectedType: string = '';\n\n    // @JsonProperty(Constants.templateContent, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // templateContent: string = '';\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    name: string;\n\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n    constructor(field?: AutoNumber) {\n        super(field);\n        if (field) {\n            this.autoNumber(field);\n        }\n        else {\n            this.newAutoNumber();\n        }\n    }\n    // Function to create new report object\n    newAutoNumber(): void {\n        this.prompt='Auto Number';\n        this.helpText='';\n        this.prefix = '';\n        this.postfix = '';\n        this.length = '';\n        // this.length = '';\n        this.selectedType = 'regular';\n        this.templateContent = '';\n        this.type = WidgetType.autoNumber;\n        this.mainType = 'autonumber';\n        this.subType = 'autonumber';\n        this.name = 'Auto Number'\n        this.markup = '';\n        this.placeholder='0'\n    }\n\n    /**function to create report object with existing values\n    *\n    *@param field\n    *\n    */\n    autoNumber(field): void {\n        this.prompt=field.prompt;\n        this.helpText = field.helpText;\n        this.prefix = field.prefix;\n        this.postfix = field.postfix;\n        this.length = field.length;\n        this.selectedType = field.selectedType;\n        this.templateContent = field.templateContent;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.mainType = field.mainType;\n        this.subType = field.subType;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder=field.placeholder;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n    getWidgetSerializedValue() {\n        if (this.value) {\n            return this.value.toString();\n        }\n        else {\n            return '';\n        }\n\n    }\n\n    // Method to retrieve UI metadata for a property\n    public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n        return Reflect.getMetadata(key, target);\n    }\n\n    // Method to retrieve UI metadata for all properties\n    public getPropertyPanelFieldUIProperties(): any {\n        const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n        const excludedProperties = ['repopulateValue'];\n        // Get the list of property  names using Object.getOwnPropertyNames\n        const propertyNames = Object.getOwnPropertyNames(this);\n        let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n        const commonProperties = []; // to hold property names without sortIndex\n        // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n        for (const propertyName of propertyNames) {\n            const metadata = AutoNumber.getPropertyPanelFieldMetadata(this, propertyName);\n            if (metadata && !excludedProperties.includes(propertyName)) {\n                properties[propertyName] = metadata;\n                if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n                }\n                else if (metadata.sortIndex != null) {\n                    uiProperties.splice(metadata.sortIndex, 1, propertyName);\n\n                }\n                else {\n                    commonProperties.push(propertyName);\n                }\n            }\n        }\n        uiProperties = uiProperties.filter(a => a);\n        const data = {\n            properties: properties,\n            keys: uiProperties.concat(commonProperties)\n        };\n        return data;\n    }\n\n}\n","<!-- Bar Code widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_uniqueId\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                  </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n                <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n        <div class='form-field-input'>\n            <div class=\"icon-input-container\">\n                <mat-icon svgIcon=\"axo_sculptor_unique_id\" class=\"icon relative\"></mat-icon>\n                <input [placeholder]=\"widget.placeholder?widget.placeholder:'Tap to generate'\" readonly=true\n                [formControlName]=\"widget.id\" />\n              </div>\n        </div>\n        <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n        <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n        <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n        <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n        <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n        <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n        </button>\n        <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n      </div>\n\n</ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { UniqueId } from '../../../forms/page/widgets/unique-id';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-unique-id',\n  templateUrl: './unique-id.component.html',\n  styleUrls: ['./unique-id.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class UniqueIdComponent implements OnInit {\n\n  // ---------------inputs-------------------------------\n  @Input() widget: UniqueId;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { UniqueIdComponent } from '../../../sculptor-lib/widgets/unique-id/unique-id.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\n\n@JsonObject('UniqueId')\nexport class UniqueId extends Widget {\n    component?: Type<UniqueIdComponent> = UniqueIdComponent;\n    // widgetIcon: string = 'axo_uniqueId';\n\n    /* SubPage may have more than one widget so make this as group widget*/\n\n    value: string = '';\n    \n    @PropertyPanelField({\n        inputType: 'text', label: 'Prefix',\n        helpText: 'Provide Prefix'\n      })\n    // @JsonProperty(Constants.url, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // prefix: string = '';\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n\n    @JsonProperty(Constants.url, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    url: string = '';\n    name: string;\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    constructor(field?: UniqueId) {\n        super(field);\n        if (field) {\n            this.uniqueId(field);\n        }\n        else {\n            this.newUniqueId();\n        }\n    }\n\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n        // this.name = 'Unique Id';\n    }\n    // Function to create new report object\n    newUniqueId(): void { \n        this.prompt='Unique Id';\n        // this.prefix = '';\n        this.helpText = '';\n        this.url = '';\n        this.type = WidgetType.uniqueId;\n        this.dependant = [];\n        this.mainType = 'uniqueid';\n        this.subType = 'uniqueid';\n        this.name = 'Unique Id';\n        this.markup = '';\n        this.placeholder='Tap to generate unique id';\n    }\n\n    /**function to create report object with existing values\n    *\n    *@param field\n    *\n    */\n    uniqueId(field): void {\n        this.prompt=field.prompt;\n        // this.prefix = field.prefix;\n        this.helpText = field.helpText;\n        this.url = field.url;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.dependant = field.dependant;\n        // this.promptMl = {\n        //     \"en\": field.prompt\n        // };\n        this.mainType = field.mainType;\n        this.subType = field.subType;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder=field.placeholder;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n    getWidgetSerializedValue() {\n        if (this.value) {\n            return this.value.toString();\n        }\n        else {\n            return '';\n        }\n    }\n\n    // Method to retrieve UI metadata for a property\n    public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n        return Reflect.getMetadata(key, target);\n    }\n\n    // Method to retrieve UI metadata for all properties\n    public getPropertyPanelFieldUIProperties(): any {\n        const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n        const excludedProperties = ['repopulateValue'];\n        // Get the list of property  names using Object.getOwnPropertyNames\n        const propertyNames = Object.getOwnPropertyNames(this);\n        let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n        const commonProperties = []; // to hold property names without sortIndex\n        // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n        for (const propertyName of propertyNames) {\n            const metadata = UniqueId.getPropertyPanelFieldMetadata(this, propertyName);\n            if (metadata && !excludedProperties.includes(propertyName)) {\n                properties[propertyName] = metadata;\n                if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n                }\n                else if (metadata.sortIndex != null) {\n                    uiProperties.splice(metadata.sortIndex, 1, propertyName);\n\n                }\n                else {\n                    commonProperties.push(propertyName);\n                }\n            }\n        }\n        uiProperties = uiProperties.filter(a => a);\n        const data = {\n            properties: properties,\n            keys: uiProperties.concat(commonProperties)\n        };\n        return data;\n    }\n\n\n\n}\n","<!-- Bar Code widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_counter\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                  </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n                <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n        <div class='form-field-input'>\n            <div class=\"icon-input-container\">\n                <mat-icon svgIcon=\"axo_counter\" class=\"icon relative\"></mat-icon>\n                <input [placeholder]=\"widget.placeholder?widget.placeholder:'0'\" readonly=true\n                [formControlName]=\"widget.id\" />\n              </div>\n        </div>\n        <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n        <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n        <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n        <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n        <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n        <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n        </button>\n        <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n      </div>\n\n</ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { Formula } from '../../../forms/page/widgets/formula';\nimport { Counter } from '../../../forms/page/widgets/counter';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-counter',\n  templateUrl: './counter.component.html',\n  styleUrls: ['./counter.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class CounterComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Counter;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { CounterComponent } from '../../../sculptor-lib/widgets/counter/counter.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\nimport { Constants } from '../common/constants';\n\n@JsonObject('Counter')\nexport class Counter extends Widget {\n\n    component?: Type<CounterComponent> = CounterComponent;\n    value: number = 0;\n    // unit: string = '';\n    // widgetIcon: string = 'axo_counter';\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    name: string;\n\n    @PropertyPanelField({\n        inputType: 'text', label: 'Unit',\n        helpText: 'Select unit'\n      })\n      @JsonProperty(Constants.unit, String, PropertyConvertingMode.IGNORE_NULLABLE)\n      unit: string = '';\n      @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n      helpText: string = '';\n    constructor(field?: Counter) {\n        super(field);\n        if (field) {\n            this.counter(field);\n        }\n        else {\n            this.newCounter();\n        }\n        this.createValidators();\n    }\n\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n    /**\n     * this will return serialize of widget\n     */\n    getWidgetSerializedValue() {\n        if (this.value) {\n            return this.value.toString();\n        }\n        else {\n            return '';\n        }\n    }\n\n    // Function to create new report object\n    newCounter(): void {\n        this.prompt='Counter';\n        this.helpText = '';\n        this.unit = '';\n        this.type = WidgetType.counter;\n        this.mainType = 'counter';\n        this.subType = 'counter';\n        this.name = 'Counter';\n        this.markup = '';\n        this.placeholder='0'\n    }\n\n    /**function to create counter object with existing values\n    *\n    *@param field\n    *\n    */\n    counter(field): void {\n        this.prompt=field.prompt;\n        this.helpText = field.helpText;\n        this.unit = field.unit;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.mainType = field.mainType;\n        this.subType = field.subType;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder=field.placeholder;\n    }\n\n    /* Override Create Validators method */\n    createValidators(): void {\n    }\n    /**\n     * Create FormControl for widget\n     */\n    createFormControl() {\n        throw new Error('Method not implemented.');\n    }\n\n    // Method to retrieve UI metadata for a property\n    public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n        return Reflect.getMetadata(key, target);\n    }\n\n    // Method to retrieve UI metadata for all properties\n    public getPropertyPanelFieldUIProperties(): any {\n        const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n        const excludedProperties = ['repopulateValue'];\n        // Get the list of property  names using Object.getOwnPropertyNames\n        const propertyNames = Object.getOwnPropertyNames(this);\n        let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n        const commonProperties = []; // to hold property names without sortIndex\n        // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n        for (const propertyName of propertyNames) {\n            const metadata = Counter.getPropertyPanelFieldMetadata(this, propertyName);\n            if (metadata && !excludedProperties.includes(propertyName)) {\n                properties[propertyName] = metadata;\n                if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n                }\n                else if (metadata.sortIndex != null) {\n                    uiProperties.splice(metadata.sortIndex, 1, propertyName);\n\n                }\n                else {\n                    commonProperties.push(propertyName);\n                }\n            }\n        }\n        uiProperties = uiProperties.filter(a => a);\n        const data = {\n            properties: properties,\n            keys: uiProperties.concat(commonProperties)\n        };\n        return data;\n    }\n\n\n}\n","<!-- Geofence widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_location\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n              <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\">\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea> \n              </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_applygeofence\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Tap to capture'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { ApplyGeoFence } from '../../../forms/page/widgets/apply-geofences';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'lib-apply-geofences',\n  templateUrl: './apply-geofences.component.html',\n  styleUrls: ['./apply-geofences.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ApplyGeofencesComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: ApplyGeoFence;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent : WidgetDropListComponent\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            const promptCleaned = this.widget.prompt.replace(/\\d/g, '').replace(/[^a-zA-Z0-9]/g, '_');\n\n            if (this.widget.prompt !== newIdentifier) {\n                this.valid = await this._widgetDropListComponent.validateUniqueIdentifier(this.widget);\n\n                if (this.valid && !this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            \n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n\n    //  const promptDivElement = document.getElementById(this.getTextAreaId());\n    // this.widget.prompt = promptDivElement.innerText;\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { Constants } from '../common/constants';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { ApplyGeoFenceWidgetValue } from './widget-value/apply-geo-fence-widget-value';\nimport { ApplyGeofencesComponent } from '../../../sculptor-lib/widgets/apply-geofences/apply-geofences.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\nimport { ParseStringConverter } from '../value-converters/parse-string-converter';\n\ntype ApplyGeoFenceValue = Type<ApplyGeoFenceWidgetValue>;\n@JsonObject('ApplyGeoFence')\nexport class ApplyGeoFence extends Widget {\n    @PropertyPanelField({\n        inputType: 'defaultchoicelist', label: 'Which Object', choices: [],\n        required: true, helpText: 'Select the object', sortIndex: 2\n    })\n    @JsonProperty(Constants.whichObject,ParseStringConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    whichObject: string = '';\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n    value: ApplyGeoFenceValue = null;\n    component?: Type<ApplyGeofencesComponent> = ApplyGeofencesComponent;\n    // widgetIcon: string = 'axo_location';\n\n    // @JsonProperty(Constants.isEncrypted, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // isEncrypted: string = '';\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n    \n    name: string;\n\n    constructor(field?: Widget) {\n        super(field);\n        if (field) {\n            this.geoFence(field);\n        }\n        else {\n            this.newGeoFence();\n        }\n    }\n    // Function to create new link object\n    newGeoFence(): void {\n        // this.promptMl = {\n        //     \"en\": \"\"\n        // };\n        this.prompt='Apply Geofence';\n        this.helpText='';\n        this.loadingId = false;\n        // this.isEncrypted = '';\n        this.whichObject = '';\n        this.type = WidgetType.applyGeoFence;\n        this.name = 'Apply Geofence';\n        this.markup = '';\n        this.placeholder='Tap to capture';\n    }\n\n    /**function to create link object with existing values\n    *\n    *@param field\n    *\n    */\n    geoFence(field): void {\n                // this.promptMl = {\n        //     \"en\": field.prompt\n        // };\n        this.prompt=field.prompt;\n        this.helpText = field.helpText;\n        this.loadingId = field.loadingId;\n        this.whichObject = field.whichObject;\n        this.value = field.value;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder=field.placeholder;\n    }\n\n    getWidgetValue() {\n        return this.value;\n    }\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n    /**\n     * this will return serialize of widget\n     */\n    getWidgetSerializedValue() {\n        if (this.value) {\n            const jsonConvert: JsonConvert = new JsonConvert();\n            const value = this.value as ApplyGeoFenceValue;\n            const newValue = jsonConvert.serialize(value, ApplyGeoFenceWidgetValue);\n            return JSON.stringify(newValue[0].value[0]);\n        }\n        else {\n            return '';\n        }\n\n    }\n    // Method to retrieve UI metadata for a property\n    public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n        return Reflect.getMetadata(key, target);\n    }\n\n    // Method to retrieve UI metadata for all properties\n    public getPropertyPanelFieldUIProperties(): any {\n        const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n        const excludedProperties = ['repopulateValue'];\n        // Get the list of property  names using Object.getOwnPropertyNames\n        const propertyNames = Object.getOwnPropertyNames(this);\n        let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n        const commonProperties = []; // to hold property names without sortIndex\n        // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n        for (const propertyName of propertyNames) {\n            const metadata = ApplyGeoFence.getPropertyPanelFieldMetadata(this, propertyName);\n            if (metadata && !excludedProperties.includes(propertyName)) {\n                properties[propertyName] = metadata;\n                if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n                }\n                else if (metadata.sortIndex != null) {\n                    uiProperties.splice(metadata.sortIndex, 1, propertyName);\n\n                }\n                else {\n                    commonProperties.push(propertyName);\n                }\n            }\n        }\n        uiProperties = uiProperties.filter(a => a);\n        const data = {\n            properties: properties,\n            keys: uiProperties.concat(commonProperties)\n        };\n        return data;\n    }\n}\n","<!-- Video widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_static_media\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_photo\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Capture'\" readonly=true\n          [formControlName]=\"widget.id\" />\n          <mat-icon svgIcon=\"sculptor_camera\" class=\"icon relative \"></mat-icon>\n          <mat-icon svgIcon=\"axo_sculptor_folder\" class=\"icon relative ml-[5px]\"></mat-icon>\n\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","\nimport { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { StaticMedia } from '../../../forms/page/widgets/static-media';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'lib-static-media',\n  templateUrl: './static-media.component.html',\n  styleUrls: ['./static-media.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class StaticMediaComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: StaticMedia;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { WidgetType } from '../common/widget-enums';\nimport { StaticMediaComponent } from '../../../sculptor-lib/widgets/static-media/static-media.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\n\n@JsonObject('StaticMedia')\nexport class StaticMedia extends Widget {\n\n\n    value: string = '';\n    // widgetIcon: string = 'axo_static_media';\n\n    // @JsonProperty(Constants.generatePublicUrl, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    // generatePublicUrl: boolean = false;\n\n    @PropertyPanelField({\n      inputType: 'toggle', label: 'Show Prompt?',\n      helpText: 'The label will be displayed above the media contents', sortIndex: 4\n    })\n    @JsonProperty(Constants.showPrompt, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    showPrompt: boolean = false;\n\n    @PropertyPanelField({\n      inputType: 'text', label: 'Height(%)',\n      helpText: 'Set the Height', sortIndex: 3\n    })\n    @JsonProperty(Constants.height, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    height: string;\n\n    @JsonProperty(Constants.isHidden, StringToBooleanValueConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n    isHidden: boolean = false;\n\n    @JsonProperty(Constants.mainType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    mainType: string = '';\n\n      // @JsonProperty(Constants.staticMediaFile, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    @PropertyPanelField({\n      inputType: 'button', label: 'Add Media', sortIndex: 2\n    })\n    @JsonProperty(Constants.staticMediaFile, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    staticMediaFile: string = '';\n    // staticMediaFile: string = '';\n\n    @JsonProperty(Constants.staticMedia, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    staticMedia: string = '';\n\n    @JsonProperty(Constants.indent, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    indent: string = '';\n\n    @JsonProperty(Constants.fontSize, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    fontSize: string = '';\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    // @JsonProperty(Constants.allowedDocumentTypes, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    // allowedDocumentTypes: string[] = [];\n\n    component: Type<StaticMediaComponent> = StaticMediaComponent;\n    name: string;\n\n\n    constructor(field?: Widget) {\n        super(field);\n                if (field) {\n            this.createStaticMedia(field);\n        }\n        else {\n            this.newStaticMedia();\n        }\n        //this.clearValidators();\n    }\n    // Function to create new static-media object\n    newStaticMedia(): void {\n      this.prompt='Static Media'\n        // this.allowedDocumentTypes = ['pdf', 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx'];\n        // this.generatePublicUrl = false; \n        this.helpText = '';\n        this.showPrompt = false;\n        this.height = '50';\n        this.isHidden = false;\n        this.mainType = '';\n        this.staticMediaFile = '';\n        this.indent = '';\n        this.unique = false;\n        this.fontSize = '';\n        this.required = false;\n        this.staticMedia = '';\n        this.type = WidgetType.staticMedia;\n        this.mainType = 'staticmedia';\n        this.subType = 'staticmedia';\n        this.name = 'StaticMedia';\n        this.markup = '';\n    }\n\n    /**function to create static-media object with existing values\n    *\n    *@param field\n    *\n    */\n    createStaticMedia(field): void {\n      this.prompt=field.prompt;\n        // this.allowedDocumentTypes = field.allowedDocumentTypes;\n        // this.generatePublicUrl = field.generatePublicUrl;\n        this.helpText = field.helpText;\n        this.showPrompt = field.showPrompt;\n        this.height = field.height;\n        this.isHidden = field.isHidden;\n        this.mainType = field.mainType;\n        this.staticMedia = field.staticMedia;\n        this.staticMediaFile = field.staticMediaFile;\n        this.indent = field.indent;\n        this.unique = field.unique;\n        this.fontSize = field.fontSize;\n        this.required = field.required;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.name = field.name;\n        this.markup = field.markup;\n    }\n\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n    getWidgetSerializedValue() {\n        if (this.value) {\n            return this.value.toString();\n        }\n        else {\n            return '';\n        }\n    }\n\n    // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n\n    const indexMap = new Map<string, number>();\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    const prop = []; // to hold sorted property names\n    const newProp = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = StaticMedia.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex) {\n          prop.splice(metadata.sortIndex, 0, propertyName);\n        }\n        else {\n          newProp.push(propertyName);\n        }\n      }\n    }\n    const data = {\n      properties: properties,\n      keys: prop.concat(newProp)\n    };\n    return data;\n  }\n}\n","<!-- Document Code widget -->\n<ng-container *ngIf=\"widget\">\n  <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n    <div class=\"flex gap-2 justify-between box-border\">\n      <div class=\"flex gap-2 items-center box-border\">\n        <!-- <mat-icon svgIcon=\"axo_signature\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n        <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n              <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" style=\"resize: none; overflow-y: hidden; white-space: pre-wrap;\"(input)=\"adjustTextAreaHeight($event)\" [style.height.px]=\"calculateHeight()\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"toggleEditable()\" matTooltip=\"Double Click to Edit\"></textarea>        \n        </form>\n      </div>\n      <ng-container *ngIf=\"widget.isHidden\">\n        <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n      </ng-container>\n    </div>\n\n    <div class='form-field-input'>\n      <div class=\"icon-input-container\">\n        <mat-icon svgIcon=\"axo_signature\" class=\"icon relative\"></mat-icon>\n        <input [placeholder]=\"widget.placeholder?widget.placeholder:'Tap to sign'\" readonly=true\n        [formControlName]=\"widget.id\" />\n      </div>\n    </div>\n    <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n  </div>\n  <div class=\"tooltip-container\">\n    <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n    <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n    <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n    <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n    <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n    </button>\n    <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n  </div>\n\n</ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { Signature } from '../../../forms/page/widgets/signature';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'lib-signature',\n  templateUrl: './signature.component.html',\n  styleUrls: ['./signature.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class SignatureComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Signature;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { AudioVideoWidgetValue } from './widget-value/audio-video-widget-value';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { SignatureComponent } from '../../../sculptor-lib/widgets/signature/signature.component';\nimport { WidgetType } from '../common/widget-enums';\n\n@JsonObject('Signature')\nexport class Signature extends Widget {\n  @PropertyPanelField({\n    inputType: 'text', label: 'Enter note',\n    helpText: 'Enter note', sortIndex: 2\n  })\n  @JsonProperty(Constants.note, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  note: string = '';\n\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n  component: Type<SignatureComponent> = SignatureComponent;;\n  value: string = '';\n  // widgetIcon: string = 'axo_signature'2;\n\n  @JsonProperty('values', [AudioVideoWidgetValue], PropertyConvertingMode.IGNORE_NULLABLE)\n  values: Array<AudioVideoWidgetValue> = null;\n  name: string;\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  constructor(field?: Widget) {\n    super(field);\n    if (field) {\n      this.signature(field);\n    }\n    else {\n      this.newSignature();\n    }\n  }\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.values) {\n      const jsonConvert: JsonConvert = new JsonConvert();\n      const value = this.values as Array<AudioVideoWidgetValue>;\n      const newValue = jsonConvert.serialize(value, AudioVideoWidgetValue);\n      return JSON.stringify(newValue);\n    }\n    else if (this.value) {\n      return this.value.toString();\n    }\n    else {\n      return '';\n    }\n  }\n\n  // Function to create new link object\n  newSignature(): void {\n    this.prompt='Signature';\n    this.helpText = '';\n    this.note = '';\n    this.value = '';\n    this.type = WidgetType.signature;\n    this.mainType = 'image';\n    this.subType = 'signature';\n    this.name = 'Signature';\n    this.markup = '';\n    this.placeholder='Tap to sign'\n  }\n\n  /**function to create link object with existing values\n  *\n  *@param field\n  *\n  */\n  signature(field): void {\n    this.prompt=field.prompt;\n    this.helpText = field.helpText;\n    this.note = field.note;\n    this.value = field.value;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder=field.placeholder;\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = Signature.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\nimport { LocationValue } from \"./location-object-value\";\n\n\n\n@JsonObject(\"MFOObjectValue\")\nexport class MFOObjectValue {\n\n    @JsonProperty(Constants.formObjectTitle, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    formObjectTitle: string = '';\n\n\n    @JsonProperty(Constants.formObjectSubTitle, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    formObjectSubTitle: string = '';\n\n\n    @JsonProperty(Constants.formObjectId, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    formObjectId: string = '';\n\n\n    @JsonProperty(Constants.picture, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    picture: string = '';\n\n \n    @JsonProperty(Constants.location, [LocationValue], PropertyConvertingMode.IGNORE_NULLABLE)\n    location : Array<[LocationValue]> = [];\n}\n\n@JsonObject(\"UxValueObject\")\nexport class UxValueObject {\n    @JsonProperty(Constants.Message, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    message: string = '';\n\n    @JsonProperty(Constants.BackGroundColor, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    backGroundColor: string = '';\n\n\n    @JsonProperty(Constants.ForeGroundColor, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    foreGroundColor: string = '';\n\n    @JsonProperty(Constants.Text, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    text: string = '';\n}\n\n@JsonObject(\"VerificationWidgetValue\")\nexport class VerificationWidgetValue {\n\n    @JsonProperty(Constants.Status, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    status: string = '';\n\n\n    @JsonProperty(Constants.Found, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n    found: boolean = false;\n\n\n    @JsonProperty(Constants.CollectionId, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    collectionId: string = '';\n\n    @JsonProperty(Constants.name, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    name: string = '';\n\n    @JsonProperty(Constants.Path, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    path: string = '';\n\n    @JsonProperty(Constants.Ux, [UxValueObject], PropertyConvertingMode.IGNORE_NULLABLE)\n    uxValue: [];\n\n    @JsonProperty(Constants.mfo, [MFOObjectValue], PropertyConvertingMode.IGNORE_NULLABLE)\n    mfo = [];\n\n\n    constructor(verificationObject?: VerificationWidgetValue) {\n        if (verificationObject) {\n            this.createVerificationValue(verificationObject);\n        }\n        else {\n            this.createNewVerificationValue();\n        }\n    }\n\n    // Function to create new verification object\n    createNewVerificationValue(): void {\n\n    }\n\n    /**function to create verification object with existing values\n    *\n    *@param verificationObject\n    *\n    */\n    createVerificationValue(verificationObject?: VerificationWidgetValue): void {\n\n        this.name = verificationObject.name;\n    }\n}\n","<!-- Video widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_faceVerification\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea> \n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_sculptor_faceVerification\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Face verification'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { WidgetsService } from '../widgets.service';\nimport { Verification } from '../../../forms/page/widgets/verification';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-verification',\n  templateUrl: './verification.component.html',\n  styleUrls: ['./verification.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class VerificationComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: Verification;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Constants } from '../common/constants';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { ActionType, WidgetType } from '../common/widget-enums';\nimport { StringToBooleanValueConverter } from '../value-converters/string-to-bool-value-converter';\nimport { VerificationWidgetValue } from './widget-value/verification-widget-value';\nimport { VerificationComponent } from '../../../sculptor-lib/widgets/verification/verification.component';\nimport { PropertyPanelFieldMetadata } from '../common/property-panel-field';\n\ntype VerificationValue = Type<Array<VerificationWidgetValue>>;\n@JsonObject('Verification')\nexport class Verification extends Widget{\n\n    component: Type<VerificationComponent> = VerificationComponent;\n    // widgetIcon: string='axo_square_text';\n\n    value: VerificationValue = null;\n\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n    @JsonProperty(Constants.collectedId , String,PropertyConvertingMode.IGNORE_NULLABLE)\n    collectedId: string ='';\n    @JsonProperty(Constants.collectionType,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    collectionType: string = '';\n    @JsonProperty(Constants.collectionName,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    collectionName: string='';\n    // @JsonProperty(Constants.collectionNameSource,[String],PropertyConvertingMode.IGNORE_NULLABLE)\n    // collectionNameSource: Array<string>=null;\n    @JsonProperty(Constants.savePhoto,StringToBooleanValueConverter,PropertyConvertingMode.IGNORE_NULLABLE)\n    savePhoto: boolean=false;\n    @JsonProperty(Constants.subType,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    subType: string='';\n    @JsonProperty(Constants.actionType ,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    actionType: ActionType= null;\n\n    @JsonProperty()\n    selectField: string[]=null;\n    @JsonProperty(Constants.matchFoundMessage ,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    matchFoundMessage:\tstring='';\n    @JsonProperty(Constants.matchFoundColor,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    matchFoundColor: string='';\n    @JsonProperty(Constants.onImageCapture,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    onImageCapture: string='';\n    @JsonProperty(Constants.noMatchFoundMessage,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    noMatchFoundMessage: string='';\n    @JsonProperty(Constants.noMatchFoundColor,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    noMatchFoundColor:\tstring='';\n    // @JsonProperty(Constants.customFunction,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    // customFunction:\tstring='';\n    @JsonProperty(Constants.showImage,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    showImage: boolean =false;\n    @JsonProperty(Constants.field,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    changedField: string =''; //enum\n    @JsonProperty(Constants.generateMultipleObjects,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    generateMultipleObjects: string ='';\n\n    @JsonProperty(Constants.allowGroupScan,StringToBooleanValueConverter,PropertyConvertingMode.IGNORE_NULLABLE)\n    allowGroupScan: boolean = false;\n\n    @JsonProperty(Constants.customFunctionMsg,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    customFunctionMsg: string;\n    @JsonProperty(Constants.selectionField,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    selectionField: string =' ';\n    name: string;\n\n    @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    constructor(field?: Widget){\n        super(field);\n        if(field){\n            this.verification(field);\n        }\n        else{\n            this.newVerification();\n        }\n        //this.clearValidators();\n    }\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n\n    // Function to create new video object\n    newVerification(): void{\n        this.prompt='Verification'\n        this.helpText = '';\n        this.collectionType= '';\n        this.collectionName= '';\n        this.savePhoto= false;\n        this.subType= '';\n        this.actionType= null ;\n        this.selectField = [];\n        this.matchFoundMessage ='';\n        this.matchFoundColor =  '';\n        this.onImageCapture\t= '';\n        this.noMatchFoundMessage = '';\n        this.noMatchFoundColor = '';\n        // this.customFunction = '';\n        this.showImage= true;\n        this.collectedId = '';\n        // this.collectionNameSource = [];\n        this.selectField = [];\n        this.changedField = ''; //enum\n        this.generateMultipleObjects = '';\n        this.allowGroupScan = false;\n        this.customFunctionMsg = '';\n        this.selectionField = '';\n        this.type = WidgetType.verification;\n        this.mainType = 'verification';\n        this.subType = 'face';\n        this.name = 'Verification';\n        this.markup = '';\n        this.placeholder='Face Verification';\n    }\n\n    /**function to create video object with existing values\n    *\n    *@param field\n    *\n    */\n    verification(field): void{\n      this.prompt=field.prompt;\n        this.helpText = field.helpText;\n        this.collectionType = field.collectionType;\n        this.collectionName = field.collectionName;\n        this.savePhoto = field.savePhoto;\n        this.subType = field.subType;\n        this.actionType = field.actionType;\n        this.matchFoundMessage = field.matchFoundMessage;\n        this.matchFoundColor =  field.matchFoundColor;\n        this.onImageCapture\t= field.onImageCapture;\n        this.noMatchFoundMessage = field.noMatchFoundMessage;\n        this.noMatchFoundColor = field.noMatchFoundColor;\n        // this.customFunction = field.customFunction;\n        this.showImage = field.showImage;\n        this.collectedId = field.collectedId;\n        // this.collectionNameSource = field.collectionNameSource;\n        this.selectField = field.selectField;\n        this.changedField = field.field;\n        this.generateMultipleObjects = field.generateMultipleObjects;\n        this.allowGroupScan = field.allowGroupScan;\n        this.customFunctionMsg = field.customFunctionMsg;\n        this.selectionField = field.selectionField;\n        this.selectField = field.selectField;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.mainType = field.mainType;\n        this.subType = field.subType;\n        this.name = field.name;\n        this.markup = field.markup;\n        this.placeholder = field.placeholder;\n    }\n\n    /**\n     * this will return serialize of widget\n     */\n     getWidgetSerializedValue() {\n        if(this.value){\n            const jsonConvert: JsonConvert = new JsonConvert();\n            const value = this.value as VerificationValue;\n            const newValue = jsonConvert.serialize(value,VerificationWidgetValue);\n            return JSON.stringify(newValue);\n        }\n        else{\n            return '';\n        }\n\n    }\n\n    \n    // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n\n    const indexMap = new Map<string, number>();\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    const prop = []; // to hold sorted property names\n    const newProp = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = Verification.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex) {\n          prop.splice(metadata.sortIndex, 0, propertyName);\n        }\n        else {\n          newProp.push(propertyName);\n        }\n      }\n    }\n    const data = {\n      properties: properties,\n      keys: prop.concat(newProp)\n    };\n    return data;\n  }\n\n}\n","\n/**\n * Storage service used by the OIDC client\n **/\nimport { Injectable } from '@angular/core';\nimport { AbstractSecurityStorage } from 'angular-auth-oidc-client';\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class CustomStorage implements AbstractSecurityStorage {\n  read(key: string) {\n    return localStorage.getItem(key);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n  write(key: string, value: any): void {\n    localStorage.setItem(key, value);\n  }\n\n  remove(key: string): void {\n    localStorage.removeItem(key);\n  }\n\n  clear(): void {\n    localStorage.clear();\n  }\n}\n"," <ng-container *ngIf=\"showEditor; else showWidgetDropZone\">\n    <div class=\"widget-drop-zone\"\n    [ngClass]=\"{'mobile-view-widget-drop-zone': currentView === 'phoneView', 'tab-view-widget-drop-zone': currentView === 'tabView', 'web-view-widget-drop-zone': currentView === 'webView'}\"\n    id=\"widget-drop-zone\" cdkDropList (cdkDropListDropped)=\"dropWidget($event)\" [cdkDropListData]=\"form.widgets\">\n    <!-- phone/tab/web header section-->\n    <div class=\"header-section\">\n        <mat-icon *ngIf=\"formId != localFormId\" (click)=\"exit()\" svgIcon=\"axo_sculptor_left-arrow_new\" matTooltip=\"This will work on mobile device\" class=\"cursor-pointer p-1 sub-form-back\"></mat-icon>\n        <mat-icon *ngIf=\"formId == localFormId\" (click)=\"toggleEditor()\" svgIcon=\"axo_sculptor_left-arrow_new\" matTooltip=\"This will work on mobile device\" class=\"cursor-pointer p-1\"></mat-icon>\n        <!-- <mat-icon svgIcon=\"axo_sculptor_cancel\" class=\"cursor-pointer\" *ngIf=\"formId == localFormId\"></mat-icon> -->\n        <!-- <input matInput [(ngModel)]='form.name' class=\"form-name\" (click)=\"formClickEvent()\" *ngIf=\"formId == localFormId\" /> -->\n        <!-- <mat-icon svgIcon=\"axo_sculptor_save\" class=\"cursor-pointer\" (click)=\"saveForm()\"></mat-icon> -->\n        <div class=\"flex items-center\">\n            <button class=\"primary-btn save-btn axo-font flex justify-center items-center gap-1 h-8 self-center \"\n                (click)=\"saveForm()\" *ngIf=\"formId == localFormId\" matTooltip=\"This will work on mobile device\">Save</button>\n        </div>\n\n    </div>\n    <div class=\"form-name-section\" [class.selected-widget]=\"formSelect\">\n        <input matInput [(ngModel)]='form.name' class=\"form-name\" (click)=\"formClickEvent()\" *ngIf=\"formId == localFormId\" />\n    </div>\n    <quill-editor class=\"helpeditor\" *ngIf=\"showEditor\" [(ngModel)]=\"form.widgets[dynamicIndex].helpText\" [@fadeInOut] style=\"height: 200px;\"></quill-editor>\n</div>\n\n  </ng-container>\n\n  <ng-template #showWidgetDropZone>\n  <div class=\"widget-drop-zone\"\n    [ngClass]=\"{'mobile-view-widget-drop-zone': currentView === 'phoneView', 'tab-view-widget-drop-zone': currentView === 'tabView', 'web-view-widget-drop-zone': currentView === 'webView'}\"\n    id=\"widget-drop-zone\" cdkDropList (cdkDropListDropped)=\"dropWidget($event)\" [cdkDropListData]=\"form.widgets\">\n    <!-- phone/tab/web header section-->\n    <div class=\"header-section\">\n        <!-- [class.selected-widget]=\"formSelect\"  removed from headersection-->\n        <mat-icon *ngIf=\"formId != localFormId\" (click)=\"exit()\" svgIcon=\"axo_sculptor_left-arrow_new\"  matTooltip=\"This will work on mobile device\" class=\"cursor-pointer p-1 sub-form-back\"></mat-icon>\n        <mat-icon *ngIf=\"formId == localFormId\" svgIcon=\"axo_sculptor_left-arrow_new\"  matTooltip=\"This will work on mobile device\" class=\"cursor-pointer p-1\"></mat-icon>\n        <!-- <mat-icon svgIcon=\"axo_sculptor_cancel\" class=\"cursor-pointer\" *ngIf=\"formId == localFormId\"></mat-icon> -->\n        <!-- <input matInput [(ngModel)]='form.name' class=\"form-name\" (click)=\"formClickEvent()\" *ngIf=\"formId == localFormId\" /> -->\n        <!-- <mat-icon svgIcon=\"axo_sculptor_save\" class=\"cursor-pointer\" (click)=\"saveForm()\"></mat-icon> -->\n        <div class=\"flex items-center\">\n            <button class=\"hover:opacity-100 primary-btn save-btn axo-font flex justify-center items-center gap-1 h-8 self-center \"\n                (click)=\"saveForm()\" *ngIf=\"formId == localFormId\" matTooltip=\"This will work on mobile device\">Save</button>\n            <!-- <mat-icon svgIcon=\"axo_sculptor_3dot-options\" *ngIf=\"formId == localFormId\" class=\"opt-icon opt-icon-custom cursor-pointer \"></mat-icon>\n            <mat-icon svgIcon=\"axo_sculptor_3dot-options\" *ngIf=\"formId != localFormId\" class=\"opt-icon sub-form-opt cursor-pointer\"></mat-icon> -->\n        </div>\n    </div>\n    <div class=\"form-name-section\" [class.selected-widget]=\"formSelect\">\n        <input matInput [(ngModel)]='form.name' class=\"form-name\" (click)=\"formClickEvent()\" *ngIf=\"!showGhostLoader && formId == localFormId\" />\n        <ng-container *ngIf=\"showGhostLoader\">\n            <app-ghost-loader [elementType]=\"GhostLoaderType.CanvasHeaderLoader\" ></app-ghost-loader>\n        </ng-container>\n    </div>\n    <!-- this message will visible if there is not widget in form-->\n    <div class=\"widget-list\" [@fadeInOut]>\n        <div *ngIf=\"!form.widgets || showDrop()\" class=\"empty-widget-message text-center\"> Drop\n            fields here <br> or ask commando <br> <img src=\"../../../../../../../assets/icons/axo/axo_commando_bot_new.svg\" alt=\"\" class=\"h-12 w-12 inline-block\"></div>\n        <!-- widgets list -->\n        <!-- <ng-container *ngFor=\"let widget of form.widgets; let first = first\">\n            <div class='drop-space' *ngIf=\"showDropView && first\"></div>\n            <div  *ngIf=\"form.widgets.length === 4\">\n            <widget class=\"emptyform\" cdkDrag [id]=\"'widget-'+widget.prompt\" [widget]=\"widget\" [group]=\"group\"\n                    (click)=\"setClickedWidget(widget)\" *ngIf=\"widget.prompt === 'System Fields'\">\n                    <div class=\"widget-drag-placeholder\" *cdkDragPlaceholder></div>\n                </widget>\n            </div>\n            <div  *ngIf=\"form.widgets.length > 4\">\n                <widget class=\"nonemptyform\" cdkDrag [id]=\"'widget-'+widget.prompt\" [widget]=\"widget\" [group]=\"group\"\n                    (click)=\"setClickedWidget(widget)\" *ngIf=\"widget.prompt === 'System Fields'\">\n                    <div class=\"widget-drag-placeholder\" *cdkDragPlaceholder></div>\n                </widget>\n            </div>\n            <widget cdkDrag [id]=\"'widget-'+widget.prompt\" *ngIf=\"widget.prompt !== 'System Fields'\" [widget]=\"widget\" [group]=\"group\"\n                (click)=\"setClickedWidget(widget)\">\n                <div class=\"widget-drag-placeholder\" *cdkDragPlaceholder></div>\n            </widget>\n        </ng-container> -->\n        <ng-container *ngFor=\"let widget of form.widgets\">\n            <div class='drop-space' *ngIf=\"showDropView && first\"></div>\n            <!-- Check if widget.hidden is not true -->\n            <!-- <ng-container *ngIf=\"widget.name==='SubForm'\">\n                    <widget cdkDrag [id]=\"'widget-'+widget.prompt\" [widget]=\"widget\" [group]=\"group\" (click)=\"setClickedWidget(widget)\">\n                        <div class=\"widget-drag-placeholder\" *cdkDragPlaceholder></div>\n                    </widget>\n            </ng-container>\n                <ng-container *ngIf=\"!widget.markup\">\n                    <ng-container *ngIf=\"widget.prompt!=='System Fields'\">\n                    <widget cdkDrag [id]=\"'widget-'+widget.prompt\" [widget]=\"widget\" [group]=\"group\" (click)=\"setClickedWidget(widget)\">\n                        <div class=\"widget-drag-placeholder\" *cdkDragPlaceholder></div>\n                    </widget>\n                </ng-container>\n            </ng-container> -->\n            <ng-container *ngIf=\"widget.name === 'SubForm' || (!widget.markup && widget.prompt !== 'System Fields')\">\n                <widget cdkDrag [id]=\"'widget-' + widget.prompt\" [widget]=\"widget\" [group]=\"group\" (click)=\"setClickedWidget(widget)\">\n                    <div class=\"widget-drag-placeholder\" *cdkDragPlaceholder></div>\n                </widget>\n            </ng-container>\n        </ng-container>\n    </div>\n</div>\n</ng-template>\n\n<!-- <mat-divider *ngIf=\"currentView === 'phoneView' || currentView === 'tabView'\"></mat-divider> -->","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { PropertiesService } from '../../../../common-property-panel/properties/properties.service';\nimport { AxForm } from '../../../../forms/ax-form';\nimport { PropertyPanelField } from '../../../../forms/page/common/property-panel-field';\nimport { ChoiceList } from '../../../../forms/page/widgets/choicelist';\nimport { TextBox } from '../../../../forms/page/widgets/textbox';\nimport { Search } from '../../../../forms/page/widgets/search';\nimport { Button } from '../../../../forms/page/widgets/button';\nimport { Widget } from '../../../../forms/page/widgets/widget';\nimport { WidgetsService } from '../../../../sculptor-lib/widgets/widgets.service';\nimport { QrCode } from '../../../../forms/page/widgets/qr-code';\nimport { BarCode } from '../../../../forms/page/widgets/bar-code';\nimport { AxImage } from '../../../../forms/page/widgets/ax-image';\nimport { Video } from '../../../../forms/page/widgets/video';\nimport { AxAudio } from '../../../../forms/page/widgets/ax-audio';\nimport { AxDocument } from '../../../../forms/page/widgets/ax-document';\nimport { Link } from '../../../../forms/page/widgets/link';\nimport { Toggle } from '../../../../forms/page/widgets/toggle';\nimport { Language } from '../../../../forms/page/widgets/languages';\nimport { DateTime } from '../../../../forms/page/widgets/datetime';\nimport { TimeStamp } from '../../../../forms/page/widgets/timestamp';\nimport { StopWatch } from '../../../../forms/page/widgets/stopwatch';\nimport { GroupHeader } from '../../../../forms/page/widgets/group-header';\nimport { SubForm } from '../../../../forms/page/widgets/sub-form';\nimport { GPS } from '../../../../forms/page/widgets/gps';\nimport { GeoFence } from '../../../../forms/page/widgets/geofence';\nimport { ChildRecord } from '../../../../forms/page/widgets/child-record';\nimport { Formula } from '../../../../forms/page/widgets/formula';\nimport { AutoNumber } from '../../../../forms/page/widgets/auto-number';\nimport { UniqueId } from '../../../../forms/page/widgets/unique-id';\nimport { Counter } from '../../../../forms/page/widgets/counter';\nimport { ApplyGeoFence } from '../../../../forms/page/widgets/apply-geofences';\nimport { StaticMedia } from '../../../../forms/page/widgets/static-media';\nimport { Signature } from '../../../../forms/page/widgets/signature';\nimport { Verification } from '../../../../forms/page/widgets/verification';\nimport { FormBuilderMasterService } from '../../form-builder-master.service';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { cloneDeep } from 'lodash';\nimport { AxoSnackBarService, AxoSnackBarType, AxoUtils, CommonService, GhostLoaderType } from '../../../../../public-api';\nimport { HostListener } from '@angular/core';\nimport { ClipboardService } from '../../../../sculptor-lib/widgets/clipboard.service';\nimport { CustomStorage } from '../../cutom-storage.service';\nimport { SubscribedPlanName } from '../../../../subscribedPlanName.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'widget-drop-list',\n  templateUrl: './widget-drop-list.component.html',\n  styleUrls: ['./widget-drop-list.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  animations: [\n    trigger('fadeInOut', [\n      state('void', style({\n        opacity: 0\n      })),\n      transition(':enter, :leave', [\n        animate('1200ms')\n      ])\n    ])\n  ]\n})\nexport class WidgetDropListComponent implements OnInit, OnDestroy {\n  // --------- Inputs ------------------------\n  @Input() form: AxForm;\n  @Input() group: FormGroup;\n  @Input() currentView: string;\n  @Input() localFormId;\n  @Output() saveEvent = new EventEmitter<void>();\n  @Output() exitFormEvent = new EventEmitter<void>();\n\n  // -------------------------------------------\n  widgetFormGroup: FormGroup;\n  formId = '';\n  showDropView = false;\n  formSelect = false;\n  showEditor = false;\n  dynamicIndex: number; // Declare a variable to hold the dynamic index\n  lastClickedWidgetIndex: any;\n  selectedWidget: any;\n  fwl: any;\n  swl: any;\n  isFormFresh : boolean;\n  isSubForm: boolean=false;\n  showDropHere: boolean=true;\n  private destroy$ = new Subject<void>();\n\n  /**\n * Constructor\n *\n * @param _widgetsService\n */\n\n  showGhostLoader: boolean = true;\n  GhostLoaderType = GhostLoaderType;\n\n  constructor(\n    private _widgetsService: WidgetsService,\n    private _activatedRoute: ActivatedRoute,\n    private _propertiesService: PropertiesService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private clipboardService: ClipboardService,\n    private _customeStorage: CustomStorage,\n    private _axoSnackBar: AxoSnackBarService,\n    private _subscribedPlanName: SubscribedPlanName,\n    private _commonService : CommonService,\n    ) { }\n    ngOnDestroy(): void {\n      this.destroy$.next();\n      this.destroy$.complete();\n    }\n    // -----------------------------------------------------------------------------------------------------\n    // @ Lifecycle hooks start\n    // -----------------------------------------------------------------------------------------------------\n    /**\n     * On Init\n    */\n  ngOnInit(): void {\n    this.subscribers();\n    this.setDropView();\n    this.fetchName(this.formId);\n  \n    // Update local storage form details\n    this._formBuilderMasterService.setDropView().subscribe(() => {\n      this.setDropView();\n    });\n    this._widgetsService._widgetPasteAIEvent.subscribe((widget: Widget) => {\n      this.pasteAIWidgetIntoForm(widget);\n    });\n  \n    // Subscribe to widget paste events\n    this._widgetsService._widgetPasteEvent.subscribe((widget: Widget) => {\n      this.pasteWidgetIntoForm(widget);\n    });\n  \n    // Subscribe to AI widget paste events\n\n  \n    // Handle widget click events\n    this._propertiesService._widgetClickEvent.subscribe((widgetSelect: Widget) => {\n      if (widgetSelect) {\n        const selectedIndex = this.form.widgets.findIndex(w => w.id === widgetSelect.id);\n        if (selectedIndex !== -1) {\n          this.form.widgets[selectedIndex].widgetSelect = true;\n          this.lastClickedWidgetIndex = selectedIndex;\n        } else {\n        \n        }\n      }\n    });\n  \n    this._propertiesService._propertyChange.subscribe(() => {\n      this.setDropView();\n    });\n\n    // Initial setup after a short delay\n    setTimeout(() => {\n      this.setDropView();\n    }, 500);\n\n    this._commonService.dataForWidget$.subscribe((value) => {\n      this.isFormFresh = value ? value : false; // Set to false if value is false\n    });\n    this._propertiesService.widgetClickEvent(null);\n  }\n\n  fetchName(formId: any) {\n      // Parse the form data if it's a JSON string\n      const formData = JSON.parse(this._customeStorage.read(formId)) || null;\n      \n      // Safely assign the form name if formData exists\n      if (formData && formData.name) {\n          this.form.name = formData.name;\n      }else{\n        this._formBuilderMasterService.getFormDetails(formId, formId).then((form)=>{\n          this.form.name = form.name;\n        })\n      }\n      this.showGhostLoader = false;\n\n  }\n\n  accessPremium(): boolean {\n    const { is_trial_expired } = JSON.parse(localStorage.getItem(\"userDetails\")).ud;\n    const { subscribedPlanName } = this._subscribedPlanName;\n  \n    return !is_trial_expired || (subscribedPlanName !== 'Basic' && subscribedPlanName !== 'notFetched');\n  }\n\n  // @HostListener('window:keydown', ['$event'])\n  // handleKeyboardEvent(event: KeyboardEvent) {\n  //   this.selectedWidget = this.form.widgets.findIndex(w => w.widgetSelect == true);\n  //   if (event.ctrlKey) {\n  //     switch (event.key) {\n  //       case 'c':\n  //         this._widgetsService.widgetCopyEvent(this.form.widgets[this.selectedWidget]);\n  //         break;\n  //       case 'v':\n  //         this._widgetsService.widgetPasteEvent();\n  //         break;\n  //       case 'x':\n  //         this._widgetsService.widgetCutEvent(this.selectedWidget);\n  //         break;\n  //     }\n  //   }\n  // }\n\n  /**\n   * to add dropped widget in form widgets\n   *\n   * @param event\n   */\n\n  // get showDropHere(): boolean {\n  //   \n    \n  //   if (this.form.mainType === 'subform' && this.form.markup.length < 1) {\n  //     return true;\n  //   }\n  //   if (this.form.markup.length) {\n  //     return this.form.widgets ? this.form.widgets.length < 5 : true;\n  //   }\n  //   return false;\n  // }\n  \n\n  pasteWidgetIntoForm(widget: Widget) {\n    this.removeWidgetSelection();\n    if (!this.form.widgets) {\n      this.form.widgets = [];\n    }\n\n    const clonedWidget = widget;\n\n    if (this.clipboardService.wasLastActionCut()) {\n      widget.id = AxoUtils.guid();\n      this.deleteWidget(widget);\n    } else {\n      this.addUniqueIdentifier(clonedWidget);\n      clonedWidget.id = AxoUtils.guid();\n    }\n    let insertIndex = this.lastClickedWidgetIndex\n    insertIndex += 1;\n    this.form.widgets.splice(insertIndex, 0, clonedWidget);\n    this.addFormControl(clonedWidget.id, '');\n    this._propertiesService.widgetClickEvent(clonedWidget);\n    this.setDropView();\n  }\n\n/**\n * Paste an AI widget into the form\n * @param widget AI Widget to paste\n */\npasteAIWidgetIntoForm(widget: Widget): void {\n  this.removeWidgetSelection();\n  if (!this.form.widgets) {\n    this.form.widgets = [];\n  }\n  \n\n  const clonedWidget = widget ; // Clone the widget to avoid mutating the original\n\n  if (this.clipboardService.wasLastActionCut()) {\n    clonedWidget.id = AxoUtils.guid(); // Generate a new ID if it was a cut operation\n    this.deleteWidget(widget); // Example function to delete the widget from the form or handle it appropriately\n  } else {\n    this.addUniqueIdentifier(clonedWidget); // Example function to add unique identifier logic\n    clonedWidget.id = AxoUtils.guid(); // Generate a new ID for the pasted widget\n  }\n\n  // Determine where to insert the AI widget in your form\n  let insertIndex = this.lastClickedWidgetIndex;\n  insertIndex += 1; // Example: Insert after the last clicked widget index, adjust as needed\n\n  // Insert the cloned AI widget into the form's widgets array\n  this.form.widgets.splice(insertIndex, 0, clonedWidget);\n\n  // Example function to add form control for the widget\n  this.addFormControl(clonedWidget.id, '');\n\n  // Emit an event or perform actions after pasting the AI widget\n  this._propertiesService.widgetClickEvent(clonedWidget); // Example method to handle widget click event\n\n  // Example function to update the view after pasting\n  this.setDropView();\n}\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * All subscriber should be implemented in this .\n   */\n  subscribers(): void {\n    this._activatedRoute.parent.params.subscribe(\n      (params) => {\n        this.formId = params.id;\n      });\n    // to subscribe widget delete event\n      this._widgetsService._widgetDeleteEvent\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((widget: any) => {\n        this.deleteWidget(widget);\n      });\n\n    setTimeout(() => {\n      this.setDropView();\n    }, 500);\n  }\n\n  /**\n   * to add dropped widget in form widgets\n   *\n   * @param event\n   */\n    dropWidget(event: CdkDragDrop<any>): void {\n        this.removeWidgetSelection()\n        // if widget dragged from widget list then it will create new object else will replace widget index according to event current index\n    if (event.previousContainer !== event.container) {\n      const type = event.previousContainer.data.text;\n      let widget: any;\n      switch (type) {\n        case 'Text':\n          widget = new TextBox();\n          widget.name = 'TextBox';\n          widget.prompt= 'Textbox';\n          widget.inputType = 'text';\n          break;\n        case 'Search':\n          widget = new Search();\n          widget.name = 'Search';\n          widget.inputType = 'text';\n          break;\n        case 'Button':\n          widget = new Button();\n          widget.name = 'Button';\n          widget.inputType = 'text';\n          break;\n        case 'Multiline Text':\n          widget = new TextBox();\n          widget.prompt= 'Multiline Text';\n          widget.isMultiline = true;\n          break;\n        case 'Number':\n          widget = new TextBox();\n          widget.inputType = 'numeric';\n          widget.prompt= 'Number';\n          widget.sub_type='numeric';\n          break;\n        case 'Decimal':\n          widget = new TextBox();\n          widget.inputType = 'decimal';\n          widget.prompt= 'Decimal';\n          widget.sub_type='numeric';\n          break;\n        case 'Email':\n          widget = new TextBox();\n          widget.inputType = 'email';\n          widget.prompt= 'Email';\n          break;\n        case 'Phone':\n          widget = new TextBox();\n          widget.inputType = 'phone';\n          widget.prompt= 'Phone';\n          break;\n        case 'Choice List':\n          widget = new ChoiceList();\n          widget.multi_select = \"2\";\n          break;\n        case 'Language':\n          if (!this.accessPremium()) {\n            this._axoSnackBar.openFormSnackBar('This feature is not available in current plan. Please Upgrade!', AxoSnackBarType.warning);\n          }else{\n            widget = new Language();\n          }\n          break;\n        case 'Toggle':\n          widget = new Toggle();\n          break;\n        case 'Date':\n          widget = new DateTime();\n          widget.datePickerType = 'date';\n          widget.subType = 'date';\n          widget.prompt= 'Date';\n          break;\n        case 'Time':\n          widget = new DateTime();\n          widget.datePickerType = 'time';\n          widget.subType = \"time\"\n          widget.prompt= 'Time';\n          break;\n        case 'Date & Time':\n          widget = new DateTime();\n          widget.datePickerType = 'both';\n          widget.subType = \"both\"\n          widget.prompt= 'Date Time';\n          break;\n        case 'Date Range':\n          widget = new DateTime();\n          widget.datePickerType = 'date-range';\n          widget.prompt= 'Date Range';\n          break;\n        case 'Time Stamp':\n          widget = new TimeStamp();\n          break;\n        case 'Stopwatch':\n          widget = new StopWatch();\n          break;\n        case 'QR Code':\n          widget = new QrCode();\n          break;\n        case 'Barcode':\n          widget = new BarCode();\n          break;\n        case 'Photo':\n          widget = new AxImage();\n          break;\n        case 'Video':\n          widget = new Video();\n          break;\n        case 'Audio':\n          widget = new AxAudio();\n          break;\n        case 'Document':\n          widget = new AxDocument();\n          break;\n        case 'Web Link':\n          widget = new Link();\n          break;\n        case 'Group Header':\n          widget = new GroupHeader();\n          break;\n        case 'Subform':\n          widget = new SubForm();\n          this._formBuilderMasterService.addSubformDetails(widget, this.formId)\n          break;\n        case 'GPS':\n          widget = new GPS();\n          break;\n        case 'Geofence':\n          if (!this.accessPremium()) {\n              this._axoSnackBar.openFormSnackBar('This feature is not available in current plan. Please Upgrade!', AxoSnackBarType.warning);\n          }else{\n            widget = new GeoFence();\n          } \n          break;\n        case 'Apply Geofence':\n          if (!this.accessPremium()) {\n            this._axoSnackBar.openFormSnackBar('This feature is not available in current plan. Please Upgrade!', AxoSnackBarType.warning);\n          }else{\n            widget = new ApplyGeoFence();\n          }\n          break;\n        case 'Child Record':\n          widget = new ChildRecord();\n          break;\n        case 'Formula':\n          widget = new Formula();\n          break;\n        case 'Autonumber':\n          if (!this.accessPremium()) {\n            this._axoSnackBar.openFormSnackBar('This feature is not available in current plan. Please Upgrade!', AxoSnackBarType.warning);\n          }else{\n            widget = new AutoNumber(); \n          }\n          break;\n        case 'Unique Id':\n          widget = new UniqueId();\n          break;\n        case 'Counter':\n          widget = new Counter();\n          break;\n        case 'Signature':\n          widget = new Signature();\n          break;\n        case 'Face Verification':\n          widget = new Verification();\n          break;\n        case 'Static Media':\n          if (!this.accessPremium()) {\n            this._axoSnackBar.openFormSnackBar('This feature is not available in current plan. Please Upgrade!', AxoSnackBarType.warning);\n          }else{\n            widget = new StaticMedia();\n          }\n          break;\n      }\n      widget.identifier = type;\n      widget.widgetIcon = event.previousContainer.data.icon;\n      // this.addDynamicLabelField(widget); will uncomment after implementing X1 api to get languages\n      if (!this.form.widgets)\n        this.form.widgets = []\n      this.form.widgets.splice(event.currentIndex, 0, widget);\n      this.addUniqueIdentifier(widget);\n      this.addFormControl(widget.id, '');\n\n      // Add the new identifier to the array observable in FormBuilderMasterService\n      this._formBuilderMasterService.addNewIdentifier(widget.id); // Add this line\n\n      this._propertiesService.widgetClickEvent(widget);\n      this.setClickedWidget(widget);\n    }\n    else {\n      moveItemInArray(this.form.widgets, event.previousIndex, event.currentIndex);\n      this._propertiesService.widgetClickEvent(this.form.widgets[event.currentIndex]);\n    }\n    this.setDropView();\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n\n  }\n\n  /**\n   * to get unique identifier\n   *\n   * @param widget\n   */\n  async validateUniqueIdentifier(widget: any) {\n    try {\n      // Call the API to validate widget deletion\n      const valid = await this._formBuilderMasterService.validateWidgetDelition(\n        widget.identifier,\n        this.form.formId,\n        widget,\n        this.isFormFresh\n      );\n      return valid.is_deletable;\n    } catch (error) {\n      \n      // Handle the error or return a default value\n      return false; // or any other default value based on your application's needs\n    }\n  }\n  // isValidIdentifier(identifier: string): boolean {\n  //   // Add your validation logic here, for example:\n  //   return /^[a-zA-Z0-9_]+$/.test(identifier);\n  // }\n  addUniqueIdentifier(widget: any): void {\n    const promptIdentifier = (widget.prompt || widget.identifier).replace(/[^a-zA-Z0-9]/g, '_');\n  \n    this._widgetsService.getUniqueIdentifier(promptIdentifier, this.formId)\n      .then((newIdentifier) => {\n        // General validation for valid identifier\n        if (this.isValidIdentifier(newIdentifier)) {\n          if (!widget.prompt) {\n            widget.prompt = newIdentifier.replace(/_/g, ' ');\n          }\n  \n          newIdentifier = newIdentifier.replace(/[^a-zA-Z0-9]/g, '_');\n          widget.identifier = newIdentifier;\n\n          // Assign unique identifiers based on widget type\n          // if (widget.id === this.fwl) {\n          //   this.form.lvt = \"\";\n          // } else if (widget.id === this.swl) {\n          //   this.form.lvst = \"\";\n          // }\n  \n          // Handle first and second widget logic\n          if (!this.fwl) {\n            this.fwl = widget.id;\n          } else if (!this.swl && widget.id !== this.fwl) {\n            this.swl = widget.id;\n          }\n\n          // Handle image capture widget (lvp) first - keep existing logic\n          if (widget.type === \"imagecapture-widget\") {\n            if (!this.form.lvp) {\n              this.form.lvp = newIdentifier;\n            }\n          } else {\n            // Get widget position in form\n            const widgetIndex = this.form.widgets.findIndex(w => w.id === widget.id);\n\n            // Handle first widget position\n            if (widgetIndex === 0 && this.isWidgetEligibleForLvtAndLvst(widget)) {\n              const previousLvt = this.form.lvt;\n              this.form.lvt = newIdentifier;\n\n              // If there was a previous lvt and it's eligible, make it lvst\n              if (previousLvt) {\n                const previousWidget = this.form.widgets.find(w => w.identifier === previousLvt);\n                if (previousWidget && this.isWidgetEligibleForLvtAndLvst(previousWidget)) {\n                  this.form.lvst = previousLvt;\n                }\n              }\n            }\n            // Handle second widget position\n            else if (widgetIndex === 1 && this.isWidgetEligibleForLvtAndLvst(widget) && newIdentifier !== this.form.lvt) {\n              this.form.lvst = newIdentifier;\n            }\n          }\n\n          this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n        }\n      })\n      .catch(error => console.error('Error getting unique identifier:', error));\n  }\n\n  /**\n   * To check if a widget is eligible to be set as the listViewTitle (lvt) / listViewSubtitle(lvst)\n   */\n  private isWidgetEligibleForLvtAndLvst(widget: any): boolean {\n    return widget.type === \"textbox-widget\" ||\n      (widget.type === \"choicelist-widget\" && widget.sub_type !== 'img_fixed_list' && widget.multi_select === \"2\") ||\n      widget.type === \"uniqueid-widget\" ||\n      widget.type === \"barcodescanner-widget\" ||\n      widget.type === \"qrcodescanner-widget\" ||\n      widget.type === \"timestamp-widget\" ||\n      widget.type === \"computedvalue-widget\" ||\n      widget.type === \"autonumber-widget\" ||\n      widget.type === \"datepicker-widget\";\n  }\n  \n  // General validation to ensure the identifier is a valid, non-empty alphanumeric string\n  isValidIdentifier(identifier: string): boolean {\n    // Ensure the identifier is a non-empty string, contains only alphanumeric characters or underscores\n    return typeof identifier === 'string' && /^[a-zA-Z0-9_]+$/.test(identifier) && identifier.length > 0;\n  }\n  \n\n\n  /**\n   * it will add form control in form group\n   *\n   * @param name\n   * @param value\n   */\n  addFormControl(name: string, value: any): void {\n    this.group.addControl(name, new FormControl(value));\n  }\n\n  /**\n   * to add dynamic properties according to language\n   *\n   * @param widget\n   */\n  addDynamicLabelField(widget: Widget): void {\n    const languages = ['en', 'HI'];\n    // const languages=[[{code: 'en', name: 'English'}, {code: 'HI', name: 'HINDI'}], {code: 'en', name: 'English'}];\n    languages.forEach((lang) => {\n      widget[lang + '_prompt'] = '';\n      Reflect.decorate([PropertyPanelField({\n        inputType: 'text', label: 'Label ' + '(' + lang + ')', propertyType: 'common',\n        helpText: 'Name of the field'\n      })],\n        Widget.prototype, lang + '_prompt');\n    });\n\n  }\n\n  /**\n * to delete widget from form widgets\n *\n * @param widget\n */\nasync deleteWidget(widget: any): Promise<void> {\n  this._axoSnackBar.openFormSnackBar('Deleting widget...', AxoSnackBarType.info);\n  \n  try {\n    // Call the API to validate widget deletion\n    const isValid = await this._formBuilderMasterService.validateWidgetDelition(\n      widget.identifier,\n      this.form.formId, \n      widget,\n      this.isFormFresh\n    );\n\n    // If validation fails, handle it accordingly\n    if(isValid !== undefined){\n      if (!isValid.is_deletable) {\n        alert (isValid.reason);\n        \n        return;\n    }\n    if(isValid.is_deletable) {\n      this._formBuilderMasterService.removeDependents(this.form.widgets,widget.identifier, 'dependents');\n      this._formBuilderMasterService.removeDependents(this.form.widgets,widget.identifier, 'validityDependents');\n      this._formBuilderMasterService.removeDependents(this.form.widgets,widget.identifier, 'dependant');\n    }\n\n    // Proceed with widget deletion if validation passes\n    this.form.widgets.splice(this.form.widgets.findIndex(obj => obj.id === widget.id), 1);\n    this.group.removeControl(widget.id);\n    this.group.removeControl(widget.id + '_group');\n    this._propertiesService.widgetClickEvent(null);\n    this.setDropView();\n\n    if (this.fwl === widget.id) {\n      this.fwl = null; // Reset 'fwl' if the deleted widget was stored in 'fwl'\n  }\n    if (this.swl === widget.id) {\n      this.swl = null; // Reset 'swl' if the deleted widget was stored in 'swl'\n  }\n\n    if (this.form.lvt == widget.identifier) {\n      this.form.lvt = '';\n    }\n    if (!this.form.lvt) {\n      let flag = 0;\n      for (let i = 0; i < this.form.widgets.length - 4; i++) {\n        if (this.form.widgets[i].identifier === this.form.lvst) {\n          flag = 1;\n          var p = i;\n        } else {\n          if (flag === 1 && (this.form.widgets[i].type === \"textbox-widget\" || (this.form.widgets[i].type === \"choicelist-widget\" && widget[i].sub_type !== 'img_fixed_list' && widget[i].multi_select === \"2\") || this.form.widgets[i].type === \"uniqueid-widget\" || this.form.widgets[i].type === \"barcodescanner-widget\" || this.form.widgets[i].type === \"qrcodescanner-widget\" || this.form.widgets[i].type === \"timestamp-widget\" || this.form.widgets[i].type === \"computedvalue-widget\" || this.form.widgets[i].type === \"autonumber-widget\" || this.form.widgets[i].type === \"datepicker-widget\")) {\n            this.form.lvt = this.form.widgets[i].identifier;\n            flag = 0;\n            break;\n          } else if (flag === 0 && (this.form.widgets[i].type === \"textbox-widget\" || this.form.widgets[i].type === \"uniqueid-widget\" || this.form.widgets[i].type === \"barcodescanner-widget\" || this.form.widgets[i].type === \"qrcodescanner-widget\" || this.form.widgets[i].type === \"timestamp-widget\" || this.form.widgets[i].type === \"computedvalue-widget\" || this.form.widgets[i].type === \"autonumber-widget\" || this.form.widgets[i].type === \"datepicker-widget\")) {\n            this.form.lvt = this.form.widgets[i].identifier;\n            break;\n          }\n        }\n      }\n      if (flag === 1) {\n        this.form.lvt = this.form.widgets[p].identifier;\n        this.form.lvst = '';\n      }\n    }\n    // l v s t //\n\n    if (this.form.lvst === widget.identifier) {\n      this.form.lvst = '';\n    }\n    if (!this.form.lvst) {\n      for (let i = 0; i < this.form.widgets.length - 4; i++) {\n         if (this.form.widgets[i].identifier !== this.form.lvt && (this.form.widgets[i].type === \"textbox-widget\" || this.form.widgets[i].type === \"uniqueid-widget\" || this.form.widgets[i].type === \"barcodescanner-widget\" || this.form.widgets[i].type === \"qrcodescanner-widget\" || this.form.widgets[i].type === \"timestamp-widget\" || this.form.widgets[i].type === \"computedvalue-widget\" || this.form.widgets[i].type === \"autonumber-widget\" || this.form.widgets[i].type === \"datepicker-widget\")) {\n            this.form.lvst = this.form.widgets[i].identifier;\n            break;\n        }\n      }\n    }\n  }\n} catch (error) {\n    \n    // Handle errors from API call\n    // You can choose to handle the error or propagate it\n    throw error;\n  }\n  this._axoSnackBar.openFormSnackBar('Widget deleted', AxoSnackBarType.success);\n}\n\n\n  // Update form\n  saveForm() {\n    this.saveEvent.emit()\n  }\n\n  // Open previous form\n  exit() {\n    this.exitFormEvent.emit()\n  }\n\n  // Change after click on widget\n  setClickedWidget(widget: any) {\n    this.removeWidgetSelection()\n    widget.widgetSelect = true\n  }\n\n  // Remove widget selection\n  removeWidgetSelection() {\n    if(this.form.widgets !== undefined){\n    this.form.widgets.forEach(item => {\n      item.widgetSelect = false;\n    })\n    }\n    this.formSelect = false;\n  }\n\n  // Set sytem field at bottom\n  setDropView() {\n    if (this.form.widgets.length > 0) {\n      let count = 0;\n      let skipNextWidget = false; // Flag to skip the next widget if the current one is \"System Fields\"\n      let flag=0;\n      this.form.widgets.forEach((item, index) => {\n        // Check if the current widget's prompt is \"System Fields\"\n        if (item.prompt === \"System Fields\") {\n          flag=1;\n          skipNextWidget = true; // Set the flag to skip the next widget\n          return; // Skip counting this widget\n        }\n        \n        // If the flag is set, skip this widget\n        if (skipNextWidget) {\n          skipNextWidget = false; // Reset the flag\n          return; // Skip counting this widget\n        }\n\n        // Count widgets that are not system fields\n        if (item.markup !== '@{action_count}' && item.markup != \"@{srno}\" && item.markup != \"@{header}\" && item.markup != \"@{created_on}\" && item.markup != \"@{user}\" && item.markup != \"@{created_at}\") {\n          count++;\n        }\n      });\n\n      if(flag==0){\n        this.isSubForm=true;\n      }else{\n        this.isSubForm=false;\n      }\n\n      let hidden: boolean = false;\n      let itemUnderHeader: boolean = false;\n      let widgetsUnderHeader: number = 0;\n      let hiddenWidgetsUnderHeader: number = 0;\n      let headerIndex: number = 0;\n\n      for (let i = 0; i < this.form.widgets.length; i++) {\n        const item = this.form.widgets[i];\n        if (item.mainType == \"groupheader\") {\n          hidden = item.isHidden;\n          itemUnderHeader = true;\n          headerIndex = i;\n          widgetsUnderHeader = 0;\n          hiddenWidgetsUnderHeader = 0;\n          if (hidden == false)\n            for (let i = headerIndex + 1; i < this.form.widgets.length; i++) {\n              const item = this.form.widgets[i];\n              if (item.mainType == \"groupheader\") {\n                break;\n              }\n              widgetsUnderHeader++;\n              if (item.isHidden == true) {\n                hiddenWidgetsUnderHeader++;\n              }\n            }\n          if (widgetsUnderHeader == hiddenWidgetsUnderHeader) {\n            this.resetWidgets(headerIndex + 1);\n          }\n        }\n        if (itemUnderHeader && hidden == true) {\n          item.isHidden = true;\n        }\n      }\n    }else{\n      this.showDropHere=true;\n    }\n  }\n\n  showDrop():boolean{\n    if(this.isSubForm){\n      this.showDropHere=this.form.widgets?.length>0?false:true;\n    }else{\n      this.showDropHere=this.form.widgets?.length>4?false:true;\n    }\n    return this.showDropHere;\n  }\n\n  resetWidgets(headerIndex:number){\n    for (let i = headerIndex; i < this.form.widgets.length; i++) {\n      const item = this.form.widgets[i];          \n      if(item.mainType==\"groupheader\"){\n        break;\n      }\n      item.isHidden=false;\n    }\n  }\n\n  formClickEvent() {\n    this.removeWidgetSelection()\n    this.formSelect = true;\n    this._propertiesService.formClickEvent();\n  }\n  toggleEditor(widget: any): void {\n\n    this.showEditor = !this.showEditor;\n    this.dynamicIndex = this.form.widgets.findIndex(obj => obj.id === widget.id)\n  }\n  }\n","<!-- Subform widget -->\n<ng-container *ngIf=\"widget\">\n  <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n    <div class=\"flex gap-2 justify-between\">\n      <div class=\"flex gap-2 justify-between items-center\" style=\"width: 85%;\">\n        <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n        </form>\n      </div>\n      <div class=\"chevron_right-parent flex justify-center items-start rounded-full h-6 w-6\" style=\"width: 10%;\" (click)=\"onClickForm()\">\n        <div class=\"chevron_right\" [@fadeInOut]>\n          <!-- <mat-icon svgIcon=\"chevron_right\" class=\"chevron_right h-4 w-4 min-w-4 min-h-4\" (click)=\"onClickForm()\"></mat-icon> -->\n        </div>\n      </div>\n      <ng-container *ngIf=\"widget.isHidden\">\n        <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n      </ng-container>\n    </div>\n\n    <!-- <div class='form-field-input'>\n      <div class=\"icon-input-container\">\n        <mat-icon svgIcon=\"axo_subform\" class=\"icon relative\"></mat-icon>\n        <input [placeholder]=\"widget.placeholder?widget.placeholder:'Enter your choice'\" readonly=true\n        [formControlName]=\"widget.id\" />\n      </div>\n    </div> -->\n    <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n  </div>\n  <div class=\"tooltip-container\">\n    <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n    <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n    <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n    <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n    <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n    </button>\n    <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n  </div>\n\n</ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { SubForm } from '../../../forms/page/widgets/sub-form';\nimport { WidgetsService } from '../widgets.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n@Component({\n  selector: 'lib-subform',\n  templateUrl: './subform.component.html',\n  styleUrls: ['./subform.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  animations: [\n    trigger('fadeInOut', [\n      state('void', style({\n        opacity: 0\n      })),\n      transition(':enter, :leave', [\n        animate('1200ms')\n      ])\n    ])\n  ]\n})\nexport class SubformComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: SubForm;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n\n  appVersionId: string;\n\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _activatedRoute: ActivatedRoute,\n    private _router: Router,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    let formId=window.location.href.slice(-6);\n    this._formBuilderMasterService.removeSubform(formId, this.widget.id);  \n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n\n  onClickForm() {\n    this._formBuilderMasterService.triggerRouteFrom(this.widget.id);\n    setTimeout(()=>{\n      this._formBuilderMasterService.triggersetDropViewFormUpdate();\n    },30)\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n  \n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}\n","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { WidgetConcreteClassConverter } from '../value-converters/widget-concrete-class-converter';\nimport { Constants } from '../common/constants';\nimport { SubformComponent } from '../../../sculptor-lib/widgets/subform/subform.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\n\ntype subFormValue = Type<string | number>;\n@JsonObject('SubForm')\nexport class SubForm extends Widget {\n  /* SubPage may have more than one widget so make this as group widget*/\n\n  @JsonProperty(Constants.subType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  subType:string;\n \n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n  @PropertyPanelField({\n    inputType: 'select', label: 'Entry Mode', choices: [{ value: 'default', text: 'Default' }, { value: 'inline', text: 'Inline' }, { value: 'wizard', text: 'Wizard' }],\n    helpText: 'Select Entry Mode', sortIndex: 2\n  })\n  @JsonProperty(Constants.entryMode, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  \n  entryMode: string = null;\n  component: Type<SubformComponent> = SubformComponent;\n  value: subFormValue = null;\n  // widgetIcon: string = 'axo_subform';\n  name: string;\n  markup: Array<Widget> = [];// markup\n  pid: string;\n\n\n  constructor(field?: SubForm) {\n    super(field);\n    if (field) {\n      this.subForm(field);\n    }\n    else {\n      this.newSubForm();\n    }\n  }\n\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n  // Function to create new report object\n  newSubForm(): void {\n    this.prompt='Subform';\n    this.helpText = '';\n    this.entryMode = 'default';\n    this.markup = [];\n    this.subType = 'subform';\n    this.type = WidgetType.subForm;\n    this.name = 'SubForm';\n    this.mainType='subform'\n  }\n\n  /**function to create report object with existing values\n  *\n  *@param Report\n  *\n  */\n  subForm(field?: SubForm): void {\n    this.prompt=field.prompt;\n    this.helpText = field.helpText;\n    this.entryMode = field.entryMode;\n    this.markup = field.markup;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.name = field.name;\n    this.subType =  field.subType;\n    this.mainType=field.mainType;\n  }\n\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      const value = this.value as subFormValue;\n      return value.toString();\n    }\n    else {\n      return '';\n    }\n\n  }\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['widgetLayout', 'repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = SubForm.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n\n\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AxForm } from '../../../public-api';\nimport { CommonLibConfigurationService } from '../../../public-api';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FormsListService {\n  //private\n  private formList: BehaviorSubject<any[] | null> = new BehaviorSubject(null);\n  temparray: string[];\n\n  /**\n   * Constructor\n   *\n   * @param _httpClient\n   */\n  constructor(private _httpClient: HttpClient,private commonLibConfig: CommonLibConfigurationService,) { \n      // Retrieve temparray from local storage if available\n      this.temparray = JSON.parse(localStorage.getItem('temparray')) || [];\n  }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Public methods\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * Getter for formList\n   */\n  get formsList$(): Observable<any[]> {\n    return this.formList.asObservable();\n  }\n\n\n  /**\n   * setter for formList\n   */\n  set formLists(formList) {\n    this.formList.next(formList);\n  }\n\n\n\n  /**\n   * to call get asset form api\n   *\n   * @param appVersionId\n   * @returns\n   */\n  // getAssetFormList(appVersionId: number): Promise<any> {\n  //   const formData = new FormData();\n  //   formData.append('appversion', appVersionId.toString());\n  //   return new Promise((resolve, reject) => {\n  //     this._httpClient.post<any>(environment.axonatorX1Url + 'getAssetForms/', formData).subscribe((response: any) => {\n  //       this.formLists = response;\n  //       resolve(true);\n  //     }, reject);\n  //   });\n  // }\n\n\n  /**\n   * to call get asset form api\n   *\n   * @param appVersionId\n   * @returns\n   */\n  getAssetFormList(appVersionId: number): Promise<any> {\n    const formtype=\"assetform\";\n    localStorage.setItem('generateQR', formtype);//To check whether generate Qr is called for asset form or action form\n    return new Promise((resolve, reject) => {\n      const formData = new FormData();\n      formData.append('appversion', appVersionId.toString());\n      localStorage.setItem('appVersionId', JSON.stringify(appVersionId));\n  \n      this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url + 'getAllForms/', formData) //need config\n        .subscribe((response: any) => {\n          this.formLists = response;\n          this.temparray = response.afl.afs.map(form => form.fid);\n          this.temparray = this.temparray.map(id => String(id));\n          localStorage.setItem('temparray', JSON.stringify(this.temparray));\n          resolve(response); // Resolve with the response data\n        }, error => {\n          reject(error); // Reject with the error\n        });\n    });\n  }\n  \n\n  getFormIdList(){\n    const currentUrl = window.location.pathname;\n    // Split the URL by '/'\n    const urlParts = currentUrl.split('/');\n    // Get the last part of the URL, which should be the formid\n    const formId = urlParts[urlParts.length - 1];\n    if(!this.temparray.includes(formId)){\n      this.temparray.push(formId);\n      localStorage.setItem('temparray', JSON.stringify(this.temparray));\n    }\n    return this.temparray;\n  }\n\n  /**\n   * to call delete form api\n   *\n   * @param formId\n   * @returns\n   */\n  deleteReport(formId: number): Promise<any> {\n    // const formData = new FormData();\n    // formData.append('formid', formId.toStrisng());\n    let params = new HttpParams();\n    params = params.append('formid', formId.toString());\n    return new Promise((resolve, reject) => {\n      this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url + 'deleteForm/', params).subscribe((response: any) => {  //need config\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  /**\n   * To call X1 api for create new form\n   *\n   * @param _form\n   * @param appVersionID\n   * @returns\n   */\n  addForm(_form: AxForm, appVersionID: string): Promise<any> {\n    const form = {\n      'afid': null,\n      'fi': _form.icon,\n      'fn': _form.name,\n      'ft': _form.ft,\n      'fst': _form.fst,\n      'appVersionId': appVersionID\n    };\n    // created form json and appended it into form data\n    const formData = new FormData();\n    formData.append('form', JSON.stringify(form));\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'addForm/', formData).subscribe((response: any) => {  //need config\n        resolve(response);\n      }, reject);\n    });\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Constants } from '../../../public-api';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FormBuilderMasterMapperService {\n\n  replaceKeysInJsonArray(jsonArray: any[]): any[] {\n    return jsonArray.map((jsonData) => this.replaceKeysInData(jsonData));\n  }\n\n  replaceKeysInData(inputData: any): any {\n    if (typeof inputData === 'object') {\n      const updatedData = {};\n      for (const key of Object.keys(inputData)) {\n        const newKey = Constants[key] !== undefined ? Constants[key] : key;\n        updatedData[newKey] = inputData[key];\n      }\n      if (updatedData['type'] === 'subform-widget' && Array.isArray(updatedData['markup'])) {\n        updatedData['markup'] = this.replaceKeysInJsonArray(updatedData['markup']);\n      }\n      return updatedData;\n    }\n\n    return inputData;\n  }\n\n  constructor() { }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { AxForm } from '../../forms/ax-form';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { JsonConvert } from 'json2typescript';\nimport { BehaviorSubject, Observable, Subject, asyncScheduler } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { FormsListService } from '../forms-list/forms-list.service';\n// import { FormsListService } from 'app/modules/build/sculptor/forms-list/forms-list.service';\nimport { SubForm } from '../../forms/page/widgets/sub-form';\nimport { Widget } from '../../forms/page/widgets/widget';\nimport { CustomStorage } from './cutom-storage.service';\nimport { FormBuilderMasterMapperService } from './form-builder-master-mapper.service';\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class FormBuilderMasterService {\n\n  // Private\n  private _form: BehaviorSubject<AxForm | null> = new BehaviorSubject(null);\n  private _functionCallSubjectRouteForm = new Subject<string>();\n  private _functionCallUpdateLocalstorageForm = new Subject<string>();\n  private _functionCallSetDropbox = new Subject<string>();\n  private _formObjectCount = new BehaviorSubject<number>(0);\n  allFormFields: any = [];\n  array_subForm: any = [];\n  // Initialize newIdentifiers as BehaviorSubject\n  private newIdentifiersSubject: BehaviorSubject<string[]> = new BehaviorSubject<string[]>(this.initNewIdentifiers());\n\n  constructor(private _httpClient: HttpClient, \n              private _formsListService: FormsListService, \n              private _customeStorage: CustomStorage, \n              private commonLibConfig: CommonLibConfigurationService,\n              private _formbuildermapper: FormBuilderMasterMapperService) {\n    this._customeStorage = _customeStorage; // initialize _customeStorage with the injected service\n    const storedCount = this._customeStorage.read('formObjectCount');\n    if (storedCount) {\n      this._formObjectCount.next(parseInt(this._customeStorage.read('formObjectCount') || '0', 10));\n    }\n    // const storedIdentifiers = this._customeStorage.read('identifiers');\n    // if (storedIdentifiers) {\n    //   this.newIdentifiersSubject.next(JSON.parse(storedIdentifiers));\n    // }\n  }\n\n  private localChangesSubject = new BehaviorSubject<boolean>(false);\n  localChangesExist$ = this.localChangesSubject.asObservable();\n\n  // Add a flag or subject to notify when Component A has finished initializing\n  private initializedSubject = new BehaviorSubject<boolean>(false);\n  initialized$ = this.initializedSubject.asObservable();\n\n  setLocalChangesExist(state: boolean): void {\n    this.localChangesSubject.next(state);\n    this.initializedSubject.next(true); // Notify that the state has been initialized\n  }\n  // Initialize new identifiers from custom storage\n  private initNewIdentifiers(): string[] {\n    const storedIdentifiers = this._customeStorage.read('newIdentifiers');\n    return storedIdentifiers ? JSON.parse(storedIdentifiers) : [];\n  }\n\n  // Getter for form observable\n  get form$(): Observable<AxForm> {\n    return this._form.asObservable();\n  }\n\n  // Method to add a new identifier to the array\n  addNewIdentifier(identifier: string): void {\n    const currentIdentifiers = this.newIdentifiersSubject.getValue();\n    const updatedIdentifiers = [...currentIdentifiers, identifier];\n    this.newIdentifiersSubject.next(updatedIdentifiers);\n    this._customeStorage.write('newIdentifiers', JSON.stringify(updatedIdentifiers));\n  }\n\n  // Method to get the observable array of new identifiers\n  getNewIdentifiers$(): Observable<string[]> {\n    return this.newIdentifiersSubject.asObservable();\n  }\n\n  // Method to clear the array of new identifiers\n  clearNewIdentifiers(): void {\n    this.newIdentifiersSubject.next([]);\n    this._customeStorage.remove('newIdentifiers');\n  }\n\n  /**\n   * Setter and Getter for FormObjectCount\n   */\n  setFormObjectCount(count: number): void {\n    if (typeof count !== 'undefined') {\n      this._formObjectCount.next(count);\n      this._customeStorage.write('formObjectCount', count.toString());\n    }\n  }\n\n  getFormObjectCount(): Observable<number> {\n    return this._formObjectCount.asObservable();\n  }\n\n  /**\n   * to call hide/show form api\n   *\n   * @param formId\n   * @returns\n   */\n  hideShowForm(formVisibility: boolean, formId: string, appVersionId: string): Promise<any> {\n    const formData = {\n      'appVersionId': appVersionId,\n      'form_id': formId,\n      'formVisibility': formVisibility\n    };\n    let newIdentifier = '';\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'hideFormShowForm/', formData).subscribe((response: string) => {\n        newIdentifier = response;\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  /**\n   * Get form detail by the form id\n   *\n   * @param FormData\n   * @returns \n   */\n  getFormDetails(formId: string, subFormId: string): Promise<AxForm> {\n    const formData = new FormData();\n    formData.append('form', JSON.stringify({ 'fid': formId }));\n    const jsonConvert: JsonConvert = new JsonConvert();\n    return new Promise((resolve, reject) => {\n      if (!subFormId) {\n        this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url + 'getFormDetails/', formData).subscribe(\n          async (response) => {\n            this._customeStorage.write('_staticFormObject' + formId, JSON.stringify(response.fd.form))\n            const form = jsonConvert.deserializeObject(response.fd.form, AxForm);\n            await this.createSubform(form.widgets, formId, form)\n            this._form.next(form);\n            resolve(form);\n          }, reject);\n      } else {\n        const _subform = JSON.parse(this._customeStorage.read(formId + subFormId))\n        const _form = JSON.parse(this._customeStorage.read(formId))\n        if (_subform) {\n          _form.widgets = _subform.widgets;\n          resolve(_form);\n        } else reject;\n      }\n    });\n  }\n  getFormDetail(formId: string): void {\n    const formData = new FormData();\n    formData.append('form', JSON.stringify({ 'fid': formId }));\n    this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url + 'getFormDetails/', formData).toPromise()\n      .then(response => {\n        const form = new JsonConvert().deserializeObject(response.fd.form, AxForm);\n        this._form.next(form);\n        // No return statement\n      });\n  }\n  async createSubform(widgets, formId, form) {\n    if (widgets && widgets.length > 0) {\n      widgets.forEach(res => {\n        if (res.subType == \"SubForm\" || res.subType == \"subform\") {\n          const subform = new SubForm(res as any)\n          const modifySubform = { ...form }\n          if (subform.markup && subform.markup.length > 0)\n            modifySubform.widgets = subform.markup;\n          else\n            modifySubform.widgets = [];\n          modifySubform.id = subform.id;\n          let _subform = JSON.parse(this._customeStorage.read(\"_subform\" + formId))\n          if (!_subform) _subform = []\n          _subform.push(modifySubform.id)\n          this._customeStorage.write(\"_subform\" + formId, JSON.stringify(_subform))\n          this._customeStorage.write(formId + modifySubform.id, JSON.stringify(modifySubform))\n          this.createSubform(modifySubform.widgets, formId, form)\n        }\n      })\n    }\n  }\n\n  // Update validity condition ogf subform\n  updateValidityConditionSubform(item, promptCode) {\n    if (item.markup) {\n      item.markup.forEach((item, index) => {\n        if (item.validityConditions) {\n          const validityConditions = typeof item.validityConditions == 'object' ? item.validityConditions :JSON.parse(item.validityConditions);\n          item.invalidityMsg = validityConditions.invalidity_msg;\n          item.validityConditionJs = validityConditions.validity_conditions_js ?? item.validityConditionJs;\n          item.validityConditions = validityConditions.validity_conditions ?? item.validityConditions;          \n        }\n        if (!promptCode) {\n          item.promptMl = {\n            \"en\": item.prompt\n          };\n        }\n        else {\n          item.promptMl = {}\n          promptCode.forEach(code => {\n            if (code === 'en') {\n              item.promptMl = { en: item.prompt };\n            }\n\n            if (code === 'hi') {\n              item.promptMl = { ...item.promptMl, hi: item.hiprompt };\n            }\n\n            if (code === 'mar') {\n              item.promptMl = { ...item.promptMl, mar: item.marprompt };\n            }\n\n            if (code === 'tel') {\n              item.promptMl = { ...item.promptMl, mar: item.teprompt };\n            }\n\n            if (code === 'fr') {\n              item.promptMl = { ...item.promptMl, fr: item.frprompt };\n            }\n\n            if (code === 'ar') {\n              item.promptMl = { ...item.promptMl, ar: item.arprompt };\n            }\n\n            if (code === 'JP') {\n              item.promptMl = { ...item.promptMl, JP: item.JPprompt };\n            }\n\n            if (code === 'ID') {\n              item.promptMl = { ...item.promptMl, ID: item.IDprompt };\n            }\n\n            if (code === 'TH') {\n              item.promptMl = { ...item.promptMl, TH: item.THprompt };\n            }\n\n            if (code === 'TH') {\n              item.promptMl = { ...item.promptMl, TH: item.THprompt };\n            }\n\n          })\n        }\n        if (item.type == \"choicelist-widget\") {\n          item.choices = (item.choices).split(\",\").join(\"\\n\")\n        }\n        if (item.type == \"subform-widget\") {\n          this.updateValidityConditionSubform(item, promptCode)\n        }\n      })\n    }\n  }\n  // Update form service\n  async updateFormDetails(formData: any, formId: string, formDetails: any, formScrptData: any, formVisibility: boolean): Promise<any> {\n    // Ensure formData is not undefined\n    if (!formData) {\n        throw new Error(\"formData is undefined\");\n    }\n\n    const formDetail = JSON.parse(JSON.stringify(formDetails))\n    formData = this.removeIds(formData)\n    const promptCode = this.getFormLanguages(formId);\n\n    this.allFormFields = this.getFilteredWidgetsList(formId); \n\n    formData.forEach((item, index) => {\n      item.isVisible = true;\n      if (item.type === 'fileupload-widget') {\n        // Assuming `string` is the formatted string containing allowed file types like \"pdf, ppt\"\n        if (item.allowedFileTypes) {\n          const string = item.allowedFileTypes.join(',');\n          item.allowedFileTypeTemp = string;\n        }\n      }\n      else if(item.type === 'choicelist-widget'){\n          item.subType = item.choicesSource;\n          item.choices = item.choices.split(',').map(choice => choice.trim()).join('\\n')\n        }\n      else if(item.type === 'timestamp-widget'){\n          item.subType = item.mainType;\n        }  \n        if(item.validityConditions !== undefined){\n          if(item.validityConditions.nodes === undefined){\n            if(item.validityConditions){\n              item.validityConditions = JSON.parse(item.validityConditions);\n            }\n            else{\n            delete item.validityConditions;\n            delete item.invalidityMsg;\n            }\n        }\n        else if(item.validityConditions.nodes !== undefined && item.validityConditions.nodes.length === 0){\n          delete item.validityConditions;\n          delete item.invalidityMsg;\n        }\n        }\n        if(item.visibilityConditions !== undefined){\n        if(item.visibilityConditions.nodes === undefined){\n          if(item.visibilityConditions){\n            item.visibilityConditions = JSON.parse(item.visibilityConditions);\n          }\n          else{\n          delete item.visibilityConditions;\n          }       \n        }\n        else if(item.visibilityConditions.nodes !== undefined && item.visibilityConditions.nodes.length === 0){\n          delete item.visibilityConditions;\n\n        }\n\n         }\n         if(item.validityDependents){\n          const filteredDependents = item.validityDependents.filter(ptr => this.allFormFields.includes(ptr));\n          item.validityDependents = filteredDependents;\n         }\n         if(item.dependant){\n          const filteredDependents = item.dependant.filter(ptr => this.allFormFields.includes(ptr));\n          item.dependant = filteredDependents;\n         }\n    })\n\n    // const processSubforms = (items: any[]) => {\n    //   items.forEach(item => {\n    //     if (item.type === 'subform-widget') {\n    //       // Check if 'sub_type' key is not present and add it with value 'subform'\n    //       if (!('sub_type' in item)) {\n    //         item.sub_type = \"subform\";\n    //       }\n    \n    //       // If the 'markup' array exists, process its subforms recursively\n    //       if (item.markup && Array.isArray(item.markup)) {\n    //         processSubforms(item.markup);\n    //       }\n    //     }\n    //   });\n    // };\n    \n    // processSubforms(formData);\n    this.preprocessValidityConditions(formData);      \n    this.preprocessVisidilityConditions(formData);\n    formData.forEach((item, index) => {\n      if(item.validityConditions){\n        if(item.validityConditions.nodes.length === 0){\n          delete item.validityConditions;\n        }\n      }\n      if(item.visibilityConditions){\n        if(item.visibilityConditions.nodes.length === 0){\n          delete item.visibilityConditions;\n        }\n      }\n\n      // if (item.validityConditions) {\n        //   // const validityConditions = JSON.parse(item.validityConditions);\n        //   // const validityConditions = item.validityConditions;\n        //   // item.invalidityMsg = validityConditions.invalidity_msg;\n        //   item.validityConditionJs = this.precompileConditions(item.validityConditions.nodes);\n      //   // item.validityConditions = validityConditions.validity_conditions;\n      // }\n      if (!promptCode) {\n        item.promptMl = {\n          \"en\": item.prompt\n        };\n      }\n      else {\n        item.promptMl = {}\n        promptCode.forEach(code => {\n          if (code === 'en') {\n            item.promptMl = { en: item.prompt };\n          }\n\n          if (code === 'hi') {\n            item.promptMl = { ...item.promptMl, hi: item.hiprompt };\n          }\n\n          if (code === 'mar') {\n            item.promptMl = { ...item.promptMl, mar: item.marprompt };\n          }\n\n          if (code === 'tel') {\n            item.promptMl = { ...item.promptMl, mar: item.teprompt };\n          }\n\n          if (code === 'fr') {\n            item.promptMl = { ...item.promptMl, fr: item.frprompt };\n          }\n\n          if (code === 'ar') {\n            item.promptMl = { ...item.promptMl, ar: item.arprompt };\n          }\n\n          if (code === 'JP') {\n            item.promptMl = { ...item.promptMl, JP: item.JPprompt };\n          }\n\n          if (code === 'ID') {\n            item.promptMl = { ...item.promptMl, ID: item.IDprompt };\n          }\n\n          if (code === 'TH') {\n            item.promptMl = { ...item.promptMl, TH: item.THprompt };\n          }\n\n          if (code === 'TH') {\n            item.promptMl = { ...item.promptMl, TH: item.THprompt };\n          }\n        })\n      }\n      if (item.type == \"choicelist-widget\") {\n        if(Array.isArray(item.choices)){\n          item.choices = item.choices.join(\",\");\n        }\n        item.choices = (item.choices).split(\",\").join(\"\\n\")\n      }\n      if (item.type == \"subform-widget\") {\n        this.updateValidityConditionSubform(item, promptCode)\n        // formData[index] = this.processInnerWidgetJson(item);\n      }\n    })\n    // Static value set need tochange\n    const appDetails = JSON.parse(this._customeStorage.read(\"appDetails\" + formId))\n    const _staticFormObject = JSON.parse(this._customeStorage.read('_staticFormObject' + formId))\n    _staticFormObject.a = appDetails.appId\n    _staticFormObject.v = (appDetails.version).toFixed(3).toString();\n    _staticFormObject.error_count = 0\n    _staticFormObject.BEHAVIORS = []\n    _staticFormObject.allow_ad_hoc = \"True\"\n    _staticFormObject.ft = \"asset\"\n    _staticFormObject.multilanguage = \"True\"\n    _staticFormObject.isCSVExportEnable = \"False\"\n    _staticFormObject.is_public = \"False\"\n    if (_staticFormObject.fm)\n      _staticFormObject.fm.allow_ad_hoc = true\n    _staticFormObject.count = formData.length - 1\n    delete _staticFormObject.old_new_id_map\n    _staticFormObject.old_new_id_map = {}\n    _staticFormObject.fid = Number(formId)\n    delete formDetail.widgets\n    for (const key in formDetail) {\n      delete _staticFormObject[key]\n      if (key == 'allow_ad_hoc' || key == 'multilanguage' || key == 'isCSVExportEnable' || key == 'is_public') {\n        formDetail[key] = formDetail[key] ? 'True' : 'False';\n      }\n      _staticFormObject[key] = formDetail[key]\n    }\n\n    if(_staticFormObject.fst == 'A'){\n      _staticFormObject.afid = _staticFormObject.trackedasset_id.toString();\n      _staticFormObject.ft = 'tracking';\n    }\n    else{\n      _staticFormObject.ft = 'asset';\n    }\n    if (isNaN(_staticFormObject.fp)) {\n      _staticFormObject.fp = '';\n  }\n  // Ensure _staticFormObject.flat_fields is not undefined\n  if (_staticFormObject.flat_fields) {\n      _staticFormObject.flat_fields.forEach((item, index) => {\n          if (item.type === 'capturegpslocation-widget') {\n              _staticFormObject.lvd = item.identifier;\n          }\n      });\n  } else {\n      \n  }\n    _staticFormObject.fn = _staticFormObject.name;\n    _staticFormObject.form_script = formScrptData;\n    _staticFormObject.isFormVisible = formVisibility;\n    _staticFormObject.lvst_set_manually = true;\n    let ffData = await this.convertBooleans(formData)\n    ffData = this._formbuildermapper.replaceKeysInJsonArray(ffData);\n    const formDataupdated = new FormData();\n    // _staticFormObject.flat_fields = ffData\n    _staticFormObject.ff = JSON.stringify(ffData) \n    _staticFormObject.ss = 'S' //Save draft (S and D)\n    _staticFormObject.status = _staticFormObject.ss\n    delete _staticFormObject.__jsonconvert__class_identifier__\n    delete _staticFormObject.__jsonconvert__mapping__\n    formDataupdated.append(\"form\", JSON.stringify(_staticFormObject));\n    \n    formDataupdated.append(\"imgChoicesToBeDeleted\", JSON.stringify([]));\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'updateFormDetails/', formDataupdated).subscribe((response: any) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  // Serialize object\n  convertBooleans(arr) {\n    try {\n      return arr.map((obj) => {\n        const newObj = { ...obj };\n        let subType;\n        for (const key in newObj) {\n          if (key == 'subType') {\n            subType = newObj[key];\n          }\n          if (newObj[key] != 'SubForm' && newObj[key] != \"subform\" && newObj[key] != 'header' && key == 'subType') {\n            if (newObj['markup'] != \"@{srno}\" && newObj['markup'] != \"@{header}\" && newObj['markup'] != \"@{created_on}\" && newObj['markup'] != \"@{user}\" && newObj['markup'] != \"@{created_at}\"&& newObj['markup']!=\"@{action_count}\")\n              delete newObj['markup'];\n          }\n          if (key === '__jsonconvert__class_identifier__' || key === '__jsonconvert__mapping__' || key == 'widgetIcon' || key == 'widgetSelect' || key == 'name') {\n            delete newObj[key];\n          }\n          else if (typeof newObj[key] === 'boolean' && key != 'choicesMl' && key != 'choicesMl' && key != 'loadingId' && key != 'markup' && key != 'isCSVExportEnable'  && key != 'validate') {\n            newObj[key] = newObj[key] ? '1' : '2';\n          } else if (typeof newObj[key] === 'object' && key != 'validityConditions' && key != 'visibilityConditions' && key != 'choicesMl' && key != 'promptMl' && key != 'allowedFileTypes' && key != 'validityDependents' && key != 'dependents') {\n            newObj[key] = this.convertBooleans(newObj[key]);\n          }\n        }\n        return newObj;\n      });\n    } catch (e) {\n    }\n  }\n\n  public_identifier_get_or_create(formid: any,public_id: any,is_public: any){\n    const Updated = new FormData();\n    Updated.append('form_id',formid);\n    Updated.append('public_id',public_id);\n    Updated.append('is_public',is_public);\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'public_identifier_get_or_create/', Updated).subscribe((response: any) => {\n        resolve(response);\n      }, reject);\n    });\n    }\n\n  // Remove unuse id from end playloads\n  removeIds(obj: any): any {\n    if (typeof obj === \"object\") {\n      if (Array.isArray(obj)) {\n        for (let i = 0; i < obj.length; i++) {\n          obj[i] = this.removeIds(obj[i]);\n        }\n      } else {\n        for (const key in obj) {\n          if (key === \"id\") {\n            delete obj[key];\n          } else {\n            obj[key] = this.removeIds(obj[key]);\n          }\n        }\n      }\n    }\n    return obj;\n  }\n\n  // Add subform in subfrm object\n  addSubformDetails(widget, formId) {\n    const form = JSON.parse(this._customeStorage.read('_staticFormObject' + formId))\n    const modifySubform = { ...form }\n    if (modifySubform.widgets)\n      modifySubform.widgets = [];\n    modifySubform.id = widget.id;\n    let _subform = JSON.parse(this._customeStorage.read(\"_subform\" + formId))\n    if (!_subform) _subform = []\n    _subform.push(modifySubform.id)\n    this._customeStorage.write(\"_subform\" + formId, JSON.stringify(_subform));\n    this._customeStorage.write(formId + modifySubform.id, JSON.stringify(modifySubform))\n  }\n\n  // Method to trigger the component function with a parameter (route form)\n  triggerRouteFrom(parameter: string) {\n    this._functionCallSubjectRouteForm.next(parameter);\n  }\n\n  // Observable to which the component can subscribe (route form)\n  routeForm(): Observable<string> {\n    return this._functionCallSubjectRouteForm.asObservable();\n  }\n\n\n  // Method to trigger the component function with a parameter (route form)\n  triggerLocalstorageFormUpdate() {\n    this._functionCallUpdateLocalstorageForm.next();\n  }\n\n  // Observable to which the component can subscribe use for update localstorage\n  updateLocalForm(): Observable<string> {\n    return this._functionCallUpdateLocalstorageForm.asObservable();\n  }\n\n  // Method to trigger the component function setDropView\n  triggersetDropViewFormUpdate() {\n    this._functionCallSetDropbox.next();\n  }\n\n  // Observable to which the component can subscribe use for update localstorage\n  setDropView(): Observable<string> {\n    return this._functionCallSetDropbox.asObservable();\n  }\n\n  // Get subform particular form\n  getSubform(formId: string) {\n    const _subform = JSON.parse(this._customeStorage.read(\"_subform\" + formId))\n    // const subForm = _subform.filter(item => item.formId == formId)\n    return _subform;\n  }\n\n  // Remove subform particular form\n  removeSubform(formId: string, subformData) {\n    if (subformData) {\n      for (let i = 0; i < subformData.length; i++) {\n        if (subformData[i].id)\n          this._customeStorage.remove(formId + subformData[i].id)\n      }\n    }\n    this._customeStorage.remove(\"_subform\" + formId)\n  }\n\n  intializeAppDetails(formId, appDetails) {\n    this._customeStorage.write(\"appDetails\" + formId, JSON.stringify(appDetails))\n  }\n\n  getIdentiferArray(): any[] {\n    const formIdsArray = this._formsListService.getFormIdList(); // Get the array of form IDs\n    let list:any[] = [];\n    \n    // Iterate over each formId\n    for (let i = 0; i < formIdsArray.length; i++) {\n        const item = formIdsArray[i];\n        // Parse the form details from storage using the formId\n        if(this._customeStorage.read(item) === null){\n          const getFormDetailsStorage = JSON.parse(this._customeStorage.read('_staticFormObject' + item));\n          if (getFormDetailsStorage !== null) {\n              getFormDetailsStorage.ff.forEach(val => {\n                  // Push the identifier into the list array\n                  list.push(val.identifier);\n                  if(val.markup && Array.isArray(val.markup)){\n                    this.getSubFormIdentifiers(val.markup,list);\n                  }\n              });\n          } else {\n              // Continue to the next iteration if getFormDetailsStorage is null\n              continue;\n          }\n        }\n        else{\n          const getFormDetailsStorage = JSON.parse(this._customeStorage.read(item));\n          if (getFormDetailsStorage !== null) {\n              getFormDetailsStorage.widgets.forEach(val => {\n                  // Push the identifier into the list array\n                  list.push(val.identifier);\n                  if(val.markup && val.markup && Array.isArray(val.markup)){\n                    this.getSubFormIdentifiers(val.markup,list);\n                  }\n              });\n          } else {\n              // Continue to the next iteration if getFormDetailsStorage is null\n              continue;\n          }\n        }\n    }\n    return list;\n}\n\n  getSubFormIdentifiers(markup:any[],list:any[]): void{\n       markup.forEach(val=>{\n        list.push(val.identifier);\n        if(val.markup && val.markup && Array.isArray(val.markup)){\n          this.getSubFormIdentifiers(val.markup,list);\n        }\n       })\n  }\n\n  /**\n   * Get All List of location\n   *\n   * @param formId\n   *\n   */\n  getListLocationForm(formId) {\n    const getFormDetailsStorage = JSON.parse(this._customeStorage.read(formId))\n    const listGps = []\n    getFormDetailsStorage.widgets.forEach(item => {\n      if (item.name == \"GPS\") {\n        listGps.push({ value: item.identifier, text: item.identifier })\n      }\n    })\n    return listGps;\n  }\n  getListWhichObject(formId) {\n    const getFormDetailsStorage = JSON.parse(this._customeStorage.read(formId))\n    const listwhichobject = []\n    getFormDetailsStorage.widgets.forEach(item => {\n      if (item.name == \"Choice List\") {\n        listwhichobject.push({ value: item.identifier, text: item.identifier })\n      }\n    })\n    return listwhichobject;\n  }\n\n  getExistingListWidgetObject(formId){\n    const getFormDetailsStorage = JSON.parse(this._customeStorage.read(formId))\n    const exhistinglistwidgetobject = []\n    getFormDetailsStorage.widgets.forEach(item => {\n        exhistinglistwidgetobject.push({ value: item.identifier, text: item.identifier })\n    })\n    return exhistinglistwidgetobject;\n  }\n\n  getWidgetsList(formId) {\n    var getFormDetailsStorage = JSON.parse(this._customeStorage.read(formId));\n    if (getFormDetailsStorage === null){\n      getFormDetailsStorage = JSON.parse(this._customeStorage.read('_staticFormObject' + formId));\n    }\n    const widgetList = getFormDetailsStorage.widgets.map(item => ({ value: item, text: item }));\n    return widgetList;\n  }\n  \n  getFilteredWidgetsList(formId) {\n    var getFormDetailsStorage = JSON.parse(this._customeStorage.read(formId));\n    if (getFormDetailsStorage === null){\n      getFormDetailsStorage = JSON.parse(this._customeStorage.read('_staticFormObject' + formId));\n    }\n    var widgetList = [];\n    if(getFormDetailsStorage.widgets !== undefined){\n    widgetList = getFormDetailsStorage.widgets.filter(item => item.isHidden == false);\n        }\n    return widgetList;\n  }\n  \n  getFieldListValidity(formId) {\n    let getFormDetailsStorage = JSON.parse(this._customeStorage.read(formId));\n    if (getFormDetailsStorage === null) {\n      getFormDetailsStorage = JSON.parse(this._customeStorage.read('_staticFormObject' + formId));\n      if (getFormDetailsStorage.widgets === undefined) {\n        getFormDetailsStorage = this._form['_value'];\n      }\n    }\n  \n    const desiredTypes = [\n      'textbox-widget',\n      'choicelist-widget',\n      'counter-widget',\n      'imagecapture-widget',\n      'capturegpslocation-widget',\n      'childrecords-widget',\n      'yes_no-widget',\n      'qrcodesscanner-widget',\n      'barcodesscanner-widget',\n      'computedvalue-widget',\n      'subform-widget',\n    ];\n  \n    const extractWidgets = (item, parentFormId) => {\n      if (item.type === 'subform-widget' && item.markup) {\n        const subformId = parentFormId + item.id;\n        const subform = JSON.parse(this._customeStorage.read(subformId));\n        if (subform && subform.widgets) {\n          return subform.widgets\n            .filter(widget => desiredTypes.includes(widget.type) && !widget.isHidden)\n            .flatMap(widget => extractWidgets(widget, subformId));\n        }\n      }\n      return desiredTypes.includes(item.type) && !item.isHidden ? [{ value: item, text: item }] : [];\n    };\n  \n\n    const widgetList = getFormDetailsStorage.widgets.flatMap(item =>\n      desiredTypes.includes(item.type) && !item.isHidden ? extractWidgets(item, formId) : []\n    );\n  \n    return widgetList;\n  }\n  \n\n  getFieldObject(fieldId: string): any {\n    for (let i = this.allFormFields.length - 1; i >= 0; i--) {\n      if (this.allFormFields[i].identifier === fieldId) {\n        return this.allFormFields[i];\n      }\n    }\n    return null;\n  }\n\n  precompileConditions(nodes: any): string {\n    let space = \" \";\n    let javascript = \"(\";\n    let first_node = true;\n\n    for (let i = 0; i < nodes.length; i++) {\n      let node = nodes[i];\n      if (node.type === \"condition_group\" || node.type === 2) {\n        if (!first_node) {\n          javascript += space + this.compileOperator(node.operator) + space;\n        }\n        javascript += this.precompileConditions(node.nodes);\n      } else {\n        if (!first_node) {\n          javascript += space + this.compileOperator(node.operator) + space;\n        }\n        javascript += this.compileExpression(node.expression);\n      }\n      first_node = false;\n    }\n    javascript += \")\";\n    return javascript;\n  }\n\n  compileOperator(op: string): string {\n    switch (op) {\n      case \"AND\":\n        return \"&&\";\n      case \"OR\":\n        return \"||\";\n      case \"is equal to\":\n      case \"equals\":\n        return \"==\";\n      case \"does not equal\":\n      case \"is not equal to\":\n        return \"!==\";\n      case \"is less than\":\n      case \"comes before\":\n        return \"<\";\n      case \"is less than or equal\":\n        return \"<=\";\n      case \"is greater than\":\n      case \"comes after\":\n        return \">\";\n      case \"is greater than or equal\":\n        return \">=\";\n      case \"count equal to\":\n        return \".length ==\";\n      case \"count less than\":\n        return \".length <\";\n      case \"count greater than\":\n        return \".length >\";\n      case \"contains\":\n        return \".includes\"; // Adding contains case\n      default:\n        return op;\n    }\n  }\n\n  compileExpression(exp: any): string {\n    let space = \" \";\n    let javascript;\n    const fieldObj = this.getFieldObject(exp.expression_identifier);\n\n    if (exp.expression_operator === \"starts with\") {\n      javascript = `(${this.compileIdentifier(exp.expression_identifier, fieldObj)})`;\n      javascript += `.indexOf(`;\n      if (exp.expression_value === \"fixed value\") {\n        javascript += this.compileExprFixedVal(exp.expression_value_fixed, fieldObj);\n      } else {\n        javascript += this.compileIdentifier(exp.expression_value, fieldObj);\n      }\n      javascript += `) == 0`;\n    }\n    else if (exp.expression_operator === \"contains\" || exp.expression_operator === \"does not contains\") { // Handling contains and does not contain\n      if (exp.expression_operator === \"does not contains\") {\n          javascript = `!(${this.compileIdentifier(exp.expression_identifier, fieldObj)}.includes(`;\n      } else {\n          javascript = `(${this.compileIdentifier(exp.expression_identifier, fieldObj)}.includes(`;\n      }\n      if (exp.expression_value === \"fixed value\") {\n          javascript += this.compileExprFixedVal(exp.expression_value_fixed, fieldObj);\n      } else {\n          javascript += this.compileIdentifier(exp.expression_value, fieldObj);\n      }\n      javascript += `))`;\n    } else if (fieldObj && fieldObj.main_type === \"choice\") {\n      javascript = `(${this.compileIdentifier(exp.expression_identifier, fieldObj)})`;\n      if (exp.expression_value === \"empty value\") {\n        if (exp.expression_operator === \"contains\") {\n          javascript += `.length == 0`;\n        } else {\n          javascript += `.length > 0`;\n        }\n      } else {\n        javascript += `.indexOf(`;\n        if (exp.expression_value === \"fixed value\") {\n          javascript += this.compileExprFixedVal(exp.expression_value_fixed, fieldObj);\n        } else {\n          javascript += this.compileIdentifier(exp.expression_value, fieldObj);\n        }\n        if (exp.expression_operator === \"contains\") {\n          javascript += `) != -1`;\n        } else {\n          javascript += `) == -1`;\n        }\n      }\n    } else {\n      javascript = this.compileIdentifier(exp.expression_identifier, fieldObj);\n      if (exp.expression_operator.includes(\"count\")) {\n        javascript += this.compileOperator(exp.expression_operator) + space;\n      } else if (exp.expression_value === \"empty value\" && fieldObj && fieldObj.mainType === \"date\") {\n        javascript = exp.expression_identifier + space + this.compileOperator(exp.expression_operator);\n      } else {\n        javascript += space + this.compileOperator(exp.expression_operator) + space;\n      }\n      if (exp.expression_value === \"fixed value\") {\n        javascript += this.compileExprFixedVal(exp.expression_value_fixed, fieldObj);\n      } else if (exp.expression_value === \"empty value\") {\n        javascript += `''`;\n      } else {\n        javascript += space + this.compileIdentifier(exp.expression_value, fieldObj);\n      }\n    }\n\n    return javascript;\n  }\n\n  compileIdentifier(identifier: string, fieldObj: any): string {\n    if (fieldObj && fieldObj.mainType === \"date\") {\n      if (identifier === \"empty_value\" || identifier === \"empty value\") {\n        return \"''\";\n      }\n      return `new Date(${identifier}).getTime()`;\n    }\n    return identifier;\n  }\n\n  compileExprFixedVal(val: any, obj: any): string {\n    if (obj && obj.mainType === \"text\" && obj.inputType === \"numeric\") {\n      return ` ${val}`;\n    }\n    if (obj && obj.mainType === \"date\") {\n      return `new Date('${val}').getTime()`;\n    } else if (obj && obj.mainType === \"yes_no\") {\n      if (val === \"Yes\") {\n        return \"'1'\";\n      } else if (val === \"No\") {\n        return \"'0'\";\n      } else {\n        return val;\n      }\n    } else {\n      return ` '${val}'`;\n    }\n  }\n  \n  \n\n  // Update only form script\n  async updateFormScriptDetails(formScriptData: any, formId: any): Promise<any> {\n    const formScriptDetails = {\n      form_id: formId,\n      form_script: formScriptData\n    }\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'saveFormScript/', formScriptDetails).subscribe((response: any) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  // Get languages22\n  getFormLanguages(formId) {\n    const form = JSON.parse(this._customeStorage.read('_staticFormObject' + formId))\n    if (form && form.languages22) {\n      // Extract the \"code\" values from the \"languages22\" array\n      const codes = form.languages22\n        .filter(Array.isArray) // Filter out non-array elements\n        .map(arr => arr.map(item => item.code)) // Map to \"code\" values\n\n      // Flatten the result to get a single array of codes\n      const flattenedCodes = [].concat(...codes);\n      return flattenedCodes;\n    } else {\n      return [];\n    }\n  }\n\n  // Upload form icon\n  uploadFormIcon(formIcon: any, formId: any) {\n    const updateData = new FormData();\n    const defaulIcon = formIcon ? '0' : '1';\n    updateData.append('default_icon', defaulIcon);\n    updateData.append('form_id', formId);\n    if (formIcon) {\n      updateData.append('formicon', formIcon);\n    }\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'saveFormIcon/', updateData).subscribe((response: any) => {\n        resolve(response.formIcon.filepath);\n      }, reject);\n    });\n\n  }\n\n  async validateWidgetDelition(deleting_id, form_id, widget, isFormFresh): Promise<any> {\n    try {\n     \n\n        const hasValidityDependents = widget.validityDependents && widget.validityDependents.length > 0;\n        const hasDependents = widget.dependents && widget.dependents.length > 0;\n\n        const validityDependentsCondition = !widget.validityDependents || widget.validityDependents.length === 0;\n        const dependentsCondition = !widget.dependents || widget.dependents.length === 0;\n\n       \n\n        if (!(validityDependentsCondition && dependentsCondition)) {\n            // If either condition is true, proceed to the else block\n            if (hasValidityDependents) {\n                alert(\"Identifier used in Validity Conditions of Field \" + widget.validityDependents);\n            }\n            if (hasDependents) {\n                alert(\"Identifier used in Visibility Conditions of Field \" + widget.dependents);\n            }\n        } else {\n            if(!isFormFresh){\n              // If both conditions are false, proceed with the HTTP request\n             \n              return new Promise((resolve, reject) => {\n                  this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'validateWidgetDelition/', { deleting_id, form_id }).subscribe(\n                      (response: any) => {\n                         \n                          resolve(response);\n                      },\n                      (error) => {\n                          \n                          reject(error);\n                      }\n                  );\n              });\n            }else{\n              return {is_deletable : true}\n            }\n        }\n    } catch (error) {\n        \n        throw error;\n    }\n}\n\n  preprocessValidityConditions(output: any[]): any[] {\n    let _results: any[] = [];\n    var widget, i, len;\n    for (i = 0, len = output.length; i < len; i++) {\n      widget = output[i];\n      // Remove existing validity dependents\n      this.removeDependents(output, widget.identifier, 'validityDependents');\n      if (widget.validityConditions) {\n        // JSON parsing for string validity conditions\n        if (typeof widget.validityConditions === 'string' && widget.validityConditions.trim() !== '\"\"') {\n          try {\n            widget.validityConditions = JSON.parse(widget.validityConditions);\n          } catch (e) {\n            \n          }\n        }\n        if(widget.validityConditions == '\"\"')\n          {\n            delete widget.validityConditions;\n            delete widget.validityConditionJs;\n          }\n        else if (widget.validityConditions.nodes.length === 1 &&\n            widget.validityConditions.nodes[0].nodes &&\n            widget.validityConditions.nodes[0].nodes.length === 0) {\n          delete widget.validityConditions;\n          delete widget.validityConditionJs;\n        } else {\n          widget.validityConditionJs = this.precompileConditions(widget.validityConditions.nodes);\n          this.traverseAndVisit(output, widget.validityConditions.nodes, widget.identifier, \"validityDependents\");\n        }\n      } else {\n        widget.validityConditionJs = \"\";\n      }\n\n      if (widget.markup && widget.type == 'subform-widget') {\n        _results.push(this. preprocessValidityConditions(widget.markup));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  }\n\n  preprocessVisidilityConditions(output: any[]): any[] {\n    let _results: any[] = [];\n    var widget, i, len;\n    for (i = 0, len = output.length; i < len; i++) {\n      widget = output[i];\n      // Remove existing dependents\n      this.removeDependents(output, widget.identifier, 'dependents');\n      if (widget.visibilityConditions) {\n        // JSON parsing for string validity conditions\n        if (typeof widget.visibilityConditions === 'string' && widget.visibilityConditions.trim() !== '\"\"') {\n          try {\n            widget.visibilityConditions = JSON.parse(widget.visibilityConditions);\n          } catch (e) {\n           \n          }\n        }\n        if(widget.visibilityConditions == '\"\"')\n          {\n            delete widget.visibilityConditions;\n            delete widget.visibilityConditionJs;\n          }\n          else if (widget.visibilityConditions.nodes.length === 1 &&\n            widget.visibilityConditions.nodes[0].nodes &&\n            widget.visibilityConditions.nodes[0].nodes.length === 0) {\n          delete widget.visibilityConditions;\n          delete widget.visibilityConditionJs;  \n        } else {\n          widget.visibilityConditionJs = this.precompileConditions(widget.visibilityConditions.nodes);\n          this.traverseAndVisit(output, widget.visibilityConditions.nodes, widget.identifier, \"dependents\");\n        }\n      } else {\n        widget.visibilityConditionJs = \"\";\n      }\n\n      if (widget.markup && widget.type == 'subform-widget') {\n        _results.push(this.preprocessVisidilityConditions(widget.markup));\n      } else {\n        _results.push(void 0);\n      }\n    }\n    return _results;\n  }\n\n  traverseAndVisit(fieldArray: any[], nodes: any[], id: string, dependentsType: string): void {\n    for (let node of nodes) {\n      if (node.type === \"condition_group\" || node.type === 2) {\n        this.traverseAndVisit(fieldArray, node.nodes, id, dependentsType);\n      } else {\n        let widget = this.findById(fieldArray, node.expression.expression_identifier);\n        if (widget) {\n          if (!widget[dependentsType]) {\n            widget[dependentsType] = [];\n          }\n          if (!widget[dependentsType].includes(id)) {\n            widget[dependentsType].push(id);\n          }\n          if (node.expression.expression_value !== \"fixed value\") {\n            let expression_widget = this.findById(fieldArray, node.expression.expression_value);\n            if (expression_widget) {\n              if (!expression_widget[dependentsType]) {\n                expression_widget[dependentsType] = [];\n              }\n              if (!expression_widget[dependentsType].includes(id)) {\n                expression_widget[dependentsType].push(id);\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  findById(fieldArray: any[], id: string): any | undefined {\n    for (let widget of fieldArray) {\n      if (widget.identifier === id) {\n        return widget;\n      }\n    }\n    return undefined; // Return undefined if not found\n  }\n\n  removeDependents(widgets: any[], widgetId: string, dependentType: 'dependents' | 'validityDependents' | 'dependant'): void {\n    widgets.forEach(widget => {\n      if (widget[dependentType] && widget[dependentType].includes(widgetId)) {\n        widget[dependentType] = widget[dependentType].filter(id => id !== widgetId);\n      }\n    });\n  }\n\n  \n}\n","import { HttpClient } from '@angular/common/http';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { Widget } from '../../forms/page/widgets/widget';\nimport { ClipboardService } from './clipboard.service';\nimport { FormBuilderMasterService } from '../../sculptor/form-builder-master/form-builder-master.service';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class WidgetsService {\n\n  private readonly IDENTIFIERS_STORAGE_KEY = 'identifiersArray';\n  identifiersArray: Array<string> = JSON.parse(localStorage.getItem(this.IDENTIFIERS_STORAGE_KEY)) || [];\n  // identifiersArray: Array<string> = [];\n  _widgetDeleteEvent = new EventEmitter<Widget>();\n  _widgetCopyEvent = new EventEmitter<Widget>();\n  _widgetCutEvent = new EventEmitter<Widget>();\n  _widgetPasteEvent = new EventEmitter<Widget>();\n  _widgetPasteAIEvent = new EventEmitter<Widget>();\n  private isPastingAI: boolean = false; // Add a flag to track pasting state\n\n  /**\n   * Constructor\n   */\n  constructor(\n    private _httpClient: HttpClient,\n    private commonLibConfig: CommonLibConfigurationService,\n    private clipboardService: ClipboardService,\n    private _formBuilderMasterService: FormBuilderMasterService\n  ) { }\n\n    // localstrorage for identifiersArray\n    private updateIdentifiersStorage(): void {\n      localStorage.setItem(this.IDENTIFIERS_STORAGE_KEY, JSON.stringify(this.identifiersArray));\n    }\n\n    /**\n   * Update identifiersArray after deleting a widget\n   * @param deletedIdentifier The identifier of the deleted widget\n   */\n  updateIdentifiersAfterDelete(deletedIdentifier: string): void {\n    // Find the index of the deleted identifier\n    const index = this.identifiersArray.indexOf(deletedIdentifier);\n    if (index !== -1) {\n      // Remove the identifier from the array\n      this.identifiersArray.splice(index, 1);\n      // Update localStorage\n      localStorage.setItem(this.IDENTIFIERS_STORAGE_KEY, JSON.stringify(this.identifiersArray));\n    }\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Public methods\n  // -----------------------------------------------------------------------------------------------------\n\n\n\n  /**\n   *\n   * @param identifier\n   * @param formId\n   * @returns\n   */\n  private previousIdentifiersMap: { [key: string]: number } = {}; // Stores the last increment for each base identifier\n\n  getUniqueIdentifier(identifier: string, formId: string): Promise<string> {\n    this.identifiersArray= JSON.parse(localStorage.getItem(this.IDENTIFIERS_STORAGE_KEY));\n    \n    if(this.identifiersArray===null)\n    this.identifiersArray = this._formBuilderMasterService.getIdentiferArray();\n\n    const formData = {\n      'current_id': identifier,\n      'form_id': formId,\n      'other_ids': this.identifiersArray\n    };\n  \n    return this._httpClient.post<string>(`${this.commonLibConfig.axonatorX1Url}getUniqueIdentifier/`, formData).toPromise()\n      .then((response) => {\n        if (this.isValidIdentifier(response)) {\n          // Use a local variable to avoid repeated object access\n          let previousCount = this.previousIdentifiersMap[response];\n          const currResponse=response;\n          if (previousCount !== undefined) {\n            const result=this.extractParts(response);\n            const count=result.number;\n            response=result.base;\n            const n=previousCount+count;\n            previousCount++;\n            if(!Number.isNaN(count)&& count>0)\n            response = `${response}_${n}`;\n          } else {\n            previousCount = 0;\n          }\n\n          this.previousIdentifiersMap[currResponse] = previousCount;\n          this.identifiersArray.push(response);\n\n          // Consider batching updates to localStorage\n          this.updateIdentifiersStorage();\n          \n          return response;\n        } else {\n          \n          throw new Error('Invalid identifier received');\n        }\n      })\n      .catch(error => {\n     \n        throw error;\n      });\n  }\n  \n  extractParts(input: string): { base: string; number: number | null } {\n    const match = input.match(/^(.*)_(\\d+)$/); \n    if (match) {\n      return {\n        base: match[1], \n        number: parseInt(match[2], 10) \n      };\n    }\n    return { base: input, number: null }; \n  }\n  \n  // Function to check if the identifier is valid\n  isValidIdentifier(identifier: string): boolean {\n    // Add your validation logic here, for example:\n    return /^[a-zA-Z0-9_]+$/.test(identifier);\n  }\n    /**\n     *to emit widget click event on widget Delete click\n     *\n     * @param widget\n     */\n   widgetDeleteEvent(widget: Widget): void {\n    this.updateIdentifiersAfterDelete(widget.identifier);\n    this._widgetDeleteEvent.emit(widget);\n  }\n  \n  widgetCopyEvent(widget: Widget): void {\n    this.clipboardService.copyWidget(widget);\n  \n  }\n\n  widgetCutEvent(widget: Widget): void {\n    this.clipboardService.cutWidget(widget);\n    this._widgetCutEvent.emit(widget);\n  }\n\n  widgetPasteEvent() : void {\n    const widgetToPaste = this.clipboardService.pasteWidget();\n\n    if(widgetToPaste){\n      this._widgetPasteEvent.emit(widgetToPaste);\n    }  else{\n     \n    }\n   \n  }\n\n  widgetPasteAIEvent(): void {\n    if (this.isPastingAI) return; // Prevent multiple pastes\n    // this.isPastingAI = true; // Set the flag to true\n\n    const widgetToPaste = this.clipboardService.pasteWidgetAI();\n\n    if (widgetToPaste) {\n      this._widgetPasteAIEvent.emit(widgetToPaste);\n    } else {\n      \n    }\n\n    // Reset the flag after a short delay to allow for another paste\n    setTimeout(() => {\n      this.isPastingAI = false;\n    }, 100); // Adjust the timeout as necessary\n  }\n  \n}\n","<!-- Geofence widget -->\n<ng-container *ngIf=\"widget\">\n    <div [formGroup]=\"group\" class=\"text-widget\" [id]=\"widget.id\" [class.selected-widget]=\"widget.widgetSelect\" (click)=\"onWidgetClick()\">\n        <div class=\"flex gap-2 justify-between box-border\">\n            <div class=\"flex gap-2 items-center box-border\">\n                <!-- <mat-icon svgIcon=\"axo_sculptor_geofence\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon> -->\n                <form [formGroupName]=\"this.widget.id + '_group'\" class=\"prompt box-border\" >\n                    <textarea matInput [id]=\"getTextAreaId()\" [(ngModel)]='widget.prompt' [formControlName]=\"widget.id + '_prompt'\"  #inputField (mousedown)=\"preventFocus($event)\"\n                    (focus)=\"onFocus($event)\" (keydown.enter)=\"updateIdentifier(); inputField.blur()\" (blur)=\"updateIdentifier()\"  class=\"prompt-text box-border\" [readonly]=\"!isEditable\"\n                    (dblclick)=\"onDoubleClick()\" matTooltip=\"Double Click to Edit\"></textarea>\n                </form>\n            </div>\n            <ng-container *ngIf=\"widget.isHidden\">\n              <mat-icon svgIcon=\"axo_sculptor_close_eye\" class=\"h-4 w-4 min-w-4 min-h-4\"></mat-icon>\n            </ng-container>\n        </div>\n\n      <div class ='form-field-input'>\n        <div class=\"icon-input-container\">\n          <mat-icon svgIcon=\"axo_geofence\" class=\"icon relative\"></mat-icon>\n          <input [placeholder]=\"widget.placeholder?widget.placeholder:'Tap to capture'\" readonly=true\n          [formControlName]=\"widget.id\" />\n        </div>\n      </div>\n      <button *ngIf=\"!isEditable\" class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button>\n    </div>\n    <div class=\"tooltip-container\">\n      <!-- <button class=\"find-help\" (click)=\"onClickEditor()\"> <mat-icon svgIcon=\"axo_sculptor_help-text\" class=\"h-4 min-h-4 w-4 min-w-4\" matTooltip=\"Help\"></mat-icon></button> -->\n      <!-- <button class=\"clipboard-icon\" (click)=\"cutWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_cut\" matTooltip=\"Cut\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button> -->\n      <button class=\"clipboard-icon\" (click)=\"copyWidget(widget)\"> <mat-icon svgIcon=\"axo_sculptor_copy\" matTooltip=\"Copy\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"pasteWidget()\" [disabled]=\"isPasteInProgress\"> <mat-icon svgIcon=\"axo_sculptor_paste\" matTooltip=\"Paste\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon></button>\n      <button class=\"clipboard-icon\" (click)=\"confirmbutton()\"><mat-icon svgIcon=\"axo_sculptor_delete\" matTooltip=\"Delete\" class=\"h-4 min-h-4 w-4 min-w-4\"></mat-icon>\n      </button>\n      <lib-confirmation-button *ngIf=\"showConfirmation\" (click)=\"delete()\"> </lib-confirmation-button>\n\n    </div>\n\n  </ng-container>\n","import { Component, ElementRef, HostListener, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { PropertiesService } from '../../../common-property-panel/properties/properties.service';\nimport { GeoFence } from '../../../forms/page/widgets/geofence';\nimport { WidgetsService } from '../widgets.service';\nimport { FormBuilderMasterService } from '../../../sculptor/form-builder-master/form-builder-master.service';\nimport { WidgetDropListComponent } from '../../../sculptor/form-builder-master/canvas/widget-drop-list/widget-drop-list.component';\n\n@Component({\n  selector: 'lib-geofence',\n  templateUrl: './geofence.component.html',\n  styleUrls: ['./geofence.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class GeofenceComponent implements OnInit {\n  // ---------------inputs-------------------------------\n  @Input() widget: GeoFence;\n  @Input() group: FormGroup;\n  @ViewChild('inputField') inputField: ElementRef;\n\n  // --------------------------------------------\n  /**\n   * constructor\n   *\n   * @param _propertiesService\n   */\n  constructor(\n    private _propertiesService: PropertiesService,\n    private _widgetProperties: WidgetsService,\n    private _formBuilderMasterService: FormBuilderMasterService,\n    private _widgetDropListComponent: WidgetDropListComponent\n\n  ) { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks start\n  // -----------------------------------------------------------------------------------------------------\n  /**\n   * on init\n   */\n  ngOnInit(): void {\n  }\n\n  ngAfterViewInit():void{\n    const textareaElement = document.getElementById(this.getTextAreaId()) as HTMLTextAreaElement;\n    textareaElement.style.height = \"20px\";\n    textareaElement.style.height = `${textareaElement.scrollHeight}px`;\n    // const rows = (this.widget.prompt.length / textareaElement.cols) - 1;\n    // rows <= 1 ? textareaElement.rows = 1 : textareaElement.rows = rows;\n    textareaElement.addEventListener(\"keyup\", e => {\n      const element = e.target as HTMLTextAreaElement;\n      textareaElement.style.height = \"20px\";\n      textareaElement.style.height = `${element.scrollHeight}px`;\n    })\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Lifecycle hooks end\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * to emit widgetClickEvent to show properties of selected widget\n   */\n  onWidgetClick(): void {\n    this._propertiesService.widgetClickEvent(this.widget);\n  }\n  valid:any;\n  debounceTimeout:any;\n  async updateIdentifier(): Promise<void> {\n    // Clear any existing timeout to debounce the function calls\n    if (this.debounceTimeout) {\n        clearTimeout(this.debounceTimeout);\n    }\n\n    // Set a new timeout\n    this.debounceTimeout = setTimeout(async () => {\n        try {\n            const newIdentifier = this.widget.identifier.replace(/[_0-9]/g, '');\n            // Do not clean the prompt by removing digits or replacing characters\n            const promptCleaned = this.widget.prompt; // No modifications here\n\n            if (this.widget.prompt !== newIdentifier) {\n                // Directly add a unique identifier without validating\n                if (!this.widget.identifier.includes(promptCleaned)) {\n                    await this._widgetDropListComponent.addUniqueIdentifier(this.widget);\n                }\n            }\n\n            this.isEditable = false; // Set back to read-only after updating\n        } catch (error) {\n            console.error(\"Error updating identifier:\", error); // Log the error for debugging\n        }\n    }, 300); // Set the debounce timeout interval to 300ms (adjust as necessary)\n}\n  /**\n * to emit widgetDeleteEvent to Delete Widget\n */\n  delete(): void {\n    this._widgetProperties.widgetDeleteEvent(this.widget);\n    this._formBuilderMasterService.triggerLocalstorageFormUpdate();\n    this._formBuilderMasterService.triggersetDropViewFormUpdate();\n  }\n  onClickEditor(): void {\n    this._widgetDropListComponent.toggleEditor(this.widget);\n  }\n  showConfirmation: boolean = false;\n  confirmbutton () {\n    this.showConfirmation = !this.showConfirmation;\n  }\n  @HostListener('mouseenter')\n  onMouseEnter() {\n    this.showConfirmation = false;\n  }\n  copyWidget(): void {\n    this._widgetProperties.widgetCopyEvent(this.widget);\n  }\n  cutWidget(): void {\n    this._widgetProperties.widgetCutEvent(this.widget);\n  }\n  isPasteInProgress: boolean = false;\n  pasteWidget(): void {\n    this.isPasteInProgress = true;\n  // Call the widget paste event\n    this._propertiesService.widgetClickEvent(this.widget);\n    this._widgetProperties.widgetPasteEvent();\n\n  // Set a timeout to reset the flag after a certain period\nsetTimeout(() => {\n  // Reset the flag after a certain period (e.g., 500 milliseconds)\n  this.isPasteInProgress = false;\n}, 500); // Adjust the timeout duration as needed\n}\n\n    calculateHeight(): number {\n    const promptLength = this.getPromptLength();\n    const lineHeight = 15; \n    const minHeight = 10; \n    const additionalHeight = Math.ceil(promptLength / 30) * lineHeight; \n    const totalHeight = minHeight + additionalHeight;\n  \n    return totalHeight;\n  }\n  \ngetPromptLength(): number {\n    return this.widget.prompt ? this.widget.prompt.length : 0;\n}\nonDoubleClick(event: MouseEvent) {\n  if (!this.isEditable) {\n      this.toggleEditable();\n  }\n}\nisEditable: boolean = false;\ntoggleEditable(): void {\n  this.isEditable = !this.isEditable;\n  if (this.isEditable) {\n    setTimeout(() => this.inputField.nativeElement.focus(), 0); // Focus the input field when it becomes editable\n  }\n}\n// Prevent focus on single click\npreventFocus(event: MouseEvent): void {\n  if (!this.isEditable) {\n    event.preventDefault();\n  }\n}\n  // Handle focus event\n  onFocus(event: FocusEvent): void {\n    if (!this.isEditable) {\n      (event.target as HTMLInputElement).blur();\n    }\n    this.inputField.nativeElement.select();\n  }\n\n  getTextAreaId(): string{\n    const promptId = `prompt-widget.${this.widget.id}`;\n    return promptId;\n  }\n}","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { JsonConvert, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { GeoFenceWidgetValue } from './widget-value/geo-fence-widget-value';\nimport { ParseFloatConverter } from '../value-converters/parse-float-converter';\nimport { GeofenceComponent } from '../../../sculptor-lib/widgets/geofence/geofence.component';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from '../common/property-panel-field';\nimport { WidgetType } from '../common/widget-enums';\n\ntype GeoFenceValue = Type<Array<GeoFenceWidgetValue>>;\n@JsonObject('GeoFence')\nexport class GeoFence extends Widget {\n  component: Type<GeofenceComponent> = GeofenceComponent;\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Centre', choices: [],\n    required: true, helpText: 'Select location', sortIndex: 2\n})\n  @JsonProperty(Constants.Centre, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  centre: string = '';\n  @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  helpText: string = '';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Radius',\n    helpText: 'Enter radius',\n    required: true\n  })\n  @JsonProperty(Constants.Radius, ParseFloatConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  radius: string;\n  // widgetIcon: string ='axo_location';\n  @JsonProperty(Constants.dependant, [], PropertyConvertingMode.IGNORE_NULLABLE)\n  dependents: [];//Dependant\n\n  @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  markup: string = '';\n\n  name: String;\n  value: GeoFenceValue;\n\n  constructor(field?: Widget) {\n    super(field);\n    if (field) {\n      this.geoFence(field);\n    }\n    else {\n      this.newGeoFence();\n    }\n  }\n  /**\n   * get widget value\n   *\n   * @returns\n   */\n  getWidgetValue(): any {\n    return this.value;\n  }\n\n  /**\n   * Set widget Value\n   *\n   * @param value\n   */\n  setWidgetValue(value: any) {\n    this.value = value;\n  }\n  /**\n   * this will return serialize of widget\n   */\n  getWidgetSerializedValue() {\n    if (this.value) {\n      const jsonConvert: JsonConvert = new JsonConvert();\n      const value = this.value as GeoFenceValue;\n      const newValue = jsonConvert.serialize(value, GeoFenceWidgetValue);\n      return JSON.stringify(newValue.value[0].value[0]);\n    }\n    else {\n      return '';\n    }\n\n  }\n  // Function to create new link object\n  newGeoFence(): void {\n    this.prompt='Geofence';\n    this.helpText = '';\n    this.centre = '';\n    this.radius = '';\n    this.value = null;\n    this.type = WidgetType.geoFence;\n    this.dependents = [];\n    this.mainType = 'geofence';\n    this.subType = 'geofence';\n    this.name ='GeoFence';\n    this.markup = '';\n    this.placeholder='Tap to capture';\n  }\n\n  /**\n   * function to create link object with existing values\n   *\n   *@param field\n   *\n   */\n  geoFence(field): void {\n    this.prompt=field.prompt;\n    this.helpText = field.helpText;\n    this.centre = field.center;\n    this.radius = field.radius;\n    this.value = field.value;\n    this.type = field.type;\n    this.identifier = field.identifier;\n    this.mainType = field.mainType;\n    this.subType = field.subType;\n    this.dependents = field.dependant;\n    this.name = field.name;\n    this.markup = field.markup;\n    this.placeholder = field.placeholder;\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n    const excludedProperties = ['widgetLayout', 'repopulateValue'];\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    let uiProperties = new Array(propertyNames.length); // to hold sorted property names\n    const commonProperties = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = GeoFence.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata && !excludedProperties.includes(propertyName)) {\n        properties[propertyName] = metadata;\n        if (metadata.propertyType === \"common\" && metadata.label === \"Choices\"){\n        }\n        else if (metadata.sortIndex != null) {\n          uiProperties.splice(metadata.sortIndex, 1, propertyName);\n        }\n        else {\n          commonProperties.push(propertyName);\n        }\n      }\n    }\n    uiProperties = uiProperties.filter(a => a);\n    const data = {\n      properties: properties,\n      keys: uiProperties.concat(commonProperties)\n    };\n    return data;\n  }\n}\n","\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../../common/constants';\nimport { GeoFenceValueConverter } from \"../../value-converters/geo-fence-value-converter\";\nimport { GeoFence } from \"../geofence\";\nimport { LocationValue } from './location-object-value';\n\n@JsonObject(\"ApplyGeoFenceWidgetValue\")\nexport class ApplyGeoFenceWidgetValue  {\n    \n    @JsonProperty(Constants.geoFence,GeoFenceValueConverter,PropertyConvertingMode.IGNORE_NULLABLE)   \n    geoFence: GeoFence = null;\n\n    @JsonProperty(Constants.formObjectTitle,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n    formObjectTitle: string = '';\n\n    @JsonProperty(Constants.formObjectSubTitle,String,PropertyConvertingMode.IGNORE_NULLABLE)   \n    formObjectSubTitle: string = ' ';\n\n    @JsonProperty(Constants.formObjectId,String,PropertyConvertingMode.IGNORE_NULLABLE) \n    formObjectId: string = '';\n\n    @JsonProperty(Constants.inside,Boolean,PropertyConvertingMode.IGNORE_NULLABLE) \n    inside: boolean = false;\n\n    @JsonProperty(Constants.location,LocationValue,PropertyConvertingMode.IGNORE_NULLABLE) \n    location: LocationValue = null;\n\n    constructor(applyGeoFenceObject?: ApplyGeoFenceWidgetValue) {\n       \n        if (applyGeoFenceObject) {\n            this.createGeoFenceValue(applyGeoFenceObject);\n        } else {\n            this.createNewGeoFenceValue();\n        }\n    }\n\n    // Function to create new apply geofence object\n    createNewGeoFenceValue(): void {\n     this.geoFence = null;\n     this.formObjectTitle = null;\n     this.formObjectSubTitle = null;\n     this.formObjectId = null;\n     this.inside = null;\n     this.location = null;\n    }\n\n    /**function to create apply geofence object with existing values\n     *\n     *@param applyGeoFenceObject\n     *\n     */\n     createGeoFenceValue(applyGeoFenceObject?): void {\n        this.geoFence = applyGeoFenceObject.geoFence;\n        this.formObjectTitle = applyGeoFenceObject.formObjectTitle;\n        this.formObjectSubTitle = applyGeoFenceObject.formObjectSubTitle;\n        this.formObjectId = applyGeoFenceObject.formObjectId;\n        this.inside = applyGeoFenceObject.inside;\n        this.location = applyGeoFenceObject.location;\n    }\n}\n","import { Any, JsonConvert } from 'json2typescript';\nimport { WidgetSubType, WidgetType } from './widget-enums';\nimport { ReferenceListValue } from '../widgets/widget-value/reference-list-object-value';\nimport { ImageWidgetValue } from '../widgets/widget-value/image-widget-value';\nimport { DocumentWidgetValue } from '../widgets/widget-value/document-widget-value';\nimport { GPSWidgetValue } from '../widgets/widget-value/gps-widget-value';\nimport { ChildRecordValue } from '../widgets/widget-value/child-record-value';\nimport { GeoFenceWidgetValue } from '../widgets/widget-value/geo-fence-widget-value';\nimport { LanguageWidgetValue } from '../widgets/widget-value/language-widget-value';\nimport { DateRangeValue } from '../widgets/widget-value/dateRangeValue';\nimport { AxoUtils } from '../../../axo-utils/axo-utils';\nimport { WidgetConcreteClassConverter } from '../value-converters/widget-concrete-class-converter';\nimport { ApplyGeoFenceWidgetValue } from '../widgets/widget-value/apply-geo-fence-widget-value';\nimport { VerificationWidgetValue } from '../widgets/widget-value/verification-widget-value';\n\nexport class WidgetValueHandler {\n    public static getConcreteWidgetValue(\n        type: string,\n        subType?: string,\n        value?: any\n    ): Any {\n        const jsonConvert: JsonConvert = new JsonConvert();\n        switch (type) {\n            case WidgetType.textBox:\n                switch (subType) {\n                    case WidgetSubType.text:\n                        return value;\n                    case WidgetSubType.number:\n                        value = parseInt(value);\n                        return value;\n                    case WidgetSubType.decimal:\n                        value = parseFloat(value);\n                        return value;\n                    default:\n                        return value;\n                }\n            case WidgetType.autoNumber:\n                switch (subType) {\n                    case WidgetSubType.number:\n                        value = parseInt(value);\n                        return value;\n                    default:\n                        return value;\n                }\n            case WidgetType.staticMedia:\n                switch (subType) {\n                    case WidgetSubType.staticMedia:\n                        return value;\n                    default:\n                        return value;\n                }\n            case WidgetType.groupHeader:\n                return value;\n            case WidgetType.choiceList:\n                switch (subType) {\n                    case WidgetSubType.referenceList:\n                        if (typeof (value) === 'string') {\n                            if(value === ''){\n                                value = null;\n                            }else{\n                                value = jsonConvert.deserializeArray<ReferenceListValue>(JSON.parse(value), ReferenceListValue);\n                            }\n                        } else {\n                            value = jsonConvert.deserializeArray<ReferenceListValue>(value, ReferenceListValue);\n                        }\n                        return value;\n                    case WidgetSubType.fixedList:\n                        if (typeof (value) === 'string') {\n                            if(value === ''){\n                                value = null;\n                            }else{\n                                try{\n                                    value = JSON.parse(value);\n                                }\n                                catch{\n                                    value = [value];\n                                }\n\n                            }\n                        }\n                        //value = jsonConvert.deserializeArray<String>(value, String);\n                        return value;\n                    case WidgetSubType.imageFixedList:\n                        //value = jsonConvert.deserializeArray<String>(value, String);\n                        return value;\n                    case WidgetSubType.apiList:\n                        value = jsonConvert.deserializeArray<ReferenceListValue>(value, ReferenceListValue);\n                        return value;\n                    default:\n                        //value = jsonConvert.deserializeArray<ReferenceListValue>(value, ReferenceListValue);\n                        return value;\n                }\n            case WidgetType.imageCapture:\n                if (typeof (value) === 'string') {\n                    if(value === '[]'){\n                        value = null;\n                    }else{\n                        value = jsonConvert.deserializeArray<ImageWidgetValue>(JSON.parse(value), ImageWidgetValue);\n                    }\n                } else {\n                    value = jsonConvert.deserializeArray<ImageWidgetValue>(value, ImageWidgetValue);\n                }\n                return value;\n            case WidgetType.document:\n                value = JSON.parse(value);\n                value = jsonConvert.deserializeArray<DocumentWidgetValue>(value, DocumentWidgetValue);\n                return value;\n            case WidgetType.signature:\n                return value;\n            case WidgetType.captureGpsLocation:\n                if (typeof (value) === 'string') {\n                    if(value === ''){\n                        value = null;\n                    }else{\n                        value = jsonConvert.deserializeArray<GPSWidgetValue>(JSON.parse(value), GPSWidgetValue);\n                    }\n                } else {\n                    value = jsonConvert.deserializeArray<GPSWidgetValue>(value, GPSWidgetValue);\n                }\n                return value;\n                // switch (subType) {\n                //     case WidgetSubType.number:\n                //         value = jsonConvert.deserializeArray<GPSWidgetValue>(value, GPSWidgetValue);\n                //         return value;\n                //     default:\n                //         value = jsonConvert.deserializeArray<GPSWidgetValue>(value, GPSWidgetValue);\n                //         return value;\n                // }\n            case WidgetType.dateTime:\n                switch (subType) {\n                    case WidgetSubType.date:\n                        value = AxoUtils.formatStringToDate(value);\n                        // value = new DateValue(jsonConvert.deserialize(value, DateValue) as DateValue);\n                        return value;\n                    case WidgetSubType.dateTime:\n                        //value = new DateTimeValue(jsonConvert.deserialize(value, DateTimeValue) as DateTimeValue);\n                        return value;\n                    case WidgetSubType.time:\n                        //value = new TimeValue(jsonConvert.deserialize(value, TimeValue) as TimeValue);\n                        return value;\n                    case WidgetSubType.dateRange:\n                        const dateRangeValue = value.split(',');\n                        const from = AxoUtils.formatDateToCustomDateFormat(AxoUtils.formatStringToDate(dateRangeValue[0]),'YYYY-MM-DD');\n                        const to = AxoUtils.formatDateToCustomDateFormat(AxoUtils.formatStringToDate(dateRangeValue[1]),'YYYY-MM-DD');\n                        const dateDto = new DateRangeValue();\n                        dateDto.from = from;\n                        dateDto.to = to;\n                        return dateDto;\n                    default:\n                        //value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        return value;\n                }\n            case WidgetType.timeStamp:\n                switch (subType) {\n                    case WidgetSubType.timeStamp:\n                        value = AxoUtils.formatDateFromUTCToLocal(value);\n                        //value = new DateTimeValue(jsonConvert.deserialize(value, DateTimeValue) as DateTimeValue);\n                        return value;\n\n                    default:\n                        // value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        value = AxoUtils.formatDateFromUTCToLocal(value);\n                        return value;\n                }\n            case WidgetType.toggle:\n                switch (subType) {\n                    case WidgetSubType.toggle:\n                        if (value == 1) {\n                            return true;\n                        }\n                        else {\n                            return false;\n                        }\n                    default:\n                        return value;\n                }\n            case WidgetType.barCodeScanner:\n                switch (subType) {\n                    case WidgetSubType.number:\n                        // value = new NumericValue(jsonConvert.deserialize(value, NumericValue) as NumericValue);\n                        return value;\n                    default:\n                        //value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        return value;\n                }\n            case WidgetType.qrCodeScanner:\n                switch (subType) {\n                    case WidgetSubType.number:\n                        //value = new NumericValue(jsonConvert.deserialize(value, NumericValue) as NumericValue);\n                        return value;\n                    default:\n                        //value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        return value;\n                }\n            case WidgetType.counter:\n                switch (subType) {\n                    case WidgetSubType.counter:\n                        //value = new NumericValue(jsonConvert.deserialize(value, NumericValue) as NumericValue);\n                        return value;\n                    default:\n                        // value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        return value;\n                }\n            case WidgetType.formula:\n                switch (subType) {\n                    case WidgetSubType.number:\n                        return parseFloat(value);\n                    default:\n                        //value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        return value;\n                }\n            case WidgetType.uniqueId:\n                switch (subType) {\n                    case WidgetSubType.uniqueId:\n                        //value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        return value;\n                    default:\n                        // value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        return value;\n                }\n            case WidgetType.audio:\n                switch (subType) {\n                    case WidgetSubType.number:\n                        // value = jsonConvert.deserializeArray<AudioVideoWidgetValue>(value, AudioVideoWidgetValue);\n                        return value;\n                    default:\n                        //value = jsonConvert.deserializeArray<AudioVideoWidgetValue>(value, AudioVideoWidgetValue);\n                        return value;\n                }\n            case WidgetType.video:\n                switch (subType) {\n                    case WidgetSubType.number:\n                        // value = jsonConvert.deserializeArray<AudioVideoWidgetValue>(value, AudioVideoWidgetValue);\n                        return value;\n                    default:\n                        // value = jsonConvert.deserializeArray<AudioVideoWidgetValue>(value, AudioVideoWidgetValue);\n                        return value;\n                }\n            case WidgetType.subForm:\n                return new WidgetConcreteClassConverter().deserialize(JSON.parse(value));\n            case WidgetType.childRecords:\n                switch (subType) {\n                    case WidgetSubType.childRecords:\n                        value = jsonConvert.deserializeArray<ChildRecordValue>(value, ChildRecordValue);\n                        return value;\n                    default:\n                        value = jsonConvert.deserializeArray<ChildRecordValue>(value, ChildRecordValue);\n                        return value;\n                }\n            case WidgetType.verification:\n                switch (subType) {\n                    case WidgetSubType.face:\n                        if (typeof (value) === 'string') {\n                            value = jsonConvert.deserialize<VerificationWidgetValue>(JSON.parse(value), VerificationWidgetValue);\n                        } else {\n                            value = jsonConvert.deserialize<VerificationWidgetValue>(value, VerificationWidgetValue);\n                        }\n                        return value;\n                    default:\n                        value = jsonConvert.deserialize<VerificationWidgetValue>(value, VerificationWidgetValue);\n                        return value;\n                }\n            case WidgetType.language:\n                switch (subType) {\n                    case WidgetSubType.language:\n                        value = JSON.parse(value);\n                        value = jsonConvert.deserialize(value, LanguageWidgetValue) as LanguageWidgetValue;\n                        return value;\n                    default:\n                        // value = jsonConvert.deserializeArray<LanguageWidgetValue>(value, LanguageWidgetValue);\n                        return value;\n                }\n            case WidgetType.geoFence:\n                switch (subType) {\n                    case WidgetSubType.geofence:\n                        if (typeof (value) === 'string') {\n                            value = jsonConvert.deserializeArray<GeoFenceWidgetValue>(JSON.parse(value), GeoFenceWidgetValue);\n                        } else {\n                            value = jsonConvert.deserializeArray<GeoFenceWidgetValue>(value, GeoFenceWidgetValue);\n                        }\n                        return value;\n                    default:\n                        value = jsonConvert.deserializeArray<GeoFenceWidgetValue>(value, GeoFenceWidgetValue);\n                        return value;\n                }\n            case WidgetType.applyGeoFence:\n                switch (subType) {\n                    case WidgetSubType.applyGeoFence:\n                        if (typeof (value) === 'string') {\n                            value = jsonConvert.deserialize<ApplyGeoFenceWidgetValue>(JSON.parse(value), ApplyGeoFenceWidgetValue);\n                        } else {\n                            value = jsonConvert.deserialize<ApplyGeoFenceWidgetValue>(value, ApplyGeoFenceWidgetValue);\n                        }\n                        return value;\n                    default:\n                        value = jsonConvert.deserialize<ApplyGeoFenceWidgetValue>(value, ApplyGeoFenceWidgetValue);\n                        return value;\n                }\n            case WidgetType.payment:\n                return value;\n            case WidgetType.stopWatch:\n                switch (subType) {\n                    case WidgetSubType.stopWatch:\n                        //value = new StopWatchValue(jsonConvert.deserialize(value, StopWatchValue) as StopWatchValue);\n                        return value;\n                    default:\n                        // value = new TextValue(jsonConvert.deserialize(value, TextValue) as TextValue);\n                        return value;\n                }\n            case WidgetType.hyperLink:\n                //value = new TextValue(value as TextValue);\n                return value;\n            default:\n                return value;\n        }\n    }\n}\n","import { Type } from '@angular/core';\nimport { Widget } from './widget';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { WidgetType } from '../common/widget-enums';\n\n\n@JsonObject('Payment')\nexport class Payment extends Widget{\n    createFormControl() {\n        throw new Error('Method not implemented.');\n    }\n    component: Type<any> ;\n\n    value:  string = '';\n    @JsonProperty(Constants.helpText, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    helpText: string = '';\n\n    @JsonProperty(Constants.payButtonText,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    payButtonText: string='';\n\n    @JsonProperty(Constants.checkButtonText,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    checkButtonText: string='';\n\n    @JsonProperty(Constants.integrationId,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    integrationId: string='';\n\n    @JsonProperty(Constants.defaultText,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    defaultValue: string='';\n\n     @JsonProperty(Constants.integrationObjectId,String,PropertyConvertingMode.IGNORE_NULLABLE)\n     integrationObjectId: string='';\n\n     @JsonProperty(Constants.markup, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    markup: string = '';\n\n    name: string;\n    \n    constructor(field?: Widget){\n        super(field);\n        if(field){\n            this.payment(field);\n        }\n        else{\n            this.newPayment();\n        }\n        //this.clearValidators();\n    }\n\n    /**\n     * get widget value\n     *\n     * @returns\n     */\n    getWidgetValue(): any {\n        return this.value;\n    }\n\n    /**\n     * Set widget Value\n     *\n     * @param value\n     */\n    setWidgetValue(value: any) {\n        this.value = value;\n    }\n    /**\n     * this will return serialize of widget\n     */\n     getWidgetSerializedValue() {\n        if(this.value){\n            return this.value.toString();\n        }\n        else{\n            return '';\n        }\n    }\n    // Function to create new video object\n    newPayment(): void{\n\n        this.helpText = '';\n        this.payButtonText = '';\n        this.checkButtonText= '';\n        this.integrationId='';\n        this.defaultValue='';\n        this.integrationObjectId='';\n        this.type = WidgetType.payment;\n        this.name = 'Payment';\n        this.markup = '';\n    }\n\n    /**function to create video object with existing values\n    *\n    *@param field\n    *\n    */\n    payment(field): void{\n        \n        this.helpText = field.helpText;\n        this.checkButtonText = field.checkButtonText;\n        this.payButtonText= field.payButtonText;\n        this.integrationId=field.integrationId;\n        this.defaultValue=field.defaultValue;\n        this.integrationObjectId=field.integrationObjectId;\n        this.type = field.type;\n        this.identifier = field.identifier;\n        this.name = field.name;\n        this.markup = field.markup;\n     }\n\n    /*\n    * Override createValidators\n    */\n    createValidators(): void{\n        //super.createValidators();\n    }\n}\n","import { JsonConvert } from 'json2typescript';\nimport { WidgetValueHandler } from '../common/widget-value-handler';\nimport { AutoNumber } from '../widgets/auto-number';\nimport { BarCode } from '../widgets/bar-code';\nimport { ChoiceList } from '../widgets/choicelist';\nimport { TextBox } from '../widgets/textbox';\nimport { Counter } from '../widgets/counter';\nimport { QrCode } from '../widgets/qr-code';\nimport { UniqueId } from '../widgets/unique-id';\nimport { Link } from '../widgets/link';\nimport { WidgetType } from '../common/widget-enums';\nimport { GroupHeader } from '../widgets/group-header';\nimport { ChildRecord } from '../widgets/child-record';\nimport { AxAudio } from '../widgets/ax-audio';\nimport { Video } from '../widgets/video';\nimport _ from 'lodash';\nimport { StopWatch } from '../widgets/stopwatch';\nimport { DateTime } from '../widgets/datetime';\nimport { TimeStamp } from '../widgets/timestamp';\nimport { Toggle } from '../widgets/toggle';\nimport { Formula } from '../widgets/formula';\nimport { Language } from '../widgets/languages';\nimport { AxImage } from '../widgets/ax-image';\nimport { GPS } from '../widgets/gps';\nimport { Signature } from '../widgets/signature';\nimport { AxDocument } from '../widgets/ax-document';\nimport { StaticMedia } from '../widgets/static-media';\nimport { SubForm } from '../widgets/sub-form';\nimport { GeoFence } from '../widgets/geofence';\nimport { ApplyGeoFence } from '../widgets/apply-geofences';\nimport { Verification } from '../widgets/verification';\nimport { Payment } from '../widgets/payment';\n\nexport class WidgetDeserializer {\n    public static deserializeWidget(widget: any): any {\n        const jsonConvert: JsonConvert = new JsonConvert();\n        let isSubFormWidget = false;\n        const widgetValue = widget.value;\n        isSubFormWidget = widget.hasOwnProperty(isSubFormWidget) ? widget.isSubFormWidget : false;\n        try {\n            switch (widget.type) {\n                case WidgetType.textBox:\n                    widget = jsonConvert.deserialize(widget, TextBox) as TextBox;\n                    break;\n                case WidgetType.choiceList:\n                    widget = jsonConvert.deserialize(widget, ChoiceList) as ChoiceList;\n                    break;\n                case WidgetType.qrCodeScanner:\n                    widget = jsonConvert.deserialize(widget, QrCode) as QrCode;\n                    break;\n                case WidgetType.barCodeScanner:\n                    widget = jsonConvert.deserialize(widget, BarCode) as BarCode;\n                    break;\n                case WidgetType.counter:\n                    widget = jsonConvert.deserialize(widget, Counter) as Counter;\n                    break;\n                case WidgetType.uniqueId:\n                    widget = jsonConvert.deserialize(widget, UniqueId) as UniqueId;\n                    break;\n                case WidgetType.hyperLink:\n                    widget = jsonConvert.deserialize(widget, Link) as Link;\n                    break;\n                case WidgetType.groupHeader:\n                    widget = jsonConvert.deserialize(widget, GroupHeader) as GroupHeader;\n                    break;\n                case WidgetType.childRecords:\n                    widget = jsonConvert.deserialize(widget, ChildRecord) as ChildRecord;\n                    break;\n                case WidgetType.audio:\n                    widget = jsonConvert.deserialize(widget, AxAudio) as AxAudio;\n                    break;\n                case WidgetType.video:\n                    widget = jsonConvert.deserialize(widget, Video) as Video;\n                    break;\n                case WidgetType.stopWatch:\n                    widget = jsonConvert.deserialize(widget, StopWatch) as StopWatch;\n                    break;\n                case WidgetType.autoNumber:\n                    widget = jsonConvert.deserialize(widget, AutoNumber) as AutoNumber;\n                    break;\n                case WidgetType.dateTime:\n                    widget = jsonConvert.deserialize(widget, DateTime) as DateTime;\n                    break;\n                case WidgetType.timeStamp:\n                    widget = jsonConvert.deserialize(widget, TimeStamp) as TimeStamp;\n                    break;\n                case WidgetType.toggle:\n                    widget = jsonConvert.deserialize(widget, Toggle) as Toggle;\n                    break;\n                case WidgetType.formula:\n                    widget = jsonConvert.deserialize(widget, Formula) as Formula;\n                    break;\n                case WidgetType.language:\n                    widget = jsonConvert.deserialize(widget, Language) as Language;\n                    break;\n                case WidgetType.imageCapture:\n                    widget = jsonConvert.deserialize(widget, AxImage) as AxImage;\n                    break;\n                case WidgetType.captureGpsLocation:\n                    widget = jsonConvert.deserialize(widget, GPS) as GPS;\n                    break;\n                case WidgetType.document:\n                    widget = jsonConvert.deserialize(widget, AxDocument) as AxDocument;\n                    break;\n                case WidgetType.staticMedia:\n                    widget = jsonConvert.deserialize(widget, StaticMedia) as StaticMedia;\n                    break;\n                case WidgetType.signature:\n                    widget = jsonConvert.deserialize(widget, Signature) as Signature;\n                    break;\n                case WidgetType.subForm:\n                    let widgetMarkup = widget.markup;\n                    widget = jsonConvert.deserialize(widget, SubForm) as SubForm;\n                    if (widgetMarkup !== undefined && widgetMarkup) {\n                        widgetMarkup = widgetMarkup.map(markup => {\n                            markup = WidgetDeserializer.deserializeWidget(markup);\n                            return markup;\n                        });\n                        widget.markup = widgetMarkup;\n                    }\n                    break;\n                case WidgetType.geoFence:\n                    widget = jsonConvert.deserialize(widget, GeoFence) as GeoFence;\n                    break;\n                case WidgetType.applyGeoFence:\n                    widget = jsonConvert.deserialize(widget, ApplyGeoFence) as ApplyGeoFence;\n                    break;\n                case WidgetType.verification:\n                    widget = jsonConvert.deserialize(widget, Verification) as Verification;\n                    break;\n                case WidgetType.payment:\n                    widget = jsonConvert.deserialize(widget, Payment) as Payment;\n                    break;\n                default:\n                    widget;\n                    break;\n            }\n            if (widgetValue !== undefined && widgetValue !== null && !_.isEmpty(widgetValue)) {\n                var value = WidgetValueHandler.getConcreteWidgetValue(\n                    widget.type,\n                    widget.subType,\n                    widgetValue\n                );\n                widget.setWidgetValue(value);\n            }\n        } catch (e) {\n            console.log(widget);\n            console.log(e);\n        }\n        return widget;\n    }\n}\n","import { Widget } from '.././widgets/widget';\nimport { JsonConverter,  JsonCustomConvert, JsonConvert } from 'json2typescript';\nimport { WidgetDeserializer } from '../../../forms/page/value-converters/widget-deserializer';\n\n@JsonConverter\nexport class WidgetConcreteClassConverter implements JsonCustomConvert<Widget[]> {\n    serialize(widgets: Widget[]): any {\n        const jsonConvert: JsonConvert = new JsonConvert();\n        return jsonConvert.serialize(widgets);\n    }\n\n    deserialize(widgets: any): Widget[] {\n        const deserializedWidgets: Widget[] = [];\n        for(let widget of widgets) {\n            widget = WidgetDeserializer.deserializeWidget(widget);\n            deserializedWidgets.push(widget);\n        }\n        return deserializedWidgets;\n    }\n}\n","import { JsonConverter, JsonCustomConvert } from \"json2typescript\";\n\n@JsonConverter\nexport class ListViewTitleConverter implements JsonCustomConvert<string> {\n    serialize(value: any): string {\n        return value.toString();\n    }\n\n    deserialize(value: any): string {\n        if (typeof (value) == 'string') {\n            return value;\n        }\n        else {\n            return null;\n        }\n    }\n\n}","import { JsonConverter,  JsonCustomConvert } from 'json2typescript';\nimport { FormType } from '../common/widget-enums';\n\n@JsonConverter\nexport class FormTypeConverter implements JsonCustomConvert<string> {\n    serialize(value: string): string {\n        return value;\n    }\n\n    deserialize(value: string): string {\n        switch (value) {\n            case\"A\":\n                return FormType.asset\n            case\"T\":\n                return FormType.tracking\n            default:\n                return FormType.asset       \n        }\n    }\n}","import { Time } from '@angular/common';\nimport { Any, JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Widget } from './page/widgets/widget';\nimport { Constants } from './page/common/constants';\nimport { IForm } from './iform';\nimport { WidgetConcreteClassConverter } from './page/value-converters/widget-concrete-class-converter';\nimport { AxoUtils } from '../axo-utils/axo-utils';\nimport { ListViewTitleConverter } from './page/value-converters/list-view-title-converter';\nimport { StringToNumberConverter } from './page/value-converters/string-to-number -converter';\nimport { FormTypeConverter } from './page/value-converters/form-type-converter';\nimport { PropertyPanelField, PropertyPanelFieldMetadata } from './page/common/property-panel-field';\nimport { from } from 'rxjs';\nimport { ParseStringConverter } from './page/value-converters/parse-string-converter';\nimport { ParseIntConverter } from './page/value-converters/parse-int-converter';\n\n@JsonObject('form')\nexport class AxForm implements IForm {\n  @JsonProperty('guid', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  guid: string;\n\n  @JsonProperty('id', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  id: string;\n\n  @JsonProperty('fid', StringToNumberConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  formId: number;\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Enter form name',\n    helpText: 'Enter form name'\n  })\n  @JsonProperty(Constants.form_Name, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  name: string = '';\n\n  @JsonProperty(Constants.form_Name, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  form_Name: string = '';\n\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Plural name',\n    helpText: 'Plural name is used when showing submissions of this form in the mobile and web app.'\n  })\n  @JsonProperty('afnplu', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  afnplu: string = '';\n\n  @JsonProperty(Constants.formType,FormTypeConverter,PropertyConvertingMode.IGNORE_NULLABLE)\n  ft: string; // asset action form\n\n\n  @PropertyPanelField({\n    inputType: 'select', label: 'Form Type', choices:[{value: 'D', text: 'Data Collection'}, {value: 'O', text: 'Object'}, {value: 'A', text: 'Action'}],\n    helpText: 'Specifies the purpose of the form whether its simple data collection, or storing objects information, or logging actions on those objects.'\n  })\n  @JsonProperty('fst', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  fst: string = '';\n\n  @PropertyPanelField({\n    inputType: 'defaultchoicelist', label: 'Object Form', choices:[], conditionInputData:['A'], conditionInputType:'fst',\n    helpText: 'Select the Object form on which this action will be performed. You need to first create an Object form, before creating an Action form.', required: false\n  })\n  @JsonProperty('trackedasset_id', ParseIntConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  trackedasset_id: string = '';\n  @PropertyPanelField({\n    inputType: 'text', label: 'Action Verb', choices:[], conditionInputData:['A'], conditionInputType:'fst',\n    helpText: 'Action Verb'\n  })\n  @JsonProperty('tav', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  tav: string = '';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Task Description', choices:[], conditionInputData:['A'], conditionInputType:'fst',\n    helpText: 'Task Description'\n  })\n  @JsonProperty('td', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  td: string = '';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Custom Label - Title',\n    helpText: 'Custom title will be used instead of the form name, when showing this form in the mobile app.'\n  })\n  @JsonProperty('fclt', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  fclt: string = '';\n\n  @PropertyPanelField({\n    inputType: 'text', label: 'Custom Label - Subtitle',\n    helpText: 'Custom subtitle will be used instead of the form description, when showing this form in the mobile app.'\n  })\n  @JsonProperty('fclst', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  fclst: string = '';\n\n  @JsonProperty('title',String,PropertyConvertingMode.IGNORE_NULLABLE)\n  title: string = '';\n\n  @JsonProperty('lvt', ListViewTitleConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  listViewTitle: string = '';\n  @JsonProperty('lvst', ListViewTitleConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  listViewSubTitle: string = '';\n\n  \n\n  @JsonProperty(Constants.FORM_SCRIPT, String, PropertyConvertingMode.IGNORE_NULLABLE)\n  form_script: string;\n\n  @JsonProperty('lvd', FormTypeConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  lvd: string; \n\n  @PropertyPanelField({\n    inputType: 'defaultchoicelist', label: 'Parent Form', choices: [{value:'',text:''}], conditionInputData:['O','D'], conditionInputType:'fst',\n    helpText: 'Select Parent Form'\n  })\n  @JsonProperty('fp', ParseIntConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  fp: string = '';\n\n  @JsonProperty('parent_id', ParseStringConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  parent_id: string = '';\n\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Form multi language',\n    helpText: 'Form multi language'\n  })\n  @JsonProperty(Constants.MULTI_LANGUAGE, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  multilanguage: boolean;\n\n  @PropertyPanelField({\n    inputType: 'toggle', label: 'CSV export', choices: [],\n    helpText: 'CSV export'\n  })\n  @JsonProperty('isCSVExportEnable', Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  isCSVExportEnable: boolean;\n\n  // @PropertyPanelField({\n  //   inputType: 'toggle', label: 'Is Form Public',\n  //   helpText: 'Is Form Public'\n  // })\n  @JsonProperty(Constants.IS_PUBLIC, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  is_public: boolean = false;\n\n  // @PropertyPanelField({\n  //   inputType: 'text', label: 'Public URL',conditionInputType: 'is_public', conditionInputData: ['true'],\n  //   helpText: 'Enter public URL'\n  // })\n\n  @JsonProperty('public_id', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  public_id: string;\n\n  @PropertyPanelField({\n    inputType: 'icon', label: 'Form Icon'\n  })\n  @JsonProperty('fi', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  icon: string = '';\n  \n  @PropertyPanelField({\n    inputType: 'toggle', label: 'Allow ad hoc',\n    helpText: 'Allow ad hoc'\n  })\n  @JsonProperty(Constants.ALLOW_AD_HOC, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  allow_ad_hoc: boolean = false;\n\n  @JsonProperty(Constants.TimeRestriction, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  timeRestriction: boolean;\n\n  @JsonProperty('remainingTime', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  remainingTime: Time;\n\n  @JsonProperty('isFormEditable', Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  isFormEditable: boolean = false;\n\n  @JsonProperty('totalTime', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  totalTime: Time;\n\n  @JsonProperty('is_expired', Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  isExpired: boolean = false;\n\n  @JsonProperty('thumbnail', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  thumbnail: string = '';\n\n  @JsonProperty('picture', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  picture: string = '';\n\n  @JsonProperty('lvp', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  listViewPicture: string = '';\n\n  @JsonProperty('lvs', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  listViewStatus: string = '';\n\n  @JsonProperty('ff', WidgetConcreteClassConverter, PropertyConvertingMode.IGNORE_NULLABLE)\n  widgets: Array<Widget> = [];\n\n  // @JsonProperty('trackedasset_id', Number, PropertyConvertingMode.IGNORE_NULLABLE)\n  // trackedAssetId: number = 0;\n\n  @JsonProperty(Constants.isValid, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  isValid: boolean = false;\n\n  @JsonProperty(Constants.hideEditButton, Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  hideEditButton: boolean = false;\n\n  @JsonProperty('tid', Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  taskId: string = '';\n\n  @JsonProperty('afoid', Boolean, PropertyConvertingMode.IGNORE_NULLABLE)\n  assetFormObjectId: string = '';\n\n  @JsonProperty('status', String, PropertyConvertingMode.IGNORE_NULLABLE)\n  status: string = 'D';\n\n  // markup: Array<Widget> = [];// markup\n\n    // Initialize form object\n    constructor(form?: AxForm){\n        if(form){\n            this.form(form);\n        }\n        else{\n            this.newForm();\n        }\n    }\n  lvt: string ='';\n  lvst:string='';\n  lvp: string=''\n  lvs: string=''\n\n  // Function to create new form object\n  newForm(): void {\n    this.guid = AxoUtils.guid();\n    this.id = '';\n    this.formId = null;\n    this.form_Name = '';\n    this.name = '';\n    this.ft = '';\n    this.form_script = '';\n    this.is_public = null;\n    this.public_id = null;\n    this.parent_id = ''\n    this.fp = '';\n    this.multilanguage = null;\n    this.isFormEditable = false;\n    this.timeRestriction = false;\n    this.icon = '';\n    this.isValid = true;\n    this.picture = '';\n    this.trackedasset_id = '';\n    this.tav = '';\n    this.td = '';\n    this.status = '';\n    this.lvp = '';\n    this.lvs = '';\n    this.fclt = '';\n    this.fclst = '';\n    this.afnplu = '';\n    this.lvt = '';\n    this.lvst = '';\n    this.fst = '';\n    this.isCSVExportEnable = false;\n    this.hideEditButton = false;\n    this.taskId = '';\n    this.assetFormObjectId = '';\n    this.title = '';\n    // this.markup = []\n  }\n  /**function to create form object with existing values\n  *\n  *@param AxForm\n  *\n  */\n  form(form: AxForm): void {\n\n    this.guid = form.guid;\n    this.id = form.id;\n    this.formId = form.formId;\n    this.name = form.name;\n    this.form_Name = form.name;\n    this.ft = form.ft;\n    this.form_script = form.form_script;\n    this.is_public = form.is_public;\n    this.public_id = form.public_id;\n    this.parent_id = form.parent_id;\n    this.fp = form.fp;\n    this.status = form.status;\n    this.multilanguage = form.multilanguage;\n    this.timeRestriction = false;\n    this.isValid = form.isValid;\n    this.picture = form.picture;\n    this.fclt = form.fclt;\n    this.fclst = form.fclst;\n    this.afnplu = form.afnplu;\n    this.trackedasset_id = form.trackedasset_id;\n    this.isFormEditable = form.isFormEditable;\n    this.tav = form.tav;\n    this.td = form.td;\n    this.lvp = form.listViewPicture\n    this.title = form.title;\n    this.lvt = form.listViewTitle;\n    this.lvst = form.listViewSubTitle;\n    this.lvs = form.listViewStatus;\n    this.fst = form.fst;\n    this.isCSVExportEnable = form.isCSVExportEnable;\n    this.hideEditButton = form.hideEditButton;\n    this.taskId = form.taskId;\n    this.assetFormObjectId = form.assetFormObjectId;\n    // this.markup = form.markup;\n    this.widgets = form.widgets;\n    this.icon = form.icon;\n  }\n\n  /**\n   * This will return the widget map.\n   *\n   * @returns\n   */\n  public getWidgetMap(): Map<string, Widget> {\n    const widgetMap = new Map<string, Widget>();\n    this.widgets.forEach((widget) => {\n      widgetMap.set(widget.identifier, widget);\n    });\n    return widgetMap;\n\n  }\n\n  // Method to retrieve UI metadata for a property\n  public static getPropertyPanelFieldMetadata(target: any, key: string): PropertyPanelFieldMetadata {\n    return Reflect.getMetadata(key, target);\n  }\n\n  // Method to retrieve UI metadata for all properties\n  public getPropertyPanelFieldUIProperties(): any {\n    const properties: { [key: string]: PropertyPanelFieldMetadata } = {};\n\n    const indexMap = new Map<string, number>();\n    // Get the list of property  names using Object.getOwnPropertyNames\n    const propertyNames = Object.getOwnPropertyNames(this);\n    const prop = []; // to hold sorted property names\n    const newProp = []; // to hold property names without sortIndex\n    // Loop through each property name and retrieve the UI metadata using getUIPrPropertyPanelFieldMetadata\n    for (const propertyName of propertyNames) {\n      const metadata = AxForm.getPropertyPanelFieldMetadata(this, propertyName);\n      if (metadata) {\n        properties[propertyName] = metadata;\n        if (metadata.sortIndex) {\n          prop.splice(metadata.sortIndex, 0, propertyName);\n        }\n        else {\n          newProp.push(propertyName);\n        }\n      }\n    }\n    const data = {\n      properties: properties,\n      keys: prop.concat(newProp)\n    };\n    return data;\n  }\n\n}\n","\n/**\n * Data view types\n */\nexport enum ViewType {\n    DataListView = 'Data List View',\n    MapView = 'Map View',\n    BoardView = 'Board View',\n    TaskView = 'Task View'\n}\n\n/**\n * Tag Action Type\n * This will be get used for button tag\n */\nexport enum TagActionType {\n    history = 'history'\n}\n\n/**\n * Tag Value Type\n * TagValueTypes define the tag value type which is text,image and button accordingly\n * tag value type we render the tag and attache the action to the tag suppose we have button value type\n * then button always have action.\n */\nexport enum TagValueTypes{\n    text,\n    image,\n    button\n}\n/**\n * Meta Column\n */\nexport enum ListViewColumnTypes{\n    widget,\n    meta\n}\n/**\n * Task List types\n */\nexport enum TaskListTypes{\n    generic,\n    dedicated\n}\n\n/**\n * Task Groups type\n */\nexport enum TaskGroupTypes{\n    workflowInstance = 'WorkflowInstance',\n    user = 'User'\n}\n\nexport enum DataViewType{\n    formDataView,\n    dedicatedTaskView,\n    genericTaskView\n}\n\n// List View Types\nexport enum ListViewType{\n        listView = 'ListView',\n        taskView = 'TaskView',\n        genericTaskView = 'GenericTaskView'\n}\n","import { FormType } from './../../forms/page/common/widget-enums';\nimport { AxExpression } from '../../enlighten-lib/ax-expression/ax-expression';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\n\nexport class DataViewFilter extends AxFilter {\n    formId: number;\n    formType: FormType |string;\n    constructor(_filter?: DataViewFilter){\n        super(_filter);\n        if(_filter){\n            this.dataViewFilter(_filter);\n        }\n    }\n\n    /**\n     * Create new instance;\n     * here we set default value\n     */\n    newDataViewFilter(): void {\n\n    }\n    /**\n     * Create Data view filter instance\n     *\n     * @param _filter\n     */\n    dataViewFilter(_filter: DataViewFilter): void {\n        this.formId = _filter.formId;\n        this.formType = _filter.formType;\n    }\n\n\n\n    /**\n     * Create Filter instances\n     *\n     * @param filters\n     * @returns\n     */\n    static createFilters(filters: Array<DataViewFilter> ): Array<DataViewFilter>{\n        const _filters: Array<DataViewFilter> = [];\n        if(filters){\n            filters.forEach((_filter) => {\n                const filter=new DataViewFilter(_filter);\n                    if(_filter.isDefault){\n                        filter.searchNodes.forEach((searchNode,index) => {\n                        searchNode.expression=new AxExpression(_filter.searchNodes[index].expression);\n                    });\n                    }\n                _filters.push(filter);\n            });\n        }\n        return _filters;\n    }\n}\n","import { DataViewFilter } from './../data-view/data-view-filter';\nimport { Injectable } from '@angular/core';\nimport { MatSelectChange } from '@angular/material/select';\nimport { AxExpression } from '../../enlighten-lib/ax-expression/ax-expression';\nimport { Attribute, AttributeTypes } from '../../enlighten-lib/data-model/attribute';\nimport { AxDate } from '../../enlighten-lib/fields/types/ax-date';\nimport { AxNumber } from '../../enlighten-lib/fields/types/ax-number';\nimport { AxText } from '../../enlighten-lib/fields/types/ax-text';\nimport { AxTime } from '../../enlighten-lib/fields/types/ax-time';\nimport { DateTime } from '../../enlighten-lib/fields/types/datetime';\nimport { IEnlightenType } from '../../enlighten-lib/fields/types/ienlighten-type';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { ConditionType, FilterType, ScopeType } from '../../enlighten-lib/filters/condition-type';\nimport { SearchNode } from '../../enlighten-lib/filters/search-node';\nimport { WidgetSubType } from '../../forms/page/common/widget-enums';\nimport { Widget } from '../../forms/page/widgets/widget';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { catchError, tap } from 'rxjs/operators';\nimport { AxForm } from '../../forms/ax-form';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\n@Injectable()\nexport class DataViewFiltersService {\n\n  private ActionFormList: BehaviorSubject<AxForm[] | null> = new BehaviorSubject(null);\n  private AssetFormList: BehaviorSubject<AxForm[] | null> = new BehaviorSubject(null);\n  constructor(private _httpClient: HttpClient,\n    private commonLibConfig: CommonLibConfigurationService\n  ) { }\n\n  //axonatorX1Url:string;\n  /**\n   * get app detail from X1 DB\n   */\n  fetchAppDetails(appVersionId: any): Observable<any> {\n     //environment\n    //console.log(this.axonatorX1Url)\n    return this._httpClient.get<any>(this.commonLibConfig.axonatorX1Url + 'fetchAppDetails/?appVersionId=' + appVersionId).pipe(\n      tap((response) => {\n        \n      })\n    );\n  }\n\n  /**\n   * Add new filter functionality\n   *\n   * @param appVersion\n   * @param event\n   * @param filters\n   * @param scopeType\n   * @param x\n   * @returns  filter array\n   */\n   generateBasicFilter(appVersion: number, event: MatSelectChange | any, filters: Array<AxFilter>, scopeType: number, x: number, formId?: number): AxFilter{\n    const widget = event.option.value;\n    const expression = new AxExpression();\n    const attribute = new Attribute();\n    if (widget.subType === WidgetSubType.referenceList) {\n      attribute.formId = widget.referenceForm;\n    }\n    else{\n      attribute.formId = formId;\n    }\n    attribute.widgetType = widget.type;\n    attribute.widgetSubType = widget.subType;\n    attribute.name = widget.identifier;\n    attribute.identifier = widget.identifier;\n    attribute.attributeType = AttributeTypes.widgetType;\n    expression.field = attribute;\n    expression.field.label = widget.prompt;\n    const searchNode = new SearchNode();\n    if (widget.subType === 'numeric') {\n      expression.field.enlightenType = new AxNumber();\n    }\n    else {\n      expression.field.enlightenType.matIcon = new AxText().matIcon;\n    }\n    if (widget.type === 'datepicker-widget') {\n      expression.field.enlightenType = this.setEnlightenType(widget);\n    }\n    searchNode.expression = expression;\n    searchNode.type = ConditionType.condition;\n    const axFilter = new DataViewFilter();\n    axFilter.type = FilterType.basic;\n    axFilter.formId = formId;\n    axFilter.appVersionId = appVersion;\n    axFilter.scope = ScopeType.global;\n    axFilter.searchNodes.push(searchNode);\n    axFilter.type = FilterType.basic;\n    // if (event.option.selected) {\n    //   filters.push(axFilter);\n    // } else {\n    //   {\n    //     filters.forEach((filter, index) => {\n    //       if (filter.searchNodes[0].expression.field.name === widget.identifier) {\n    //         filters[index].isDeleted = true;\n    //         filters[index].searchNodes[0].expression.value.isSearchable = false;\n    //       }\n    //     });\n    //   }\n    // }\n    return axFilter;\n  }\n\n\n  /**\n   * To set expression field Enlighten Type\n   *\n   * @param attributeData\n   *\n   */\n   setEnlightenType(attributeData: Widget): IEnlightenType {\n    switch (attributeData.subType) {\n      case 'datetime':\n        return new DateTime();\n      case 'date':\n        return new AxDate();\n      case 'time':\n        return new AxTime();\n      case 'timestamp':\n        return new DateTime();\n      default:\n        return new DateTime();\n\n    }\n  }\n\n\n  /**\n   * Getter for action form list\n   */\n  get actionFormList$(): Observable<AxForm[]> {\n    return this.ActionFormList.asObservable();\n  }\n\n  /**\n   * Get tracking forms of specific asset form\n   * @param appVersionId \n   * @returns \n   */\n  getActionFormList(appVersionId, formId?: any): Observable<any> {\n    const formtype=\"actionform\";\n    localStorage.setItem('generateQR', formtype);//To check whether generate Qr is called for asset form or action form\n    // let storedFid = localStorage.getItem('fid'); \n    let storedFid = formId;\n    const formObject = storedFid ? { fid: storedFid } : {};\n    const formString = JSON.stringify(formObject);\n\n    const origin = location.origin;\n    const formData = new FormData(); //environment\n    formData.append('appversion', appVersionId);\n    formData.append('fetch_asset_and_tracking_forms', 'true');\n    formData.append('fetch_child_forms', 'true');\n    let params = new HttpParams()\n      .set('form', formString);\n\n    // Set headers\n    const headers = new HttpHeaders({\n      'Content-Type': 'application/x-www-form-urlencoded',\n    });\n\n    return this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url + 'getTrackingForms/',params.toString(),\n    { headers: headers }).pipe(\n      tap((response) => {\n        const forms = [];\n        response.tfl.tfs.forEach(form => {\n         const axform = new AxForm();\n         axform.formId = form.fid;\n         axform.name = form.fn;\n         axform.icon = form.fi;\n         axform.status = form.tfst;\n         forms.push(axform);\n        });\n\n        this.AssetFormList.next(forms);\n        console.log(\"action forms\",forms);\n        //console.log(this.axonatorX1Url)\n      })\n    );\n\n  }\n\n/**\n   * Get the thin result of form list from x1\n   * @param appVersionId \n   * @returns \n   */\n\n  getAssetFormList(appVersionId): Observable<any> {\n    const formData = new FormData(); //environment\n    formData.append('appversion', appVersionId);\n    formData.append('fetch_asset_and_tracking_forms', 'true');\n    formData.append('fetch_child_forms', 'true');\n    return this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url + 'getVisibleAssetForms/', formData).pipe(\n      tap((response) => {\n        const forms = [];\n        console.log(response)\n        response.afl.afs.forEach(form => {\n        const axform = new AxForm();\n        axform.formId = form.fid;\n        axform.name = form.fn;\n        axform.icon = form.fi;\n        axform.status = form.fst;\n        axform.ft = form.ft;\n        forms.push(axform);\n        });\n        this.ActionFormList.next(forms);\n        console.log(forms);\n        //console.log(this.axonatorX1Url)\n      })\n    );\n  }\n\n   /**\n   * Generate QRs  from X1\n   * @param formData\n   * @returns \n   */\n\n   generateQrCodes(formData: any): Observable<any> {\n    //environment\n    return this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url+ 'generateQRs_api2/', formData).pipe(\n      tap((response) => {\n        \n      }),\n      catchError((error) => {\n        console.error('Error:', error);\n        throw error;\n      })\n    );\n  }\n\n  disableQR(data: any): Observable<any> {\n    return this._httpClient.post<any>(this.commonLibConfig.axonatorX1Url+ 'disableQR/', data).pipe(\n      tap((response) => {\n        \n      }),\n      catchError((error) => {\n        console.error('Error:', error);\n        throw error;\n      })\n    );\n  }\n\n}\n","import { JsonObject} from \"json2typescript\";\nimport { SectionType, SectionChildType} from \"../common/widget-enums\";\nimport { Widget } from \"../widgets/widget\";\n\n\n@JsonObject(\"AxSection\")\nexport abstract class AxSection {\n    id : string = null;\n\n    widget :Widget = null;\n\n    showPrompt :boolean = null;\n\n    type : SectionType = null;\n\n    isCollapsible: boolean = null;\n\n    sections : Array<AxSection> = [];\n\n    sectionChildType : SectionChildType = null;\n\n\n    constructor(textValue?: AxSection){\n        if(textValue){\n            this.createTextValue(textValue);\n        }\n        else{\n            this.createNewTextValue();\n        }\n    }\n\n    /**\n     * Function to create new text value\n     */\n    createNewTextValue(): void{\n        this.id = '';\n        this.widget = null;\n        this.showPrompt = false;\n        this.type = null;\n        this.isCollapsible = null;\n        this.sections = [];\n        this.sectionChildType = null;\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param textValue\n    *\n    */\n    createTextValue(textValue?): void{\n        this.id = textValue.id;\n        this.widget = textValue.widget;\n        this.showPrompt = textValue.showPrompt;\n        this.type = textValue.type;\n        this.isCollapsible = textValue.isCollapsible;\n        this.sections = textValue.sections;\n        this.sectionChildType = textValue.sectionChildType;\n    }\n}\n","import { AxForm } from '../../../forms/ax-form';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { FormObject } from '../form-object';\nimport { AxSection } from './ax-section';\n\n@JsonObject('dataDetail')\nexport class DataDetails{\n\n    @JsonProperty(Constants.id,Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    id: number = null;\n\n    @JsonProperty(Constants.form,FormObject,PropertyConvertingMode.IGNORE_NULLABLE)\n    formObject:  FormObject= null;\n\n    @JsonProperty(Constants.formObject,AxForm,PropertyConvertingMode.IGNORE_NULLABLE)\n    form: AxForm = null;\n\n    @JsonProperty(Constants.id,[AxSection],PropertyConvertingMode.IGNORE_NULLABLE)\n    sections: Array<AxSection> = null;\n\n\n    constructor(value?: DataDetails){\n        if(value){\n            this.createValue(value);\n        }\n        else{\n            this.createNewValue();\n        }\n    }\n\n      // Function to create new text value\n      createNewValue(): void{\n       this.id = null;\n       this.formObject = null;\n       this.form = null;\n       this.sections = [];\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?): void{\n       this.id = value.id;\n       this.formObject = value.formObject;\n       this.form = value.form;\n       this.sections = value.sections;\n    }\n}\n","import { ListViewColumnTypes } from '../../../../lib/data-view-lib/data-view/data-view-enums';\nimport { Widget } from '../widgets/widget';\n\nexport class DataListColumn {\n    id: number ;\n    widget: Widget= null;\n    isVisible: boolean = false;\n    identifier: string;\n    type: ListViewColumnTypes;\n    actionPermissions:Array<number> = []\n\n    constructor(dataListColumn?: DataListColumn){\n\n        if(dataListColumn){\n            this.dataListColumn(dataListColumn);\n        }\n        else{\n            this.newDataListColumn();\n        }\n    }\n\n     // Function to create new Data-list object\n     newDataListColumn(): void{\n        this.widget = null;\n        this.isVisible = null;\n    }\n\n    /**function to create report object with existing values\n    *\n    *@param Report\n    *\n    */\n    dataListColumn(dataListColumn: DataListColumn): void{\n        this.id = dataListColumn.id;\n        this.widget = dataListColumn.widget;\n        this.isVisible = false;\n        this.identifier = dataListColumn.identifier;\n        this.actionPermissions = dataListColumn.actionPermissions?dataListColumn.actionPermissions:[];\n    }\n\n    /**function to create mapview object with existing values\n    *\n    *@param mapViews\n    *\n    */\n    static createDataListColumn(dataListColumn: Array<DataListColumn> ): Array<DataListColumn>{\n        const _dataListColumn: Array<DataListColumn> = [];\n        if(dataListColumn){\n            dataListColumn.forEach((dataListColumn) => {\n                _dataListColumn.push(new DataListColumn(dataListColumn));\n            });\n        }\n        return _dataListColumn;\n    }\n}\n","import { ListViewType } from './../../../data-view-lib/data-view/data-view-enums';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../common/constants';\nimport { DataDetails } from '../data-detail-view/data-details';\nimport { DataListColumn } from './data-list-column';\n\n@JsonObject('DataList')\nexport class DataList {\n\n    @JsonProperty(Constants.id, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    id: number = null;\n    columns: Array<DataListColumn> = null;\n    name: string;\n    type: ListViewType;\n\n\n\n    dataDetail: DataDetails = null;\n\n    constructor(dataList?: DataList) {\n\n        if (dataList) {\n            this.dataList(dataList);\n        }\n        else {\n            this.newDataList();\n        }\n    }\n\n    // Function to create new Data-list object\n    newDataList(): void {\n        this.id = 0;\n        this.name = 'untitled';\n        this.columns = [];\n        this.dataDetail = null;\n        this.type = ListViewType.listView;\n    }\n\n    /**function to create report object with existing values\n    *\n    *@param Report\n    *\n    */\n    dataList(dataList: DataList): void {\n        this.id = dataList.id;\n        this.name = dataList.name?dataList.name:'Untitled';\n        this.columns = DataListColumn.createDataListColumn(dataList.columns);\n        this.dataDetail = new DataDetails(dataList.dataDetail);\n        this.type = dataList.type;\n    }\n\n    /**function to create mapview object with existing values\n    *\n    *@param mapViews\n    *\n    */\n    static createDataList(dataLists: Array<DataList>): Array<DataList> {\n        const _datalist: Array<DataList> = [];\n        if (dataLists) {\n            dataLists.forEach((dataLists) => {\n                _datalist.push(new DataList(dataLists));\n            });\n        }\n        return _datalist;\n    }\n}\n","\nexport class Coordinate {\n    id: number;\n    row: number;\n    column: number\n\n    constructor(coordinate?: Coordinate) {\n        if (coordinate) {\n            this.coordinate(coordinate);\n        }\n        else {\n            this.newcoordinate();\n        }\n    }\n\n    coordinate(coordinate: Coordinate): void {\n        this.id = coordinate.id;\n        this.row = coordinate.row;\n        this.column = coordinate.column;\n    }\n    newcoordinate() {\n        this.id = null;\n        this.row = null;\n        this.column = null ;\n    }\n}","export class ImageStyle {\n    rowHeight: number;\n    columnHeight: number;\n    borderRadius: number;\n    constructor(tagConfig?: ImageStyle) {\n        if (tagConfig) {\n            this.imageStyle(tagConfig);\n        }\n        else {\n            this.newImageStyle();\n        }\n    }\n\n    imageStyle(tagConfig: ImageStyle): void {\n        this.rowHeight = tagConfig.rowHeight;\n        this.columnHeight = tagConfig.columnHeight;\n        this.borderRadius = tagConfig.borderRadius;\n    }\n\n    newImageStyle(): void {\n        this.rowHeight = 40;\n        this.columnHeight = 40;\n        this.borderRadius = 0;\n    }\n}\n","import { Border } from '../../enlighten-lib/report/graphical-report/chart/border';\nimport { Font } from '../../enlighten-lib/report/graphical-report/chart/font';\n\nexport class PrefixStyle {\n    id: number;\n    border: Border;\n    backgroundColor: string;\n\tfont: Font = new Font();\n    padding: number;\n\n\n    constructor(prefixStyle?: PrefixStyle){\n        if(prefixStyle){\n            this.prefixStyle(prefixStyle);\n        }\n        else{\n            this.newPrefixStyle();\n        }\n    }\n\n    prefixStyle(prefixStyle: PrefixStyle): void{\n        this.id = prefixStyle.id;\n        this.border = prefixStyle.border;\n        this.backgroundColor = prefixStyle.backgroundColor;\n        this.font = prefixStyle.font\n        this.padding = prefixStyle.padding\n    }\n    newPrefixStyle(): void{\n        this.id = null;\n        this.border = new Border();\n        this.backgroundColor = '';\n        this.font = new Font();\n        this.padding = 0;\n    }\n}\n","import { Border } from '../../enlighten-lib/report/graphical-report/chart/border';\nimport { Font } from '../../enlighten-lib/report/graphical-report/chart/font';\n\nexport class TagStyle {\n    id: number;\n    border: Border;\n    backgroundColor: string;\n\tfont: Font = new Font();\n    padding: number;\n\n\n    constructor(tagStyle?: TagStyle){\n        if(tagStyle){\n            this.tagStyle(tagStyle);\n        }\n        else{\n            this.newTagStyle();\n        }\n    }\n\n    tagStyle(tagStyle: TagStyle): void{\n        this.id = tagStyle.id;\n        this.border = tagStyle.border;\n        this.backgroundColor = tagStyle.backgroundColor;\n        this.font = tagStyle.font\n        this.padding = tagStyle.padding\n    }\n    newTagStyle(): void{\n        this.id = null;\n        this.border = new Border();\n        this.backgroundColor = '';\n        this.font = new Font();\n        this.padding = 0;\n    }\n}\n","import { Font } from '../../enlighten-lib/report/graphical-report/chart/font';\n\nexport class ValueStyle {\n    id: number;\n    backgroundColor: string;\n\tfont: Font = new Font();\n    padding: number;\n\n    constructor(valueStyle?: ValueStyle){\n        if(valueStyle){\n            this.valueStyle(valueStyle);\n        }\n        else{\n            this.newValueStyle();\n        }\n    }\n\n    valueStyle(valueStyle: ValueStyle): void{\n        this.id = valueStyle.id;\n        this.backgroundColor = valueStyle.backgroundColor;\n        this.font = valueStyle.font\n        this.padding = valueStyle.padding\n    }\n    newValueStyle(): void{\n        this.id = null;\n        this.backgroundColor = '';\n        this.font = new Font();\n        this.padding = 0;\n    }\n}\n","import { Widget } from '../../forms/page/widgets/widget';\nimport { ConditionalFormatting } from './conditional-formatting';\nimport { Coordinate } from './coordinate';\nimport { TagValueTypes } from './data-view-enums';\nimport { ImageStyle } from './image-style';\nimport { PrefixStyle } from './prefix-style';\nimport { TagStyle } from './tag-style';\nimport { ValueStyle } from './value-style';\n\nexport class TagConfig {\n    id: number;\n    prefixStyle: PrefixStyle;\n    widget: Widget;\n    location: Coordinate;\n    tagStyle: TagStyle;\n    conditionalFormatting: Array<ConditionalFormatting>;\n    rowSpan: number;\n    colSpan: number;\n    prefixTemplate: string;\n    valueTemplate: string;\n    valueStyle: ValueStyle;\n    valueType: TagValueTypes;\n    imageStyle: ImageStyle;\n    minRowHeight: number;\n    horizontalAlignment: string;\n\n\n    constructor(tagConfig?: TagConfig) {\n        if (tagConfig) {\n            this.tagConfig(tagConfig);\n        }\n        else {\n            this.newtagConfig();\n        }\n    }\n\n    tagConfig(tagConfig: TagConfig): void {\n        this.id = tagConfig.id;\n        this.prefixTemplate = tagConfig.prefixTemplate;\n        this.prefixStyle = tagConfig.prefixStyle;\n        this.widget = tagConfig.widget;\n        this.location = tagConfig.location;\n        this.tagStyle = tagConfig.tagStyle;\n        this.conditionalFormatting = tagConfig.conditionalFormatting;\n        this.rowSpan = tagConfig.rowSpan;\n        this.colSpan = tagConfig.colSpan;\n        this.valueStyle = tagConfig.valueStyle;\n        this.valueType = tagConfig.valueType;\n        this.imageStyle = tagConfig.imageStyle;\n        this.minRowHeight = tagConfig.minRowHeight;\n        this.horizontalAlignment = tagConfig.horizontalAlignment;\n    }\n\n    newtagConfig(): void {\n        this.id = null;\n        this.prefixTemplate = '';\n        this.prefixStyle = new PrefixStyle();\n        this.widget = null;\n        this.location = new Coordinate();\n        this.tagStyle = new TagStyle();\n        this.conditionalFormatting = [];\n        this.rowSpan = 1;\n        this.colSpan = 1;\n        this.valueStyle = new ValueStyle();\n        this.valueType = TagValueTypes.text;\n        this.imageStyle = new ImageStyle();\n        this.minRowHeight = 40;\n        this.horizontalAlignment = \"left\";\n    }\n    /**function to create tagConfig object with existing values\n   *\n   *@param tagConfig\n   *\n   */\n    static createTagConfig(tagConfig: Array<TagConfig>): Array<TagConfig> {\n        const _tagConfig: Array<TagConfig> = [];\n        if (tagConfig) {\n            tagConfig.forEach((tagConfig) => {\n                _tagConfig.push(new TagConfig(tagConfig));\n            });\n        }\n        return _tagConfig;\n    }\n}\n","import { TagConfig } from './tagConfig';\n\nexport class CardConfig {\n    id: number;\n    rows: number;\n    columns: number;\n    tags:  Array<TagConfig>;\n    isVisible: boolean;\n\n\n    constructor(cardConfig?: CardConfig){\n        if(cardConfig){\n            this.cardConfig(cardConfig);\n        }\n        else{\n            this.newCardConfig();\n        }\n    }\n\n    cardConfig(cardConfig: CardConfig): void{\n        this.id = cardConfig.id;\n        this.isVisible = cardConfig.isVisible;\n        this.rows = cardConfig.rows;\n        this.columns = cardConfig.columns;\n        this.tags = TagConfig.createTagConfig(cardConfig.tags);\n    }\n\n    newCardConfig(): void{\n        this.id = 0;\n        this.isVisible = false;\n        this.rows = 3;\n        this.columns = 3;\n        this.tags = [];\n    }\n}\n","import { DataDetails } from '../../forms/page/data-detail-view/data-details';\nimport { ChoiceList } from '../../forms/page/widgets/choicelist';\nimport { Widget } from '../../forms/page/widgets/widget';\nimport { BoardColumn } from './board-column';\nimport { CardConfig } from './cardConfig';\n\nexport class BoardView {\n    id: number;\n    name: string;\n    triggerWorkflow: boolean;\n    choiceList: ChoiceList;\n    cardConfig: CardConfig;\n    footerConfig: CardConfig;\n    columns: BoardColumn;\n    dataDetail: DataDetails = null;\n\n    constructor(boardView?: BoardView) {\n        if (boardView) {\n            this.boardView(boardView);\n        }\n        else {\n            this.newBoardView();\n        }\n    }\n\n    boardView(boardView: BoardView): void {\n        this.id = boardView.id;\n        this.name = boardView.name?boardView.name:'Untitled';\n        this.triggerWorkflow = boardView.triggerWorkflow;\n        this.choiceList = boardView.choiceList;\n        this.cardConfig = boardView.cardConfig;\n        this.footerConfig = boardView.footerConfig;\n        this.columns = boardView.columns;\n    }\n\n    newBoardView(): void {\n        this.id = 0;\n        this.name = 'Untitled';\n        this.triggerWorkflow = false;\n        this.choiceList = new ChoiceList();\n        this.cardConfig = new CardConfig();\n        this.footerConfig = new CardConfig();\n\n    }\n    /**function to create Board view object with existing values\n    *\n    *@param boardView\n    *\n    */\n    static createBoardView(boardView: Array<BoardView>): Array<BoardView> {\n        const _boardView: Array<BoardView> = [];\n        if (boardView) {\n            boardView.forEach((boardView) => {\n                _boardView.push(new BoardView(boardView));\n            });\n        }\n        return _boardView;\n    }\n}\n","import { TagActionType, TagValueTypes } from './data-view-enums';\nimport { Font } from '../../enlighten-lib/report/graphical-report/chart/font';\nimport { Coordinate } from './coordinate';\nimport { TagStyle } from './tag-style';\n\nexport class AxoTag {\n    id: number;\n    value: string;\n    valueStyle: Font;\n    prefixValue: string;\n    prefixValueStyle: Font;\n    location: Coordinate;\n    colSpan: number;\n    rowSpan: number;\n    action: TagActionType;\n    tagStyle: TagStyle;\n    valueType: TagValueTypes;\n\n\n    constructor(axoTag?: AxoTag){\n        if(axoTag){\n            this.axoTag(axoTag);\n        }\n        else{\n            this.newAxoTag();\n        }\n    }\n\n    axoTag(axoTag: AxoTag): void{\n        this.id = axoTag.id;\n        this.value = axoTag.value;\n        this.tagStyle = axoTag.tagStyle;\n        this.location = axoTag.location;\n        this.prefixValue = axoTag.prefixValue;\n        this.colSpan = axoTag.colSpan;\n        this.rowSpan = axoTag.rowSpan;\n        this.action = axoTag.action;\n        this.valueType = TagValueTypes.text;\n    }\n\n    newAxoTag(): void{\n        this.id = 0;\n        this.value = '';\n        this.tagStyle = new TagStyle();\n        this.location = new Coordinate();\n        this.colSpan = 3;\n        this.rowSpan = 3;\n        this.valueType = TagValueTypes.text;\n    }\n     /**function to create Axotag object with existing values\n    *\n    *@param axoTag\n    *\n    */\n    static createAxoTag(axoTag: Array<AxoTag> ): Array<AxoTag>{\n        const _axoTag: Array<AxoTag> = [];\n        if(axoTag){\n            axoTag.forEach((axoTag) => {\n                _axoTag.push(new AxoTag(axoTag));\n            });\n        }\n        return _axoTag;\n    }\n}\n","import { AxoTag } from \"./axo-tag\";\n\nexport class AxoCard {\n    id: number;\n    isVisible: boolean;\n    tags: Array<AxoTag>;\n    formObjectId: string;\n    sortOrder : number;\n\n\n\n    constructor(axoCard?: AxoCard){\n        if(axoCard){\n            this.axoCard(axoCard);\n        }\n        else{\n            this.newAxoCard();\n        }\n    }\n\n    axoCard(axoCard:AxoCard):void{\n        this.id = axoCard.id;\n        this.isVisible = axoCard.isVisible;\n        this.sortOrder = axoCard.sortOrder;\n        this.tags =  AxoTag.createAxoTag(axoCard.tags);\n        this.formObjectId = axoCard.formObjectId;\n    }\n\n    newAxoCard():void{\n        this.id = 0;\n        this.sortOrder = 0;\n        this.isVisible = true;\n        this.tags = null;\n        this.formObjectId = null;\n    }\n\n}\n","export class Location {\n    id: number;\n    lat: number;\n    long: number;\n\n\n    constructor(location?: Location){\n        if(location){\n            this.location(location);\n        }\n        else{\n            this.newLocation();\n        }\n    }\n\n    location(location: Location): void{\n        this.id = location.id;\n        this.lat = location.lat;\n        this.long = location.long;\n    }\n\n    newLocation(): void{\n        this.id = null;\n        this.lat = 0;\n        this.long = 0;\n    }\n}\n","import { AxoCard } from './axo-card';\nimport { Location } from './location';\nexport class InfoWindow {\n    id: number;\n    card: AxoCard;\n    location: Location;\n\n\n    constructor(infoWindow?: InfoWindow) {\n        if (infoWindow) {\n            this.infoWindow(infoWindow);\n        }\n        else {\n            this.newInfoWindow();\n        }\n    }\n\n    infoWindow(infoWindow): void {\n        this.id = infoWindow.id;\n        this.card = infoWindow.card;\n        this.location = infoWindow.Location;\n    }\n\n    newInfoWindow(): void {\n        this.id = 0;\n        this.card = new AxoCard();\n        this.location = new Location();\n    }\n}\n","\nimport { DataDetails } from '../../forms/page/data-detail-view/data-details';\nimport { GPS } from '../../forms/page/widgets/gps';\nimport { CardConfig } from './cardConfig';\nimport { InfoWindow } from './info-window';\n\nexport class MapView {\n    id: number;\n    name: string;\n    gpsWidget: GPS;\n    infoWindowConfig: CardConfig;\n    infoWindow: InfoWindow ;\n    dataDetail: DataDetails = null;\n\n\n    constructor(mapView?: MapView){\n        if(mapView){\n            this.mapView(mapView);\n        }\n        else{\n            this.newMapView();\n        }\n    }\n\n    mapView(mapView): void{\n        this.id = mapView.id;\n        this.name = mapView.name;\n        this.gpsWidget = mapView.gps;\n        this.infoWindowConfig = mapView.infoWindowConfig;\n        this.infoWindow = mapView.infoWindow;\n    }\n\n    newMapView(): void{\n        this.id = 0;\n        this.name = '';\n        this.infoWindowConfig = new CardConfig();\n        this.infoWindow = new InfoWindow();\n    }\n     /**function to create mapview object with existing values\n    *\n    *@param mapViews\n    *\n    */\n    static createMapView(mapViews: Array<MapView> ): Array<MapView>{\n        const _mapView: Array<MapView> = [];\n        if(mapViews){\n            mapViews.forEach((mapViews) => {\n                _mapView.push(new MapView(mapViews));\n            });\n        }\n        return _mapView;\n    }\n}\n","import { DataList } from '../../forms/page/data-list/data-list';\n\nexport class TaskView extends DataList {\n    constructor(_taskView?: TaskView){\n        super(_taskView);\n        if(_taskView){\n            this.taskView(_taskView);\n        }\n    }\n\n    /**\n     * Task View\n     */\n    taskView(_taskView?: TaskView): void{\n        this.type = _taskView.type;\n    }\n    /**\n     * Create Task views instances.\n     *\n     * @param taskView\n     * @returns\n     */\n    static createTaskView(taskView: Array<TaskView>): Array<TaskView> {\n        const _taskView: Array<TaskView> = [];\n        if (taskView) {\n            taskView.forEach((taskView) => {\n                _taskView.push(new TaskView(taskView));\n            });\n        }\n        return _taskView;\n    }\n\n}\n","import { FilterCategory } from '../../enlighten-lib/filters/filter-category';\nimport { AxForm } from '../../forms/ax-form';\nimport { DataList } from '../../forms/page/data-list/data-list';\nimport { BoardView } from './board-view';\nimport { DataViewType, ViewType } from './data-view-enums';\nimport { DataViewFilter } from './data-view-filter';\nimport { MapView } from './map-view';\nimport { TaskView } from './task-view';\n\nexport class DataView {\n    id: number;\n    name: string;\n    form: AxForm;\n    filters: Array<DataViewFilter>;\n    categories: Array<FilterCategory>;\n    listViews: Array<DataList>;\n    mapViews: Array<MapView>;\n    boardViews: Array<BoardView>;\n    taskViews: Array<TaskView>;\n    appContainerId: number;\n    hideListView: boolean;\n    hideTaskView: boolean;\n    type: DataViewType;\n    properties:DataViewProperty;\n\n\n    constructor(dataView?: DataView){\n        if(dataView){\n            this.dataView(dataView);\n        }\n        else{\n            this.newDataView();\n        }\n    }\n\n    dataView(dataView: DataView): void{\n        this.id = dataView.id;\n        this.name = dataView.name;\n        this.appContainerId = dataView.appContainerId;\n        this.type = dataView.type?dataView.type:DataViewType.formDataView;\n        this.form = dataView.form?new AxForm(dataView.form):null;\n        this.filters = DataViewFilter.createFilters(dataView.filters);\n        this.categories = FilterCategory.createCategories(dataView.categories);\n        this.listViews = DataList.createDataList(dataView.listViews);\n        this.mapViews = MapView.createMapView(dataView.mapViews);\n        this.boardViews = BoardView.createBoardView(dataView.boardViews);\n        this.taskViews = TaskView.createTaskView(dataView.taskViews);\n        this.hideListView = dataView.hideListView;\n        this.hideTaskView = dataView.hideTaskView;\n        this.properties = dataView.properties?new DataViewProperty(dataView.properties):new DataViewProperty();\n\n    }\n\n    newDataView(): void{\n        this.id = 0;\n        this.name = null;\n        this.type = DataViewType.formDataView;\n        this.form = null;\n        this.filters = null;\n        this.categories = null;\n        this.listViews= [];\n        this.mapViews = [];\n        this.boardViews = [];\n        this.hideListView = false;\n        this.hideTaskView = true;\n    }\n}\n\nexport class DataViewProperty{\n    showAddFilterButton: boolean;\n\n    constructor(dataViewProperty?: DataViewProperty){\n        if(dataViewProperty){\n            this.dataViewProperty(dataViewProperty);\n        }else{\n            this.newDataViewProperty()\n        }\n    }\n    // Create instance with default value.\n    newDataViewProperty(){\n        this.showAddFilterButton = false;\n    }\n\n    // Create instance with existing value\n    dataViewProperty(dataViewProperty:DataViewProperty): void{\n        this.showAddFilterButton = dataViewProperty.showAddFilterButton;\n    }\n}\n","import { TaskView } from './data-view/task-view';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { EventEmitter, Injectable, Output } from '@angular/core';\nimport { JsonConvert } from 'json2typescript';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { CommonLibConfigurationService } from '../common-lib-configuration.service';\nimport { Utils } from '../enlighten-lib/utils/utils';\nimport { AxForm } from '../forms/ax-form';\nimport { Widget } from '../forms/page/widgets/widget';\nimport { DataView } from './data-view/data-view';\nimport { DataViewType } from './data-view/data-view-enums';\nimport { AxoUser } from '../core/user/axo-user';\n\n@Injectable()\nexport class DataViewService {\n\n  public applyFilterEmit = new EventEmitter<any>();\n  public resetFilterEmit = new EventEmitter<any>();\n\n  private _dataViews: BehaviorSubject<DataView | null> = new BehaviorSubject(null);\n  private _form: BehaviorSubject<AxForm | null> = new BehaviorSubject(null);\n  private users: BehaviorSubject<Array<AxoUser> | null> = new BehaviorSubject(null);\n  private usersMap: BehaviorSubject<Map<number,AxoUser> | null> = new BehaviorSubject(null);\n\n  private _widgetMap: Map<string,Widget>;\n  constructor(\n    private _httpClient: HttpClient,\n    private commonLibConfig: CommonLibConfigurationService\n  ) { }\n\n  /**\n   * Getter for data view.\n   */\n  get dataView$(): Observable<DataView> {\n    return this._dataViews.asObservable();\n  }\n\n  /**\n   * Getter for form details\n   */\n  get formDetails$(): Observable<AxForm> {\n    return this._form.asObservable();\n  }\n\n\n  /*\n  * Getter for form appUserList\n  */\n  get appUserList$(): Observable<Array<AxoUser>> {\n    return this.users.asObservable();\n   }\n   /*\n  * Getter for form details\n  */\n  get getUserMap$(): Observable<Map<number,AxoUser>> {\n    return this.usersMap.asObservable();\n   }\n\n  /**\n   * function to emit emitter for apply filter.\n   */\n  applyDataListFilter(): void {\n    this.applyFilterEmit.emit();\n  }\n\n  /**\n   * function to emit emitter for reset filter.\n   */\n  resetDataListFilter(): void {\n    this.resetFilterEmit.emit();\n  }\n\n  /**\n   * Get Data view\n   *\n   * @param dataViewId\n   * @returns\n   */\n  getDataView(dataViewId: number): Promise<DataView> {\n    return new Promise((resolve, reject) => {\n      this._httpClient.get<DataView>('dataviews/' + dataViewId).subscribe((response) => {\n        const dataView = new DataView(response);\n        if(dataView.taskViews.length > 0){\n            dataView.type = dataView.form?DataViewType.dedicatedTaskView:DataViewType.genericTaskView;\n        }else{\n            dataView.type = DataViewType.formDataView;\n        }\n        resolve(dataView);\n      }, reject);\n    });\n\n  }\n  /**\n   * Get Form and Data view\n   *\n   * @param dataViewId\n   * @returns\n   */\n  getFormAndDataView(dataViewId: number): Promise<any> {\n    return new Promise(async (resolve, reject) => {\n      const dataView = await this.getDataView(dataViewId);\n      if(dataView.type !== DataViewType.genericTaskView){\n        const form = await this.getFormDetails(dataView.form.id);\n        this._form.next(form);\n      }\n      this._dataViews.next(dataView);\n      resolve(true);\n    });\n  }\n\n  /**\n   * Update Data View API\n   *\n   * @param dataView\n   * @returns\n   */\n  saveDataView(dataView: DataView): Promise<any> {\n    return new Promise((resolve, reject) => {\n      this._httpClient.put('dataviews', dataView).subscribe((response: DataView) => {\n        const _dataView = new DataView(response);\n        resolve(_dataView);\n      }, reject);\n    });\n  }\n\n  /**\n   * Get  form-details from x1\n   */\n\n  getFormDetails(fid: string | number): Promise<AxForm> {\n    // localStorage.setItem('fid', fid.toString());\n    const jsonConvert: JsonConvert = new JsonConvert();\n    const formData = new FormData();\n    const form = { 'fid': fid };\n    formData.append('form', JSON.stringify(form));\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this.commonLibConfig.axonatorX1Url + 'getFormDetails/', formData).subscribe((response: any) => {\n        let _form;\n        if (response?.fd?.form) {\n          _form = jsonConvert.deserializeObject(response?.fd?.form, AxForm);\n        }\n        this._widgetMap = Utils.createWidgetMap(_form.widgets);\n        resolve(_form);\n      }, reject);\n    });\n  }\n  /**\n   * Create Board Cache\n   *\n   * @returns\n   */\n  createBoardViewCache(boardViewId: number): Promise<boolean>{\n    return new Promise((resolve,reject)=>{\n        this._httpClient.post<boolean>('boardview/createcache',{boardViewId:boardViewId}).subscribe((response)=>{\n            resolve(response);\n        },reject);\n    });\n  }\n  /**\n   * Create Map Cache\n   *\n   * @returns\n   */\n   createMapViewCache(mapViewId): Promise<boolean>{\n    return new Promise((resolve,reject)=>{\n        this._httpClient.post<boolean>('mapview/createcache',{mapViewId:mapViewId}).subscribe((response)=>{\n            resolve(response);\n        },reject);\n    });\n  }\n\n   /**\n    * Get  data-list data\n    */\n    getDataList(dataListId: number): Promise<any> {\n        let params = new HttpParams();\n        params = params.append('id', dataListId);\n        return new Promise((resolve, reject) => {\n          this._httpClient.get<TaskView>('datalist', { params: params })\n            .subscribe((response) => {\n              resolve(response);\n            }, reject);\n        });\n    }\n  /**\n   * Get App Users.\n   *\n   * @param appVersionId\n   * @param currentPage\n   * @param pageSize\n   * @returns\n   */\n  getAppUsers(appVersionId: number,currentPage: number=1,pageSize: number=500): Promise<Array<any>>{\n    return new Promise((resolve,reject)=>{\n        const data = {\n            appVersionId:appVersionId,\n            currentPage:currentPage,\n            pagesize:pageSize\n        };\n        const formData = new FormData();\n        formData.append('app', JSON.stringify(data));\n        this._httpClient.post(this.commonLibConfig.axonatorX1Url+'getAppUsers/',formData).subscribe((response)=>{\n                \n                const jsonConvert: JsonConvert = new JsonConvert();\n                const users = jsonConvert.deserializeArray(response['appuser'].AppUser.appusers, AxoUser);\n                this.usersMap.next(this.cerateUsersMap(users));\n                this.users.next(users);\n                resolve(users);\n        },reject);\n    });\n  }\n\n  /**\n   * Create User Map.\n   */\n  cerateUsersMap(users: Array<AxoUser>):  Map<number,AxoUser>{\n    const userMap: Map<number,AxoUser> = new Map<number,AxoUser>();\n    users.forEach((user)=>{\n        userMap.set(user.userId,user);\n    });\n    return userMap;\n  }\n}\n","<div *ngIf=\"formft === 'T'; else showForm\">\n  <div class=\"flex flex-col gap-6 w-auto h-auto px-8 py-4 relative\">\n    <mat-icon svgIcon=\"axo_popup_close\" class=\"cursor-pointer absolute top-2 right-2\" (click)=\"close()\"></mat-icon>\n    <div class=\"axo-font text-3xl font-medium m-0\">Generate QR Codes</div>\n    <div class=\"video-container\">\n      <iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/RazJekuQ-cI\" frameborder=\"0\"\n        allowfullscreen></iframe>\n    </div>\n  </div>\n</div>\n\n<ng-template #showForm>\n  <div class=\"popup-container\">\n    <button class=\"close-icon\" (click)=\"close()\"></button>\n    <h1>Generate QR Codes</h1>\n    <div class=\"popup-body\">\n      <form [formGroup]=\"formGroup\" (ngSubmit)=\"submitForm()\">\n        <div class=\"flex flex-col gap-1\">\n          <!-- Level -->\n          <label>Scan Trigger</label>\n          <p>Open QR Code scanner when one of the following is opened</p>\n          <mat-radio-group formControlName=\"level\" class=\"flex gap-4 mb-2\">\n            <mat-radio-button value=\"App\">App</mat-radio-button>\n            <mat-radio-button value=\"Form\">Form</mat-radio-button>\n          </mat-radio-group>\n          <!-- Data Sections -->\n          <label>Auto-Populate</label>\n          <p>Select the form fields that need to be automatically filled based on the data embedded in the QR Code</p>\n          <!--<div class=\"data-section mb-0 flex justify-around items-center gap-4\" *ngFor=\"let data of data.controls; let i = index\" [formGroup]=\"data\">\n            <mat-select class=\"field-select\" formControlName=\"field_id\" [disableOptionCentering]=\"true\" placeholder=\"Select Field\">\n              <mat-option value=\"\" disabled selected>Select a feild</mat-option>\n              <mat-option *ngFor=\"let widget of getAvailableWidgets(i)\" [value]=\"widget.identifier\">{{ widget.prompt }}</mat-option>\n            </mat-select>\n            <input type=\"text\" class=\"text-box w-8/12 rounded-md\" formControlName=\"value\" placeholder=\"Enter field value\">\n            <img src=\"../../../../assets/icons/axo/sculptor/axo_delete.svg\" alt=\"\" class=\"h-5 w-5 data-section-delete\" (click)=\"removeDataSection(i)\"> -->\n          <!-- <button style=\"height: 2.15rem; width: 2.15rem; display: flex; justify-content: center; align-items: center;\" class=\"primary-btn axo-font\" (click)=\"removeDataSection(i)\">-</button> -->\n          <!-- </div>\n          <button type=\"button\" class=\"btn stroke-btn text-base font-normal px-2text-box py-1 mt-2\" (click)=\"addDataSection()\">+ add feild</button>\n          <div class=\"additional-fields m-0\"> -->\n          <!-- Additional fields will be dynamically added here -->\n          <!-- </div> -->\n          <lib-field-map [filteredWidgets]=\"filteredWidgets\" [appVersionId]=\"appVersionId\" [sourceForms]=\"sourceForms\"\n            [source]=\"source\" [actionFormId]=\"actionFormId\" [mapType]=\"mapType\" (fieldmap)=\"handlefieldmap($event)\">\n          </lib-field-map>\n          <div class=\"\">\n            <label>Send QR Codes <sup>*</sup></label>\n            <p>Enter emails where you want to send the generated QR Codes. A zip file will be emailed.</p>\n              <input type=\"text\" formControlName=\"email\"\n                placeholder=\"Enter comma separated email ids\"\n                [ngClass]=\"{ 'invalid-input': formGroup.controls.email.touched && formGroup.controls.email.status === 'INVALID' }\"\n                >\n              <div\n                class=\"err-message-container\">\n                <span class=\"error-message\" *ngIf=\"formGroup.controls.email.touched && formGroup.controls.email.status === 'INVALID'\">Please enter valid email ID(s)</span>\n              </div>\n          </div>\n        </div>\n        <!-- Action Buttons -->\n        <div class=\"action-btn-container\">\n          <button type=\"button\" (click)=\"close()\" class=\"stroke-btn\">Cancel</button>\n          <button type=\"submit\" cdkFocusInitial class=\"fill-btn\">Generate</button>\n        </div>\n      </form>\n    </div>\n  </div>\n</ng-template>","import { Component, Input, OnInit } from '@angular/core';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { FormBuilder, FormGroup, FormArray, FormControl, Validators } from '@angular/forms';\nimport { AxForm } from '../../../forms/ax-form';\nimport { Inject} from '@angular/core';\n//import { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { DataViewFiltersService } from '../data-view-filters.service'; \nimport { DataViewService } from '../../data-view.service';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { AxoSnackBarService,AxoSnackBarType } from '../../../../public-api';\nimport { MatDialog } from '@angular/material/dialog';\n//import { LogoUploadComponent } from './logo-upload/logo-upload.component';\nimport { Observable, of, throwError } from 'rxjs';\nimport { IFlatten } from '../../../../public-api';\nimport { switchMap } from 'rxjs/operators';\nimport { AbstractControl, ValidatorFn } from '@angular/forms';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\n@Component({\n  selector: 'app-generate-qr',\n  templateUrl: './generate-qr.component.html',\n  styleUrls: ['./generate-qr.component.scss'],\n\n  providers: [\n    {\n      provide: MAT_SELECT_CONFIG,\n      useValue: { overlayPanelClass: 'generate-qr-overlay-panel' },\n    },\n  ]\n})\nexport class GenerateQRComponent implements OnInit {\n  selectedFormObjectIds: string[];\n  selectedFormObjectTitles: string[];\n  formDetails: Array<AxForm> = [];\n  actionForms: Array<AxForm>;\n  formGroup: FormGroup;\n  appVersionId: number;\n  appID: number;\n  assetFormId:number;\n  status:string;\n  //data: any[] = [0]; // Initialize array to store data sections\n  filteredWidgets = [];\n  loading: boolean = false; // Initialize loading to false initially\n  mapType=\"QR\"; //field mapping type\n  fillState: string = 'start'; // Animation state\n  formDataArray = [];\n  qrGenerated: boolean = false; // Flag to track if QR is generated\n  appId:any;\n  sourceForms:Array<AxForm> = [];\n  source:boolean=false;\n  appVersion:any;\n  accountId:any;\n  qrUrl: string; // Variable to store the received QR URL\n  formtype: string;\n  form:any;\n  formft:string;\n  fieldmap :any;\n  actionFormId:any;\n  constructor(\n    public dialogRef: MatDialogRef<GenerateQRComponent>,\n    private _dataViewFiltersService: DataViewFiltersService,\n    private _dataViewService: DataViewService,\n    private formBuilder: FormBuilder,\n    public dialog: MatDialog,\n    private _httpClient: HttpClient,\n    @Inject(MAT_DIALOG_DATA) public formData: any,\n    private _AxoService: AxoSnackBarService// Inject the form object\n  ) { \n        this.formft = formData.formtype;\n        this.form = formData.form;\n        this.formtype= localStorage.getItem('generateQR');\n        if(this.formtype==\"actionform\"){\n          this.source=true;\n        }\n        const selectedForm = JSON.parse(localStorage.getItem('selectedForm'));\n        this.sourceForms.push(selectedForm);\n        this.actionFormId=this.form.formId;\n        console.log(this.formtype);\n        console.log(this.form);\n        this._dataViewService.getFormDetails(this.form.formId).then((_form)=>{  //get the details of form fields\n          this.formDetails.push(_form);\n          console.log(this.formDetails);\n          for (const widget of _form.widgets) {\n            // // Check if the widget prompt is \"System Fields\"\n            // if (widget.prompt === 'System Fields') {\n            //     // If so, break out of the loop\n            //     break;\n            // }\n            // // Add other conditions as needed\n            // if (widget.mainType === 'text' && widget.identifier.indexOf('meta_header') === -1) {\n                this.filteredWidgets.push(widget);\n            // }\n            //this.filteredWidgets.push(widget);\n        }\n        console.log(this.filteredWidgets);\n      });\n\n      \n  }\n\n  ngOnInit(): void {\n    this.appVersionId=JSON.parse(localStorage.getItem('appVersionId'));\n    this.accountId= parseInt(localStorage.getItem('accountId'));\n    console.log(\"account id:\",this.accountId);\n    \n    this.formGroup = this.formBuilder.group({\n      level: ['App'], // Default level value is 'app'\n      data: this.formBuilder.array([\n        this.createDataSection() // Create initial data section\n      ]),\n      email: ['', [Validators.required, this.commaSeparatedEmailsValidator()]] // Add custom validator here\n    });\n\n    // fetching appId of this appVersion\n    this._dataViewFiltersService.fetchAppDetails(this.appVersionId).subscribe(\n      (response) => {\n\n        // Access the value of \"a\" from the \"details\" object\n        this.appID= response.data.details.a;\n\n        // Now you can use \"appId\" in your component\n        console.log('Value of \"appId\":', this.appID);\n        console.log('Value of \"appVersionId\":', this.appVersionId);\n      },\n      (error) => {\n        // Handle errors if any\n        console.error('Error:', error);\n      }\n    ); \n\n    // Subscribe to value changes of email control to enable real-time highlighting\n    this.formGroup.get('email').valueChanges.subscribe(() => {\n      this.formGroup.get('email').updateValueAndValidity(); // Trigger validation\n    });\n\n\n    \n  }\n\n\n  getAvailableWidgets(index: number) {\n    const selectedFields = this.data.controls\n      .filter((control, i) => i !== index)\n      .map(control => control.value.field_id);\n    return this.filteredWidgets.filter(widget => !selectedFields.includes(widget.identifier));\n  }\n\n\n  // Custom Validator for comma-separated emails\n  commaSeparatedEmailsValidator(): ValidatorFn {\n    return (control: AbstractControl): { [key: string]: any } | null => {\n      if (!control.value) {\n        return null; // return null if control is empty, to let other validators handle required check\n      }\n      const emails = control.value.split(',').map(email => email.trim());\n      const emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/;\n      const invalidEmails = emails.filter(email => !emailPattern.test(email));\n      return invalidEmails.length > 0 ? { invalidEmails: invalidEmails.join(', ') } : null;\n    };\n  }\n\n  handlefieldmap(fieldMap: any) {\n    console.log('Field Map object received:', fieldMap);\n    this.fieldmap = fieldMap; // Save the fieldMap object\n  }\n\n  generateQr() {\n    this.saveFieldMap();\n    this.selectedFormObjectIds = JSON.parse(localStorage.getItem('formObjectIds'));\n    this.selectedFormObjectTitles = JSON.parse(localStorage.getItem('formObjectTitles'));\n    this.assetFormId= parseInt(localStorage.getItem('formId') || '');\n    console.log(this.assetFormId);\n    const email = this.formGroup.get('email').value;\n    const formDataArray = [];\n    if(this.formtype==\"actionform\"){\n      for (let i=0;i<this.selectedFormObjectIds.length;i++) {\n        let formData = {\n          assetFormId:this.assetFormId,\n          aid: this.appID,\n          fid: this.form.formId,\n          afoid:this.selectedFormObjectIds[i],\n          title:this.selectedFormObjectTitles[i], //this.form.name in case of asset form\n          type: 'DA',\n          level: this.formGroup.get('level').value,\n          //data: {},\n          appVersionId:this.appVersionId,\n          email:email,\n          accountId:this.accountId,\n          fieldmap:this.fieldmap\n        };\n\n        // for (let section of this.formGroup.value.data) {\n        //   formData.data[section.field_id] = section.value;\n        // }\n\n        formDataArray.push(formData);\n        console.log(formData);\n      }\n    }\n    else if(this.formtype==\"assetform\")\n    {\n      let formData = {\n        assetFormId:this.form.formId,\n        aid: this.appID,\n        fid: this.form.formId,\n        title:this.form.name, //this.form.name in case of asset form\n        type: 'DA',\n        level: this.formGroup.get('level').value,\n        //data: {},\n        appVersionId:this.appVersionId,\n        email:email,\n        accountId:this.accountId,\n        fieldmap:this.fieldmap\n      };\n\n      // for (let section of this.formGroup.value.data) {\n      //   formData.data[section.field_id] = section.value;\n      // }\n\n      formDataArray.push(formData);\n      console.log(formData);\n    }\n    this._dataViewFiltersService.generateQrCodes(formDataArray)\n      .subscribe(\n        (response) => {\n          this.status=response;\n          },\n        (error) => {\n          console.error('Error:', error);\n          // Handle the error\n        }\n      );\n      this.dialogRef.close();\n      this._AxoService.openSnackBar('QR codes are generated. Please check your email!', AxoSnackBarType.success);\n        \n  }\n\n  saveFieldMap(): void {\n    \n      const url = 'fieldmapper';\n      const requestBody = this.fieldmap;\n\n      this._httpClient.post<FormData[]>(url, requestBody, {\n        headers: new HttpHeaders({\n          'Content-Type': 'application/json',\n        }),\n      }).subscribe(\n        (response: FormData[]) => {\n          //this.formNames = response;\n        },\n        (error) => {\n          console.error('Error fetching form names:', error);\n        }\n      );\n    \n  }\n\n  downloadQR() {\n    // Create a new anchor element\n    const link = document.createElement('a');\n\n    // Set the href attribute to the QR URL\n    link.href = this.qrUrl;\n\n    // Append the anchor element to the body\n    document.body.appendChild(link);\n\n    // Programmatically trigger a click event on the anchor element\n    // This will start the download process\n    link.click();\n\n    // After clicking, remove the anchor element from the DOM\n    document.body.removeChild(link);\n  }\n\n  submitForm() {\n\n    if(this.formGroup.controls.email.status === 'INVALID') {\n      this.formGroup.controls.email.markAsTouched();\n      return;\n    };\n\n    this.generateQr();\n    // Add any additional form submission logic here if needed\n  }\n\n\n\n  // Convenience method to create a form group for a data section\n  createDataSection(): FormGroup {\n    return this.formBuilder.group({\n      field_id: ['', Validators.required], // Field selection is required\n      value: ['', Validators.required]     // Text entry is required\n    });\n  }\n\n  // Getter for easy access to data form array\n  get data(): FormArray {\n    return this.formGroup.get('data') as FormArray;\n  }\n\n\n  showOverlay:boolean = false; // Boolean property to control overlay visibility\n\n  toggleOverlay() {\n    this.showOverlay = !this.showOverlay; \n  }\n\n  // close(): void{\n  //   this.showOverlay = !this.showOverlay;\n  // }\n  close() {\n    this.dialogRef.close();\n  }\n  //Subscribers should be implemented her\n  subscribers() :void{\n\n  }\n\n  // Method to add a new data section\n  addDataSection() {\n    this.data.push(this.createDataSection());\n  }\n\n  // Method to remove a data section\n  removeDataSection(index: number) {\n    this.data.removeAt(index);\n  }\n}","// // stripe.service.ts\n// import { Injectable } from '@angular/core';\n// import { HttpClient } from '@angular/common/http';\n// import { Observable } from 'rxjs';\n\n// @Injectable({\n//   providedIn: 'root',\n// })\n// export class StripeService {\n//   private backendUrl = 'create-customer';\n//   private publishableKey = 'pk_test_51OWuUNSFFl7JmYSGEqxQ1MOTBFMiJH8Q25V0vKUcvNRvqJ2KcVPDB7eN7J8vO7KN7Zo6MbYqO3gulUBfyJNebxt2000xoQ8D2P';\n//   private stripe: any;\n\n//   constructor(private http: HttpClient) {}\n\n//   getPublishableKey(): string {\n//     return this.publishableKey;\n//   }\n\n//   loadStripe(): void {\n//     if (!window.Stripe) {\n//       const script = document.createElement('script');\n//       script.type = 'text/javascript';\n//       script.src = 'https://js.stripe.com/v3/';\n//       document.head.appendChild(script);\n//       script.onload = () => {\n//         this.stripe = Stripe(this.getPublishableKey());\n//       };\n//     } else {\n//       this.stripe = Stripe(this.getPublishableKey());\n//     }\n//   }\n\n//   createCustomer(customerOptions: any): Observable<any> {\n//     return this.http.post(this.backendUrl, customerOptions);\n//   }\n// }\n// function Stripe(arg0: string): any {\n//   throw new Error('Function not implemented.');\n// }\n\n\n\n\n\n\n\n\n\n// stripe.service.ts\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CommonLibConfigurationService } from './common-lib-configuration.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class StripeService {\n  private backendUrlCCus = 'create-customer'; \n  private backendUrlCProd = 'create-product';\n  private backendUrlCPric = 'create-price'; \n  // private backendUrlUPric = 'update-price/{priceId}';\n  private backendUrlCPIn = 'create-payment-intent';\n  private backendUrlCPMe = 'create-payment-method';\n  private backendUrlCSub = 'create-subscription';\n  private backendUrlGSub = 'get-subscription';\n  private backendUrlGPDe = 'get-product-details';\n  private backendUrlGPH = 'get-payment-history';\n  private backendUrlGCI = 'get-customer-info';\n  private backendUrlGPriceDe = 'get-price-details';\n  private backendUrlGCProdDe = 'get-customer-product-details';\n  private backendUrlUCus = 'update-customer';\n  private publishableKey: string = this.commonLibConfig.stripePublishableKey;\n\n  constructor(private http: HttpClient, private commonLibConfig: CommonLibConfigurationService) {}\n\n  getPublishableKey(): string {\n    return this.publishableKey;\n  }\n\n  loadStripe(): Promise<any> {\n    return import('@stripe/stripe-js').then((stripe) => stripe.loadStripe(this.getPublishableKey()));\n  }\n\n  createCustomer(customerOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlCCus, customerOptions);\n  }\n\n  createProduct(productOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlCProd, productOptions);\n  }\n\n  createPrice(priceOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlCPric, priceOptions);\n  }\n\n  // updatePrice(priceUpdateOptions: any): Observable<any> {\n  //   return this.http.post(this.backendUrlUPric, priceUpdateOptions);\n  // }\n\n  updateCustomer(customerOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlUCus, customerOptions)\n  }\n\n  paymentIntent(paymentIntentOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlCPIn,paymentIntentOptions);\n  }\n\n  paymentMethod(paymentMethodOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlCPMe,paymentMethodOptions);\n  }\n\n  createSubscription(subscriptionOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlCSub,subscriptionOptions);\n  }\n\n  getSubscription(subscriptionOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlGSub,subscriptionOptions);\n  }\n\n  getProductDetails(subscriptionOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlGPDe,subscriptionOptions);\n  }\n\n  getPaymentHistory(subscriptionOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlGPH,subscriptionOptions);\n  }\n\n  getCustomerInfo(subscriptionOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlGCI,subscriptionOptions);\n  }\n\n  getPriceDetails(subscriptionOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlGPriceDe,subscriptionOptions);\n  }\n\n  getCustomerProductDetails(subscriptionOptions: any): Observable<any> {\n    return this.http.post(this.backendUrlGCProdDe,subscriptionOptions);\n  }\n\n  \n}\n","<div class=\"sticky data-list-filter\">\n  <div class=\"data-view-filter-wrapper\" [ngClass]=\"{'width-after-hide-button':selectedViewType === ViewType.MapView || selectedViewType === ViewType.BoardView,'no-filter':filters.length <= 0}\">\n    <div class=\"add-icon-btn\" [ngClass]=\"{'border-seperator': getFiltersCount()}\">\n      <!-- Show hide condition for container. -->\n      <button class=\"light-blue-btn axo-font\"\n         (click)=\"filtersMenuTrigger.openMenu()\" (contextmenu)=\"openPropertyMenu($event)\" >\n          + Add Filter\n      </button>\n\n      <!-- Add Filter property Menu. this will get opened on right click  -->\n      <div #propertyMenuTrigger=\"matMenuTrigger\"  [matMenuTriggerFor]=\"propertyMenu\"> </div>\n\n\n      <mat-menu #propertyMenu=\"matMenu\">\n          <div\n          (click)=\"$event.stopPropagation();\"\n          mat-menu-item\n          class=\"filter-properties menu-btn\">\n              <div class=\"filter-property\">\n                  <span class=\"style-title\">Show On Container</span>\n                  <mat-slide-toggle [(ngModel)]=\"dataViews.properties.showAddFilterButton\"></mat-slide-toggle>\n              </div>\n          </div>\n      </mat-menu>\n\n      <!-- Filter list menu -->\n      <div #filtersMenuTrigger=\"matMenuTrigger\"  [matMenuTriggerFor]=\"filtersMenu\"> </div>\n      <mat-menu #filtersMenu=\"matMenu\" yPosition=\"below\" class=\"filter-field-list\" >\n        <div (click)=\"$event.stopPropagation();\">\n          <div class=\"group flex items-center justify-center mb-3\"\n            [ngClass]=\"{'justify-between px-2.5': !showSearchBox}\">\n            <span *ngIf=\"showField\" class=\"text-f font-medium\">Fields</span>\n\n            <div class=\"flex items-center search-field\" [ngClass]=\"{'global-border px-2.5' : showSearchBox}\">\n              <button (click)=\"'showFilterDiv()'\">\n                <mat-icon [ngClass]=\"{'search-icon' : showSearchBox}\" class=\"mt-2 text-xs search-icons\"\n                  [svgIcon]=\"'heroicons_solid:search'\"></mat-icon>\n              </button>\n\n              <!-- <input id=\"global-field-search\" autocomplete=\"off\" placeholder=\"Search...\" [(ngModel)]=\"searchedTerm\" matInput class=\"search-bar chart-title\"  [style.width]=\"!showSearchBox ? '0' : '100%'\" /> -->\n              <mat-icon (click)=\"clear()\" *ngIf=\"showSearchBox\" class=\"clear_icon cursor-pointer text-base\">clear\n              </mat-icon>\n            </div>\n          </div>\n          <ng-container *ngIf=\"categories.length\">\n            <div [ngClass]=\"{'field-container' : showSearchBox}\" *ngIf=\"(categories | search: searchedTerm)?.length\">\n              <label class=\"px-2.5\" *ngIf=\"(categories | search: searchedTerm)?.length\">Category</label>\n              <mat-selection-list #category>\n                <mat-list-option checkboxPosition=\"after\"\n                  *ngFor=\"let category of categories| search: searchedTerm;let i=index \" [value]='category'\n                  [(selected)]=\"category.isSelected\" color=\"primary\">\n                  <span class=\"list-field\" [matTooltip]=\"category.name\"> {{category.name}}</span>\n                </mat-list-option>\n              </mat-selection-list>\n            </div>\n          </ng-container>\n          <!-- Form filters. -->\n          <div class=\"fields-div\" *ngFor=\"let _form of forms\">\n            <label class=\"px-2.5\">{{_form?.name}}</label>\n            <mat-selection-list (selectionChange)=\"addBasicFilter($event,_form)\">\n              <ng-container *ngFor=\"let widget of _form?.widgets| search: searchedTerm\" >\n                  <ng-container *ngIf=\"!unhandledWIdgetsInFilters.includes(widget.type) && !unhandledWIdgetSubTypesInFilters.includes(widget.subType) \">\n                      <mat-list-option checkboxPosition=\"after\" [value]='widget' [selected]=\"this.selectedWidget.indexOf(widget.identifier) !== -1\" color=\"primary\">\n                        <span class=\"list-field\" [matTooltip]=\"widget.prompt\">\n                          <mat-icon class=\"svg-icon mr-2 align-middle\" [svgIcon]=\"widget.widgetIcon\"></mat-icon>\n                          {{widget.prompt}}\n                        </span>\n                      </mat-list-option>\n                  </ng-container>\n              </ng-container>\n            </mat-selection-list>\n          </div>\n\n          <!-- Meta Column Filters -->\n          <div class=\"fields-div\" *ngIf=\"dataViews.type !== dataViewType.formDataView\" >\n              <label class=\"px-2.5\">Meta Columns</label>\n              <mat-selection-list (selectionChange)=\"addMetaColumnFilter($event)\">\n                <mat-list-option checkboxPosition=\"after\" *ngFor=\"let metaColumn of metaColumns\"\n                  [value]='metaColumn' [selected]=\"this.selectedWidget.indexOf(metaColumn) !== -1\" color=\"primary\">\n                  <span class=\"list-field\" [matTooltip]=\"metaColumn\">\n                    <mat-icon class=\"svg-icon mr-2 align-middle\" [svgIcon]=\"'axo_square_text'\"></mat-icon>\n                    {{metaColumn}}\n                  </span>\n                </mat-list-option>\n              </mat-selection-list>\n              <label class=\"px-2.5\">Forms</label>\n              <mat-selection-list (selectionChange)=\"addAssetFormsFilter($event)\">\n                <mat-list-option checkboxPosition=\"after\" *ngFor=\"let _assetforms of assetforms\" color=\"primary\"\n                [value]='_assetforms' [selected]=\"this.selectedWidget.indexOf(_assetforms.name) !== -1\">\n                  <span class=\"list-field\" [matTooltip]=\"_assetforms\">\n                    <mat-icon class=\"svg-icon mr-2 align-middle\" [svgIcon]=\"'axo_square_text'\"></mat-icon>\n                    {{_assetforms?.name}}\n                  </span>\n                </mat-list-option>\n              </mat-selection-list>\n            </div>\n        </div>\n      </mat-menu>\n    </div>\n\n    <filters class=\"data-list-filter-container\"  [filters]=\"filters\" [formId]=\"form?.formId\"\n      [commonFilterArray]=\"commonFilterArray\" [screenType]=\"screenType\" [categories]='categories' [appVersionId]=\"appVersionId\"\n      [scopeType]=\"scopeType\"\n      (applyFilterEmit)=\"applyFilterEmit.emit($event)\" (resetFilterEmit)=\"resetFilterEmit.emit($event)\"\n      (deleteFilterEmit)=\"deleteFilter($event)\"\n      [showApplyFilterEvent]=\"showApplyFilterEvent\"\n      [ngClass]=\"{'container-filter-witdh': !dataViews.properties.showAddFilterButton}\">\n    </filters>\n\n  </div>\n\n  <div class=\"data-view-header-button\" id=\"data-view-header-button\">\n    <!--Generate QR button-->\n    <button *ngIf=\"selectedViewType === ViewType.DataListView && showQRButton\" (click)=\"generateQrButton()\" class=\"link-btn axo-font refresh-btn bordered-btn\" mat-icon-button [matMenuTriggerFor]=\"qrCodeMenu\">\n      Generate QR\n    </button>\n    <mat-menu #qrCodeMenu=\"matMenu\">\n      <button mat-menu-item [disabled]=\"disableMenu\" *ngFor=\"let form of actionforms\" (click)=\"openGenerateQrDialog(form)\">{{ form.name }}</button>\n    </mat-menu>\n    <button *ngIf=\" form && form.ft === formTypes.asset && selectedViewType === ViewType.DataListView\" class=\"primary-btn axo-font\" (click)=\"addNewRecord.emit()\"> Add New Record</button>\n    <button class=\"link-btn axo-font refresh-btn\" *ngIf=\"showAssignToButton\"(click)=\"assign.emit()\">Assign </button>\n    <!-- <button class=\"link-btn axo-font refresh-btn\" (click)=\"refreshData.emit()\">Refresh Data</button> -->\n    <button class=\"flex items-center icon-btn\" [matMenuTriggerFor]=\"!accessPremium() ? null : beforeMenu\" (click)=\"onExportClick()\">\n      <mat-icon matTooltip=\"Export Data\" svgIcon=\"axo_export\"></mat-icon>\n    </button>\n  \n  \n    <!------------------------------------------------->\n  \n    <!-- context menu to show form to get userEmail Id to get userEmail for excel Export -->\n    <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n      <!-- Show the export section if account status is active -->\n      <div *ngIf=\"this.accessPremium()\" class=\"send-excel-report-form\">\n        <form [formGroup]=\"exportFormBuilder\">\n          <div>XLSX</div>\n          <input mat-menu-item type=\"text\" class=\"report-xslx-email\" formControlName=\"email\"\n            (ngModelChange)=\"emailValidate()\">\n          <p *ngIf=\"displayEmailValidationError\" class=\"email-send-email-error\">Please provide a valid email ID</p>\n          <p *ngIf=\"displayNotification\" class=\"email-send-notification\">Export is in progress. You will receive the\n            report on your email once completed.</p>\n          <div class=\"send-excel-report-form-btn\">\n            <button class=\"cancel-btn btn text-white\" (click)=\"closeExportMenu();\">Cancel</button>\n            <button class=\"send-btn btn\" (click)=\"sendEmail();$event.stopPropagation()\"\n              [disabled]=\"displayEmailValidationError\">Export <mat-icon>send</mat-icon></button>\n          </div>\n        </form>\n      </div>\n      <!-- Show the upgrade section if account status is not active -->\n      <div *ngIf=\"!this.accessPremium()\" class=\"upgrade-section\">\n        To export data, please subscribe to a plan first.<br><br>\n        <button class=\"upgrade-btn btn\" (click)=\"navigateToBilling()\">Upgrade</button>\n      </div>\n    </mat-menu>\n  </div>\n</div>\n","import { HttpClient } from '@angular/common/http';\nimport { UnhandledWIdgetsInFilters, UnhandledWIdgetSubTypesInFilters } from './../../enlighten-lib/filters/static-widget';\nimport { DataViewFilter } from './../data-view/data-view-filter';\nimport { FormType } from './../../forms/page/common/widget-enums';\nimport { FiltersService } from './../../filters/filters.service';\nimport { DataView } from './../data-view/data-view';\nimport { AfterViewInit, Component, EventEmitter, Injectable, Input, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { ScopeType, ScreenType } from '../../enlighten-lib/filters/condition-type';\nimport { FilterCategory } from '../../enlighten-lib/filters/filter-category';\nimport { GeneralFilterType } from '../../enlighten-lib/filters/general-filter-type';\nimport { MetaColumnTypes } from '../../filters/metaColumnTypes';\nimport { AxForm } from '../../forms/ax-form';\nimport { DataViewService } from '../data-view.service';\nimport { DataViewType, ViewType } from '../data-view/data-view-enums';\nimport { DataViewFiltersService } from './data-view-filters.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { GenerateQRComponent } from './generate-qr/generate-qr.component';\nimport { UserDataService } from '../../../public-api';\nimport { Router } from '@angular/router';\nimport { CommonLibConfigurationService } from '../../../public-api';\nimport { CommonService } from '../../../public-api';\nimport { AxoSnackBarService,AxoSnackBarType } from '../../../public-api';\nimport { SubscribedPlanName } from '../../subscribedPlanName.service';\nimport { Subject, throwError } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { StripeService } from '../../stripe.service';\n@Component({\n  selector: 'lib-data-view-filters',\n  templateUrl: './data-view-filters.component.html',\n  styleUrls: ['./data-view-filters.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\n@Injectable({\n    providedIn: 'root'\n})\nexport class DataViewFiltersComponent implements OnInit,AfterViewInit {\n  //<------( Inputs ) ------------------------->\n  @Input() form: AxForm;\n  @Input() filters: Array<AxFilter>;\n  @Input() categories: Array<FilterCategory> = [];\n  @Input() isEditable: boolean;\n  @Input() screenType: ScreenType;\n  @Input() appVersionId: number;\n  @Input() selectedViewType: ViewType;\n  @Input() userEmail: string;\n  @Input() dataViews: DataView;\n  @Input() showAssignToButton: boolean = false;\n  //<-------------(outputs) ----------------------------\n  @Output() dirtyFlowCheckEvent = new EventEmitter<any>();\n  @Output() applyFilterEmit = new EventEmitter<any>();\n  @Output() resetFilterEmit = new EventEmitter<any>();\n  @Output() clearFilterEmit = new EventEmitter<any>();\n  @Output() addNewRecord = new EventEmitter<any>();\n  @Output() generateQR = new EventEmitter<any>();\n  @Output() refreshData = new EventEmitter<any>();\n  @Output() assign = new EventEmitter<any>();\n  @Output() exportData = new EventEmitter<any>();\n  //<--------------(Child element access)------------->\n  @ViewChild(MatMenuTrigger) contextMenu: MatMenuTrigger;\n  @ViewChild('propertyMenuTrigger') propertyMenuTrigger: MatMenuTrigger;\n  //<----------------( Component Variables)------------->\n  selectedFormObjectIds: string[];\n  // Boolean variable to track whether to display error message or not\n  displayMenu: boolean = false;\n\n  scopeType = 2;\n  showSearchBox: boolean = false;\n  showField: boolean = true;\n  titleValue: string = '';\n  searchedTerm: string = '';;\n  showApplyFilterEvent: boolean = true;\n  formId: string;\n  selectedWidget: Array<string> = [];\n  commonFilterArray: Array<any> = [];\n  exportFormBuilder: FormGroup;\n  displayNotification: boolean = false;\n  emailPattern: string = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$';\n  displayEmailValidationError: boolean = false;\n  forms: Array<AxForm> = [];\n  obs: ResizeObserver;\n  metaColumns: Array<MetaColumnTypes> = [MetaColumnTypes.taskStatus,MetaColumnTypes.taskAssignedTo,MetaColumnTypes.taskCreatedDate,MetaColumnTypes.taskDueDate];\n  unhandledWIdgetsInFilters= UnhandledWIdgetsInFilters;\n  unhandledWIdgetSubTypesInFilters = UnhandledWIdgetSubTypesInFilters;\n  assetforms: Array<AxForm> = [];\n  actionForms: Array<AxForm> = [];\n  actions:any;\n  actionforms = [];\n  containerId: number;\n  isAccountStatusActive: boolean;\n  qrCodeMenu: MatMenuTrigger;\n  disableMenu: boolean;\n  dataViewId: string;\n  containerViewPresent: boolean;\n  temporyfilters: Array<string> = [];\n  temporyfilters1: Array<string> = [];\n  assetformsTemp: Array<AxForm> = [];\n  showQRButton: boolean = false;\n  userPermissions: string[] | null = null;\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  \n  \n  /**\n   * Constructor\n   *\n   * @param _dataVIewFilterService\n   * @param _formBuilder\n   */\n  constructor(\n    private http: HttpClient,\n    private _dataVIewFilterService: DataViewFiltersService,\n    private _dataVIewFiltersService: DataViewFiltersService,\n    private _dataViewService: DataViewService,\n    private _formBuilder: FormBuilder,\n    private _filterService: FiltersService,\n    private _userDataService: UserDataService,\n    private _AxoService: AxoSnackBarService,\n    private _router: Router,\n    public dialog: MatDialog,\n    private _activatedRoute: ActivatedRoute,\n    private commonLibConfig: CommonLibConfigurationService,\n    private _commonService:CommonService,\n    public _subscribedPlanName: SubscribedPlanName,\n    private stripeService: StripeService,\n  ) { \n    this.appVersionId=JSON.parse(localStorage.getItem('appVersionId'));\n\n    this._dataVIewFiltersService.getAssetFormList(this.appVersionId).subscribe((data) => {\n      console.log(\"data\", data);\n      data.afl.afs.filter(form => form.ft === 'A').slice(1).forEach(form => {\n        const axform = new AxForm();\n        axform.formId = form.fid;\n        axform.name = form.fn;\n        axform.icon = form.fi;\n        axform.status = form.fst;\n        axform.ft = form.ft;\n        this.assetforms.push(axform);\n    });\n      console.log(\"Filtered forms:\", this.assetforms);\n    });\n    // Subscribe to userPermissions observable\n    this._userDataService.userPermissions$.subscribe((permissions) => {\n      this.userPermissions = permissions;\n      \n      if(this.userPermissions==null)\n      {\n        this.userPermissions = JSON.parse(localStorage.getItem('userDetails')).ud.permissions;\n        console.log(this.userPermissions);\n\n      }\n\n      // Check if \"QR_ACCESS\" is in the permissions array\n      if (this.userPermissions && this.userPermissions.includes(\"QR_ACCESS\")) {\n        this.showQRButton = true;\n      } else {\n        this.showQRButton = false;\n      }\n    });\n  }\n\n  showOverlay:boolean = false; // Boolean property to control overlay visibility\n  \n  toggleOverlay() {            // Method to toggle overlay visibility\n    this.showOverlay = !this.showOverlay;\n  }\n  close(): void{\n    this.showOverlay = !this.showOverlay;\n  }\n\n\n  get formTypes(): typeof FormType {\n    return FormType;\n  }\n  /**\n   * On init life cycle hook\n   */\n  ngOnInit(): void {\n    this.exportFormBuilder = this._formBuilder.group({\n      email: [this.userEmail, [Validators.required, Validators.email]]\n    });\n    // this._userDataService.isAccountStatusActive$.subscribe((response) => {\n    //   this.isAccountStatusActive = response;\n    // });\n    console.log(\"FORM ID: \", this.form.formId);\n    this._dataVIewFiltersService.getActionFormList(this.appVersionId, this.form.formId).subscribe((data) => {\n      console.log(\"data\", data);\n      data.tfl.tfs.forEach(form => {\n        const axform = new AxForm();\n        axform.formId = form.fid;\n        axform.name = form.fn;\n        axform.icon = form.fi;\n        axform.status = form.tfst;\n        this.actionforms.push(axform);\n    });\n      console.log(\"Filtered forms:\", this.actionforms);\n    });\n\n    this.isAccountStatusActive = JSON.parse(localStorage.getItem('isAccountStatusActive') || 'false');\n    this.filters.forEach((filter) => {\n      //   filter.generalFilterType = GeneralFilterType.filters;\n      if(filter.searchNodes[0].expression.field.attributeType==\"WidgetType\")\n        {\n          this.selectedWidget.push(filter.searchNodes[0].expression.field.identifier);\n        }\n        else\n        {\n          this.selectedWidget.push(filter.searchNodes[0].expression.field.label);\n        }\n    });\n\n    this.getUserDetails();\n  }\n  ngAfterViewInit(){\n    this.obs = new ResizeObserver(() => {\n      /** get width of filter buttons wrraper */\n      const number = document.getElementById('data-view-header-button')?.clientWidth+'px';\n      /**Set width of css variable */\n      if(number)\n          {document.documentElement.style.setProperty('--buttonsWarraperWidth', number);}\n    });\n    this.obs.observe(document.getElementById('data-view-header-button'));\n  }\n\n  /**\n   * On changes life cycle hook.\n   */\n  ngOnChanges(changes: SimpleChanges): void {\n    /** get width of filter buttons wrraper */\n    if (this.obs) {\n      const number = document.getElementById('data-view-header-button').clientWidth+'px';\n      /**Set width of css variable */\n      document.documentElement.style.setProperty('--buttonsWarraperWidth', number);\n      this.obs.observe(document.getElementById('data-view-header-button'));\n      }\n    if (changes.dataViews) {\n      this.forms = [];\n      this.commonFilterArray = [];\n\n      this.selectedWidget = [];\n      if(this.dataViews.type !== DataViewType.genericTaskView){\n        this.forms.push(this.form);\n        if(this.form.trackedasset_id){\n            this._dataViewService.getFormDetails(this.form.trackedasset_id).then((_form)=>{\n                this.forms.push(_form);\n            });\n        }\n      }\n\n      if (this.forms.length !== 0) {\n        const url: string = window.location.href;\n        if (url.includes(\"container\") || url.includes(\"web.axonator.com\") || url.includes(\"localhost:4201\")) {\n          // Extract the last number from the URL\n          this.getDataViewNumber(url);\n          this.containerViewPresent = true;\n          \n          const storedFiltersString = localStorage.getItem(this.dataViewId.toString());\n          if (storedFiltersString) {\n            // Convert the string to an array\n            const storedFilters = JSON.parse(storedFiltersString);\n      \n            // Ensure storedFilters is an array\n            if (Array.isArray(storedFilters)) {\n              // Filter out elements\n              this.filters.forEach(filter => {\n                const identifier = filter.searchNodes[0].expression.field.identifier;\n                const index = storedFilters.indexOf(identifier);\n                if (index > -1) {\n                  storedFilters.splice(index, 1);\n                }\n              });\n      \n              // Store the updated filters\n              this.temporyfilters = [...storedFilters];\n              localStorage.setItem(this.dataViewId.toString(), JSON.stringify(this.temporyfilters));\n      \n              // Update forms based on the updated filters\n              this.form.widgets.forEach(form => {\n                if (this.temporyfilters.includes(form.identifier)) {\n                  const event = { \"option\": { \"selected\": true, \"value\": form } };\n                  this.addBasicFilter(event, this.form);\n                }\n              });\n            }\n          }\n        }\n      }\n        else\n        {\n          const url: string = window.location.href;\n          if (url.includes(\"container\") || url.includes(\"web.axonator.com\") || url.includes(\"localhost:4201\") ) {\n            // Extract the last number from the URL\n            this.getDataViewNumber(url)\n            this.containerViewPresent = true;\n            const storedFilters = JSON.parse(localStorage.getItem(this.dataViewId.toString()));\n\n            if (storedFilters) {\n              this.filters.forEach(filter => {\n                if (filter.searchNodes[0].expression.field.formId) {\n                    if (storedFilters.includes(filter.searchNodes[0].expression.field.label+'_'+filter.searchNodes[0].expression.field.formId)) {\n                        const index = storedFilters.indexOf(filter.searchNodes[0].expression.field.label+'_'+filter.searchNodes[0].expression.field.formId);\n                        if (index > -1) {\n                            storedFilters.splice(index, 1);\n                        }\n                    }\n                } else if (filter.searchNodes[0].expression.field.label) {\n                    if (storedFilters.includes(filter.searchNodes[0].expression.field.label)) {\n                        const index = storedFilters.indexOf(filter.searchNodes[0].expression.field.label);\n                        if (index > -1) {\n                            storedFilters.splice(index, 1);\n                        }\n                    }\n                }\n            });\n           \n            this.temporyfilters = [...storedFilters];\n            localStorage.setItem(this.dataViewId, JSON.stringify(this.temporyfilters));\n\n              this.temporyfilters.forEach(element => {\n                if(element== MetaColumnTypes.taskCreatedDate || element== MetaColumnTypes.taskDueDate || element==MetaColumnTypes.taskAssignedTo || element ==MetaColumnTypes.taskStatus)\n                  {\n                    var event = {\"option\" : {\"selected\" : true, \"value\": element}};\n                    this.addMetaColumnFilter(event);\n                  }\n                  else\n                  {\n                    const parts=element.split('_');\n                    const axform = new AxForm();\n                    axform.formId = parseInt(parts[1]);\n                    axform.name = parts[0];\n                    axform.status = \"0\";\n                    axform.ft = \"A\";\n                    var event1 = {\"option\" : {\"selected\" : true, \"value\": axform}};\n                    this.addAssetFormsFilter(event1);                   \n                  }\n              });\n            }\n          }\n        }\n        this.generateCommonFilterList();\n    }\n    \n    \n    // var selection = new MatSelectionListChange();\n     \n  }\n\n  /**\n   * Subscribers should be implemented here\n   */\n  subscribers() {\n    this._dataVIewFiltersService.getActionFormList(this.appVersionId);\n    this._dataVIewFiltersService.actionFormList$.subscribe((actionForms) => {\n      this.actionForms=actionForms;\n    })\n    console.log(this.actionForms);\n    this._activatedRoute.params.subscribe(\n      (params) => {\n        this.containerId = params.appContainerId;\n        console.log(this.containerId);\n      });\n  }\n\n  getUserDetails(): void {\n    this._commonService.getUserDetail()\n      .pipe(\n        takeUntil(this._unsubscribeAll),\n        catchError(error => {\n          console.error('Error fetching user details:', error);\n          return throwError(error);\n        })\n      )\n      .subscribe((response: any) => {\n        \n        const subscriptionOptions = {\n          accountId: response.ud.lastused_account\n        };\n        this.stripeService.getSubscription(subscriptionOptions).subscribe(\n          (response) => {\n            console.log('Subscription details:', response);\n            if (response && response.length > 0) {\n              const subscriptionInfo = response[0];\n              const productOptions = {\n                ProductId: subscriptionInfo.items[0].productId\n              };\n              this.stripeService.getProductDetails(productOptions).subscribe(\n                (response) => {\n                  this._subscribedPlanName.subscribedPlanName = response.name;   \n                },\n                (error) => {\n                  console.error('Error fetching subscription details:', error);\n                }\n              );\n            }\n          },\n          (error) => {\n            console.error('Error fetching subscription details:', error);\n          }\n        );\n      });\n  }\n\n  getDataViewNumber(url : string): void{\n    const parts: string[] = url.split('/');\n      let lastPart: string = parts[parts.length - 1];\n      // Remove query parameters if present\n      if (lastPart.includes('?')) {\n          lastPart = lastPart.split('?')[0];\n      }\n      const lastNumber: number = parseInt(lastPart, 10);\n      this.dataViewId = lastNumber.toString();\n  }\n\n  /**\n   * Getter for dataViewType\n   */\n   get dataViewType(){\n    return DataViewType;\n  }\n\n  /**\n   * Getter for View Type\n   */\n   get ViewType(){\n    return ViewType;\n    }\n   /*\n    * getter for screenTypes\n    */\n  public get screenTypes(): typeof ScreenType{\n    return ScreenType;\n  }\n\n  /**\n   * Generate common filter list from existing filters and cotegories.\n   */\n  generateCommonFilterList(): void {\n\n    //Add filters in the common filters list\n    this.filters.forEach((filter) => {\n    //   filter.generalFilterType = GeneralFilterType.filters;\n      if (!this.commonFilterArray.includes(filter)) {\n        this.commonFilterArray.push(filter);\n      }\n    });\n    //Add Categories in the common filters list\n    this.categories.forEach((category) => {\n      category.generalFilterType = GeneralFilterType.category;\n      if (!this.commonFilterArray.includes(category)) {\n        this.commonFilterArray.push(category);\n      }\n    });\n    // sort the filter by order.\n    this.commonFilterArray.sort((a, b) => (a.gridProperties.x > b.gridProperties.x) ? 1 : ((b.gridProperties.x > a.gridProperties.x) ? -1 : 0));\n  }\n\n  /**\n   * This will get called on MatSelection Change\n   * We delete filter if if deselect widget or we create new filter if select widget.\n   *\n   * @param event\n   */\n  addBasicFilter(event: MatSelectionListChange | any,form: AxForm): void {\n    // Add new filter\n    if (event.option.selected) {\n      const widget = event.option.value;\n      this.selectedWidget.push(widget.identifier);\n      if (this.containerViewPresent) {\n        if(!this.temporyfilters.includes(widget.identifier))\n          {\n            this.temporyfilters.push(widget.identifier);\n            localStorage.setItem(this.dataViewId, JSON.stringify(this.temporyfilters));\n          }\n      }\n      this.showApplyFilterEvent = !this.showApplyFilterEvent;\n      //created new filter by widget\n      const filter = this._dataVIewFilterService.generateBasicFilter(\n        this.appVersionId,\n        event,\n        this.filters,\n        ScopeType.global,\n        this.filters.length,\n        form?.formId\n      ) as DataViewFilter;\n        filter.formType = form.ft;\n      filter.searchNodes[0].expression.field.choices = widget.choices;\n      this.filters.push(filter);\n      this.commonFilterArray.push(filter);\n    } else {\n      //remove selected filter\n      this.selectedWidget.splice(this.selectedWidget.indexOf(event.option.value.identifier),1);\n      const filter = this.getFilterFromList(event.option.value.identifier);\n      this.removeBasicFilter(filter);\n      this.removeValueFromLocalStorage(event.option.value.identifier);\n    }\n\n  }\n  /**\n   * Add Meta Column Filter\n   *\n   * @param event\n   */\n  addMetaColumnFilter(event: MatSelectionListChange | any): void{\n    if (event.option.selected) {\n      const value = event.option.value;\n      this.selectedWidget.push(value);\n      if (this.containerViewPresent) {\n        if(!this.temporyfilters.includes(value))\n          {\n            this.temporyfilters.push(value);\n            localStorage.setItem(this.dataViewId, JSON.stringify(this.temporyfilters));\n          }\n      }\n      const filter = this._filterService.generateMetaColumnFilter(value,this.appVersionId) as DataViewFilter;\n      this.filters.push(filter)\n      this.commonFilterArray.push(filter);\n      // if (this.containerViewPresent) {\n      //   this.temporyfilters.push(filter);\n      //   localStorage.setItem(this.dataViewId, JSON.stringify(this.temporyfilters));\n      // }\n    }else{\n      //remove selected filter\n      this.selectedWidget.splice(this.selectedWidget.indexOf(event.option.value),1);\n      const filter = this.getFilterFromList(event.option.value);\n      this.removeBasicFilter(filter);\n      this.removeValueFromLocalStorage(event.option.value);\n    }\n  }\n  addAssetFormsFilter(event: MatSelectionListChange | any): void{\n    if (event.option.selected) {\n      const value = event.option.value;\n      this.selectedWidget.push(value.name);\n      if (this.containerViewPresent) {\n        if(!this.temporyfilters.includes(value.name+'_'+value.formId))\n          {\n            this.temporyfilters.push(value.name+'_'+value.formId);\n            localStorage.setItem(this.dataViewId, JSON.stringify(this.temporyfilters));\n          }\n      }\n      const filter = this._filterService.generateAssetFormsFilter(value,this.appVersionId) as DataViewFilter;\n      this.filters.push(filter)\n      this.commonFilterArray.push(filter);\n      // if (this.containerViewPresent) {\n      //   this.temporyfilters.push(filter);\n      //   localStorage.setItem(this.dataViewId, JSON.stringify(this.temporyfilters));\n      // }\n    //   filter.formType = value;\n    }else{\n      //remove selected filter\n      this.selectedWidget.splice(this.selectedWidget.indexOf(event.option.value.name),1);\n      const filter = this.getFilterAssetFromList(event.option.value.name);\n      this.removeBasicFilter(filter);\n      this.removeValueFromLocalStorage(event.option.value.name+'_'+event.option.value.formId);\n      console.log(this.commonFilterArray)\n    }\n  }\n\n  /**\n   * Remove filter from filter array if filter is not saved or mark as deleted if it's saved.\n   *\n   * @param filter\n   */\n  removeBasicFilter(filter: AxFilter): void {\n    if(filter.id === 0){\n      this.filters.splice(this.filters.indexOf(filter), 1);\n      this.commonFilterArray.splice(this.commonFilterArray.indexOf(filter), 1);\n    }else{\n      filter.isDeleted = true;\n      filter.isSelected = false;\n    }\n    // if (this.containerViewPresent) {\n    //   this.temporyfilters.splice(this.temporyfilters.indexOf(filter), 1);\n    //   localStorage.setItem(this.dataViewId, JSON.stringify(this.temporyfilters));\n    // }\n\n  }\n\n  removeValueFromLocalStorage(value: any): void {\n    const url: string = window.location.href;\n    if (url.includes(\"container\") || url.includes(\"web.axonator.com\") || url.includes(\"localhost:4201\")) {\n      // Extract the last number from the URL\n      this.getDataViewNumber(url);\n      // this.containerViewPresent = true;\n      const storedFilters = localStorage.getItem(this.dataViewId.toString());\n      if (storedFilters) {\n        this.temporyfilters = JSON.parse(storedFilters);\n        this.temporyfilters = this.temporyfilters.filter((filter: any) => filter !== value);\n        localStorage.setItem(this.dataViewId.toString(), JSON.stringify(this.temporyfilters));\n      }\n    }\n  }\n  \n  \n  /**\n   * Get filter by widget identifier.\n   *\n   * @param identifier\n   * @returns\n   */\n  getFilterFromList(identifier: string): AxFilter {\n    if (identifier === 'Status')\n      identifier = 'task_status';\n    else if (identifier === 'Assigned to')\n      identifier = 'task_user_id';\n    else if (identifier === 'Assigned by')\n      identifier = 'task_assigned_by';\n    else if (identifier === 'Workflows')\n      identifier = 'task_workflowinstance_id';\n    else if (identifier === 'Created Date')\n      identifier = 'task_created_at';\n    else if (identifier === 'Completed Date')\n      identifier = 'task_completed_date';\n    else if (identifier === 'Due Date')\n      identifier = 'task_due_date';\n    for (const filter of this.commonFilterArray) {\n      if (filter.searchNodes[0].expression.field.name === identifier)\n        {return filter;};\n    }\n    return null;\n  }\n\n  getFilterAssetFromList(identifier: string): AxFilter {\n    for (const filter of this.commonFilterArray) {\n      if (filter.searchNodes[0].expression.field.label === identifier)\n        {return filter;};\n    }\n    return null;\n  }\n\n\n  /**\n   * This will get called from filter commonent on filter delete.\n   *\n   * @param index\n   */\n  deleteFilter(index: number): void{\n    const filter = this.commonFilterArray[index];\n    this.selectedWidget.splice(this.selectedWidget.indexOf(filter.searchNodes[0].expression.field.name),1);\n    this.removeBasicFilter(filter);\n  }\n  getFiltersCount(): boolean {\n    return this.filters.filter(fl => !fl.isDeleted).length > 0;\n  }\n\n    /**\n     *  Validation of email id for export of tabular report\n     */\n\n     emailValidate(): void {\n      const regex = new RegExp(this.emailPattern);\n      this.displayEmailValidationError = !regex.test(this.exportFormBuilder.value['email']);\n      if (this.displayEmailValidationError) {\n        this.displayNotification = false;\n      }\n    }\n\n      /**\n       *  close the export to email menu on click of cancel\n       */\n  closeExportMenu(): void {\n    this.contextMenu.closeMenu();\n    this.displayNotification = false;\n  }\n\n  accessPremium(): boolean {\n    const { is_trial_expired } = JSON.parse(localStorage.getItem(\"userDetails\")).ud;\n    const { subscribedPlanName } = this._subscribedPlanName;\n  \n    return !is_trial_expired || (subscribedPlanName !== 'Basic' && subscribedPlanName !== 'notFetched');\n  }\n\n  onExportClick(): void {\n    if(!this.accessPremium()){\n      this._AxoService.openFormSnackBar('This feature is not available in current plan. Please Upgrade!', AxoSnackBarType.warning);\n      return;\n    }\n    // Subscribe to account status\n    this._userDataService.userDetails$.subscribe((userDetails) => {\n        // If the account is not active\n        if (!this.accessPremium()) {\n            const emailRequest = {\n              subject: 'Visited Data View Page <Data Export>',\n              body: `User with:\\nUserID: ${userDetails.uid}\\nUsername: ${userDetails.uname}\\nEmail: ${userDetails.email}\\nTrial ended on: ${userDetails.trial_end_date}\\nUsers count: ${userDetails.user_count}/${userDetails.user_limit}\\nhas requested to export data!`,\n              isBodyHtml: false,\n              userEmail :userDetails.email\n          };\n\n          // Send the email\n          this.http.post(`internalmails/send-internal-emails`, emailRequest)\n              .subscribe({\n                  next: (response) => {\n                      console.log('Internal Email sent successfully:', response);\n                  },\n                  error: (error) => {\n                      console.error('Error sending internal email:', error);\n                  }\n              });\n        }\n    });\n}\n\n\n   /**\n    *  call this function for send email with excel report as attachment\n    */\n\n    sendEmail(): void {\n      this.displayNotification = false;\n      if (!this.displayEmailValidationError) {\n        this.exportData.emit(this.exportFormBuilder.value['email']);\n        this.displayNotification=true;\n      }\n    }\n\n    /**\n     * Open Mat menu on right click on add filter  button.\n     * @param event\n     */\n    openPropertyMenu(event: PointerEvent): void{\n        if(this.screenType === ScreenType.dataViewBuilder){\n            this.propertyMenuTrigger.openMenu();\n            event.stopPropagation();\n            event.preventDefault();\n        }\n    }\n    /**\n     * Open generate Qr dialog box\n     * \n     */\n    openGenerateQrDialog(form: AxForm): void {\n      // open dialog\n      const dialogRef = this.dialog.open(GenerateQRComponent, {\n        data: {\n          formtype:form.ft,\n          form:form,\n        },\n        width: '40rem',\n        height: 'auto',\n        panelClass: 'generate-qr-panel-class',\n        //data: this.containerId\n\n      });\n\n      // this will get called after dialog closed.\n      dialogRef.afterClosed().subscribe((result) => {\n        console.log('The dialog was closed');\n\n      });\n\n\n    }\n\n    generateQrButton(): void {\n      \n      this.selectedFormObjectIds = JSON.parse(localStorage.getItem('formObjectIds'));\n      console.log(this.selectedFormObjectIds);\n      // Check if no objects are selected\n      if (this.selectedFormObjectIds===null ) {\n        // Display snackbar with error message\n        this._AxoService.openSnackBar('Please select at least one object from the data list!', AxoSnackBarType.error);\n        this.disableMenu=true;\n        \n      } \n      else if(this.selectedFormObjectIds.length === 0)\n      {\n        // Display snackbar with error message\n        this._AxoService.openSnackBar('Please select at least one object from the data list!', AxoSnackBarType.error);\n        this.disableMenu=true;\n      }\n      else {\n        // Open the matmenu for Generate QR button\n        this.disableMenu=false;\n      }\n    }\n\n  navigateToBilling(): void {\n    window.open(this.commonLibConfig.builderUrl + 'paymentinfo/pricing', '_blank');\n    this._commonService.userDetails$.subscribe(userDetails => {\n      // Use userDetails here\n      console.log(userDetails);\n      const user = {\n        uname: userDetails.uname, // User's full name\n        receiver_name: \"Aarohi\", // Receiver's full name\n        // receiver_email: \"aarohi@axonator.com\", // Receiver's email\n        // receiver_email: environment.internalAlertRecipientIds, // Receiver's email\n        screen: \"Container: Data-Views: Export Data\",\n        app: userDetails.accounts[userDetails.lastused_account].name, // App name\n        version: \"v\" + userDetails.uobs.properties.app_version, // App version\n        env: this.commonLibConfig.axonatorX1Url,\n        org_id: userDetails.lastused_account, // Organization ID\n        org_name: userDetails.accounts[userDetails.lastused_account].name, // Organization name\n        modal_type: \"Buy Licenses\"\n      };\n      // Call the EmailService method to send the upgrade email\n      this._commonService.sendUpgradeEmail(user).then(() => {\n        console.log('Upgrade email sent successfully');\n      }).catch(error => {\n        console.error('Error sending upgrade email:', error);\n        // Handle error as needed\n      });\n\n    // Process the response and construct the user object\n    this._commonService.getUser().subscribe(\n      (response) => {\n        // Process the response and construct the user object\n        const user = {\n          uname: response.ud.uname, // User's full name\n          receiver_name: \"Aarohi\", // Receiver's full name\n          // receiver_email: \"aarohi@axonator.com\", // Receiver's email\n          receiver_email: \"aarohi@axonator.com, vedant@axonator.com\", // Receiver's email\n          screen: \"Data Views: Data Export\",\n          app: response.ud.accounts[response.ud.lastused_account].name, // App name\n          version: \"v\" + response.ud.uobs.properties.app_version, // App version\n          env: this.commonLibConfig.axonatorX1Url,\n          org_id: response.ud.lastused_account, // Organization ID\n          org_name: response.ud.accounts[response.ud.lastused_account].name, // Organization name\n          modal_type: \"Buy Licenses\"\n        };\n        // Call the EmailService method to send the upgrade email\n        this._commonService.sendUpgradeEmail(user).then(() => {\n          console.log('Upgrade email sent successfully');\n        }).catch(error => {\n          console.error('Error sending upgrade email:', error);\n          // Handle error as needed\n        });\n      },\n      (error) => {\n        // Handle error\n        console.error('Error fetching user details:', error);\n      }\n    );\n\n\n\n\n    });\n  }\n\n  clearAllFilters(): void {\n    this.selectedWidget = []; // Clear the selected widgets\n    this.commonFilterArray = []; // Clear the common filter array\n  }\n\n}\n\n\n","import { Directive,HostListener,ElementRef} from '@angular/core';\n\n@Directive({\n  selector: '[appCustomScroll]',\n  exportAs:'appCustomScroll'\n})\n// this directive is used for handling the disabled properties previous and next button of scroll\nexport class CustomScrollDirective {\n\n    disableLeftBtn:boolean=true; // previous button which scrolls to left\n    disableRightBtn:boolean=false; // next button which scrolls to right\n    left:number;\n    offSetWidth:number;\n    scrollWidth:number;\n    constructor(private eleRef:ElementRef){}\n\n    @HostListener('scroll') onScrollEvent(event:Event){\n        this.left=this.eleRef.nativeElement.scrollLeft;\n        this.offSetWidth=this.eleRef.nativeElement.offsetWidth;\n        this.scrollWidth=this.eleRef.nativeElement.scrollWidth;\n\n        // if scroll is at the left corner than the previous button is disabled and the next button is enabled\n        if(this.left === 0){\n            this.disableLeftBtn=true;\n            this.disableRightBtn=false;\n        }\n\n        // if scroll is not at the left or right corner than the previous button and next button is enabled\n        if(this.left > 0){\n            this.disableLeftBtn = false;\n            this.disableRightBtn = false;\n        }\n\n        // if scroll is at the right corner than the next button is disabled and the previous button is enabled\n        \n        if(this.left>this.scrollWidth-this.offSetWidth-3){\n            this.disableRightBtn=true;\n            this.disableLeftBtn=false;\n        }\n    }\n}","<div class=\"fields\" >\n    <div class=\"calender-field\">\n        <mat-form-field appearance=\"fill\">\n            <mat-select\n                [placeholder]=\"displayValue\"\n                [matTooltip]=\"toolTipValue\"\n                class=\"filter-dropdown\"\n                [matTooltipClass]=\"'capitalize'\"\n                [matMenuTriggerFor]=\"belowMenu\"\n                (selectionChange)=\"filterValueChanged()\"\n                #calenderSelectList\n            >\n            </mat-select>\n        </mat-form-field>\n    </div>\n    <mat-menu #belowMenu=\"matMenu\"  yPosition=\"below\" class=\"calender-filter\" backdropClass=\"calender-filter-backdrop-class\">\n        <mat-radio-group class=\"radio-group\" (click)=\"$event.stopPropagation()\"  [ngClass]=\"{'between_date_active': selectedOperator === dateOperatorIndex.between}\">\n            <!---Yesterday filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.yesterday\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.yesterday)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.yesterday)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.yesterday\"\n                    />\n                    Yesterday\n                </label>\n            </div> -->\n            <!-- Today Filter Section -->\n            <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.today\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.today)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.today)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.today\"\n                    />\n                    Today\n                </label>\n            </div>\n             <!---Tomorrow filter section-->\n             <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.tomorrow\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.tomorrow)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.tomorrow)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.tomorrow\"\n                    />\n                    Tomorrow\n                </label>\n            </div> -->\n            <!---Week filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.week\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.week)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.week)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.week\"\n                    />\n                    Week\n                </label>\n            </div> -->\n            <!---Month filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.month\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.month)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.month)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.month\"\n                    />\n                    Month\n                </label>\n            </div> -->\n            <!---Year filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.year\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.year)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.year)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.year\"\n                    />\n                    Year\n                </label>\n            </div> -->\n            <!---Previous Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.previousQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.previousQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.previousQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.previousQuarter\"\n                    />\n                    Previous Quarter\n                </label>\n            </div> -->\n            <!---Current Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.currentQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.currentQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.currentQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.currentQuarter\"\n                    />\n                    Current Quarter\n                </label>\n            </div> -->\n            <!---Next Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.nextQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.nextQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.nextQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.nextQuarter\"\n                    />\n                    Next Quarter\n                </label>\n            </div> -->\n            <!---First Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.firstQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.firstQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.firstQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.firstQuarter\"\n                    />\n                    First Quarter\n                </label>\n            </div> -->\n            <!---Second Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.secondQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.secondQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.secondQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.secondQuarter\"\n                    />\n                    Second Quarter\n                </label>\n            </div> -->\n            <!---Third Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.thirdQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.thirdQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.thirdQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.thirdQuarter\"\n                    />\n                    Third Quarter\n                </label>\n            </div> -->\n            <!---Fourth Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.fourthQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.fourthQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.fourthQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.fourthQuarter\"\n                    />\n                    Fourth Quarter\n                </label>\n            </div> -->\n            <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.greaterThanOrEqualTo\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.greaterThanOrEqualTo)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.greaterThanOrEqualTo)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.greaterThanOrEqualTo\"\n                        />\n                    After Or Equal To\n                    <div *ngIf=\"selectedOperator === dateOperatorIndex.greaterThanOrEqualTo\">\n                        <mat-form-field appearance=\"standard\">\n                            <input\n                                matInput\n                                [matDatepicker]=\"MTDpicker\"\n                                placeholder=\"More Than\"\n                                [readonly]=\"true\"\n                                (click)=\"MTDpicker.open()\"\n                                (dateChange) = \"filterValueChanged()\"\n                                [(ngModel)]=\"expression.value.value\"\n                            />\n                            <mat-datepicker-toggle\n                                matSuffix\n                                [for]=\"MTDpicker\"\n                            ></mat-datepicker-toggle>\n                            <mat-datepicker  #MTDpicker></mat-datepicker>\n                        </mat-form-field></div\n                ></label>\n            </div>\n            <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.lessThanOrEqualTo\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.lessThanOrEqualTo)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.lessThanOrEqualTo)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.lessThanOrEqualTo\"\n                    />\n                    Before Or Equal To\n                    <div *ngIf=\"selectedOperator === dateOperatorIndex.lessThanOrEqualTo\">\n                        <mat-form-field appearance=\"standard\">\n                            <input\n                                matInput\n                                [matDatepicker]=\"LTDpicker\"\n                                [readonly]=\"true\"\n                                placeholder=\"Less Than\"\n                                (click)=\"LTDpicker.open()\"\n                                [(ngModel)]=\"expression.value.value\"\n                                (dateChange) = \"filterValueChanged()\"\n                            />\n                            <mat-datepicker-toggle\n                                matSuffix\n                                [for]=\"LTDpicker\"\n                            ></mat-datepicker-toggle>\n                            <mat-datepicker (dateChange) = \"filterValueChanged()\" #LTDpicker></mat-datepicker>\n                        </mat-form-field>\n                    </div>\n                </label>\n            </div>\n            <div class=\"between\">\n                <label>\n                    <input\n                        value=\"dateOperatorIndex.between\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(4)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.between)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.between\"\n                    />\n                    Between\n                    <div class=\"between-dates\" *ngIf=\"selectedOperator === dateOperatorIndex.between\">\n                        <form [formGroup]=\"dateRange\">\n                            <mat-form-field appearance=\"standard\">\n                                <mat-date-range-input\n                                    (click)=\"DRDpicker.open()\"\n                                    (change)=\"checkDateValue()\"\n                                    [readonly]=\"true\"\n                                    [rangePicker]=\"DRDpicker\"\n                                    [ngClass]=\"{ 'mat-form-field-invalid': isSubmitButton }\">\n                                  <input matStartDate matInput formControlName=\"start\" placeholder=\"Start date\">\n                                  <input matEndDate matInput formControlName=\"end\" placeholder=\"End date\">\n                                </mat-date-range-input>\n                                <mat-datepicker-toggle matSuffix [for]=\"DRDpicker\"></mat-datepicker-toggle>\n                                <mat-date-range-picker #DRDpicker></mat-date-range-picker>\n                            </mat-form-field>\n                            <div class=\"date-range-invalid\" *ngIf=\"\n                                (isSubmitButton && dateRangeForm.start.errors && dateRangeForm.start.errors.required) ||\n                                (isSubmitButton && dateRangeForm.end.errors && dateRangeForm.end.errors.required)\">\n                                Please enter valid date\n                            </div>\n                        </form>\n\n                    </div>\n                </label>\n            </div>\n        </mat-radio-group>\n            <lib-filter-footer\n                [isFilterValue]=\"true\"\n                (clearAllValue)=\"clearAllValue()\"\n                (applyFilter)=\"applyFilter()\"\n                (closeFilter)=\"belowMenu.close()\"\n                >\n            </lib-filter-footer>\n    </mat-menu>\n    <mat-icon class=\"down-arrow filter-down-arrow\" [svgIcon]=\"'axo_arrow'\" (click)=\"calenderSelectList.open()\"></mat-icon>\n</div>\n","import {\n    Component,\n    OnInit,\n    SimpleChanges,\n    ViewEncapsulation\n} from '@angular/core';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { AxExpDateRangeValue } from '../../enlighten-lib/ax-expression/ax-exp-date-range-value';\nimport { AxExpDateValue } from '../../enlighten-lib/ax-expression/ax-exp-date-value';\nimport { AxOperator, DateOperatorIndex } from '../../enlighten-lib/filters/ax-operator';\nimport { CommonFilterComponent } from '../common-filter/common-filter.component';\nimport { CommonFilterService } from '../common-filter/common-filter.service';\n\n\n@Component({\n    selector: 'lib-calender-filter',\n    templateUrl: './calender-filter.component.html',\n    styleUrls: ['./calender-filter.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        {\n          provide: MAT_SELECT_CONFIG,\n          useValue: { overlayPanelClass: 'custom-calender-filter-overlay-panel' },\n        },\n      ],\n})\nexport class CalenderFilterComponent extends CommonFilterComponent implements OnInit {\n    //<----------< Inputs >---------------------------->\n\n    //<-----------<Outputs >--------------------------->\n\n    //<-------------(Enums )--------------------------->\n    dateOperatorIndex = DateOperatorIndex;\n    //<-------------(Component Variables )------------->\n    dateOperators: Array<AxOperator>;\n    selectedOperator: number;\n    displayValue: any;\n    defaultComparisonOperator: AxOperator;\n    defaultOperatorIndex: DateOperatorIndex;\n    // form group for date range.\n    dateRange = new FormGroup({\n        start: new FormControl( '', Validators.required),\n        end: new FormControl('', Validators.required),\n    });\n\n    isSubmitButton: boolean = false;\n    selectedValue: string | Date;\n    constructor(_commonFilterService: CommonFilterService,\n        ) {\n        super(_commonFilterService);\n    }\n    /**\n     * this is use to call the form field\n     */\n    get dateRangeForm(): any {\n        return this.dateRange.controls;\n    }\n\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(changes: SimpleChanges): void {\n        super.ngOnChanges(changes);\n    }\n\n    ngOnInit(): void {\n        super.ngOnInit();\n        this.dateOperators = AxOperator.getDateOperator();\n        this.setDisplayValue();\n\n        // Date range value change event\n        this.dateRange.valueChanges.subscribe((values)=>{\n            if(values.start && values.end){\n                const dateRangeValue = this.expression.value as AxExpDateRangeValue;\n                dateRangeValue.value.from = values.start;\n                dateRangeValue.value.to = values.end;\n                this.setDisplayValue();\n            }\n        });\n    }\n\n    /**\n     * Set date value of specific date object\n     *\n     * @param operatorIndex\n     */\n    setDateOperator(operatorIndex: number): void {\n        this.selectedOperator = operatorIndex;\n        const dateOperatorIndex = operatorIndex > 0 ? (operatorIndex - 1) : operatorIndex;\n        this.dateOperators = AxOperator.getDateOperator(); \n        this.expression.comparisonOperator = this.dateOperators[dateOperatorIndex];\n\n        if(operatorIndex===this.dateOperatorIndex.between){\n            this.expression.value = new AxExpDateRangeValue();\n        }else if(operatorIndex === DateOperatorIndex.today) {\n            const dateValue = new AxExpDateValue();\n            dateValue.value = new Date();\n            this.expression.value = dateValue;\n        }else{\n            this.expression.value = new AxExpDateValue();\n        }\n        this.expression.value.isInputVisible = this.selectedOperator;\n        this.isSubmitButton = false;\n        this.setDisplayValue();\n    }\n\n    /**\n     * set field select value\n     */\n  setDisplayValue(): void{\n    this.displayValue = this.expression.field.label;\n    if(this.expression.value.searchable()){\n        if(this.expression.value instanceof AxExpDateRangeValue){\n            const expressionValue = new AxExpDateRangeValue(this.expression.value as AxExpDateRangeValue);\n            this.displayValue = this.expression.field.label+' '+this.expression.comparisonOperator.text+' '+new Date(expressionValue.value.from).toLocaleDateString('en-US') + ' To ' + new Date(expressionValue.value.to).toLocaleDateString('en-US');;\n        }else if(this.selectedOperator === DateOperatorIndex.today){\n            this.displayValue = this.expression.comparisonOperator.text;\n        }else{\n            const expressionValue = new AxExpDateValue(this.expression.value as AxExpDateValue);\n            this.displayValue = this.expression.field.label+' '+this.expression.comparisonOperator.text+' '+new Date(expressionValue.value).toLocaleDateString('en-US');\n        }\n    }\n\n    this.addEllipsesToDisplayValue(this.displayValue);\n\n  }\n\n    /**\n     * Clear select value into expression value\n     */\n     clearAllValue(): void {\n        this.selectedOperator = null;\n        this.setDateOperator(this.selectedOperator);\n        this.displayValue = this.expression.field.label;\n        this.filterValueChanged();\n        this.applyFilterEvent.emit();\n    }\n\n    /**\n     * set the time input visible value\n     *\n     * @param dateOperatorType\n     */\n    onDateFilterOptionChange(dateOperatorType: number): void {\n        this.selectedOperator = dateOperatorType;\n        this.expression.value.isInputVisible = dateOperatorType;\n    }\n\n\n\n    /**\n     * Filter value Change Event\n     *\n     * @Overridden\n     */\n     filterValueChanged(): void{\n        this.setDisplayValue();\n        this.filterValueChange.emit(this.filter);\n        this._commonFilterService.filterValueChange.emit(this.filter);\n    }\n\n     /**\n      * THis will reset Filter value.\n      *\n      * @overridden\n      */\n      resetFilter(): void {\n        if( this.defaultValue && this.defaultValue.isInputVisible ===  DateOperatorIndex.between){\n            this.expression.value = new AxExpDateRangeValue(this.defaultValue);\n        }else{\n            this.expression.value =  new AxExpDateValue(this.defaultValue);\n        }\n        this.expression.comparisonOperator = this.defaultComparisonOperator;\n        this.expression.value.isInputVisible = this.defaultOperatorIndex;\n        this.selectedOperator = this.defaultOperatorIndex;\n\n        this.setDisplayValue();\n    }\n\n\n    /**\n     * Set Default Value\n     *\n     * @overridden\n     */\n     setDefaultValue(): void {\n        if(this.expression.value.isInputVisible === DateOperatorIndex.between){\n            this.defaultValue = new AxExpDateRangeValue(this.expression.value as AxExpDateRangeValue);\n            this.dateRange.controls['start'].setValue(this.defaultValue.value.from);\n            this.dateRange.controls['end'].setValue(this.defaultValue.value.to);\n            this.dateRange.updateValueAndValidity();\n        }else{\n            this.defaultValue = new AxExpDateValue(this.expression.value as AxExpDateValue);\n        }\n        this.defaultComparisonOperator = this.expression.comparisonOperator;\n        this.defaultOperatorIndex = this.expression.value.isInputVisible;\n        this.selectedOperator = this.expression.value.isInputVisible;\n    }\n\n    /**\n     * This function clear the filter value.\n     *\n     * @overridden\n     */\n     clearValue(): void {\n        this.expression.value = new AxExpDateValue();\n    }\n\n}\n","<div class=\"fields\" >\n    <div class=\"calender-field\">\n        <mat-form-field appearance=\"fill\">\n            <!-------selected value display in filter section--->\n            <mat-select\n                [placeholder]=\"displayValue\"\n                [matTooltip]=\"toolTipValue\"\n                [matTooltipClass]=\"'capitalize'\"\n                class=\"filter-dropdown\"\n                [matMenuTriggerFor]=\"belowMenu\"\n                (selectionChange)=\"filterValueChanged()\"\n                #dateTimeFilter\n            >\n\n            </mat-select>\n        </mat-form-field>\n    </div>\n    <!-------Mat Menu date time filter option section--->\n    <mat-menu #belowMenu=\"matMenu\"  yPosition=\"below\" class=\"date-time-filter-panel-class\" backdropClass=\"date-time-filter-backdrop-class\">\n        <mat-radio-group class=\"radio-group\" (click)=\"$event.stopPropagation()\">\n            <!---Yesterday filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.yesterday\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.yesterday)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.yesterday)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.yesterday\"\n                    />\n                    Yesterday\n                </label>\n            </div> -->\n            <!---Today filter section-->\n            <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.today\"\n                        name=\"isCalenderInputVisible\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.today)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.today)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.today\"\n                    />\n                    Today\n                </label>\n            </div>\n            <!-- -Tomorrow filter section -->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.tomorrow\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.tomorrow)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.tomorrow)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.tomorrow\"\n                    />\n                    Tomorrow\n                </label>\n            </div> -->\n            <!---Week filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.week\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.week)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.week)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.week\"\n                    />\n                    Week\n                </label>\n            </div> -->\n            <!---Month filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.month\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.month)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.month)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.month\"\n                    />\n                    Month\n                </label>\n            </div> -->\n            <!---Year filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.year\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.year)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.year)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.year\"\n                    />\n                    Year\n                </label>\n            </div> -->\n            <!---Previous Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.previousQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.previousQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.previousQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.previousQuarter\"\n                    />\n                    Previous Quarter\n                </label>\n            </div> -->\n            <!---Current Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.currentQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.currentQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.currentQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.currentQuarter\"\n                    />\n                    Current Quarter\n                </label>\n            </div> -->\n            <!---Next Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.nextQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.nextQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.nextQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.nextQuarter\"\n                    />\n                    Next Quarter\n                </label>\n            </div> -->\n            <!---First Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.firstQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.firstQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.firstQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.firstQuarter\"\n                    />\n                    First Quarter\n                </label>\n            </div> -->\n            <!---Second Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.secondQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.secondQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.secondQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.secondQuarter\"\n                    />\n                    Second Quarter\n                </label>\n            </div> -->\n            <!---Third Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.thirdQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.thirdQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.thirdQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.thirdQuarter\"\n                    />\n                    Third Quarter\n                </label>\n            </div> -->\n            <!---Fourth Quarter filter section-->\n            <!-- <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.fourthQuarter\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"onDateFilterOptionChange(dateOperatorIndex.fourthQuarter)\"\n                        (click)=\"setDateOperator(dateOperatorIndex.fourthQuarter)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.fourthQuarter\"\n                    />\n                    Fourth Quarter\n                </label>\n            </div> -->\n            <!-------More than filter option section--->\n            <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.greaterThanOrEqualTo\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"setDateOperator(dateOperatorIndex.greaterThanOrEqualTo)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.greaterThanOrEqualTo\"\n                        />\n                    More Than Or Equal To\n                    <div *ngIf=\"selectedOperator === dateOperatorIndex.greaterThanOrEqualTo\">\n                        <mat-form-field appearance=\"standard\">\n                            <input matInput\n                            [ngxMatDatetimePicker]=\"picker1\"\n                            placeholder=\"Choose a date\"\n                            [readonly]=\"true\"\n                            [(ngModel)]=\"expression.value.value\"\n                            (click)=\"picker1.open()\"\n                            (dateChange)=\"filterValueChanged()\"\n                            >\n                            <mat-datepicker-toggle matSuffix [for]=\"picker1\"></mat-datepicker-toggle>\n                            <ngx-mat-datetime-picker #picker1 (change)=\"updateRange($event)\"\n                            (click)=\"$event.stopPropagation()\"></ngx-mat-datetime-picker>\n                        </mat-form-field>\n                    </div\n                ></label>\n            </div>\n            <!-------Less than filter option section--->\n            <div>\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.lessThanOrEqualTo\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"setDateOperator(dateOperatorIndex.lessThanOrEqualTo)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.lessThanOrEqualTo\"\n                    />\n                    Less Than Or Equal To\n                    <div *ngIf=\"selectedOperator === dateOperatorIndex.lessThanOrEqualTo\">\n                        <mat-form-field appearance=\"standard\">\n                            <input matInput\n                            [ngxMatDatetimePicker]=\"picker2\"\n                            placeholder=\"Choose a date\"\n                            [readonly]=\"true\"\n                            [(ngModel)]=\"expression.value.value\"\n                            (click)=\"picker2.open()\"\n                            (dateChange)=\"filterValueChanged()\"\n                            >\n                            <mat-datepicker-toggle matSuffix [for]=\"picker2\"></mat-datepicker-toggle>\n                            <ngx-mat-datetime-picker #picker2 (click)=\"$event.stopPropagation()\"></ngx-mat-datetime-picker>\n                          </mat-form-field>\n                    </div>\n                </label>\n            </div>\n            <!-------Between filter option section--->\n            <div class=\"between\">\n                <label>\n                    <input\n                        [value]=\"dateOperatorIndex.between\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (change)=\"setDateOperator(dateOperatorIndex.between)\"\n                        [checked]=\"selectedOperator === dateOperatorIndex.between\"\n                    />\n                    Between\n                    <div class=\"between-dates date-time-between relative\" *ngIf=\"selectedOperator === dateOperatorIndex.between\">\n                        <input type=\"text\"\n                            #dateRange\n                            matInput\n                            ngxDaterangepickerMd\n                            startKey=\"from\"\n                            endKey=\"to\"\n                            [timePicker]=\"true\"\n                            [readonly]=\"true\"\n                            [timePickerSeconds]=\"false\"\n                            [timePickerIncrement]=\"1\"\n                            [timePicker24Hour]=\"true\"\n                            [locale]=\"{applyLabel: 'ok', format: 'MM/DD/YYYY HH:mm'}\"\n                            [singleDatePicker]=\"false\"\n                            (datesUpdated)=\"dateRangeChange()\"\n                            [(ngModel)]=\"dateRangeValue.value\"\n                            (click)=\"$event.stopPropagation()\"/>\n                            <button class=\"daterange-icon-button absolute top-2 right-2 h-4 w-4\" (click)=\"dateRangeClick($event,dateRange);\">\n                                <mat-icon class=\"axo-icon daterange-icon right-0 h-4 w-4 min-h-4 min-w-4\" svgIcon=\"axo_date_range\"  type=\"button\"></mat-icon>\n                            </button>\n                    </div>\n                </label>\n            </div>\n        </mat-radio-group>\n            <lib-filter-footer\n                [isFilterValue]=\"true\"\n                (clearAllValue)=\"clearAllValue()\"\n                (applyFilter)=\"applyFilter()\"\n                (closeFilter)=\"belowMenu.close()\"\n                >\n            </lib-filter-footer>\n        </mat-menu>\n    <mat-icon class=\"down-arrow filter-down-arrow\" [svgIcon]=\"'axo_arrow'\" (click)=\"dateTimeFilter.open()\"></mat-icon>\n</div>\n","import { DataLayerManager } from '@agm/core';\nimport {\n    Component,\n    OnChanges,\n    OnInit,\n    SimpleChanges,\n    ViewEncapsulation\n} from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { AxExpDateRangeValue } from '../../enlighten-lib/ax-expression/ax-exp-date-range-value';\nimport { AxExpDateTimeValue } from '../../enlighten-lib/ax-expression/ax-exp-date-time';\nimport { AxExpDateTimeRange } from '../../enlighten-lib/ax-expression/ax-exp-date-time-range';\nimport { AxExpDateTimeRangeValue } from '../../enlighten-lib/ax-expression/ax-exp-date-time-range-value';\nimport { ExpressionValueSubType } from '../../enlighten-lib/ax-expression/exp-sub-type';\nimport { AxOperator, DateOperatorIndex } from '../../enlighten-lib/filters/ax-operator';\nimport { CommonFilterComponent } from '../common-filter/common-filter.component';\nimport { CommonFilterService } from '../common-filter/common-filter.service';\nconst  dateTimeWidget: Array<string> = [ExpressionValueSubType.dateTime, ExpressionValueSubType.dateTimeOld, ExpressionValueSubType.timestamp];\n@Component({\n    selector: 'lib-date-time-filter',\n    templateUrl: './date-time-filter.component.html',\n    styleUrls: ['./date-time-filter.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\nexport class DateTimeFilterComponent extends CommonFilterComponent implements OnInit, OnChanges {\n    //<----------< Inputs >---------------------------->\n\n    //<-----------<Outputs >--------------------------->\n\n    //<-------------(Enums )--------------------------->\n    dateOperatorIndex = DateOperatorIndex;\n    //<-------------(Component Variables )------------->\n    dateOperators: Array<AxOperator>;\n    selectedOperator: number;\n    defaultComparisonOperator: AxOperator;\n    defaultOperatorIndex: DateOperatorIndex;\n    dateRangeValue:AxExpDateTimeRangeValue= new AxExpDateTimeRangeValue();\n\n\n    constructor(_commonFilterService: CommonFilterService,\n        ) {\n        super(_commonFilterService);\n    }\n\n\n /**\n  * ngOnChanges use to change the current page object\n  */\n\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(changes: SimpleChanges): void {\n        super.ngOnChanges(changes);\n    }\n\n    ngOnInit(): void {\n        super.ngOnInit();\n        this.dateOperators = AxOperator.getDateOperator();\n        this.setDisplayValue();\n\n    }\n\n    /**\n     * Set date value of specific date object\n     *\n     * @param operatorIndex\n     */\n    setDateOperator(operatorIndex: number): void {\n        this.selectedOperator = operatorIndex;\n        const dateOperatorIndex = operatorIndex > 0 ? (operatorIndex - 1) : operatorIndex;\n        this.expression.comparisonOperator = this.dateOperators[dateOperatorIndex];\n\n        if(operatorIndex===this.dateOperatorIndex.between){\n            this.expression.value = new AxExpDateTimeRangeValue();\n        }else if(operatorIndex === DateOperatorIndex.today) {\n            const dateValue = new AxExpDateTimeValue();\n            dateValue.value = new Date();\n            this.expression.value = dateValue;\n        }else{\n            this.expression.value = new AxExpDateTimeValue();\n        }\n        this.expression.value.isInputVisible = this.selectedOperator;\n        this.setDisplayValue();\n\n    }\n    /**\n     * set field select value\n    */\n    setDisplayValue(): void{\n        this.displayValue = this.expression.field.label;\n        if(this.expression.value.searchable()){\n            if(this.expression.value instanceof AxExpDateTimeRangeValue){\n                const expressionValue = new AxExpDateTimeRangeValue(this.expression.value as AxExpDateTimeRangeValue);\n                this.displayValue = this.expression.field.label+' '+this.expression.comparisonOperator.text+' '+new Date(expressionValue.value.from).toLocaleString('en-US') + ' To ' + new Date(expressionValue.value.to).toLocaleString('en-US');\n            }else if(this.selectedOperator === DateOperatorIndex.today){\n                this.displayValue = this.expression.comparisonOperator.text;\n            }\n            else{\n                const expressionValue = new AxExpDateTimeValue(this.expression.value as AxExpDateTimeValue);\n                this.displayValue = this.expression.field.label+' '+this.expression.comparisonOperator.text+' '+new Date(expressionValue.value).toLocaleString('en-US');\n            }\n        }\n        this.addEllipsesToDisplayValue(this.displayValue);\n    }\n\n    /***\n\n    /**\n     * Clear select value into expression value\n     */\n    clearAllValue(): void {\n        this.setDateOperator(this.selectedOperator);\n        this.selectedOperator = null;\n        this.displayValue = this.expression.field.label;\n        this.filterValueChanged();\n        // this.formValidator();\n        // this.filterValue.emit();\n        this.applyFilterEvent.emit();\n    }\n\n    /**\n     * set the time input visible value\n     *\n     * @param dateOperatorType\n     */\n    onDateFilterOptionChange(dateOperatorType: number): void {\n        this.selectedOperator = dateOperatorType;\n        this.expression.value.isInputVisible = dateOperatorType;\n    }\n\n\n     /**\n     * Filter value Change Event\n     *\n     * @Overridden\n     */\n      filterValueChanged(): void{\n        this.setDisplayValue();\n        this.filterValueChange.emit(this.filter);\n        this._commonFilterService.filterValueChange.emit(this.filter);\n    }\n\n\n    /**\n     * THis will reset Filter value.\n     *\n     * @overridden\n     */\n     resetFilter(): void {\n        if( this.defaultValue && this.defaultValue.isInputVisible ===  DateOperatorIndex.between){\n            const dataRangeValue = new AxExpDateTimeRangeValue(this.defaultValue);\n            this.expression.value = dataRangeValue;\n            this.dateRangeValue.value.from = dataRangeValue.value.from\n            this.dateRangeValue.value.to = dataRangeValue.value.to\n        }else{\n            this.expression.value =  new AxExpDateTimeValue(this.defaultValue);\n        }\n        this.expression.comparisonOperator = this.defaultComparisonOperator;\n        this.expression.value.isInputVisible = this.defaultOperatorIndex;\n        this.selectedOperator = this.defaultOperatorIndex;\n\n        this.setDisplayValue();\n    }\n\n    /**\n     * Set Default Value\n     *\n     * @overridden\n     */\n     setDefaultValue(): void {\n        if(this.expression.value.isInputVisible === DateOperatorIndex.between){\n            this.defaultValue = new AxExpDateTimeRangeValue(this.expression.value as AxExpDateTimeRangeValue);\n            this.dateRangeValue.value.from = this.defaultValue.value.from;\n            this.dateRangeValue.value.to = this.defaultValue.value.to;\n        }else{\n            this.defaultValue = new AxExpDateTimeValue(this.expression.value as AxExpDateTimeValue);\n        }\n        this.defaultComparisonOperator = this.expression.comparisonOperator;\n        this.defaultOperatorIndex = this.expression.value.isInputVisible;\n        this.selectedOperator = this.expression.value.isInputVisible;\n    }\n\n    /**\n     * Apply filter event call and check date range validation in this func\n     *\n     * @returns\n     */\n    applyDateFilter(): void {\n        if (this.expression.value && this.expression.value.isSearchable) {\n            // this.setDateAndTimeRangeExpValue();\n            this.expression.value.isSearchable = true;\n        }else{\n            this.expression.value.isSearchable = false;\n        }\n        this.applyFilterEvent.emit();\n    }\n\n\n    /**\n     * This function clear the filter value.\n     *\n     * @overridden\n     */\n    clearValue(): void {\n        this.expression.value = new AxExpDateTimeValue();\n    }\n      /**\n       * open date Range picker on OnClick event\n       */\n    dateRangeClick(event: Event,mdPicker){\n        event.stopPropagation();\n        mdPicker.click();\n    }\n\n    /**\n     * Date Range Value changed\n     * @param value\n     */\n    dateRangeChange(): void{\n        const dateRangeValue = this.expression.value as AxExpDateTimeRangeValue;\n        dateRangeValue.value.from = this.dateRangeValue.value.from;\n        dateRangeValue.value.to = this.dateRangeValue.value.to;\n        this.expression.value = dateRangeValue;\n        this.filterValueChanged()\n\n    }\n\n}\n","<div class=\"fields\" >\n    <div class=\"time-field\">\n        <mat-form-field appearance=\"none\">\n            <mat-select\n                [placeholder]=\"displayValue\"\n                [matTooltip]=\"toolTipValue\"\n                [matTooltipClass]=\"'capitalize'\"\n                class=\"filter-dropdown\"\n                [matMenuTriggerFor]=\"belowMenu\"\n                (selectionChange)=\"filterValueChanged()\"\n                #timeSelectList\n            >\n            </mat-select>\n        </mat-form-field>\n    </div>\n    <mat-menu #belowMenu=\"matMenu\"  yPosition=\"below\" class=\"time-filter-panel\" backdropClass=\"time-filter-backdrop-class\">\n        <mat-radio-group class=\"radio-group\" (click)=\"$event.stopPropagation()\" [ngClass]=\"{'between_time_active': selectedOperator === timeOperatorIndex.between}\">\n            <div class=\"more-than\">\n                <label>\n                    <input\n                        [value]=\"timeOperatorIndex.greaterThanOrEqualTo\"\n                        (change)=\"onTimeFilterOptionChange(timeOperatorIndex.greaterThanOrEqualTo)\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (click)=\"setTimeOperator(timeOperatorIndex.greaterThanOrEqualTo)\"\n                        [checked]=\"selectedOperator === timeOperatorIndex.greaterThanOrEqualTo\" />\n                    More Than Or Equal To\n                    <div *ngIf=\"selectedOperator === timeOperatorIndex.greaterThanOrEqualTo\">\n                        <mat-form-field appearance=\"standard\">\n                            <input\n                                matInput\n                                type=\"time\"\n                                placeholder=\"More Than\"\n                                [(ngModel)]=\"expression.value.value\"\n                                (change)=\"filterValueChanged()\"\n                            />\n                        </mat-form-field></div>\n                    </label>\n            </div>\n            <div class=\"less-than\">\n                <label>\n                    <input\n                        [value]=\"timeOperatorIndex.lessThanOrEqualTo\"\n                        (change)=\"onTimeFilterOptionChange(timeOperatorIndex.lessThanOrEqualTo)\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (click)=\"setTimeOperator(timeOperatorIndex.lessThanOrEqualTo)\"\n                        [checked]=\"selectedOperator === timeOperatorIndex.lessThanOrEqualTo\"\n                    />\n                    Less Than Or Equal To\n                    <div *ngIf=\"selectedOperator === timeOperatorIndex.lessThanOrEqualTo\">\n                        <mat-form-field appearance=\"standard\">\n                            <input\n                                matInput\n                                type=\"time\"\n                                placeholder=\"Less Than\"\n                                [(ngModel)]=\"expression.value.value\"\n                                (change)=\"filterValueChanged()\"\n                            />\n                        </mat-form-field>\n                    </div>\n                </label>\n            </div>\n            <div class=\"between\">\n                <label>\n                    <input\n                        [value]=\"timeOperatorIndex.between\"\n                        (change)=\"onTimeFilterOptionChange(timeOperatorIndex.between)\"\n                        name=\"selectedOperator\"\n                        type=\"radio\"\n                        (click)=\"setTimeOperator(timeOperatorIndex.between);$event.stopPropagation()\"\n                        [checked]=\"selectedOperator === timeOperatorIndex.between\"\n                    />\n                    Between\n                    <div class=\"between-time timer\" *ngIf=\"selectedOperator === timeOperatorIndex.between\" >\n                        <mat-form-field appearance=\"standard\" *ngIf=\"expression?.value?.value\">\n                            <input\n                                matInput\n                                name=\"startTime\"\n                                type=\"time\"\n                                placeholder=\"Start time\"\n                                [(ngModel)]=\"expression.value.value.from\"\n                                (click)=\"$event.stopPropagation()\"\n                                (change)=\"filterValueChanged()\"\n                            />\n                            </mat-form-field>\n                        <mat-form-field appearance=\"standard\" *ngIf=\"expression?.value?.value\">\n                            <input\n                                matInput\n                                name=\"endTime\"\n                                type=\"time\"\n                                placeholder=\"End time\"\n                                [(ngModel)]=\"expression.value.value.to\"\n                                (click)=\"$event.stopPropagation()\"\n                                (change)=\"filterValueChanged()\"\n                            />\n                        </mat-form-field>\n                    </div>\n                </label>\n            </div>\n        </mat-radio-group>\n        <lib-filter-footer\n            [isFilterValue]=\"true\"\n            (clearAllValue)=\"clearAllValue()\"\n            (applyFilter)=\"applyFilter()\"\n            (closeFilter)=\"belowMenu.close()\"\n            ></lib-filter-footer>\n    </mat-menu>\n    <mat-icon class=\"down-arrow filter-down-arrow\" [svgIcon]=\"'axo_arrow'\" (click)=\"timeSelectList.open()\"></mat-icon>\n</div>\n","import { CommonFilterService } from './../common-filter/common-filter.service';\nimport { Component, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { AxExpTimeValue } from '../../enlighten-lib/ax-expression/ax-exp-time';\nimport { AxExpTimeRangeValue } from '../../enlighten-lib/ax-expression/ax-exp-time-range-value';\nimport { AxOperator, DateOperatorIndex } from '../../enlighten-lib/filters/ax-operator';\nimport { CommonFilterComponent } from '../common-filter/common-filter.component';\n\n@Component({\n  selector: 'lib-time-filter',\n  templateUrl: './time-filter.component.html',\n  styleUrls: ['./time-filter.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class TimeFilterComponent extends CommonFilterComponent implements OnInit {\n    //<----------< Inputs >---------------------------->\n\n    //<-----------<Outputs >--------------------------->\n\n    //<-------------(Enums )--------------------------->\n    timeOperatorIndex = DateOperatorIndex;\n    //<-------------(Component Variables )------------->\n    timeOperators: Array<AxOperator>;\n    selectedOperator: number = 0;\n    defaultComparisonOperator: AxOperator;\n    defaultOperatorIndex: number;\n\n    constructor(_commonFilterService: CommonFilterService){\n        super(_commonFilterService);\n    }\n\n  // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n  ngOnChanges(changes: SimpleChanges): void {\n    super.ngOnChanges(changes);\n    // if (changes['clearValueEvent'] && changes['clearValueEvent']?.previousValue !== changes['clearValueEvent']?.currentValue) {\n    //   const val=this.expression.value as any;\n    //   if(!val.value || !val.isSearchable){\n    //     this.selectedOperator = 0;\n    //     const timeRange = new AxExpTimeValue(this.expression.value as AxExpTimeValue);\n    //     timeRange.isSearchable = false;\n    //     timeRange.value = '12:00';\n    //     this.expression.value = timeRange;\n    //   }\n    // }\n  }\n\n  ngOnInit(): void {\n    super.ngOnInit();\n    this.timeOperators = AxOperator.getDateOperator();\n    this.setDisplayValue();\n    // if (!this.expression.value) {\n    //   this.expression.value = new AxExpTimeValue();\n    // } else {\n    //   this.selectedOperator = this.expression.value.isInputVisible;\n    //   this.setTimeRangeExpValue();\n    // }\n  }\n\n  /**\n   * Set time operator object on  specific operator index\n   *\n   * @param operatorIndex\n   */\n    setTimeOperator(operatorIndex: number): void {\n      this.expression.comparisonOperator = this.timeOperators[operatorIndex-1];\n        if(operatorIndex === DateOperatorIndex.between){\n            this.expression.value = new AxExpTimeRangeValue();\n        }else{\n            this.expression.value = new AxExpTimeValue();\n        }\n        this.expression.value.isInputVisible = this.selectedOperator;\n    }\n\n    /**\n     * set display value\n     * This value show as label\n     */\n     setDisplayValue(): void{\n      this.displayValue = this.expression.field.label;\n      if(this.expression.value instanceof AxExpTimeRangeValue){\n          const expressionValue = new AxExpTimeRangeValue(this.expression.value as AxExpTimeRangeValue);\n          if(expressionValue.value.from !== null){\n              this.displayValue = this.expression.field.label+' Between '+expressionValue.value.from + ' To ' + expressionValue.value.to;\n          }\n      }else{\n          const expressionValue = new AxExpTimeValue(this.expression.value as AxExpTimeValue);\n          if(expressionValue.value !== null){\n              this.displayValue = this.expression.field.label+' '+this.expression.comparisonOperator.text+' '+expressionValue.value;\n          }\n      }\n      this.addEllipsesToDisplayValue(this.displayValue);\n    }\n\n\n    /**\n     * Clear all selected value into expression value\n     */\n     clearAllValue(): void {\n        this.setTimeOperator(this.selectedOperator);\n        this.selectedOperator = null;\n        this.displayValue = this.expression.field.label;\n        this.filterValueChanged();\n        this.applyFilterEvent.emit();\n    }\n\n\n    /**\n     * set the time input visible value\n     *\n     * @param dateOperatorType\n     */\n    onTimeFilterOptionChange(dateOperatorType: number): void {\n        this.selectedOperator = dateOperatorType;\n        this.expression.value.isInputVisible = dateOperatorType;\n    }\n\n\n    /**\n     * Filter value Change Event\n     *\n     * @Overridden\n     */\n    filterValueChanged(): void{\n        this.setDisplayValue();\n        this.filterValueChange.emit(this.filter);\n        this._commonFilterService.filterValueChange.emit(this.filter);\n    }\n\n\n\n    /**\n     * THis will reset Filter value.\n     *\n     * @overridden\n     */\n     resetFilter(): void {\n        if( this.defaultValue && this.defaultValue.isInputVisible ===  DateOperatorIndex.between){\n            this.expression.value = new AxExpTimeRangeValue(this.defaultValue);\n        }else{\n            this.expression.value =  new AxExpTimeValue(this.defaultValue);\n        }\n        this.expression.comparisonOperator = this.defaultComparisonOperator;\n        this.expression.value.isInputVisible = this.defaultOperatorIndex;\n        this.selectedOperator = this.defaultOperatorIndex;\n\n        this.setDisplayValue();\n    }\n\n    /**\n     * Set Default Value\n     *\n     * @overridden\n     */\n    setDefaultValue(): void {\n        if(this.expression.value.isInputVisible === DateOperatorIndex.between){\n            this.defaultValue = new AxExpTimeRangeValue(this.expression.value as AxExpTimeRangeValue);\n        }else{\n            this.defaultValue = new AxExpTimeValue(this.expression.value as AxExpTimeValue);\n        }\n        this.defaultComparisonOperator = this.expression.comparisonOperator;\n        this.defaultOperatorIndex = this.expression.value.isInputVisible;\n        this.selectedOperator = this.expression.value.isInputVisible;\n    }\n    /**\n     * This function clear the filter value.\n     *\n     * @overridden\n     */\n    clearValue(): void {\n        this.expression.value = new AxExpTimeValue();\n    }\n}\n","<div class=\"fields\" >\n  <mat-form-field appearance=\"none\">\n    <mat-select\n        [placeholder]=\"displayValue\"\n        [matTooltip]=\"toolTipValue\"\n        class=\"number-filter-dropdown\"\n        [matMenuTriggerFor]=\"belowMenu\"\n        (selectionChange)=\"filterValueChanged()\" \n        #numberSelectList>\n    </mat-select>\n  </mat-form-field>\n\n<mat-menu #belowMenu=\"matMenu\" class=\"paneltest\"   yPosition=\"below\"  backdropClass=\"number-filter-backdrop-class\">\n  <mat-radio-group class=\"radio-group\" (click)=\"$event.stopPropagation()\" [ngClass]=\"{'between_date_active':  selectedOperator === numberOperatorIndex.between}\">\n    <div class=\"equal-to\">\n      <label>\n        <input\n          [value]=\"numberOperatorIndex.equalTo\"\n          name=\"selectedOperator\"\n          type=\"radio\"\n          (change)=\"onNumberFilterOptionChange(numberOperatorIndex.equalTo)\"\n          [checked]=\"selectedOperator === numberOperatorIndex.equalTo\"\n          (click)=\"setNumericOperator(numberOperatorIndex.equalTo)\"\n\n        />\n        Equals To\n        <div  *ngIf=\"selectedOperator === numberOperatorIndex.equalTo\">\n          <mat-form-field appearance=\"standard\" >\n            <input\n              matInput\n              type=\"number\"\n              placeholder=\"Equals To\"\n              [(ngModel)]=\"expression.value.value\"\n              (change)=\"filterValueChanged()\"\n            />\n          </mat-form-field>\n        </div>\n      </label>\n    </div>\n    <div class=\"more-than\">\n      <label>\n        <input\n          [value]=\"numberOperatorIndex.moreThan\"\n          name=\"selectedOperator\"\n          type=\"radio\"\n          (change)=\"onNumberFilterOptionChange(numberOperatorIndex.moreThan)\"\n          [checked]=\"selectedOperator === numberOperatorIndex.moreThan\"\n          (click)=\"setNumericOperator(numberOperatorIndex.moreThan)\"\n        />\n        More Than Or Equals To\n        <div  *ngIf=\"selectedOperator === numberOperatorIndex.moreThan\">\n          <mat-form-field appearance=\"standard\" >\n            <input\n              matInput\n              placeholder=\"More Than\"\n              type=\"number\"\n              [(ngModel)]=\"expression.value.value\"\n              (change)=\"filterValueChanged()\"\n            />\n          </mat-form-field>\n        </div>\n      </label>\n    </div>\n    <div class=\"less-than\">\n    <label>\n      <input\n        [value]=\"numberOperatorIndex.lessThan\"\n        name=\"selectedOperator\"\n        type=\"radio\"\n        (change)=\"onNumberFilterOptionChange(numberOperatorIndex.lessThan)\"\n        [checked]=\"selectedOperator === numberOperatorIndex.lessThan\"\n        (click)=\"setNumericOperator(numberOperatorIndex.lessThan)\"\n      />\n    Less Than Or Equals To\n      <div  *ngIf=\"selectedOperator === numberOperatorIndex.lessThan\">\n        <mat-form-field appearance=\"standard\" >\n          <input\n            matInput\n            placeholder=\"Less Than\"\n            type=\"number\"\n            [(ngModel)]=\"expression.value.value\"\n            (change)=\"filterValueChanged()\"\n          />\n        </mat-form-field>\n      </div>\n    </label>\n    </div>\n    <div class=\"between-range\">\n    <label>\n      <input\n        [value]=\"numberOperatorIndex.between\"\n        name=\"selectedOperator\"\n        type=\"radio\"\n        (change)=\"onNumberFilterOptionChange(numberOperatorIndex.between)\"\n        [checked]=\"selectedOperator === numberOperatorIndex.between\"\n        (click)=\"setNumericOperator(numberOperatorIndex.between)\"\n      />\n      Between\n    <div class=\"between-dates flex items-center\"  *ngIf=\"selectedOperator === numberOperatorIndex.between\">\n        <mat-form-field appearance=\"standard\" *ngIf=\"expression?.value?.value\">\n          <input\n            matInput\n            placeholder=\"From\"\n            type=\"number\"\n            [(ngModel)]=\"expression.value.value.from\"\n            (change)=\"filterValueChanged()\"\n          />\n        </mat-form-field>\n        <span class=\"range\"> - </span>\n        <mat-form-field appearance=\"standard\" *ngIf=\"expression?.value?.value\">\n          <input\n            matInput\n            placeholder=\"TO\"\n            type=\"number\"\n            [(ngModel)]=\"expression.value.value.to\"\n            (change)=\"filterValueChanged()\"\n          />\n        </mat-form-field>\n      </div>\n    </label>\n    </div>\n  </mat-radio-group>\n  <lib-filter-footer\n    [isFilterValue]=\"true\"\n    (clearAllValue)=\"clearAllValue()\"\n    (applyFilter)=\"applyFilter()\"\n    (closeFilter)=\"belowMenu?.close()\"\n    ></lib-filter-footer>\n</mat-menu>\n<mat-icon class=\"down-arrow\" [svgIcon]=\"'axo_arrow'\" (click)=\"numberSelectList.open()\"></mat-icon>\n</div>\n","import { CommonFilterService } from './../common-filter/common-filter.service';\nimport { Component, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { AxOperator } from '../../enlighten-lib/filters/ax-operator';\nimport { AxExpNumberRangeValue } from '../../enlighten-lib/ax-expression/ax-exp-number-range-value';\nimport { AxExpNumberValue } from '../../enlighten-lib/ax-expression/ax-exp-number-value';\nimport { NumberOperatorIndex } from '../../enlighten-lib/filters/general-filter-type';\nimport { CommonFilterComponent } from '../common-filter/common-filter.component';\n\n@Component({\n  selector: 'lib-number-filter',\n  templateUrl: './number-filter.component.html',\n  styleUrls: ['./number-filter.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class NumberFilterComponent extends CommonFilterComponent implements OnInit {\n    //<----------< Inputs >---------------------------->\n\n    //<-----------<Outputs >--------------------------->\n\n    //<-------------(Enums )--------------------------->\n    numberOperatorIndex = NumberOperatorIndex;\n    //<-------------(Component Variables )------------->\n    numberOperators: Array<AxOperator>;\n    selectedOperator: NumberOperatorIndex = null;\n    defaultComparisonOperator: AxOperator;\n    defaultOperatorIndex: NumberOperatorIndex;\n\n    constructor(_commonFilterService: CommonFilterService) {\n        super(_commonFilterService);\n\n    }\n    /**\n     * On change Life cycle hook.\n     *\n     * @param changes\n     */\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(changes: SimpleChanges): void {\n        super.ngOnChanges(changes);\n    }\n\n    /**\n     * On Init life cycle hook.\n     */\n    ngOnInit(): void {\n        super.ngOnInit();\n        this.numberOperators = AxOperator.getNumericOperator();\n        this.setDisplayValue();\n    }\n  /**\n   *  Set the operator wise expression value object\n   *\n   * @param operatorIndex\n   */\n  setNumericOperator(operatorIndex: number): void {\n    this.expression.comparisonOperator = this.numberOperators[operatorIndex];\n    if(operatorIndex === NumberOperatorIndex.between){\n      this.expression.value = new AxExpNumberRangeValue();\n    }else{\n      this.expression.value = new AxExpNumberValue();\n    }\n    this.expression.value.isInputVisible = this.selectedOperator;\n  }\n\n\n  /**\n   * set field select value\n   */\n  setDisplayValue(): void{\n    this.displayValue = this.expression.field.label;\n    if(this.expression.value instanceof AxExpNumberRangeValue){\n        const expressionValue = new AxExpNumberRangeValue(this.expression.value as AxExpNumberRangeValue);\n        if(expressionValue.value.from !== null && expressionValue.value.to !== 0){\n            this.displayValue = this.expression.field.label+' Between '+expressionValue.value.from + ' To ' + expressionValue.value.to;\n        }\n    }else{\n        const expressionValue = new AxExpNumberValue(this.expression.value as AxExpNumberValue);\n        if(expressionValue.value !== null)\n            {this.displayValue = this.expression.field.label+' '+this.expression.comparisonOperator.text+' '+expressionValue.value;}\n    }\n\n    this.addEllipsesToDisplayValue(this.displayValue);\n  }\n\n  /**\n   * Clear select value into expression value\n   */\n   clearAllValue(): void{\n        this.setNumericOperator(this.selectedOperator);\n        this.selectedOperator = null;\n        this.displayValue = this.expression.field.label;\n        this.filterValueChanged();\n        this.applyFilterEvent.emit();\n   }\n\n   /**\n    * set the number input visible value\n    *\n    * @param dateOperatorType\n    */\n    onNumberFilterOptionChange(numberOperatorType: number): void {\n      this.selectedOperator = numberOperatorType;\n      this.expression.value.isInputVisible = numberOperatorType;\n    }\n\n    /**\n     * Filter value Change Event\n     *\n     * @Overridden\n     */\n    filterValueChanged(): void{\n        this.setDisplayValue();\n        this.filterValueChange.emit(this.filter);\n        this._commonFilterService.filterValueChange.emit(this.filter);\n    }\n\n    /**\n     * THis will reset Filter value.\n     *\n     * @overridden\n     */\n    resetFilter(): void {\n        if( this.defaultValue && this.defaultValue.isInputVisible ===  NumberOperatorIndex.between){\n            this.expression.value = new AxExpNumberRangeValue(this.defaultValue);\n        }else{\n            this.expression.value =  new AxExpNumberValue(this.defaultValue);\n        }\n        this.expression.comparisonOperator = this.defaultComparisonOperator;\n        this.expression.value.isInputVisible = this.defaultOperatorIndex;\n        this.selectedOperator = this.defaultOperatorIndex;\n\n        this.setDisplayValue();\n    }\n\n    /**\n     * Set Default Value\n     *\n     * @overridden\n     */\n    setDefaultValue(): void {\n        if(this.expression.value.isInputVisible === NumberOperatorIndex.between){\n            this.defaultValue = new AxExpNumberRangeValue(this.expression.value as AxExpNumberRangeValue);\n        }else{\n            this.defaultValue = new AxExpNumberValue(this.expression.value as AxExpNumberValue);\n        }\n        this.defaultComparisonOperator = this.expression.comparisonOperator;\n        this.defaultOperatorIndex = this.expression.value.isInputVisible;\n        this.selectedOperator = this.expression.value.isInputVisible;\n    }\n\n    /**\n     * This function clear the filter value.\n     *\n     * @overridden\n     */\n     clearValue(): void {\n        this.expression.value = new AxExpNumberValue();\n    }\n}\n","<div class=\"fields flex\" >\n  <mat-form-field appearance=\"none\">\n    <mat-select class=\"multi-select-dropdown\"\n    [placeholder]=\"displayValue\"\n    [matTooltip]=\"toolTipValue\"\n    [(ngModel)]=\"expressionValue.value\"\n    (selectionChange)=\"filterValueChanged()\"\n    panelClass=\"multi-select-panel\"\n    multiple\n    #multiSelectList >\n    <!-- Search bar for filter value   -->\n    <axo-search-bar [searchText]=\"searchText\" (searchTextChanged)=\"searchTextChanged($event)\"></axo-search-bar>\n\n    <ng-container *ngFor=\"let series of seriesList\">\n      <mat-option *ngIf=\"screenType === screenTypes.dataViewBuilder || screenType === screenTypes.dataView\"  class=\"radio-button  filter-mat-option\" [matTooltip]=\"series.label\"\n          #matOption\n          [value]=\"series.id\">\n          {{series.title}}\n      </mat-option>\n       <!-- For Enlighten reporting -->\n       <mat-option *ngIf=\"this.screenType !== screenTypes.dataViewBuilder && this.screenType !== screenTypes.dataView\" class=\"radio-button  filter-mat-option\" [matTooltip]=\"series\" [value]=\"series\"\n       #matOption >\n        {{series}}\n      </mat-option>\n    </ng-container>\n    <!-- this option is for opening the dropdown even if series is empty -->\n    <mat-option class=\"hidden\"></mat-option>\n    <!-- Filter dropdown footer -->\n    <lib-filter-footer\n      [isFilterValue]=\"(seriesList && seriesList.length)\"\n      (clearAllValue)=\"clearAllValue()\"\n      (applyFilter)=\"applyFilter()\"\n      (closeFilter)=\"multiSelectList.close()\"\n      >\n    </lib-filter-footer>\n  </mat-select>\n \n  </mat-form-field>\n  <mat-icon class=\"down-arrow\" [svgIcon]=\"'axo_arrow'\" (click)=\"multiSelectList.open()\"></mat-icon>\n  </div>\n","import { AfterViewInit, Component, OnInit, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { CommonFilterService } from './../common-filter/common-filter.service';\nimport { CommonFilterComponent } from './../common-filter/common-filter.component';\nimport { AxExpTextList } from '../../enlighten-lib/ax-expression/ax-exp-text-list';\nimport { AxOperator } from '../../enlighten-lib/filters/ax-operator';\n\n@Component({\n    selector: 'lib-reference-list-filter',\n    templateUrl: './reference-list-filter.component.html',\n    styleUrls: ['./reference-list-filter.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        {\n            provide: MAT_SELECT_CONFIG,\n            useValue: { overlayPanelClass: 'custom-multi-select-overlay-panel' },\n        },\n    ],\n})\nexport class ReferenceListFilterComponent extends CommonFilterComponent implements OnInit, AfterViewInit {\n    //<----------< Inputs >---------------------------->\n\n    //<-----------<Outputs >--------------------------->\n\n    //<-------------(Enums )--------------------------->\n\n    //<-------------(Component Variables )------------->\n    expressionValue: AxExpTextList;\n    stringOperators: Array<AxOperator>;\n\n\n    constructor(_commonFilterService: CommonFilterService\n    ) {\n        super(_commonFilterService);\n    }\n    /**\n     * ngOnChanges use to change the current page object\n     */\n\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(changes: SimpleChanges): void {\n        super.ngOnChanges(changes);\n    }\n\n    /**\n     * On init life cycle hook\n     */\n    ngOnInit(): void {\n        super.ngOnInit();\n        this.setDisplayValue();\n        this.expression.comparisonOperator = new AxOperator({ text: 'In', value: 'IN' });\n        this.stringOperators = AxOperator.getStringOperator();\n        this.getSeriesList();\n    }\n\n    /**\n     * Get called after view render\n     */\n    ngAfterViewInit(): void {\n        super.ngAfterViewInit();\n    }\n    /**\n     * THis will reset Filter value.\n     */\n    resetFilter(): void {\n        this.expressionValue = new AxExpTextList(this.defaultValue) ;\n        this.expression.value = this.expressionValue;\n    }\n    /**\n     * Set Expression value\n     *\n     * @overridden\n     */\n    setExpressionValue(): void {\n        this.expressionValue = this.expression.value ? this.expression.value as AxExpTextList : new AxExpTextList();\n    }\n\n    /**\n     * This function clear the filter value.\n     *\n     * @overridden\n     */\n    clearValue(): void {\n        this.expressionValue = new AxExpTextList();\n        this.expression.value = this.expressionValue;\n    }\n    /**\n     * Set Default Value\n     *\n     * @overridden\n     */\n    setDefaultValue(): void {\n        this.defaultValue = new AxExpTextList(this.expressionValue);\n    }\n    /**\n     * Apply parent value parent value change\n     *\n     *\n     */\n    applyParentFilter(): void {\n        this.expressionValue.value = [];\n        this.pageIndex = 0;\n        this.seriesList = [];\n        this.getSeriesList();\n    }\n    /**\n     * Clear Values\n     *\n     */\n    clearAllValue(): void {\n        this.expressionValue.value = [];\n        this.filterValueChanged();\n        this.applyFilterEvent.emit();\n    }\n\n    setDisplayValue(): void {\n        this.addEllipsesToDisplayValue(this.expression.field.label);\n    }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'choiceSearch'\n})\n/**\n *search pipe to search fixed choices in web form choice list widget\n */\nexport class ChoiceSearchPipe implements PipeTransform {\n\n    transform(list: any[], searchText: string): any[] {\n        if (!list) {\n            return [];\n        }\n        if (!searchText) {\n            return list;\n        }\n        return list.filter((item) => {\n            if (item.label) {\n                return item.label.toLowerCase().includes(searchText.toLowerCase());\n            }\n            else if (item.prompt) {\n                return item.prompt.toLowerCase().includes(searchText.toLowerCase());\n            }\n            return item.toLowerCase().includes(searchText.toLowerCase());\n        });\n    }\n\n}\n","<div class=\"fields flex\">\n    <mat-form-field appearance=\"none\">\n        <mat-select class=\"multi-select-dropdown\" [placeholder]=\"displayValue\"\n            [matTooltip]=\"toolTipValue\" (selectionChange)=\"filterValueChanged()\"\n            [(ngModel)]=\"expressionValue.value\" panelClass=\"multi-select-panel\" multiple #choiceList>\n            <!-- Search Box -->\n            <axo-search-bar [searchText]=\"searchText\" (searchTextChanged)=\"searchTextChanged($event)\"></axo-search-bar>\n            <div >\n                <ng-container *ngFor=\"let series of seriesList | choiceSearch: searchText\">\n                    <mat-option *ngIf=\"series.visible\" class=\"radio-button my-2\" [matTooltip]=\"series.label?series.label:series.value\" [value]=\"series.value\">\n                        {{removeHexCode(series.label?series.label:series.value)}}\n                    </mat-option>\n                </ng-container>\n            </div>\n\n            <!-- this option is for opening the dropdown even if series is empty -->\n            <mat-option class=\"hidden\"></mat-option>\n\n            <lib-filter-footer [isFilterValue]=\"(seriesList && seriesList.length)\" (clearAllValue)=\"clearAllValue()\"\n                (applyFilter)=\"applyFilter()\" (closeFilter)=\"choiceList.close()\">\n            </lib-filter-footer>\n        </mat-select>\n        \n    </mat-form-field>\n    <mat-icon class=\"down-arrow\" [svgIcon]=\"'axo_arrow'\" (click)=\"choiceList.open()\"></mat-icon>\n</div>\n","import { ChoiceListOption } from './../../forms/page/widgets/widget-value/choice-list-options';\nimport { CommonFilterComponent } from './../common-filter/common-filter.component';\nimport { Component, OnInit, SimpleChanges, ViewEncapsulation, OnChanges, AfterViewInit } from '@angular/core';\nimport { AxExpTextList } from '../../enlighten-lib/ax-expression/ax-exp-text-list';\nimport { AxOperator } from '../../enlighten-lib/filters/ax-operator';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { CommonFilterService } from '../common-filter/common-filter.service';\n\n\n@Component({\n    selector: 'choice-list-filter',\n    templateUrl: './choice-list-filter.component.html',\n    styleUrls: ['./choice-list-filter.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        {\n            provide: MAT_SELECT_CONFIG,\n            useValue: { overlayPanelClass: 'custom-multi-select-overlay-panel' },\n        },\n    ],\n})\nexport class ChoiceListFilterComponent extends CommonFilterComponent implements OnInit, OnChanges, AfterViewInit {\n    //<----------< Inputs >---------------------------->\n\n    //<-----------<Outputs >--------------------------->\n\n    //<-------------(Enums )--------------------------->\n\n    //<-------------(Component Variables )------------->\n    expressionValue: AxExpTextList;\n    stringOperators: Array<AxOperator>;\n    seriesList: Array<ChoiceListOption> = [];\n    constructor(public _commonFilterService: CommonFilterService) {\n        super(_commonFilterService);\n    }\n\n    /**\n     * ngOnChanges use to change the current page object\n     */\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(changes: SimpleChanges): void {\n        super.ngOnChanges(changes); // called common life cycle hook.S\n    }\n\n    /**\n     * On init life cycle hook\n     */\n    ngOnInit(): void {\n        // Called super\n        super.ngOnInit();\n        this.setDisplayValue();\n        this.expression.comparisonOperator = new AxOperator({ text: 'In', value: 'IN' });\n        this.stringOperators = AxOperator.getStringOperator();\n        \n        // Ensure seriesList is always an array\n        const choices = this.expression.field.choices as string | Array<ChoiceListOption>;\n        this.seriesList = Array.isArray(choices) \n            ? choices \n            : typeof choices === 'string' \n                ? choices.split(',').map(choice => new ChoiceListOption(choice.trim())) \n                : []; // Fallback to an empty array if choices is neither\n    }\n    //used for filter UI\n    removeHexCode(value: string): string {\n        if (!value) return value;\n        const colonIndex = value.indexOf(':');\n        if (colonIndex > -1 && value.includes('#')) {\n            return value.substring(0, colonIndex).trim();\n        }\n        return value;\n    }\n\n    /**\n     * Set expression value\n     *\n     * @overridden\n     */\n     setExpressionValue(): void {\n        this.expressionValue = this.expression.value ? this.expression.value as AxExpTextList : new AxExpTextList();\n    }\n\n    /**\n     * Get called after view render\n     */\n    ngAfterViewInit(): void {\n        super.ngAfterViewInit();\n    }\n\n    /**\n     * THis will reset Filter value.\n     */\n    resetFilter(): void {\n        this.expressionValue = new AxExpTextList(this.defaultValue);\n        this.expression.value = this.expressionValue;\n    }\n\n    /**\n     * This function clear the filter value.\n     */\n    clearValue(): void {\n        this.expressionValue = new AxExpTextList();\n        this.expression.value = this.expressionValue;\n    }\n    /**\n     * Set Default Value\n     *\n     * @overridden\n     */\n    setDefaultValue(): void {\n        this.defaultValue =  new AxExpTextList(this.expressionValue);\n    }\n\n    /**\n     * Apply parent value parent value change\n     */\n    applyParentFilter(): void {\n        this.expressionValue.value = [];\n        this.pageIndex = 0;\n        this.seriesList = [];\n        this.getSeriesList();\n    }\n    /**\n     * Clear Values\n     *\n     */\n    clearAllValue(): void {\n        this.expressionValue.value = [];\n        this.filterValueChanged();\n        this.applyFilterEvent.emit();\n    }\n\n    /**\n     *  Search Text changed.\n     *\n     * @overridden\n     */\n     searchTextChanged(searchText: string): void{\n        this.searchText = searchText;\n     }\n\n     setDisplayValue(): void {\n         this.addEllipsesToDisplayValue(this.expression.field.label);\n     }\n}\n","<div class=\"fields flex\" >\n    <mat-form-field appearance=\"none\">\n\n        <!-- Mat Select Drop Down -->\n        <mat-select\n            class=\"multi-select-dropdown\"\n            [placeholder]=\"displayValue\"\n            [matTooltip]=\"toolTipValue\"\n            [(ngModel)]=\"expressionValue.value\"\n            panelClass=\"multi-select-panel\"\n            (selectionChange)=\"filterValueChanged()\"\n            multiple\n            #multiSelectList\n        >\n        <!-- Search Box -->\n        <axo-search-bar></axo-search-bar>\n        <!-- [(ngModel)]=\"expressionValue.value\" -->\n            <!-- Mat select drop down pop up -->\n            <!-- Drop Down Options -->\n            <mat-option\n                    class=\"radio-button filter-mat-option\"\n                    [matTooltip]=\"'Unassigned'\"\n                    #matOption\n                    [value]=\"0\"\n                >\n                    <!-- Printed Concinnate first name and last name of user -->\n                    Unassigned\n            </mat-option>\n            <ng-container *ngFor=\"let user of users\">\n                <!-- Options -->\n                <mat-option\n                    class=\"radio-button filter-mat-option\"\n                    [matTooltip]=\"user.name\"\n                    #matOption\n                    [value]=\"user.userId\"\n                >\n                    <!-- Printed Concinnate first name and last name of user -->\n                    {{ user.firstName}} {{ user.lastName}}\n                </mat-option>\n            </ng-container>\n            <!-- Hidden Option:- this option is for opening the dropdown even if series is empty -->\n            <mat-option class=\"hidden\"></mat-option>\n\n            <!-- Filter dropdown footer Clear, close and apply buttons-->\n            <lib-filter-footer\n                [isFilterValue]=\"users && users.length\"\n                (clearAllValue)=\"clearAllValue()\"\n                (applyFilter)=\"applyFilter()\"\n                (closeFilter)=\"multiSelectList.close()\"\n            >\n            </lib-filter-footer>\n        </mat-select>\n        <!-- Drop Down Icon -->\n        \n    </mat-form-field>\n    <mat-icon class=\"down-arrow\" [svgIcon]=\"'axo_arrow'\" ></mat-icon>\n</div>\n","import { CommonFilterService } from './../common-filter/common-filter.service';\nimport { CommonFilterComponent } from './../common-filter/common-filter.component';\nimport { UserFilterService } from './user-filter.service';\nimport { User } from '../../../lib/core/user/user.types';\nimport { Component, OnInit, SimpleChanges, AfterViewInit, ViewEncapsulation } from '@angular/core';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { AxExpTextList } from '../../enlighten-lib/ax-expression/ax-exp-text-list';\nimport { AxOperator } from '../../enlighten-lib/filters/ax-operator';\n\n@Component({\n    selector: 'lib-user-filter',\n    templateUrl: './user-filter.component.html',\n    styleUrls: ['./user-filter.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        {\n            provide: MAT_SELECT_CONFIG,\n            useValue: { overlayPanelClass: 'custom-user-filter-overlay-panel' },\n        },\n    ],\n})\nexport class UserFilterComponent extends CommonFilterComponent implements OnInit, AfterViewInit {\n    // <----------------(Inputs)------------------------->\n\n\n    // <----------------(Outputs)------------------------->\n\n    // <----------------(Components variable)------------------------->\n    users: Array<User> = [];// List of user fetched from API\n    stringOperators: Array<AxOperator>;\n    expressionValue: AxExpTextList;\n\n\n\n    /**\n     * Constructor\n     *\n     * @param _userFilterService\n     */\n    constructor(\n        private _userFilterService: UserFilterService,\n        _commonFilterService: CommonFilterService\n    ) {\n        super(_commonFilterService);\n    }\n\n    /**\n     * ngOnChanges use to change the current page object\n     */\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(changes: SimpleChanges): void {\n        super.ngOnChanges(changes);\n    }\n\n    /**\n     * On init life cycle hook.\n     */\n    ngOnInit(): void {\n        super.ngOnInit();\n        this.getAppUsers();\n        this.setDisplayValue();\n    }\n\n    /**\n     * Get called after view render\n     */\n    ngAfterViewInit(): void {\n        super.ngAfterViewInit();\n    }\n    /**\n     * THis will reset Filter value.\n     */\n    resetFilter(): void {\n        this.expressionValue = this.defaultValue ? this.defaultValue : new AxExpTextList();\n        this.expression.value = this.expressionValue;\n    }\n\n    /**\n     * This function clear the filter value.\n     */\n    clearValue(): void {\n        this.expressionValue = new AxExpTextList();\n        this.expression.value = this.expressionValue;\n    }\n    /**\n     * Register panel scroll event (this is listener for mat options scroll.)\n     */\n    registerPanelScrollEvent(): void {\n\n        // Get options panel form select directive.\n        const panel = this.selectElem.panel.nativeElement;\n\n        //Added Scroll event listener.\n        panel.addEventListener('scroll', (event) => {\n\n            // current scrolled position\n            const pos = event.srcElement.offsetHeight + event.srcElement.scrollTop;\n\n            //max scroll position\n            const max = event.srcElement.scrollHeight;\n\n            //Scrolled position and max scrolled position are same that mean scrolled reached at bottom. then load next page reference list\n            if ((max - pos) < 2 && this.users.length < this.totalSeriesLength) {\n\n                //Saved current scroll position.\n                // this.referenceListScrollPos = event.srcElement.scrollTop;\n\n                // //Increase current page number.\n                this.pageIndex++;\n                //Get Next Page Users\n                this.getAppUsers();\n\n            }\n        });\n    }\n    /**\n     *De-Select Expression values\n     *\n     * @param selectedValue\n     */\n    clearAllValue(): void {\n        this.expressionValue.value = [];\n        this.filterValueChanged();\n        this.applyFilterEvent.emit();\n    }\n\n    /**\n     * Set Default Value\n     */\n     setDefaultValue(): void {\n        this.defaultValue =  new AxExpTextList(this.expressionValue);\n    }\n\n\n    /**\n     * Get Apps users\n     */\n    getAppUsers(): void {\n        this._userFilterService.getAppUsers(this.pageIndex+1, this.pageSize, this.appVersionId, this.searchText).then((users) => {\n            this.users.push(...users);\n        });\n    }\n\n\n    setDisplayValue(): void {\n        this.displayValue = this.expression.field.label;\n        this.addEllipsesToDisplayValue(this.displayValue);\n    }\n\n\n\n\n\n}\n","<div class=\"fields flex\">\n<mat-form-field appearance=\"none\">\n  <mat-select class=\"multi-select-dropdown filter_{{filter.id.toString()}}\"\n  [placeholder]=\"displayValue\"\n  [matTooltip]=\"toolTipValue\"\n  [(ngModel)]=\"expressionValue.value\"\n  (selectionChange)=\"filterValueChanged()\"\n  panelClass=\"multi-select-panel\"\n  multiple\n  #multiSelectList >\n\n  <!-- Search bar for filter value   -->\n  <axo-search-bar [searchText]=\"searchText\" (searchTextChanged)=\"searchTextChanged($event)\"></axo-search-bar>\n\n  <ng-container [ngSwitch]=\"expression.field.widgetSubType\">\n    <!-- If filter widget sub-type is toggle -->\n    <div  *ngSwitchCase=\"widgetSubType.toggle\">\n        <ng-container>\n        <mat-option #matOption  class=\"py-2\" [value]=\"1\">\n            Yes\n        </mat-option>\n        <mat-option #matOption  class=\"py-2\"  [value]=\"0\">\n            No\n        </mat-option>\n        </ng-container>\n    </div>\n    <!-- Default dropdown -->\n    <div *ngSwitchDefault>\n        <ng-container *ngFor=\"let series of seriesList\">\n        <mat-option #matOption  class=\"py-2\" [matTooltip]=\"series\"  [value]=series>\n            {{series}}\n        </mat-option>\n        </ng-container>\n    </div>\n  </ng-container>\n  <!-- this option is for opening the dropdown even if series is empty -->\n  <mat-option class=\"hidden\"></mat-option>\n  <!-- Filter dropdown footer -->\n  <lib-filter-footer\n    [isFilterValue]=\"widgetSubType.toggle\"\n    (clearAllValue)=\"clearAllValue()\"\n    (applyFilter)=\"applyFilter()\"\n    (closeFilter)=\"multiSelectList.close()\"\n    >\n  </lib-filter-footer>\n</mat-select>\n\n</mat-form-field>\n<mat-icon class=\"down-arrow\" [svgIcon]=\"'axo_arrow'\" (click)=\"multiSelectList.open()\"></mat-icon>\n</div>\n","import { CommonFilterService } from './../common-filter/common-filter.service';\nimport { Component, OnInit, SimpleChanges, ViewEncapsulation, AfterViewInit, Input } from '@angular/core';\nimport { AxExpTextList } from '../../enlighten-lib/ax-expression/ax-exp-text-list';\nimport { AxOperator } from '../../enlighten-lib/filters/ax-operator';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { CommonFilterComponent } from '../common-filter/common-filter.component';\n\n\n@Component({\n    selector: 'lib-multi-select-filter',\n    templateUrl: './multi-select-filter.component.html',\n    styleUrls: ['./multi-select-filter.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n    providers: [\n        {\n            provide: MAT_SELECT_CONFIG,\n            useValue: { overlayPanelClass: 'custom-multi-select-overlay-panel' },\n        },\n    ],\n})\nexport class MultiSelectFilterComponent extends CommonFilterComponent implements OnInit, AfterViewInit {\n    //<----------< Inputs >---------------------------->\n    @Input() selectFirstValueDefault:boolean = false;\n    //<-----------<Outputs >--------------------------->\n\n    //<-------------(Enums )--------------------------->\n\n    //<-------------(Component Variables )------------->\n    expressionValue: AxExpTextList;\n    stringOperators: Array<AxOperator>;\n\n    constructor(public _commonFilterService: CommonFilterService) {\n        super(_commonFilterService);\n    }\n\n    /**\n     * ngOnChanges use to change the current page object\n     */\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(changes: SimpleChanges): void {\n        super.ngOnChanges(changes); // called common life cycle hook.S\n    }\n\n    /**\n     * On init life cycle hook\n     */\n    ngOnInit(): void {\n        // Called super\n        super.ngOnInit();\n        this.setDisplayValue();\n        this.expression.comparisonOperator = new AxOperator({ text: 'In', value: 'IN' });\n        this.stringOperators = AxOperator.getStringOperator();\n        this.getSeriesList();\n    }\n\n    /**\n     * This will get called on data load\n     */\n    onDataLoaded(): void {\n        if(this.selectFirstValueDefault && this.seriesList.length){\n            this.expressionValue.value.push(this.seriesList[0]);\n        }\n    }\n\n    /**\n     * Get called after view render\n     */\n    ngAfterViewInit(): void {\n        super.ngAfterViewInit();\n        this.setDisplayValue();\n    }\n    /**\n     * Set expression value\n     *\n     * @overridden\n     */\n    setExpressionValue(): void {\n        this.expressionValue = this.expression.value ? this.expression.value as AxExpTextList : new AxExpTextList();\n    }\n\n    /**\n     * THis will reset Filter value.\n     *\n     * @overridden\n     */\n    resetFilter(): void {\n        this.expressionValue = new AxExpTextList(this.defaultValue) ;\n        this.expression.value = this.expressionValue;\n    }\n\n    /**\n     * This function clear the filter value.\n     *\n     * @overridden\n     */\n    clearValue(): void {\n        this.expressionValue = new AxExpTextList();\n        this.expression.value = this.expressionValue;\n    }\n\n    /**\n     * Set Default Value\n     *\n     * @overridden\n     */\n    setDefaultValue(): void {\n        this.defaultValue =  new AxExpTextList(this.expressionValue);\n    }\n\n    /**\n     * Apply parent value parent value change\n     */\n    applyParentFilter(): void {\n        this.expressionValue.value = [];\n        this.pageIndex = 0;\n        this.seriesList = [];\n        this.getSeriesList();\n    }\n    /**\n     * Clear Values\n     *\n     */\n    clearAllValue(): void {\n        this.expressionValue.value = [];\n        this.filterValueChanged();\n        this.applyFilterEvent.emit();\n    }\n\n    /**\n   * set display value\n   */\n    setDisplayValue(){\n        this.addEllipsesToDisplayValue(this.expression.field.label);\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\n\n@Injectable()\nexport class CategoryFilterService {\n\n/**\n * Constructor\n */\n constructor(private _httpClient: HttpClient) { }\n\n\n /**\n  * Get Category list by the app-version id\n  */\n  getCategoyFilterList(categoryId: number): Promise<Array<AxFilter>> {\n    return new Promise((resolve, reject) => {\n      let params = new HttpParams();\n      params = params.append('categoryId', categoryId);\n      this._httpClient.get<[AxFilter]>('filtercategories/get_filters', {params: params})\n        .subscribe((response: any) => {\n          resolve(response);\n        }, reject);\n    });\n  }\n\n}\n","<div class=\"fields flex\">\n  <mat-form-field appearance=\"none\">\n    <mat-select\n      class=\"multi-select-dropdown filter_{{category.id.toString()}}\"\n      [placeholder]=\"displayValue\"\n      [matTooltip]=\"toolTipValue\"\n      (selectionChange)=\"filterValueChanged($event)\"\n      [(ngModel)]= \"category.filters\"\n      [compareWith]=\"checkSelectedFilter\"\n      panelClass=\"category-panel\"\n      multiple #filterMatSelect>\n      <!-- <div class=\"flex justify-between select-all-option\">\n        <mat-checkbox\n              mat-raised-button\n              class=\"mat-primary fill text-sm mt-2\"\n              [class.mat-checkbox-checked]=\"isSelectedAll\"\n              (click)=\"selectAll()\">\n              Select All\n        </mat-checkbox> -->\n        <!-- <button *ngIf=\"category.filters.length > 0\"\n        <button *ngIf=\"category.filters && category.filters.length > 0\"\n          mat-raised-button\n          class=\"mat-accent fill text-sm clear-all\"\n          (click)=\"clearAllValue()\">\n          Clear All\n        </button> -->\n      <!-- </div> -->\n      <mat-option class=\"radio-button my-2 filter-mat-option\" *ngFor=\"let filter of filterList\" [value]=filter>\n        {{filter.name}}\n      </mat-option>\n      <lib-filter-footer\n          [isFilterValue]=\"category.filters\"\n          (clearAllValue)=\"clearAllValue()\"\n          (applyFilter)=\"applyFilter()\"\n          (closeFilter)=\"filterMatSelect.close()\"\n          >\n        </lib-filter-footer>\n      </mat-select>\n\n    \n  </mat-form-field>\n  <mat-icon class=\"down-arrow\" [svgIcon]=\"'axo_arrow'\" (click)=\"filterMatSelect.open()\"></mat-icon>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { FilterCategory } from '../../enlighten-lib/filters/filter-category';\nimport { Subject } from 'rxjs';\nimport { CategoryFilterService } from './category-filter.service';\nimport { AxExpression } from '../../enlighten-lib/ax-expression/ax-expression';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\n\n@Component({\n  selector: 'lib-category-filter',\n  templateUrl: './category-filter.component.html',\n  styleUrls: ['./category-filter.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: MAT_SELECT_CONFIG,\n      useValue: { overlayPanelClass: 'category-filter-custom-overlay-panel' },\n    },\n  ],\n})\nexport class CategoryFilterComponent implements OnInit {\n  @Input() category: FilterCategory;\n  @Input() resetFilterEvent: EventEmitter<any> = new EventEmitter();\n  @Input() clearFilterCategory: boolean;\n  @Output() filterValue = new EventEmitter<any>();\n  @Output() applyFilterEvent = new EventEmitter<any>();\n\n  defaultFilter: Array<AxFilter> = [];\n\n  isSelectedAll: boolean = false;\n\n  filterList: Array<AxFilter> = [];\n  displayValue: string;\n  toolTipValue:string;\n\n/***\n * Subject object which helps unsubscribe all the subscribed objects in the component\n */\n  // eslint-disable-next-line @typescript-eslint/member-ordering\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  constructor(\n    private _categoryFIlterService: CategoryFilterService\n  ) { }\n\n  ngOnInit(): void {\n    this.defaultFilter  = this.category.filters;\n    this._categoryFIlterService.getCategoyFilterList(this.category.id)\n    .then((categoryFilter) => {\n      this.filterList = categoryFilter;\n    });\n    this.resetFilterEvent.subscribe(()=>{\n        this.category.filters = this.defaultFilter?this.defaultFilter:[];\n    })\n    this.addEllipsesToDisplayValue();\n  }\n\n  /**\n   * ngOnChanges use to change the current page object\n   */\n\n  // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes['clearFilterCategory'] && changes['clearFilterCategory']?.previousValue !== changes['clearFilterCategory']?.currentValue) {\n      this.isSelectedAll = false;\n    }\n  }\n\n  /***\n   * On selection of the values of the category filters this method will call.\n   *\n   */\n   filterValueChanged(event: any): void{\n    this.category.isSearchable = true;\n    if(this.filterList.length === this.category.filters.length){\n      this.isSelectedAll = true;\n    }else{\n      this.isSelectedAll = false;\n    }\n  }\n  /**\n   * Select All Expression Values\n   *\n   * @param selectValue\n   * @param seriesList\n   */\n   selectAll(): void {\n    this.isSelectedAll = !this.isSelectedAll;\n    if(this.isSelectedAll && this.filterList.length){\n      this.category.filters = this.filterList;\n      this.category.isSearchable = true;\n    }else{\n      this.category.filters = [];\n      this.category.isSearchable = false;\n    }\n    this.filterValue.emit();\n  }\n  /**\n   *De-Select Expression values\n   *\n   * @param selectedValue\n   */\n  clearAllValue(): void {\n    this.isSelectedAll = false;\n    this.category.filters = [];\n    this.category.isSearchable = false;\n    this.filterValue.emit();\n    this.applyFilterEvent.emit();\n  }\n\n  /**\n   *apply filter\n   */\n   applyFilter(): void {\n    this.applyFilterEvent.emit();\n  }\n\n\n  /**\n   * On destroy\n   */\n  // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n  /**\n   * this function use the check and set existing value of catgoery filter\n   *\n   * @param objOne\n   * @param objTwo\n   * @returns\n   */\n  checkSelectedFilter(objOne: AxFilter, objTwo: AxFilter) {\n    if (typeof objOne !== 'undefined' && typeof objTwo !== 'undefined') {\n      return objOne.id === objTwo.id;\n    }\n  }\n  addEllipsesToDisplayValue(){\n    this.toolTipValue = this.category.name;\n    this.displayValue = this.category.name;\n    var words = this.category.name.split(\" \");\n    \n    if(words.length > 2){\n        if(words.length > 3){\n            this.displayValue = words.slice(0, 3).join(' ') + '...';\n            const valueWidth = document.querySelector('.filter_'+this.category.id+' .mat-select-value') as Element;\n            const valueSpanWidth = valueWidth.querySelector('span') as Element;\n            // if(valueWidth.clientWidth > valueSpanWidth.clientWidth){\n            //     if(words.length > 4){\n            //         this.displayValue = words.slice(0, 4).join(' ') + '...';\n            //     }\n            //     else{\n            //         this.displayValue = words.slice(0, 4).join(' ');\n            //     }\n            // }\n        }\n        else{\n            this.displayValue = words.slice(0, 3).join(' ');\n        }\n    }\n  }\n}\n","<div\n    class=\"relative flex items-center filter-wrapper\"\n    [ngClass]=\"{ 'local-filter': scopeType === scopeTypes.local && screenType !== screenTypes.dataList,'data-list-filter':screenType === screenTypes.dataList ,'global-filter-width':(showApplyFilterButton && (filterScrollElement.scrollWidth > filterScrollElement.clientWidth))&&scopeType === scopeTypes.global }\"\n    id=\"container\" >\n    <div class=\"outer-filterDiv flex content-center relative\" appCustomScroll #appScrollElement=\"appCustomScroll\" #filterScrollElement [ngClass]=\"{'local-grid' : scopeType === scopeTypes.local }\" (click)=\"$event.stopPropagation()\" id=\"content\">\n        <ng-container *ngIf=\"commonFilterArray && commonFilterArray.length > 0 \">\n            <ng-container *ngFor=\"let filter of commonFilterArray; let filterIndex = index\">\n                <ng-container *ngIf=\"!filter.isDeleted && (screenTypes.reportBuilder === screenType || screenTypes.dataViewBuilder === screenType || filter.isVisible)\">\n                    <div class=\"global-filter1\">\n                        <div class=\"inner-filterDiv\" (click)=\"filterPropertyEvent(filter); $event.stopPropagation()\">\n                            <!-- Basic Filter  -->\n                            <ng-container *ngIf=\"isFilter(filter)\">\n                                <ng-container\n                                    [ngSwitch]=\"filter.searchNodes[0].expression.field.widgetSubType\">\n\n                                    <!-- Calendar Filter for date and date range widget -->\n                                    <lib-calender-filter\n                                        *ngSwitchCase=\"([widgetSubType.date, widgetSubType.dateRange].indexOf(filter.searchNodes[0].expression.field.widgetSubType) >= 0\n                                        ? filter.searchNodes[0].expression.field.widgetSubType : widgetSubType.date)\"\n                                        (filterValue)=\"filterValueChanged()\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [reportId]=\"reportId\"\n                                        [formId]=\"formId\"\n                                        [filter]=\"filter\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex);\n                                            $event.stopPropagation()\n                                        \"\n                                    >\n                                    </lib-calender-filter>\n\n                                    <!-- Date time calender filter -->\n                                    <lib-date-time-filter\n                                        *ngSwitchCase=\"([widgetSubType.dateTime, widgetSubType.dateTimeOld, widgetSubType.timeStamp].indexOf(filter.searchNodes[0].expression.field.widgetSubType) >= 0\n                                        ? filter.searchNodes[0].expression.field.widgetSubType : widgetSubType.dateTime)\"\n                                        (filterValue)=\"filterValueChanged()\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [reportId]=\"reportId\"\n                                        [formId]=\"formId\"\n                                        [filter]=\"filter\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex);\n                                            $event.stopPropagation()\n                                        \"\n                                    >\n                                    </lib-date-time-filter>\n\n                                    <!-- Time filter  -->\n                                    <lib-time-filter\n                                        *ngSwitchCase=\"widgetSubType.time\"\n                                        (filterValue)=\"filterValueChanged()\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [reportId]=\"reportId\"\n                                        [formId]=\"formId\"\n                                        [filter]=\"filter\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex);\n                                            $event.stopPropagation()\n                                        \"\n                                    >\n                                    </lib-time-filter>\n                                    <!-- Number filter -->\n                                    <lib-number-filter\n                                        *ngSwitchCase=\" ([widgetSubType.numeric, widgetSubType.number, widgetSubType.counter].indexOf(filter.searchNodes[0].expression.field.widgetSubType) >= 0\n                                        ? filter.searchNodes[0].expression.field.widgetSubType : widgetSubType.number)\"\n                                        (filterValue)=\"filterValueChanged($event,filterIndex)\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        [filter]=\"filter\"\n                                        [formId]=\"formId\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [reportId]=\"reportId\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex);\n                                            $event.stopPropagation()\n                                        \"\n                                        >\n                                    </lib-number-filter>\n\n\n                                    <!-- Reference List Filter -->\n                                    <lib-reference-list-filter\n                                        *ngSwitchCase=\"widgetSubType.referenceList\"\n                                        [filter]=\"filter\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [expressionValue]=\"filter.searchNodes[0].expression.value\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [screenType]=\"screenType\"\n                                        [appVersionId]=\"appVersionId\"\n                                        [appId]=\"appId\"\n                                        [formId]=\"formId\"\n                                        [reportId]=\"reportId\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        (filterValue)=\"filterValueChanged($event)\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        (parentFilterEvent)=\"parentFilterList()\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex, matMenuTrigger);\n                                            $event.stopPropagation()\n                                        \"\n                                    >\n                                    </lib-reference-list-filter>\n\n                                    <!-- Asset Form Object filter -->\n                                    <lib-reference-list-filter\n                                        *ngSwitchCase=\"widgetSubType.assetObjectList\"\n                                        [filter]=\"filter\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [expressionValue]=\"filter.searchNodes[0].expression.value\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [screenType]=\"screenType\"\n                                        [reportId]=\"reportId\"\n                                        [formId]=\"formId\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        [appVersionId]=\"appVersionId\"\n                                        (filterValue)=\"filterValueChanged($event)\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        (parentFilterEvent)=\"parentFilterList()\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex, matMenuTrigger);\n                                            $event.stopPropagation()\n                                        \"\n                                    >\n                                    </lib-reference-list-filter>\n                                    \n                                    <!-- Fixed Choice List Filter -->\n                                    <choice-list-filter\n                                        *ngSwitchCase=\"\n                                        [\n                                        widgetSubType.imageFixedList,\n                                        widgetSubType.fixedList\n                                        ].indexOf(filter.searchNodes[0].expression.field.widgetSubType)>= 0 ? filter.searchNodes[0].expression.field.widgetSubType : ''\"\n                                        [filter]=\"filter\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [expressionValue]=\"filter.searchNodes[0].expression.value\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [screenType]=\"screenType\"\n                                        [appVersionId]=\"appVersionId\"\n                                        [appId]=\"appId\"\n                                        [formId]=\"formId\"\n                                        [reportId]=\"reportId\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        (filterValue)=\"filterValueChanged($event)\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        (parentFilterEvent)=\"parentFilterList()\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex, matMenuTrigger);\n                                            $event.stopPropagation()\n                                        \">\n                                    </choice-list-filter>\n\n                                    <!-- App User filter -->\n                                    <lib-user-filter\n                                        *ngSwitchCase=\"widgetSubType.userList\"\n                                        [filter]=\"filter\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [expressionValue]=\"filter.searchNodes[0].expression.value\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [screenType]=\"screenType\"\n                                        [reportId]=\"reportId\"\n                                        [formId]=\"formId\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        [appVersionId]=\"appVersionId\"\n                                        (filterValue)=\"filterValueChanged($event)\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        (parentFilterEvent)=\"parentFilterList()\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex, matMenuTrigger);\n                                            $event.stopPropagation()\n                                        \"\n                                    >\n                                    </lib-user-filter>\n\n                                    <!-- MultiSelect filter  -->\n                                    <lib-multi-select-filter\n                                        *ngSwitchDefault\n                                        [filter]=\"filter\"\n                                        [appVersionId]=\"appVersionId\"\n                                        [appId]=\"appId\"\n                                        [selectFirstValueDefault] = \"selectFirstValueDefault\"\n                                        [formId]=\"formId\"\n                                        [reportId]=\"reportId\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        [expression]=\"filter.searchNodes[0].expression\"\n                                        [expressionValue]=\"filter.searchNodes[0].expression.value\"\n                                        [clearValueEvent]=\"clearFilterValue\"\n                                        [screenType]=\"screenType\"\n                                        (filterValue)=\"filterValueChanged($event)\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        (parentFilterEvent)=\"parentFilterList()\"\n                                        (filterClickEvent)=\"filterPropertyEvent(filter)\"\n                                        (contextmenu)=\"\n                                            onContextMenu($event, filter, filterIndex, matMenuTrigger);\n                                            $event.stopPropagation()\n                                        \"\n                                    >\n                                    </lib-multi-select-filter>\n                                </ng-container>\n                            </ng-container>\n                            <!-- Advance Filter -->\n                            <ng-container *ngIf=\"!isFilter(filter)\">\n                                <lib-category-filter\n                                        (filterValue)=\"filterValueChanged()\"\n                                        (applyFilterEvent)=\"applyFilter()\"\n                                        [category]=\"filter\"\n                                        [reportId]=\"reportId\"\n                                        [resetFilterEvent]=\"resetFilterEvent\"\n                                        [clearFilterCategory]=\"clearFilterCategoryValue\"\n                                        (contextmenu)=\"\n                                            filterCategoryMenu($event, filter, filterIndex);\n                                            $event.stopPropagation()\">\n                                </lib-category-filter>\n                            </ng-container>\n\n                            <!-- Mat Menu trigger -->\n                            <div #matMenuTrigger\n                                *ngIf=\"screenType!==screenTypes.containerDashboard && screenType!==screenTypes.dataView\"\n                                class=\"filterMatMenu\"\n                                [matMenuTriggerFor]=\"contextMenu\"\n                                [id]=\"filter.guid\"\n                            ></div>\n                            <!-- Mat Menu Body -->\n                            <mat-menu #contextMenu=\"matMenu\" >\n                                <ng-template\n                                    matMenuContent\n                                >\n                                    <ng-container>\n\n                                        <ng-container *ngIf=\"screenTypes.dataViewBuilder === screenType\">\n                                            <input type=\"text\" class=\"filterNameInput\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\" (keyup)=\"filterLabelChanged(filter)\" [(ngModel)]=\"filter.searchNodes[0].expression.field.label\" >\n                                        </ng-container>\n                                        <!-- <button\n                                            mat-menu-item\n                                            (click)=\"clearFilter(filter,filterIndex)\"\n                                            class=\"menu-btn\"\n                                        >\n                                            <span class=\"style-title\">Clear</span>\n                                        </button> -->\n                                        <button\n                                            *ngIf=\"scopeType === scopeTypes.global && screenType === screenTypes.reportBuilder\"\n                                            mat-menu-item\n                                            (click)=\"sendFilterToDashboard(filter)\"\n                                            class=\"menu-btn\">\n                                            <span class=\"style-title\">Pin to Dashboard</span>\n                                        </button>\n\n                                        <ng-container *ngIf=\"screenTypes.dataViewBuilder === screenType\">\n                                            <div\n                                                (click)=\"$event.stopPropagation();\"\n                                                mat-menu-item\n                                                class=\"filter-properties menu-btn\">\n                                                <div class=\"filter-property\">\n                                                    <span class=\"style-title\">Set as Default</span>\n                                                    <mat-slide-toggle [(ngModel)]=\"filter.isDefault\"></mat-slide-toggle>\n                                                </div>\n\n                                            </div>\n                                            <div\n                                                (click)=\"$event.stopPropagation();\"\n                                                mat-menu-item\n                                                class=\"filter-properties menu-btn\">\n                                                <div class=\"filter-property\">\n                                                    <span class=\"style-title\">Visible Filter</span>\n                                                    <mat-slide-toggle [(ngModel)]=\"filter.isVisible\"></mat-slide-toggle>\n                                                </div>\n                                            </div>\n                                        </ng-container>\n                                        <button\n                                            mat-menu-item\n                                            (click)=\"deleteFilter(filterIndex)\"\n                                            class=\"menu-btn\">\n                                            <span class=\"style-title warning-text\">Delete</span>\n                                        </button>\n                                    </ng-container>\n                                </ng-template>\n                            </mat-menu>\n                        </div>\n                    </div>\n                </ng-container>\n           </ng-container>\n        </ng-container>\n    </div>\n</div>\n\n<div *ngIf=\"showApplyFilterButton && (filterScrollElement.scrollWidth > filterScrollElement.clientWidth)\" class=\"flex gap-2 filter-scroll-btns\" [ngClass]=\"{ 'filter-scroll-btn-left-shadow': !appScrollElement.disableLeftBtn }\" (click)=\"$event.stopPropagation()\">\n    <button type=\"button\" [disabled]=\"appScrollElement.disableLeftBtn\" (click)=\"scrollLeft()\" class=\"btn-active left-btn\" [ngClass]=\"{ 'btn-disable': appScrollElement.disableLeftBtn }\"><mat-icon *ngIf=\"appScrollElement.disableLeftBtn\" svgIcon=\"axo_left\"></mat-icon><mat-icon *ngIf=\"!appScrollElement.disableLeftBtn\" svgIcon=\"axo_left_hover\"></mat-icon></button>\n    <button type=\"button\" [disabled]=\"appScrollElement.disableRightBtn\" (click)=\"scrollRight()\" class=\"btn-active\" [ngClass]=\"{ 'btn-disable': appScrollElement.disableRightBtn }\"><mat-icon *ngIf=\"appScrollElement.disableRightBtn\" svgIcon=\"axo_right\"></mat-icon><mat-icon *ngIf=\"!appScrollElement.disableRightBtn\" svgIcon=\"axo_right_hover\"></mat-icon></button>\n</div>\n\n\n<!-- Apply and reset button -->\n<div\n    *ngIf=\"showApplyFilterButton\"\n    [ngClass]=\"{\n        'reset-btn': scopeType === scopeTypes.global,\n        'dash-reset': screenType === screenTypes.dashboardBuilder,\n        'reset-section': scopeType === scopeTypes.local,\n        'tabular-reset': filterSourceElementType === filterSourceElementTypes.tabular}\">\n    <!-- Apply Filter button  -->\n    <div class=\"columns-1 flex items-center h-8\" *ngIf=\"screenType !== screenTypes.reportsContainer\">\n        <button *ngIf=\"screenType == screenTypes.dataView || screenType == screenTypes.dataViewBuilder\" class=\"clear-icon-btn\" (click)=\"clearAllFilters()\">\n          <mat-icon class=\"svg-icon\">clear</mat-icon>\n        </button>\n        <button\n        class=\"link-btn axo-font\"\n        (click)=\"applyFilter()\">\n        Apply\n        </button>\n    </div>\n    <!-- Reset Button -->\n    <div class=\"columns-1 flex items-center h-8\">\n        <span [ngClass]=\"{'local-reset': scopeType === scopeTypes.global}\" class=\"light-btn axo-font\" (click)=\"allFilterClear()\">Reset</span>\n    </div>\n</div>","import { CommonFilterService } from './common-filter/common-filter.service';\nimport { FiltersService } from './filters.service';\nimport { IAxFilter } from './../enlighten-lib/filters/iax-filter';\nimport { FilterType } from './../enlighten-lib/filters/condition-type';\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport {\n    Component,\n    EventEmitter,\n    HostListener,\n    Input,\n    OnInit,\n    Output,\n    QueryList,\n    ViewChildren,\n    ViewEncapsulation,\n    OnChanges,\n    SimpleChanges,\n    ViewChild,\n    TemplateRef,\n    ElementRef,\n    AfterViewInit\n} from '@angular/core';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { FilterCategory } from '../enlighten-lib/filters/filter-category';\nimport { AxExpression } from '../enlighten-lib/ax-expression/ax-expression';\nimport { MultiSelectFilterService } from './multi-select-filter/multi-select-filter.service';\nimport { FilterSourceElementType } from '../enlighten-lib/filters/chart-filter-type';\nimport { ScopeType, ScreenType } from '../enlighten-lib/filters/condition-type';\nimport { CommonService } from '../common.service';\nimport { GeneralFilterType } from '../enlighten-lib/filters/general-filter-type';\nimport { WidgetSubType } from '../forms/page/common/widget-enums';\nimport { DataViewFilter } from '../data-view-lib/public-api';\nimport { DataViewFiltersComponent } from '../data-view-lib/data-view-filters/data-view-filters.component';\n\n@Component({\n    // eslint-disable-next-line @angular-eslint/component-selector\n    selector: 'filters',\n    templateUrl: './filters.component.html',\n    styleUrls: ['./filters.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\nexport class FiltersComponent implements OnInit, OnChanges {\n    // <----------------------(Inputs)--------------------->\n    @Input() filters: Array<AxFilter>;\n    @Input() categories: Array<FilterCategory>;\n    @Input() reportId: number; // We need this for attribute data api.\n    @Input() formId: number;  // need to found out is it required or not.\n    @Input() scopeType: ScopeType;\n    @Input() screenType: ScreenType;\n    @Input() appVersionId: number;\n    @Input() appId: number;\n    @Input() filterSourceElementType: FilterSourceElementType; // not sure about this.\n    @Input() showApplyFilterEvent: boolean;\n    @Input() commonFilterArray: any[] = [];\n    @Input() selectFirstValueDefault: boolean = false;\n\n    // <----------------------(Outputs)--------------------->\n    @Output() sendFilterToDashboardEvent = new EventEmitter<any>();\n    @Output() sendFilterCategoryToDashboardEvent = new EventEmitter<any>();\n    @Output() dirtyFlowCheckEvent = new EventEmitter<any>();\n    @Output() filterChangeEmit = new EventEmitter<any>();\n    @Output() applyFilterEmit = new EventEmitter<any>();\n    @Output() resetFilterEmit = new EventEmitter<any>();\n    @Output() clearFilterEmit = new EventEmitter<any>();\n    @Output() deleteFilterEmit = new EventEmitter<any>();\n\n    // <-----------------< View Child references>--------------------->\n    @ViewChildren(MatMenuTrigger) trigger: QueryList<MatMenuTrigger>;\n    @ViewChild('filterScrollElement', { read: ElementRef }) public filterScrollElement: ElementRef<any>;\n\n    //<-------------------< Enum Declarations >-------------------->\n    // eslint-disable-next-line @typescript-eslint/naming-convention\n    screenTypes= ScreenType;\n    generalFilterTypes= GeneralFilterType;\n    filterSourceElementTypes= FilterSourceElementType;\n    scopeTypes = ScopeType;\n    filterType = FilterType;\n    widgetSubType = WidgetSubType;\n    // <------------------<Component Variables> -------------------->\n    scrollAmount = 0;\n    showApplyFilterButton: boolean = false;\n    contextMenu: HTMLElement;\n    clearFilterValue: boolean;\n    clearFilterCategoryValue: boolean;\n    resetFilterEvent: EventEmitter<any> = new EventEmitter<any>();\n\n    dataViewId: string;\n    containerViewPresent: boolean;\n    temporyfilters: (AxFilter | DataViewFilter)[] = [];\n\n    constructor(\n        private _multiSelectFilterService: MultiSelectFilterService,\n        private _commonService: CommonService,\n        private _filtersService: FiltersService,\n        private _commonFilterService: CommonFilterService,\n        private _dataViewFiltersComponent: DataViewFiltersComponent\n    ) {\n    }\n  \n    /**\n     * Host Listener\n     *\n     * @param event\n     */\n    @HostListener('window:mousedown', ['$event'])\n    click(event): void {\n        if (\n            this.contextMenu &&\n            this.contextMenu.ariaExpanded === 'true' &&\n            event.which === 3\n        ) {\n            this.contextMenu.click();\n        }\n    }\n\n    /**\n     * On Init Life cycle hook\n     */\n    ngOnInit() {\n        this.initializeFilters();\n    }\n    /**\n     * ngOnChanges use to change the current page object\n     */\n    ngOnChanges(changes: SimpleChanges): void {\n        this.initializeFilters();\n    }\n\n    /**\n     * Initialize Filters component\n     */\n    initializeFilters(): void{\n        this.checkFilterLength();\n    }\n\n    /***\n     * Delete search Nodes\n     * @param index current search node\n     */\n    deleteFilter(index: number): void {\n        this.commonFilterArray[index].isDeleted = true;\n        this.commonFilterArray[index].isSelected = false;\n        if( this.commonFilterArray[index].type === this.filterType.basic){\n            this.commonFilterArray[index].searchNodes[0].expression.field.isSelected = false;\n            if (this.commonFilterArray[index].generalFilterType === 1 && this.screenType !== ScreenType.dataView && this.screenType !== ScreenType.dataViewBuilder) {\n                const parentFilter = this.commonFilterArray[index];\n                this.commonFilterArray.forEach((filter) => {\n                    if (filter.generalFilterType === 1 && filter.parent) {\n                        if (\n                            filter.parent.guid === parentFilter.guid ||\n                            filter.parent.id === parentFilter.id\n                        ) {\n                            filter.parent.isDeleted = true;\n                        }\n                    }\n                });\n                this._multiSelectFilterService.refreshFilterProperty(this.commonFilterArray[this.commonFilterArray.length - 1]);\n                let parentFilterArr = [];\n                parentFilterArr = this.commonFilterArray.filter(\n                    filter => filter.generalFilterType === 1\n                );\n                this._multiSelectFilterService.refreshFilterListProperty(parentFilterArr);\n            }\n        }\n        // Emit deleted filter's index\n        this.deleteFilterEmit.emit(this.commonFilterArray[index]);\n        this.filterChangeEmit.emit();\n\n        this.dirtyFlowCheckEvent.emit();\n        this.applyFilterEmit.emit();\n        this.checkFilterLength();\n    }\n\n    /***\n     * Resets the selected value from filter\n     */\n    allFilterClear(): void {\n        this.resetFilterEvent.emit();\n        this.filterChangeEmit.emit();\n        this.applyFilterEmit.emit();\n        this.resetFilterEmit.emit();\n        this.dirtyFlowCheckEvent.emit();\n        this.clearFilterValue = !this.clearFilterValue;\n        this.clearFilterCategoryValue = !this.clearFilterCategoryValue;\n    }\n\n    /**\n     * Clear  single filter\n     *\n     * @param filter\n     */\n    clearFilter(filter: IAxFilter | any, index: number): void {\n        if (filter instanceof AxFilter || this.screenType === ScreenType.dataView || this.screenType === ScreenType.dataViewBuilder) {\n            filter.searchNodes[0].expression.value =\n                new AxExpression().getExpressionValueObject(\n                    filter.searchNodes[0].expression.value.subType\n                );\n            filter.searchNodes[0].expression.value.isSearchable = false;\n        } else {\n            filter.filters = [];\n            filter.isSearchable = false;\n        }\n        this.filterChangeEmit.emit();\n        this.applyFilterEmit.emit();\n        this.clearFilterEmit.emit(index);\n        this.updateChildFilterValue(filter);\n    }\n\n    clearAllFilters(): void {\n        this.allFilterClear();\n        this._dataViewFiltersComponent.clearAllFilters(); // Clear the common filter array\n    }\n\n    /***\n     * Pin to Dashboard\n     * @param filter current filter\n     */\n    sendFilterToDashboard(filter: IAxFilter): void {\n        if (filter instanceof AxFilter) {\n            this.sendFilterToDashboardEvent.emit(filter);\n        } else {\n            this.sendFilterCategoryToDashboardEvent.emit(filter);\n        }\n    }\n\n    /**\n     * Apply Filter\n     */\n    applyFilter(): void {\n        this._commonService.isReportFilterApply = true;\n        this.filterChangeEmit.emit();\n        this.applyFilterEmit.emit();\n    }\n\n    /**\n     * Pass filter list to filter properties\n     */\n    parentFilterList(): void {\n        let parentFilterArr = [];\n        parentFilterArr = this.commonFilterArray.filter(\n            filter => filter.generalFilterType === 1\n        );\n        this._multiSelectFilterService.refreshFilterListProperty(parentFilterArr);\n    }\n\n    /***\n     * On filter context  click Function\n     */\n    onContextMenu(event: MouseEvent, filter: AxFilter, filterIndex: number): void {\n        event.preventDefault();\n        this.contextMenu = document.getElementById(filter.guid);\n        this.contextMenu.click();\n    }\n\n    /***\n     * On filter Category context  click Function\n     */\n    filterCategoryMenu(\n        event: MouseEvent,\n        filterCategory: FilterCategory,\n        filterCategoryIndex: number\n    ): void {\n        event.preventDefault();\n        this.contextMenu = document.getElementById(filterCategory.guid);\n        this.contextMenu.click();\n    }\n\n    filterValueChanged(filter: AxFilter): void {\n        this.filterChangeEmit.emit(filter);\n    }\n\n\n    /**\n     * when we change the parent filter value  then update the child filter\n     **/\n    updateChildFilterValue(filter: AxFilter): void {\n        const parentReference = filter.id ? filter.id : filter.guid;\n        this._multiSelectFilterService.refreshChildFilter(parentReference, filter);\n    }\n    /**\n     * check global filter length\n     */\n    checkFilterLength(): void {\n        const filterCount = this.commonFilterArray.filter(ftr => !ftr.isDeleted && (this.screenType === ScreenType.reportBuilder || ftr.isVisible)).length;\n        if (filterCount === 0) {\n            this.showApplyFilterButton = false;\n        } else {\n            this.showApplyFilterButton = true;\n        }\n    }\n\n    /**\n     * On click filter open filter property.\n     */\n    filterPropertyEvent(filter: AxFilter | FilterCategory): void{\n        // Category properties not implemented yet. so I added check for this.\n        if(filter instanceof AxFilter){\n            this._commonService.refreshFilterProperty(filter);\n            this._filtersService.filterSelectionChange.emit(filter);\n            this._filtersService.setActiveFilterList(this.filters);\n\n        }else{\n            this._commonService.refreshFilterCategoryProperty(filter);\n            this._filtersService.filterCategorySelectionChange.emit(filter);\n            this._filtersService.setActiveFilterCategoryList(this.categories);\n        }\n\n    }\n\n    /**\n     * This will return true if filter is instance of AxFilter otherwise return false\n     *\n     * @param filter\n     * @returns\n     */\n    isFilter(filter: IAxFilter): boolean{\n        if(filter instanceof AxFilter){\n            return true;\n        }\n        return false;\n    }\n\n    /**\n     * updates the display value of filter on update of filter label\n     * @param filter\n     */\n    filterLabelChanged(filter : AxFilter){\n        this._commonFilterService.filterLabelChanged.emit(filter);\n    }\n\n    //filter scroll to right on bn click\n    public scrollRight(): void {\n        this.filterScrollElement.nativeElement.scrollTo({ left: (this.filterScrollElement.nativeElement.scrollLeft + 150), behavior: 'smooth' });\n    }\n    //filter scroll to left on bn click\n    public scrollLeft(): void {\n        this.filterScrollElement.nativeElement.scrollTo({ left: (this.filterScrollElement.nativeElement.scrollLeft - 150), behavior: 'smooth' });\n    }\n    \n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'search'\n})\nexport class SearchPipe implements PipeTransform {\n\n  transform(list: any[], filtersearchText: string): any[] {\n    if (!list) { return []; }\n    if (!filtersearchText) { return list; }\n    return list.filter( (item) => {\n        if(item.label){\n          return item.label.toLowerCase().includes(filtersearchText.toLowerCase());\n        }\n       if(item.name){\n        return item.name.toLowerCase().includes(filtersearchText.toLowerCase());\n        }\n        else if(item.prompt){\n        return item.prompt.toLowerCase().includes(filtersearchText.toLowerCase());\n        }\n        else if(item.title){\n          return item.title.toLowerCase().includes(filtersearchText.toLowerCase());\n        }\n        return item.toLowerCase().includes(filtersearchText.toLowerCase());\n        });\n      }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'filterSearch'\n})\nexport class FilterSearchPipe implements PipeTransform {\n\n    transform(series: number| string, searchedTerm: number| string): string {\n        return ((String(series).toLowerCase().includes(String(searchedTerm).toLowerCase())) || !searchedTerm) ? 'flex': 'none';\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { SearchPipe } from '../axo-utils/search-pipe';\n\n@Pipe({\n  name: 'fieldListSearch'\n})\nexport class FieldListSearchPipe implements PipeTransform {\n\n  transform(list: any, widgetSearchText: string): any[] {\n    if (!list) { return []; }\n    if (!widgetSearchText) { return list; }\n    return list.filter( (item) => {\n        if(item.columns.length){\n          let searchPipe = new SearchPipe();\n          item.columns = searchPipe.transform(item.columns, widgetSearchText);\n          return Boolean(item.columns.length);\n        } else {\n          return false;\n        }\n      })\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SearchPipe } from './search-pipe';\nimport { FilterSearchPipe } from './filter-search-pipe';\nimport { FieldListSearchPipe } from '../axo-utils/field-list-search-pipe';\n\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  exports :[SearchPipe, FilterSearchPipe, FieldListSearchPipe],\n  declarations: [SearchPipe, FilterSearchPipe, FieldListSearchPipe]\n})\nexport class AxoUtilsModule { }\n","import { SingleSelectFilterComponent } from './single-select-filter/single-select-filter.component';\nimport { AxoSearchBarModule } from './../axo-search-bar/axo-search-bar.module';\nimport { UserFilterService } from './user-filter/user-filter.service';\nimport { MetaColumnFilterBuilderService } from './meta-column-filter-builder/meta-column-filter-builder.service';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FiltersComponent } from './filters.component';\nimport { GridsterModule } from 'angular-gridster2';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { CalenderFilterComponent } from './calender-filter/calender-filter.component';\nimport { MultiSelectFilterComponent } from './multi-select-filter/multi-select-filter.component';\nimport { NumberFilterComponent } from './number-filter/number-filter.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatNativeDateModule, MatOptionModule } from '@angular/material/core';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { AxoUtilsModule } from '../axo-utils/axo-utils.module';\nimport { TimeFilterComponent } from './time-filter/time-filter.component';\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\nimport { DateTimeFilterComponent } from './date-time-filter/date-time-filter.component';\n\nimport {\n  NgxMatDatetimePickerModule,\n  NgxMatNativeDateModule,\n  NgxMatTimepickerModule\n} from '@angular-material-components/datetime-picker';\nimport { CategoryFilterComponent } from './category-filter/category-filter.component';\nimport { ReferenceListFilterComponent } from './reference-list-filter/reference-list-filter.component';\nimport { FilterFooterComponent } from './filter-footer/filter-footer.component';\nimport { ChoiceListFilterComponent } from './choice-list-filter/choice-list-filter.component';\nimport { UserFilterComponent } from './user-filter/user-filter.component';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { CommonFilterComponent } from './common-filter/common-filter.component';\nimport { CommonFilterService } from './common-filter/common-filter.service';\nimport { ChoiceSearchPipe } from '../axo-utils/public-api';\nimport { CustomScrollDirective } from './custom-scroll-directives';\n@NgModule({\n  declarations: [\n    FiltersComponent,\n    CalenderFilterComponent,\n    MultiSelectFilterComponent,\n    ChoiceListFilterComponent,\n    NumberFilterComponent,\n    DateTimeFilterComponent,\n    TimeFilterComponent,\n    CategoryFilterComponent,\n    ReferenceListFilterComponent,\n    FilterFooterComponent,\n    UserFilterComponent,\n    CommonFilterComponent,\n    ChoiceSearchPipe,\n    SingleSelectFilterComponent,\n    CustomScrollDirective\n  ],\n  imports: [\n    CommonModule,\n    GridsterModule,\n    FormsModule,\n    MatFormFieldModule,\n    MatSelectModule,\n    MatOptionModule,\n    MatIconModule,\n    MatRadioModule,\n    ReactiveFormsModule,\n    MatInputModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    MatMomentDateModule,\n    MatListModule,\n    MatCheckboxModule,\n    MatTableModule,\n    MatSortModule,\n    MatTooltipModule,\n    MatMenuModule,\n    AxoUtilsModule,\n    NgxDaterangepickerMd.forRoot({\n      separator: ' - ',\n    }),\n    NgxMatDatetimePickerModule,\n    NgxMatTimepickerModule,\n    NgxMatNativeDateModule,\n    MatSlideToggleModule,\n    AxoSearchBarModule\n  ],\n  exports: [\n    FiltersComponent,\n    CalenderFilterComponent,\n    MultiSelectFilterComponent,\n    NumberFilterComponent,\n    DateTimeFilterComponent,\n    TimeFilterComponent,\n    CategoryFilterComponent,\n    ReferenceListFilterComponent,\n    ChoiceListFilterComponent\n  ],\n  providers:[\n    MetaColumnFilterBuilderService,\n    UserFilterService,\n    CommonFilterService\n  ]\n})\nexport class FiltersModule { }\n\n","export enum DataModelTreeDisplayType{\n    dragDropList,\n    selectionList\n}\n\n","import { Attribute } from '../../../enlighten-lib/data-model/attribute';\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { FilterCategory } from '../../filters/filter-category';\nimport { DataModel } from '../../data-model/data-model';\nimport { AxFilter } from '../../filters/ax-filter';\nimport { AxExpression } from '../../ax-expression/ax-expression';\nimport { SearchNode } from '../../filters/search-node';\nimport { ConditionType, FilterType, ScopeType } from '../../filters/condition-type';\nimport { MatSelectChange } from '@angular/material/select';\nimport { GridSterProperties } from '../../filters/gridster-properties';\nimport { ExpressionValueType } from '../../ax-expression/exp-sub-type';\nimport { ElementService } from '../element.service';\nimport { IAxFilter } from '../../filters/iax-filter';\nimport { WidgetType } from '../../../forms/page/common/widget-enums';\nexport interface ICategory{\n    id: number;\n    name: string;\n    description?: string;\n    isSelected?: string;\n\n}\n\n@Injectable()\nexport class ReportFilterService {\n/**\n * Constructor\n */\n constructor(\n   private _httpClient: HttpClient,\n   private _elementService: ElementService,\n  ) { }\n\n /**\n  * Get Category list by the app-version id\n  *\n  * @param appVersion\n  * @returns filter category array\n  */\n  getCategories(appVersion: number): Promise<Array<FilterCategory>> {\n    return new Promise((resolve, reject) => {\n      let params = new HttpParams();\n      params = params.append('appVersionId', appVersion);\n      this._httpClient.get<[FilterCategory]>('filtercategories', {params: params})\n        .subscribe((response: any) => {\n          resolve(response);\n        }, reject);\n    });\n  }\n  /**\n   * Create filter category object mapping\n   *\n   * @param filterCategory\n   * @returns\n   */\n  createFilterCategoryObject(filterCategory: Array<FilterCategory>): Array<FilterCategory>{\n    const filterCategoryArray = new Array<FilterCategory>();\n    if(filterCategory){\n      filterCategory.forEach((category) => {\n        category.gridProperties = category.gridProperties ? category.gridProperties : new GridSterProperties();\n        filterCategoryArray.push(new FilterCategory(category));\n      });\n    }\n    return filterCategoryArray;\n  }\n\n  /**\n   * check filter category exists into filter\n   *\n   * @param categoryList\n   * @param categories\n   * @returns Filter category list\n   */\n  checkSelectedCategory(appCategories: Array<FilterCategory>,reportCategories: Array<IAxFilter>): Array<FilterCategory>{\n      appCategories.forEach((appCategory, key) => {\n        reportCategories.forEach((reportCategory, filterKey) => {\n          if(reportCategory.id === appCategory.id){\n            appCategory.gridProperties = reportCategory.gridProperties ? reportCategory.gridProperties : new GridSterProperties();\n            appCategory.isSelected = true;\n            if(reportCategory[filterKey]){\n              reportCategory[filterKey].isSelected = true;\n            }\n          }\n        });\n      });\n    return appCategories;\n  }\n\n  /**\n   * Check the attributes are exists in filters\n   *\n   * @param dataModel\n   * @param filters\n   * @returns Data Model details\n   */\n  checkSelectedAttribute(dataModel: DataModel, filters: Array<AxFilter>): DataModel{\n    if(dataModel){\n      dataModel.entities.forEach((entity) => {\n        entity.columns.forEach((column) => {\n          filters.forEach((filter, filterKey) => {\n            const columnName = filters[filterKey].searchNodes[0].expression.field.name;\n            const tableName = filters[filterKey].searchNodes[0].expression.field.tableName;\n            const isTitleColumn = column.label=='title';\n            const isChoiceGuidColumn = column.name=='col_guid' && column.widgetType == WidgetType.textBox;\n            // check the existing  filter attribute with drop down of data model Attribute\n            if(columnName === column.name && tableName === column.tableName && !isTitleColumn && !isChoiceGuidColumn){\n              column.isSelected = true;\n            //   filters[filterKey].searchNodes[0].expression.field = column;\n            }\n          });\n        });\n      });\n      return dataModel;\n    }\n  }\n\n  /**\n   * Add new filter functionality\n   *\n   * @param appVersion\n   * @param event\n   * @param filters\n   * @returns  filter array\n   */\n  addFilter(appVersion: number, event: MatSelectChange | any, filters: Array<AxFilter>, scopeType: number,x: number): Array<AxFilter>{\n    const field = event.option.value;\n    const expression = new AxExpression();\n    expression.field = field;\n    expression.valueType = ExpressionValueType.fixed;\n    const searchNode = new SearchNode();\n    searchNode.expression = expression;\n    searchNode.type = ConditionType.condition;\n    const axFilter = new AxFilter();\n    axFilter.type = FilterType.basic;\n    axFilter.scope = ScopeType.global;\n    axFilter.searchNodes.push(searchNode);\n    axFilter.appVersionId = appVersion;\n    axFilter.scope = scopeType;\n    axFilter.type = FilterType.basic;\n    axFilter.gridProperties.x = x;\n    if(event.option._selected){\n      filters.push(axFilter);\n    }else{\n      filters.forEach((filter, index) => {\n        if(filter.searchNodes[0].expression.field.name === field.name){\n          filters[index].isDeleted = true;\n          filters[index].searchNodes[0].expression.value.isSearchable = false;\n          this._elementService.refreshElementData();\n        }\n      });\n    }\n    return filters;\n  }\n  /**\n   * Add new filter functionality\n   *\n   * @param appVersion\n   * @param event\n   * @param filters\n   * @returns  filter array\n   */\n   createFilter(appVersion: number,attribute: Attribute, scopeType: number,x: number): AxFilter{\n    const field = attribute;\n    const expression = new AxExpression();\n    expression.field = field;\n    expression.valueType = ExpressionValueType.fixed;\n    const searchNode = new SearchNode();\n    searchNode.expression = expression;\n    searchNode.type = ConditionType.condition;\n    const axFilter = new AxFilter();\n    axFilter.type = FilterType.basic;\n    axFilter.scope = ScopeType.global;\n    axFilter.searchNodes.push(searchNode);\n    axFilter.appVersionId = appVersion;\n    axFilter.scope = scopeType;\n    axFilter.type = FilterType.basic;\n    axFilter.gridProperties.x = x;\n    return axFilter;\n  }\n\n  /**\n   * Delete Filter From Filter List\n   *\n   * @param attribute\n   * @param _filters\n   */\n  deleteFilter(attribute: Attribute,_filters: Array<AxFilter>): void{\n    _filters.forEach((filter, index) => {\n        if(filter.searchNodes[0].expression.field.name === attribute.name && filter.searchNodes[0].expression.field.tableName === attribute.tableName){\n          _filters[index].isDeleted = true;\n          _filters[index].searchNodes[0].expression.value.isSearchable = false;\n          this._elementService.refreshElementData();\n        }\n      });\n  }\n\n  /**  REMOVE THIS CODE\n   * Add new filter category into report and element filter\n   *\n   * @param appVersion\n   * @param event\n   * @param categories\n   * @returns Filter category array\n   */\n  addFilterCategory(appVersion: number, event: MatSelectChange | any, categories: Array<FilterCategory>, x: number): Array<FilterCategory>{\n    const categoryFilter = event.option.value;\n    categoryFilter.appVersionId = appVersion;\n    categoryFilter.gridProperties.x = x;\n    if(event.option._selected){\n      categoryFilter.isDeleted = false;\n      const data = categories.find(category => category.id === categoryFilter.id);\n      if(data === undefined || categories.length === 0){\n        categories.push(categoryFilter);\n      }\n    }else{\n      categories.forEach((categoryField, index) =>{\n        if(categoryField.id === categoryFilter.id){\n          categories[index].isDeleted = true;\n          categories[index].isSearchable = false;\n          this._elementService.refreshElementData();\n        }\n      });\n    }\n    return categories;\n  }\n\n  /**\n   * Create New Category Filter\n   *\n   * @param category\n   * @param appVersionId\n   * @param x\n   * @returns\n   */\n  createFilterCategory(category: FilterCategory,appVersionId: number,x: number): FilterCategory{\n    category.appVersionId = appVersionId;\n    category.gridProperties.x = x;\n    category.isDeleted = false;\n    category.isVisible = true;\n    category.isDefault = false;\n    return category;\n  }\n\n  /**\n   * Delete Filter Category\n   */\n  deleteFilterCategory(deletedCategory: FilterCategory,_categories: Array<FilterCategory>): void{\n    _categories.forEach((category, index) =>{\n        if(category.id === deletedCategory.id){\n          category.isDeleted = true;\n          category.isSearchable = false;\n          this._elementService.refreshElementData();\n        }\n    });\n  }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport {FilterCategory} from '../../enlighten-lib/filters/filter-category';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CategoryService {\n  public _categoryList: BehaviorSubject<[FilterCategory] | null> = new BehaviorSubject(null);\n  updateCategoryListEvent: EventEmitter<any> = new EventEmitter();\n\n  constructor(private _httpClient: HttpClient) { }\n\n   /**\n    * Getter for entities\n    */\n   get categoryList$(): Observable<[FilterCategory]> {\n      return this._categoryList.asObservable();\n   }\n\n   updateCategoryList(): void {\n    this.updateCategoryListEvent.emit();\n  }\n\n\n  /**\n   * @param appVersionId\n   * Get Category list by the app-version id\n   */\n  getCategory(appVersionId: number): Promise<[FilterCategory]> {\n    const params = new HttpParams()\n      .set('AppVersionId', appVersionId);\n\n    return new Promise((resolve, reject) => {\n      this._httpClient.get<[FilterCategory]>(`filtercategories/?${params.toString()}`)\n        .subscribe((response) => {\n          this._categoryList.next(response);\n          resolve(response);\n        }, reject);\n    });\n  }\n}\n"," <!-- To add filter filter -->\n <div class=\"report-filter\" style=\"position: relative;\" *ngIf = \"isEditable\" [ngClass]=\"{'border-seperator': getFiltersCount()}\">\n    <!-- Add Filter Button -->\n    <button class=\"light-blue-btn axo-font\" mat-icon-button [matMenuTriggerFor]=\"menu\" [ngClass]=\"{'local-filter-btn':scopeType.local === filterScopeType}\">\n        <mat-icon svgIcon=\"axo_filter\"></mat-icon>\n        <span *ngIf=\"scopeType.global === filterScopeType\"> Add Filter</span></button>\n        <!-- Mat Menu  -->\n      <mat-menu #menu=\"matMenu\" yPosition=\"below\" class=\"filter-field-list\" backdropClass=\"report-filter-menu-backdrop-class\">\n        <!-- <div class=\"sticky top-0 bg-white flex justify-end items-center h-10 z-10\">\n            <button class=\"light-btn min-w-8 px-2 py-0 max-h-5 h-5 min-h-5 leading-5 axo-font\" mat-icon-button (click)=\"closeMatMenu()\" >\n                Close\n            </button>\n        </div> -->\n        <!-- Date Model Tree -->\n        <div (click)=\"$event.stopPropagation();\" class=\"h-full\">\n            <lib-data-model-tree [dataModel]=\"dataModel\" [displayMode]=\"dataModelTreeDisplayType.selectionList\"[categories]=\"categoryList\"\n             (attributeSelected)=\"addFilter($event)\" (attributeDeselected)=\"removeFilter($event)\"\n             (categorySelected)=\"addCategory($event)\"\n             (categoryDeselected)=\"deleteCategory($event)\">\n            </lib-data-model-tree>\n        </div>\n      </mat-menu>\n</div>\n\n <!-- Filter rendering -->\n<div class=\"filter-component\" [ngClass]=\"{'global-filter':scopeType.global === filterScopeType,'local-filter':scopeType.global !== filterScopeType, 'dashboard-local-filter':!isEditable && scopeType.global !== filterScopeType}\">\n    <filters\n        class=\"flex gap-x-2 items-center\"\n        [scopeType]=\"filterScopeType\"\n        [filters]=\"filters\"\n        [categories]=\"categories\"\n        [screenType]=\"screenType\"\n        [commonFilterArray]=\"commonFilterArray\"\n        [categories]=\"categories\"\n        [reportId]=\"reportId\"\n        [showApplyFilterEvent]=\"showApplyFilterEvent\"\n        (sendFilterToDashboardEvent)=\"sendFilterToDashboardEvent($event)\"\n        (sendFilterCategoryToDashboardEvent)=\"filterCategorySendOnDashboard($event)\"\n        (dirtyFlowCheckEvent)=\"dirtyFlowCheck()\"\n        (applyFilterEmit)= \"applyFilter()\"\n        (deleteFilterEmit)=\"filterDeleted($event)\"\n        >\n    </filters>\n</div>\n","import { IAxFilter } from './../../filters/iax-filter';\nimport { DataModelTreeDisplayType } from './../../data-model-tree/data-model-tree-enums';\nimport {\n    Component,\n    EventEmitter,\n    Input,\n    OnChanges,\n    OnInit,\n    Output,\n    SimpleChanges,\n    ViewChild,\n    ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { Attribute } from '../../data-model/attribute';\nimport { DataModel } from '../../data-model/data-model';\nimport { AxFilter } from '../../filters/ax-filter';\nimport { FilterCategory } from '../../filters/filter-category';\nimport { ReportFilterService } from './report-filter.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { FieldsListService } from '../../../field-list-lib/fields-list.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { ElementService } from '../element.service';\nimport { CategoryService } from '../../../filters/category-filter/category.service';\nimport { ScopeType, ScreenType } from '../../filters/condition-type';\nimport { MultiSelectFilterService } from '../../../../lib/filters/multi-select-filter/multi-select-filter.service';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { TabularReport } from '../tabular-report/tabular-report';\n\n@Component({\n    selector: 'lib-report-filter',\n    templateUrl: './report-filter.component.html',\n    styleUrls: ['./report-filter.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\nexport class ReportFilterComponent implements OnInit,OnChanges {\n    // -------------<View Child reference> -----------\n    @ViewChild(MatMenuTrigger) trigger: MatMenuTrigger;\n    // -------------< Inputs> ------------------------>\n    @Input() filters: Array<AxFilter>;\n    @Input() categories: Array<FilterCategory>;\n    @Input() reportId: number;\n    @Input() chartType: number;\n    @Input() filterScopeType = ScopeType.local;\n    @Input() appVersion: number;\n    @Input() isEditable: boolean = false;\n    @Input() screenType = ScreenType.reportBuilder;\n\n    //<-------------< Outputs> ------------------------>\n    @Output() sendFilterToDashboard = new EventEmitter<any>();\n    @Output() filterCategorySendOnDashboardEvent = new EventEmitter<any>();\n    @Output() dirtyFlowCheckEvent = new EventEmitter<any>();\n    @Output() applyFilterEvent = new EventEmitter<any>();\n\n    // <-------------< Component Variable>------------->\n    commonFilterArray: any =[];\n    categoryList: Array<FilterCategory> = [];\n    dataModel: DataModel;\n    showApplyFilterEvent: boolean = true;\n    dataModelTreeDisplayType = DataModelTreeDisplayType;\n    scopeType = ScopeType;\n\n    /*\n     * Subject object which helps unsubscribe all the subscribed objects in the component\n     */\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n    /**\n     * constructor\n     *\n     */\n    constructor(\n        private _reportFilterService: ReportFilterService,\n        private _activatedRoute: ActivatedRoute,\n        private _fieldsListService: FieldsListService,\n        private _elementService: ElementService,\n        private _categoryService: CategoryService,\n        private _multiSelectFilterService: MultiSelectFilterService\n    ) {}\n\n    ngOnChanges(changes: SimpleChanges): void {\n        if(this.filters || this.categories){\n            this.commonFilterArray = [];\n            this.getAndSetFilterCategoryData();\n        }\n    }\n    /**\n     * On Init life cycle hook\n     */\n    ngOnInit(): void {\n\n    }\n\n    /**\n     * Close Mat Menu\n     */\n    closeMatMenu(): void {\n        this.trigger.closeMenu();\n    }\n\n    /***\n     * following method is used to get filter and filter categories in add filter list\n     * @param event\n     */\n\n    getAndSetFilterCategoryData(): void {\n        this._categoryService.categoryList$\n            .pipe(takeUntil(this._unsubscribeAll))\n            .subscribe((categoryList) => {\n                if(categoryList){\n                    const catList: Array<FilterCategory> = this._reportFilterService.createFilterCategoryObject(categoryList);\n                    this.categoryList = this._reportFilterService.checkSelectedCategory(\n                        catList,\n                        this.categories\n                    );\n                }\n                this.getAllFilters();\n            });\n\n        // get attribute with selected attribute\n        this._fieldsListService.entities$\n            .pipe(takeUntil(this._unsubscribeAll))\n            .subscribe((dataModel) => {\n                if(dataModel){\n                    this.dataModel = this._fieldsListService.createDataModelObject(dataModel);\n                    this.dataModel = this._reportFilterService.checkSelectedAttribute(\n                        this.dataModel,\n                        this.filters\n                    );\n                    this.getAllFilters();\n                }\n            });\n    }\n\n\n    //this function is used to push filters and category into a commonArray\n\n      getAllFilters(): void {\n        this.filters.forEach((filter) => {\n            // filter.generalFilterType = 1;\n            if(!this.commonFilterArray.includes(filter))\n            {\n                this.commonFilterArray.push(filter);\n            }\n        });\n        this.categories.forEach((category) => {\n            this.categoryList.forEach((list, index) => {\n                if(category.id === list.id && list.isSelected && !list.isDeleted){\n                    category.isSelected = true;\n                    this.categoryList[index] = category;\n                }\n            });\n            category.generalFilterType = 2;\n            if(!this.commonFilterArray.includes(category))\n            {\n                this.commonFilterArray.push(category);\n            }\n        });\n\n        this.commonFilterArray.sort((a,b)=> (a.gridProperties.x > b.gridProperties.x) ? 1 : ((b.gridProperties.x > a.gridProperties.x) ? -1 : 0));\n    }\n\n\n    /**\n     * Send FIlter on Dashboard\n     *\n     * @param filter\n     */\n    sendFilterToDashboardEvent(filter: AxFilter): void {\n        this.sendFilterToDashboard.emit(filter);\n    }\n    /**\n     * Send filter category on Dashboard\n     *\n     * @param filterCategory\n     */\n    filterCategorySendOnDashboard(filterCategory: FilterCategory): void {\n        this.filterCategorySendOnDashboardEvent.emit(filterCategory);\n    }\n    /**\n     * Call dirty flow event emit\n     */\n    dirtyFlowCheck(): void {\n        this.dirtyFlowCheckEvent.emit();\n    }\n    /**\n     * On destroy\n     */\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnDestroy(): void {\n        // Unsubscribe from all subscriptions\n        this._unsubscribeAll.next();\n        this._unsubscribeAll.complete();\n    }\n\n    /**\n     * call when the global filters fields values are selected.\n     */\n    applyFilter(): void {\n        if(this.filterScopeType === ScopeType.global){\n            this._elementService.refreshElementData();\n        }\n        this.applyFilterEvent.emit();\n    }\n\n    /**\n     * Add filter on Attribute Select.\n     */\n    addFilter(attribute: Attribute): void{\n        const newFilter = this._reportFilterService.createFilter(this.appVersion,attribute,this.filterScopeType,this.commonFilterArray.length);\n        this.filters.push(newFilter);\n        this.getAllFilters();\n        this.dirtyFlowCheckEvent.emit();\n        this.showApplyFilterEvent = !this.showApplyFilterEvent;\n        // need R&D\n        this._multiSelectFilterService.refreshFilterProperty(this.commonFilterArray[this.commonFilterArray.length-1]);\n        let parentFilterArr = [];\n        parentFilterArr = this.commonFilterArray.filter(\n            filter => filter.generalFilterType === 1\n        );\n        this._multiSelectFilterService.refreshFilterListProperty(parentFilterArr);\n    }\n\n    /**\n     * Remove Filter on attribute deselect.\n     */\n    removeFilter(attribute: Attribute): void{\n        this._reportFilterService.deleteFilter(attribute,this.filters);\n        this.getAllFilters();\n        this.dirtyFlowCheckEvent.emit();\n        this.showApplyFilterEvent = !this.showApplyFilterEvent;\n        this._multiSelectFilterService.refreshFilterProperty(this.commonFilterArray[this.commonFilterArray.length-1]);\n        let parentFilterArr = [];\n        parentFilterArr = this.commonFilterArray.filter(\n            filter => filter.generalFilterType === 1\n        );\n        this._multiSelectFilterService.refreshFilterListProperty(parentFilterArr);\n    }\n\n    /**\n     * Add Category Filter\n     *\n     * @param category\n     */\n    addCategory(category: FilterCategory): void{\n        const newCategoryFilter=this._reportFilterService.createFilterCategory(\n            category,\n            this.appVersion,\n            this.commonFilterArray.length\n        );\n        this.categories.push(newCategoryFilter);\n        this.getAllFilters();\n        this.dirtyFlowCheckEvent.emit();\n        this.showApplyFilterEvent = !this.showApplyFilterEvent;\n    }\n\n    /**\n     * Delete Category\n     *\n     * @param category\n     */\n    deleteCategory(category: FilterCategory): void{\n        this._reportFilterService.deleteFilterCategory(category,this.categories);\n        this.getAllFilters();\n        this.dirtyFlowCheckEvent.emit();\n        this.showApplyFilterEvent = !this.showApplyFilterEvent;\n    }\n    /**\n     * Get Called on Filter delete .\n     *\n     * @param $event\n     */\n    filterDeleted(filter: IAxFilter): void{\n        if(filter instanceof FilterCategory){\n            this._reportFilterService.deleteFilterCategory(filter,this.categories);\n        }\n        this.getAllFilters();\n        this.dirtyFlowCheckEvent.emit();\n    }\n    getFiltersCount(): boolean {\n        return this.filters.filter(fl => !fl.isDeleted).length > 0;\n      }\n}\n\n","<div [ngClass]=\"{'field-container' : showSearchBox}\"*ngIf=\"(categories | search: searchedTerm)?.length\" >\n    <mat-expansion-panel class=\"mb-6\">\n        <mat-expansion-panel-header>\n            <label class=\"axo-font font-normal\" *ngIf=\"(categories | search: searchedTerm)?.length\">Category</label>\n        </mat-expansion-panel-header>\n        <mat-selection-list #category\n        (selectionChange)=\"categorySelectionChange($event)\">\n            <ng-container *ngFor=\"let category of categories| search: searchedTerm;let i=index \">\n                <mat-list-option *ngIf=\"!category.isHidden\" checkboxPosition=\"after\"   [value]='category' [(selected)]=\"category.isSelected\" color=\"primary\">\n                    <span class=\"list-field\"  [matTooltip]=\"category.name\"> {{category.name}}</span>\n                </mat-list-option>\n            </ng-container>\n        </mat-selection-list>\n    </mat-expansion-panel>\n</div>\n","import { FilterCategory } from '../../filters/filter-category';\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\n\n@Component({\n    selector: 'lib-categories-tree',\n    templateUrl: './categories-tree.component.html',\n    styleUrls: ['./categories-tree.component.scss']\n})\nexport class CategoriesTreeComponent implements OnInit {\n    // <----------(Inputs)---------------------------->\n    @Input() categories: Array<FilterCategory> = []\n    @Input() searchedTerm: string = ''  // Search Text\n    //<----------------(Outputs) --------------------->\n    @Output() categorySelected: EventEmitter<FilterCategory> = new EventEmitter<FilterCategory>();\n    @Output() categoryDeselected: EventEmitter<FilterCategory> = new EventEmitter<FilterCategory>();\n    /**\n     * Constructor\n     */\n    constructor() { }\n\n    /**\n     * On init life cycle hook.\n     */\n    ngOnInit(): void {\n    }\n\n    /**\n     * categorySelectionChange get called on category selection box changed\n     * @param event\n     */\n    categorySelectionChange(event: MatSelectionListChange): void{\n        if(event.option.selected){\n            this.categorySelected.emit(event.option.value);\n        }else{\n            this.categoryDeselected.emit(event.option.value);\n        }\n    }\n\n}\n","<ng-container *ngFor=\"let attribute of attributes | search: searchedTerm\">\n    <ng-container *ngIf=\"!attribute.isHidden\">\n        <div class=\"flex align-center px-3 py-3 cursor-pointer whitespace-nowrap\" cdkDrag\n            [cdkDragData]=\"attribute\"\n            (cdkDragStarted)=\"dragStart($event, attribute)\"\n            (cdkDragEnded)=\"dragEnd($event, attribute)\">\n            <!-- mat-icon displayed based on attribute type -->\n            <mat-icon class=\"svg-icon mr-3\" [svgIcon]=\"attribute.enlightenType.matIcon\"></mat-icon>\n\n            <!-- The tree element that can be dragged ad dropped -->\n            <span [matTooltip]=\"attribute.label\"\n                class=\"ax-cdk-draggable text-att\">\n                    {{attribute.label?attribute.label:attribute.name}}\n                    <span *cdkDragPlaceholder class=\"field-placeholder\"></span>\n            </span>\n        </div>\n        <ng-container *ngIf=\"currentDragByElement && currentDragByElement ===attribute\">\n            <div class=\"flex align-center px-3 py-3 whitespace-nowrap\">\n                <mat-icon class=\"svg-icon mr-3\" [svgIcon]=\"currentDragByElement.enlightenType.matIcon\"></mat-icon>\n                <span [matTooltip]=\"currentDragByElement.label\"\n                    class=\"ax-cdk-draggable text-att\">\n                        {{currentDragByElement.label?currentDragByElement.label:currentDragByElement.name}}\n                </span>\n            </div>\n        </ng-container>\n    </ng-container>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Attribute } from '../../data-model/attribute';\n\n@Component({\n    selector: 'lib-attributes-dragdrop-layout',\n    templateUrl: './attributes-dragdrop-layout.component.html',\n    styleUrls: ['./attributes-dragdrop-layout.component.scss']\n})\nexport class AttributesDragdropLayoutComponent implements OnInit {\n    /**---------- Inputs ----------*/\n    @Input() attributes: Array<Attribute>;\n    @Input() searchedTerm: string;\n    // **------------<Component Variables >----------*>\n    currentDragByElement: Attribute;\n\n    /**\n     * Constructor\n     */\n    constructor() { }\n\n    // On Init Life cycle hook\n    ngOnInit(): void {\n    }\n\n    /** * Triggered when dragging started on mat-tree element\n     * * Used for showing static mat-tree element to give drag-clone feel*/\n     dragStart($event: DragEvent, attribute: Attribute): void {\n        this.currentDragByElement = attribute;\n    }\n\n    /***\n     * Triggered when dragging ended on mat-tree element\n    */\n    dragEnd($event: DragEvent, attribute: Attribute): void {\n        this.currentDragByElement = null;\n    }\n\n}\n","<div>\n    <mat-selection-list #filters *ngIf=\"(attributes | search: searchedTerm)?.length > 0\"\n    (selectionChange)=\"attributeSelectionChange($event)\">\n        <ng-container *ngFor=\"let attribute of attributes| search: searchedTerm\">\n            <mat-list-option *ngIf=\"!attribute.isHidden\" checkboxPosition=\"after\"   [value]='attribute' [(selected)]=\"attribute.isSelected\" color=\"primary\">\n                <span class=\"list-field\" [matTooltip]=\"attribute.label\" ><mat-icon class=\"svg-icon mr-2\" [svgIcon]=\"attribute.enlightenType.matIcon\"></mat-icon> {{attribute.label}}</span>\n            </mat-list-option>\n        </ng-container>\n    </mat-selection-list>\n</div>\n","import { Component, Input, OnInit, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { Attribute } from '../../data-model/attribute';\n\n@Component({\n  selector: 'lib-attributes-selection-layout',\n  templateUrl: './attributes-selection-layout.component.html',\n  styleUrls: ['./attributes-selection-layout.component.scss']\n})\nexport class AttributesSelectionLayoutComponent implements OnInit {\n\n    /**---------- Inputs ----------*/\n    @Input() attributes: Array<Attribute>;\n    @Input() searchedTerm: string = '';\n    @Input() selectedAttribute: Array<Attribute>;\n    // <----------< Output Emitter>-------------------->\n    @Output() attributeSelected: EventEmitter<Attribute> = new EventEmitter<Attribute>();\n    @Output() attributeDeselected: EventEmitter<Attribute> = new EventEmitter<Attribute>();\n    // **------------< Component Variables >----------*>\n\n    /**\n     * Constructor\n     */\n    constructor() { }\n\n    // On Init Life cycle hook\n    ngOnInit(): void {\n    }\n\n    /***\n     * attributeSelectionChange get called on checkbox selection change.\n     * @param event\n     */\n    attributeSelectionChange(event: MatSelectionListChange): void {\n        if(event.option.selected){\n            this.attributeSelected.emit(event.option.value);\n        }else{\n            this.attributeDeselected.emit(event.option.value);\n        }\n    }\n\n\n}\n","<div class=\"add-filter-title axo-font\">Add Filters</div>\n<div class=\"flex items-center sticky justify-end top-0 pt-4 gap-3 bg-white px-6 z-10\" [ngClass]=\"{'pb-2' : showSearchBox}\">\n    <div class=\"axo-font text-f fields-title\" *ngIf=\"!showSearchBox\">Fields</div>\n\t <div class=\"search-field\" [ngClass]=\"{'search-field-border' : showSearchBox}\">\n        <button  (click)=\"enableSearch()\" *ngIf=\"showSearchBox\"> <mat-icon [ngClass]=\"{'search-icon' : showSearchBox}\" class=\"search-icon text-base flex justify-center aligned items-center\" [svgIcon]=\"'heroicons_solid:search'\"></mat-icon></button>\n        <input id=\"data-model-tree-field-search\" (input)=\"search()\" autocomplete=\"off\"  placeholder=\"Search...\" [(ngModel)]=\"searchInputText\" matInput class=\"search-bar chart-title h-8\"  [style.width]=\"!showSearchBox ? '0' : '100%'\" />\n        <mat-icon (click)=\"clear()\" *ngIf=\"showSearchBox\" class=\"clear_icon\">clear</mat-icon>\n        <button (click)=\"enableSearch()\"  *ngIf=\"!showSearchBox\" class=\"flex items-center pr-1 icon-btn\"> <mat-icon class=\"search-icon\" [svgIcon]=\"'heroicons_solid:search'\"></mat-icon></button>\n\t</div>\n</div>\n\n<div class=\"px-6 pt-2 pb-8 fields-max-vh customscroll\">\n    <!-- Iterate each entity and render tree for each of them -->\n    <mat-accordion class=\"left-menu-mat-tree\" multi>\n        <!-- Filter Catagories -->\n        <ng-container *ngIf=\"categories.length\">\n            <lib-categories-tree [categories]=\"categories\" [searchedTerm]=\"searchedTerm\" (categorySelected)=\"categorySelected.emit($event)\" (categoryDeselected)=\"categoryDeselected.emit($event)\"></lib-categories-tree>\n        </ng-container>\n        <!-- Basic Filters -->\n        <ng-container  *ngFor=\"let entity of dataModel.entities | fieldListSearch: searchedTerm\">\n            <ng-container *ngIf=\"!entity.isManyToManyTable && !entity.hidden\">\n                <!-- Mat expansion panel -->\n                <mat-expansion-panel (closed)=\"entity.expanded = false\" (opened)=\"entity.expanded = true\" [cdkDropListDisabled] = \"displayMode === dataModelTreeDisplayType.dragDropList\" cdkDropList [cdkDropListData]=\"entity.attributes\" cdkDropListSortingDisabled [cdkDropListConnectedTo]=\"arrtributeDropZoneList\" *ngIf=\"entity.columns?.length && !entity.isManyToManyTable\">\n                    <!-- Mat expansion panel header -->\n                    <mat-expansion-panel-header>\n                        <label class=\"axo-font font-normal\">\n                            {{ entity.formName }}\n                        </label>\n                    </mat-expansion-panel-header>\n                    <!-- Mat Selection List -->\n                    <ng-container *ngIf=\"entity.expanded\">\n                        <ng-container [ngSwitch]=\"displayMode\">\n                            <ng-container *ngSwitchCase=\"dataModelTreeDisplayType.dragDropList\">\n                                <!-- Attributes rendering  -->\n                                <!-- DragDrop and Without selection box lay out -->\n                                <lib-attributes-dragdrop-layout [attributes]=\"entity.columns\" [searchedTerm]=\"searchedTerm\"></lib-attributes-dragdrop-layout>\n                            </ng-container>\n                            <ng-container *ngSwitchCase=\"dataModelTreeDisplayType.selectionList\">\n                                <lib-attributes-selection-layout [attributes]=\"entity.columns\"  [searchedTerm]=\"searchedTerm\" (attributeSelected)=\"attributeSelected.emit($event)\" (attributeDeselected)=\"attributeDeselected.emit($event)\"> </lib-attributes-selection-layout>\n                            </ng-container>\n\n                        </ng-container>\n                    </ng-container>\n                </mat-expansion-panel>\n            </ng-container>\n            <!-- Mat expansion panel -->\n        </ng-container>\n    </mat-accordion>\n    <!-- Expandable entities tree ends here -->\n</div>\n","import { DataModelTreeDisplayType } from './data-model-tree-enums';\nimport { Component, Input, OnInit, OnChanges, SimpleChanges, OnDestroy, ViewChild, ViewEncapsulation, Output, EventEmitter } from '@angular/core';\nimport { MatAccordion } from '@angular/material/expansion';\nimport { Attribute } from '../data-model/attribute';\nimport { DataModel } from '../data-model/data-model';\nimport { FilterCategory } from '../filters/filter-category';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n    selector: 'lib-data-model-tree',\n    templateUrl: './data-model-tree.component.html',\n    styleUrls: ['./data-model-tree.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\nexport class DataModelTreeComponent implements OnInit,OnChanges,OnDestroy {\n    //---------------<View Chid>---------------------\n    @ViewChild(MatAccordion) accordion: MatAccordion;\n    //---------- <Inputs> ----------------------------\n    @Input() dataModel: DataModel;\n    @Input() categories: Array<FilterCategory>;\n    @Input() displayMode: DataModelTreeDisplayType = DataModelTreeDisplayType.dragDropList;\n    @Input() attributeDropZoneList: Array<string>;\n    //---------------<Outputs>------------------------\n    @Output() attributeSelected: EventEmitter<Attribute> = new EventEmitter<Attribute>();\n    @Output() attributeDeselected: EventEmitter<Attribute> = new EventEmitter<Attribute>();\n    @Output() categorySelected: EventEmitter<FilterCategory> = new EventEmitter<FilterCategory>();\n    @Output() categoryDeselected: EventEmitter<FilterCategory> = new EventEmitter<FilterCategory>();\n    // ----------------<Component Variables>----------\n    showSearchBox: boolean = false;\n    searchInputText = '';\n    searchedTerm: string = '';\n    dataModelTreeDisplayType = DataModelTreeDisplayType;\n    searchSubscriber: Subject<string>;\n    dataModelProcess: DataModel;\n\n    /**\n     * Constructor\n     */\n    constructor() { \n        this.searchSubscriber = new Subject();\n    }\n\n    /**\n     * OnChange\n     *\n     * @param changes\n     */\n    ngOnChanges(changes: SimpleChanges): void {\n        this.dataModelProcess = new DataModel(this.dataModel);\n    }\n\n    /**\n     * On Init Life cycle hook.\n     */\n    ngOnInit(): void {\n        this.subscribers();\n    }\n\n    /**\n     * Subscribers Should be implemented here\n     */\n    subscribers(): void{\n        this.searchSubscriber\n            .pipe(debounceTime(700))\n            .pipe(distinctUntilChanged())\n            .subscribe((text: string) => {\n                this.dataModel.entities = (new DataModel(this.dataModelProcess)).entities;\n                this.searchedTerm = text;\n                this.applyFilter();\n            })\n    }\n\n\n    /**\n     * OnDestroy life cycle hook.\n     */\n    ngOnDestroy(): void {\n\n    }\n\n    /**\n     * enableSearch() - enables the search input for the user\n     */\n    enableSearch(): void {\n        this.showSearchBox = !this.showSearchBox;\n        document.getElementById('data-model-tree-field-search').focus();\n    }\n\n    /**\n     * Show search bar\n     */\n     search(): void {\n        this.searchSubscriber.next(this.searchInputText);\n    }\n\n    /**\n     * Apply Search On Fields\n     *\n     * @param filterText\n     */\n     applyFilter(): void {\n        setTimeout(() => {\n            if (this.searchedTerm === '') {\n                this.accordion.closeAll();\n            } else {\n                this.accordion.openAll();\n    \n            }\n        });\n    }\n\n\n    /**\n     * Clear and Hide search Bar\n     */\n     clear(): void {\n        this.searchSubscriber.next(\"\");\n        this.showSearchBox = !this.showSearchBox;\n        this.searchInputText = \"\";\n    }\n\n\n}\n","import { MatTooltipModule } from '@angular/material/tooltip';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataModelTreeComponent } from './data-model-tree.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AxoUtilsModule } from '../../axo-utils/axo-utils.module';\nimport {DragDropModule} from '@angular/cdk/drag-drop';\nimport { AttributesDragdropLayoutComponent } from './attributes-dragdrop-layout/attributes-dragdrop-layout.component';\nimport { AttributesSelectionLayoutComponent } from './attributes-selection-layout/attributes-selection-layout.component';\nimport { MatListModule } from '@angular/material/list';\nimport { CategoriesTreeComponent } from './categories-tree/categories-tree.component';\n\n\n\n@NgModule({\n  declarations: [\n    DataModelTreeComponent,\n    AttributesDragdropLayoutComponent,\n    AttributesSelectionLayoutComponent,\n    CategoriesTreeComponent\n  ],\n  imports: [\n    CommonModule,\n    MatExpansionModule,\n    ReactiveFormsModule,\n    FormsModule,\n    MatIconModule,\n    AxoUtilsModule,\n    DragDropModule,\n    MatTooltipModule,\n    MatListModule\n  ],\n  exports: [\n    DataModelTreeComponent\n  ]\n})\nexport class DataModelTreeModule { }\n","import { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FiltersModule } from './../../../filters/filters.module';\nimport { ReportFilterComponent } from './report-filter.component';\nimport { DataModelTreeModule } from './../../data-model-tree/data-model-tree.module';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { AxoUtilsModule } from '../../../axo-utils/axo-utils.module';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n@NgModule({\n    declarations:[\n        ReportFilterComponent\n    ],\n  imports: [\n    CommonModule,\n    DataModelTreeModule,\n    FiltersModule,\n    MatMenuModule,\n    MatIconModule,\n    FormsModule,\n    AxoUtilsModule,\n    MatSelectModule,\n    MatOptionModule,\n    MatListModule,\n    MatCheckboxModule,\n    MatTooltipModule,\n  ],\n  exports: [\n    ReportFilterComponent\n  ]\n})\nexport class ReportFilterModule { }\n\n","import { Injectable } from '@angular/core';\n@Injectable()\n//bar chart service\nexport class BarChartService {\n    /**\n     * Constructor\n     */\n    constructor() { }\n\n}\n","import { Injectable } from '@angular/core';\n@Injectable()\n//card chart service\nexport class CardChartService {\n\n  /**\n   * Constructor\n   */\n  constructor() { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Accessors\n  // -----------------------------------------------------------------------------------------------------\n\n}\n","import { Injectable } from '@angular/core';\n\n//line chart service\n@Injectable()\nexport class LineChartService {\n\n    /**\n     * Constructor\n     */\n    constructor() { }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Accessors\n    // -----------------------------------------------------------------------------------------------------\n\n\n}\n","import { Injectable } from '@angular/core';\n\n//pie chart service\n@Injectable()\nexport class PieChartService {\n\n    /**\n     * Constructor\n     */\n    constructor() { }\n    // -----------------------------------------------------------------------------------------------------\n    // @ Accessors\n    // -----------------------------------------------------------------------------------------------------\n\n}\n","import { Injectable } from '@angular/core';\n\n//text service\n@Injectable()\nexport class TextService {\n\n  /**\n   * Constructor\n   */\n  constructor() { }\n\n  // -----------------------------------------------------------------------------------------------------\n  // @ Accessors\n  // -----------------------------------------------------------------------------------------------------\n\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CommonChartService {\n  private _chartHeight: BehaviorSubject<number | null> = new BehaviorSubject(null);\n  private _chartWidth: BehaviorSubject<number | null> = new BehaviorSubject(null);\n\n  constructor() { }\n\n\n  get chartHeight$(): Observable<any>\n  {\n      return this._chartHeight.asObservable();\n  }\n\n  get chartWidth$(): Observable<any>\n  {\n      return this._chartWidth.asObservable();\n  }\n\n\n\n   //set Chart Height - triggered when  dashbaord chart height changed\n    setChartHeight(newValue: number): void{\n        this._chartHeight.next(newValue);\n    }\n\n    //set Chart Width - triggered when dashboard chart width changed\n    setChartWidth(newValue: number): void{\n        this._chartWidth.next(newValue);\n    }\n}\n","<!-- To add and show filters in different charts -->\n<div [ngClass]=\"{'sticky': filterSourceElementType === filterSourceElementTypes.tabular}\" class=\"local-filter\" *ngIf = \"isEditable\">\n  <button class=\"local-filter-btn\" matTooltip=\"Add Filter\"  [matMenuTriggerFor]=\"menuButton\">\n    <mat-icon id=\"sign\" svgIcon=\"add\"></mat-icon>\n  </button>\n  <mat-menu #menuButton=\"matMenu\" #filter id=\"menu\" class=\"chart-filter-panel customscroll-x\" panelClass=\"local-filter-panel\">\n    <div (click)=\"$event.stopPropagation();\">\n      <div class=\"group flex items-center px-2.5 justify-center mb-3\" [ngClass]=\"{'justify-between': !showSearchBox}\">\n        <span *ngIf=\"showField\" class=\"text-f font-medium\">Fields</span>\n\n         <div class=\"flex items-center search-field\" [ngClass]=\"{'search-field-border' : showSearchBox}\">\n          <button (click)=\"showFilterDiv()\"> <mat-icon [ngClass]=\"{'search-icon' : showSearchBox}\" class=\"text-xs search-icon\" [svgIcon]=\"'heroicons_solid:search'\"></mat-icon></button>\n\n          <input id=\"local-field-search\" autocomplete=\"off\" placeholder=\"Search...\" [(ngModel)]=\"searchedTerm\" matInput class=\"search-bar chart-title\"  [style.width]=\"!showSearchBox ? '0' : '100%'\" />\n          <mat-icon (click)=\"clear()\" *ngIf=\"showSearchBox\" class=\"clear_icon cursor-pointer text-base\">clear</mat-icon>\n        </div>\n    </div>\n    <ng-container *ngIf=\"categoryList.length | search: searchedTerm?.length\">\n      <div [ngClass]=\"{'field-container' : showSearchBox}\" *ngIf=\"(categoryList | search: searchedTerm)?.length\" >\n        <label class=\"px-2.5\" *ngIf=\"(categoryList | search: searchedTerm)?.length\">Category</label>\n      <mat-selection-list #category\n      (selectionChange)=\"getCategoryFilterList($event)\" checkboxPosition=\"after\" >\n          <mat-list-option  *ngFor=\"let category of categoryList| search: searchedTerm;let i=index \" [value]='category' [(selected)]=\"category.isSelected\" color=\"primary\">\n              <span class=\"list-field\" [matTooltip]=\"category.name\"> {{category.name}}</span>\n          </mat-list-option>\n      </mat-selection-list>\n      </div>\n    </ng-container>\n    <ng-container *ngFor=\"let entity of dataModel.entities\">\n      <div [ngClass]=\"{'col-field-container' : showSearchBox}\">\n    <ng-container   *ngIf = \"!entity.isManyToManyTable\">\n      <label class=\"px-2.5\" *ngIf=\"(entity.columns | search: searchedTerm)?.length\">{{entity.formName}}</label>\n            <mat-selection-list #shoes\n            (selectionChange)=\"getAttributeSeries($event)\" checkboxPosition=\"after\" >\n                <mat-list-option  *ngFor=\"let column of entity.columns| search: searchedTerm\" [value]='column' [(selected)]=\"column.isSelected\" color=\"primary\">\n                    <span class=\"list-field\" [matTooltip]=\"column.label\"><mat-icon class=\"svg-icon mr-2\" [svgIcon]=\"column.enlightenType.matIcon\"></mat-icon> {{column.label}}</span>\n                </mat-list-option>\n            </mat-selection-list>\n    </ng-container>\n    </div>\n    </ng-container>\n  </div>\n  </mat-menu>\n</div>\n<div class=\"chart-filter\">\n  <filters\n    class=\"flex\"\n    [commonFilterArray]=\"commonFilterArray\"\n    [screenType]=\"screenType\"\n    [reportId]=\"reportId\"\n    [scopeType]=\"scopeType\"\n    [categories]=\"categories\"\n    (filterChangeEmit)= \"filterChangeEmitEvent()\"\n    [filterSourceElementType]=\"filterSourceElementType\"\n    ></filters>\n\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { DataModel } from '../../data-model/data-model';\nimport { AxFilter } from '../../filters/ax-filter';\nimport { FieldsListService } from '../../../field-list-lib/fields-list.service';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { Attribute } from '../../data-model/attribute';\nimport { MatSelectChange } from '@angular/material/select';\nimport { ReportFilterService } from '../report-filter/report-filter.service';\nimport { FilterCategory } from '../../filters/filter-category';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { IChartComponent } from '../graphical-report/ichart-component';\nimport { ScopeType, ScreenType } from '../../filters/condition-type';\nimport { CategoryService } from '../../../filters/category-filter/category.service';\nimport { GridSterProperties } from '../../filters/gridster-properties';\nimport { FilterSourceElementType } from '../../filters/chart-filter-type';\nimport { GeneralFilterType } from '../../filters/general-filter-type';\nimport { IAxFilter } from '../../filters/iax-filter';\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'chart-filter',\n  templateUrl: './chart-filter.component.html',\n  styleUrls: ['./chart-filter.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ChartFilterComponent implements OnInit, OnChanges {\n  @Input() filters: Array<AxFilter>;\n  @Input() categories: Array<FilterCategory>;\n  @Input() isEditable: boolean;\n  @Output() dirtyFlowCheckEvent= new EventEmitter<any>();\n  @Input() chartRef: IChartComponent;\n  @Input() filterSourceElementType: FilterSourceElementType;\n  commonFilterArray: Array<IAxFilter> =[];\n  attributeData: Array<Attribute> = [];\n  dataModel: DataModel;\n  dataModelResult: DataModel;\n  filtersList: Array<Attribute>;\n  categoryList: Array<FilterCategory> = [];\n  appVersion: number;\n  reportId: number;\n  scopeType = ScopeType.local;\n  showSearchBox: boolean = false;\n  showField: boolean =true;\n  titleValue: string = '';\n  searchedTerm;\n  screenType: ScreenType;\n  showApplyFilterEvent: boolean = true;\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  constructor(\n    private _fieldsListService: FieldsListService, // Used for get matrix data\n    private _reportFilterService: ReportFilterService,\n    private _activatedRoute: ActivatedRoute,\n    private _categoryService: CategoryService\n  ) {\n    this.dataModel = new DataModel();\n   }\n\n  public get filterSourceElementTypes(): typeof FilterSourceElementType {\n    return FilterSourceElementType;\n  }\n  /**\n   * when we change the current  page then call this func\n   */\n  ngOnChanges(): void{\n    if(this.filters || this.categories){\n      this.setExistingFilter();\n      this.showApplyFilterEvent = !this.showApplyFilterEvent;\n    }\n  }\n  public get generalFilterTypes(): typeof GeneralFilterType {\n    return GeneralFilterType;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n  ngOnInit() {\n    // If is not editable then set screenType Container local filter work same as dashboard builder and dashboard container.\n    this.screenType = this.isEditable?ScreenType.reportBuilder:ScreenType.containerDashboard;\n    if(this._activatedRoute.parent.parent.parent.parent) {\n      this._activatedRoute.parent.parent.parent.parent.params.subscribe((params) => {\n        this.appVersion = params.appVersionId;\n      });\n    }\n    else {\n      this._activatedRoute.params.subscribe((params) => {\n        this.appVersion = params.appVersionId;\n      });\n    }\n\n    this._activatedRoute.params.subscribe(\n      (params) => {\n        this.reportId = params._value;\n      });\n  }\n\n    /***\n   * getAttributeSeries which is use to call column data\n   * @param event\n   */\n     getAttributeSeries(event: MatSelectChange | any): void{\n        this.filters = this._reportFilterService.addFilter(\n          this.appVersion,\n           event,\n           this.filters,\n           ScopeType.local,\n           this.commonFilterArray.length\n           );\n        this.getAllFilters();\n        this.dirtyFlowCheckEvent.emit();\n\n      this.showApplyFilterEvent = !this.showApplyFilterEvent;\n    }\n    /***\n    * getCategoryFilterList which is use to get filter list  filter component\n    * @param event\n    */\n     getCategoryFilterList(event: MatSelectionListChange|any): void{\n      this.categories = this._reportFilterService.addFilterCategory(this.appVersion,\n        event,\n        this.categories,\n        this.commonFilterArray.length\n        );\n      this.getAllFilters();\n      this.dirtyFlowCheckEvent.emit();\n      this.showApplyFilterEvent = !this.showApplyFilterEvent;\n    }\n\n    //this function is used to push filters and category into a commonArray\n\n    getAllFilters(): void {\n      this.commonFilterArray = [];\n      this.filters.forEach((filter) => {\n        // filter.generalFilterType = 1;\n          if(!this.commonFilterArray.includes(filter))\n          {\n            this.commonFilterArray.push(filter);\n          }\n      });\n      this.categories.forEach((category) => {\n        this.categoryList.forEach((list, index) => {\n          if(category.id === list.id && list.isSelected && !list.isDeleted){\n              category.isSelected = true;\n              this.categoryList[index] = category;\n          }\n        });\n        category.generalFilterType = 2;\n        if(!this.commonFilterArray.includes(category))\n        {this.commonFilterArray.push(category);}\n\n      });\n      this.commonFilterArray.sort((a,b)=> (a.gridProperties.x > b.gridProperties.x) ? 1 : ((b.gridProperties.x > a.gridProperties.x) ? -1 : 0));\n    }\n    /**\n     * set existing basic filter and local  and  filter category\n     */\n    setExistingFilter(): void{\n      if(this.isEditable){\n        // get Data model detail through subscriber\n        this._fieldsListService.entities$\n        .pipe(takeUntil(this._unsubscribeAll))\n        .subscribe((dataModel) => {\n            if(dataModel){\n              this.dataModel = this._fieldsListService.createDataModelObject(dataModel);\n              this.dataModel = this._reportFilterService.checkSelectedAttribute(this.dataModel, this.filters);\n              this.getAllFilters();\n            }\n          });\n        // get Categories list\n        this._categoryService.categoryList$\n            .pipe(takeUntil(this._unsubscribeAll))\n            .subscribe((categoryList) => {\n              if(categoryList){\n                this.categoryList = this._reportFilterService.createFilterCategoryObject(categoryList);\n                this.categoryList = this._reportFilterService.checkSelectedCategory(\n                                      this.categoryList,\n                                      this.categories\n                                      );\n                this.getAllFilters();\n              }\n\n        });\n      }\n      this.getAllFilters();\n      /**set filter gridSter by default properties  */\n      this.filters.forEach((filter)=> {\n        if(!filter.gridProperties)\n          {filter.gridProperties = new GridSterProperties();}\n      });\n    }\n\n  /**\n   * On destroy\n   */\n  // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n  filterChangeEmitEvent(): void{\n    this.chartRef.getChartData();\n  }\n  showFilterDiv(): void {\n    this.showSearchBox = !this.showSearchBox;\n    this.showField = !this.showField;\n    document.getElementById('local-field-search').focus();\n  }\n  clear(): void {\n  this.titleValue = null;\n  this.showSearchBox = !this.showSearchBox;\n  this.showField = !this.showField;\n  this.searchedTerm=null;\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { EventEmitter, Injectable } from '@angular/core';\nimport { AttributeData } from '../../fields/attribute-data';\nimport { ElementProperty } from '../../property/element-property';\nimport { TabularReport } from './tabular-report';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TabularReportService {\n\n  dataRender: EventEmitter<any> = new EventEmitter();\n  attrArray: Array<AttributeData>;\n  _tableClickEvent = new EventEmitter<any>();\n  cloneIntegerCount=Array<any>();\n  constructor(private _httpClient: HttpClient){\n\n  }\n  /**to count data count in a series\n   *\n   * @param TabularReport\n   *\n   */\n  groupData(tabularReport: TabularReport): TabularReport{\n    tabularReport.matrix.attributes.forEach((attribute,index) => {\n        // when row span is true and index is 0\n      attribute.groupData = new Array<number>();\n        if(index === 0 || attribute.colSpan){\n          this.getFirstRowGrouping(attribute);\n        }else{\n          // when index is greater than 0\n          let startIndex=0;\n          const cloneSeries=[];\n          let gdIndex=0;\n          while(startIndex<= (tabularReport.matrix.attributes[index - 1].groupData.length-1)){\n            const dataSeries=[];\n            const _seenGroupData = new Set<any>();\n            gdIndex=tabularReport.matrix.attributes[index - 1].groupData[startIndex];\n            const subSeries = attribute.series.slice(startIndex,startIndex+gdIndex);\n            const _subSeriesCountMap = new Map<any, number>();\n            subSeries.forEach(d => _subSeriesCountMap.set(d, (_subSeriesCountMap.get(d) ?? 0) + 1));\n            subSeries.forEach((data) => {\n              attribute.groupData.push(_subSeriesCountMap.get(data) ?? 0);\n              // to replace repeated data\n              if(_seenGroupData.has(data)){\n                dataSeries.push('repeated');\n                cloneSeries.push('repeated');\n              }\n              else{\n                _seenGroupData.add(data);\n                dataSeries.push(data);\n                cloneSeries.push(data);\n              }\n            });\n            attribute.cloneGroupData=attribute.groupData.slice(0);\n            startIndex=startIndex+gdIndex;\n\n          }\n          attribute.cloneSeries=cloneSeries;\n        }\n    });\n    if(tabularReport.subTotal && tabularReport.colGrouping.length===0){\n      tabularReport=tabularReport.subTotalToggle(tabularReport);\n    }\n    return tabularReport;\n  }\n\n  /** to count data count in a series\n   *\n   * @param string\n   * @param any\n   *\n   */\n  getRowSpanCount(series: Array<any> ,key: any): number {\n    return  series.filter(str => str === key).length;\n  }\n\n  /** to count first row grouping data count\n   *\n   * @param AttributeData\n   *\n   */\n  getFirstRowGrouping(attribute: AttributeData): AttributeData{\n    const series=[];\n    const uniqueSeries=[];\n    const _seenFirst = new Set<any>();\n    attribute.series.forEach((element) => {\n      if(_seenFirst.has(element)){\n        series.push('repeated');\n      }\n      else{\n      _seenFirst.add(element);\n      series.push(element);\n      uniqueSeries.push(element);\n      }\n    });\n    attribute.cloneSeries=series;\n    attribute.uniqueSeries=uniqueSeries;\n    const _firstRowCountMap = new Map<any, number>();\n    attribute.series.forEach(d => _firstRowCountMap.set(d, (_firstRowCountMap.get(d) ?? 0) + 1));\n    attribute.series.forEach((data) => {\n      attribute.groupData.push(_firstRowCountMap.get(data) ?? 0);\n    });\n    attribute.cloneGroupData=attribute.groupData.slice(0);\n    return attribute;\n  }\n\n  sendEmail(emailDto: any): Promise<any>{\n    return new Promise((resolve, reject) => {\n      this._httpClient.post('reports/export', emailDto).subscribe((response: any) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  /**to count data count and set clone data while column grouping is applied\n   *\n   * @param TabularReport\n   *\n   */\n  columnData(tabularReport: TabularReport): TabularReport{\n    //--commented\n    // tabularReport=this.rowSpan(tabularReport);\n    // tabularReport.colGrouping.forEach((attr) => {\n    //   if(!attr.uniqueSeries){\n    //     if(!attr.uniqueSeries){\n    //       const series=[];\n    //       const uniqueSeries=[];\n    //       attr.series.forEach((_element) => {\n    //         if(series.includes(_element)){\n    //           series.push('repeated');\n    //         }\n    //         else{\n    //         series.push(_element);\n    //         uniqueSeries.push(_element);\n    //         }\n    //       });\n    //       uniqueSeries.sort();\n    //       attr.uniqueSeries=uniqueSeries;\n    //     }\n    //   }\n    // });\n    // tabularReport.matrix.attributes.forEach((attr) => {\n    //   if(!attr.uniqueSeries){\n    //     if(!attr.uniqueSeries){\n    //       const series=[];\n    //       const uniqueSeries=[];\n    //       attr.series.forEach((seriesData) => {\n    //         if(series.includes(seriesData)){\n    //           series.push('repeated');\n    //         }\n    //         else{\n    //         series.push(seriesData);\n    //         uniqueSeries.push(seriesData);\n    //         }\n    //       });\n    //       uniqueSeries.sort();\n    //       attr.uniqueSeries=uniqueSeries;\n    //     }\n    //   }\n    // });\n\n    // return tabularReport;\n\n    tabularReport = this.rowSpan(tabularReport);\n\n    const processAttribute = (attr) => {\n      if (!attr.uniqueSeries) {\n        const series = [];\n        const uniqueSeries = [];\n        const _seenAttr = new Set<any>();\n        attr.series.forEach((_element) => {\n          if (_seenAttr.has(_element)) {\n            series.push('repeated');\n          } else {\n            _seenAttr.add(_element);\n            series.push(_element);\n            uniqueSeries.push(_element);\n          }\n        });\n        uniqueSeries.sort();\n        attr.uniqueSeries = uniqueSeries;\n      }\n    };\n\n    tabularReport.colGrouping.forEach(processAttribute);\n    tabularReport.matrix.attributes.forEach(processAttribute);\n\n    return tabularReport;\n  }\n  /**to count rows group data when column grouping is applied\n   *\n   * @param TabularReport\n   *\n   */\n  rowSpan(tabularReport: TabularReport): TabularReport{\n    tabularReport.integerArray=[];\n    tabularReport.integerIndex=[];\n    tabularReport=this.getIntegerArray(tabularReport);\n    if(tabularReport.integerArray.length===0){\n      tabularReport.rowCount=true;\n    }\n    tabularReport.matrix.attributes.forEach((attribute,index) => {\n      if(index===0 && attribute.rowSpan){\n        const series=[];\n        const uniqueSeries=[];\n        const _seenRowSpan = new Set<any>();\n        attribute.series.forEach((data) => {\n          if(_seenRowSpan.has(data)){\n            series.push('repeated');\n          }\n          else{\n          _seenRowSpan.add(data);\n          series.push(data);\n          uniqueSeries.push(data);\n          }\n        });\n        attribute.cloneSeries=series;\n        attribute.uniqueSeries=uniqueSeries;\n        const _rowSpanCountMap = new Map<any, number>();\n        attribute.series.forEach(d => _rowSpanCountMap.set(d, (_rowSpanCountMap.get(d) ?? 0) + 1));\n        attribute.series.forEach((data) => {\n          attribute.groupData.push(_rowSpanCountMap.get(data) ?? 0);\n        });\n        attribute.cloneGroupData=attribute.groupData;\n      }\n      if(index===1 && attribute.rowSpan){\n        attribute=this.getCloneData(tabularReport,index,attribute);\n      }\n    });\n    return tabularReport;\n}\n\n/**to set headers section of column grouping\n *\n * @param TabularReport\n * @param AttributeData\n *\n */\nnewData(tabularReport: TabularReport ,attr: AttributeData): TabularReport{\nconst count=(tabularReport.colGrouping.indexOf(attr));\ntabularReport.secondColData= new Map<string,any>();\ntabularReport.secondColSeries=new Array();\ntabularReport.firstColSeries=new Array();\nconst _index=tabularReport.rowGrouping.length+(count);\nif(count===1){\n  tabularReport=this.getSecondColData(tabularReport,_index);\n\n}\n\n\n  if(tabularReport.colGrouping.length===1){\n    tabularReport.colGrouping[0].uniqueSeries.forEach((series) => {\n      tabularReport.colData.set(series,tabularReport.integerArray.length);\n    });\n  let m=0;\n  tabularReport.cloneDataCount=[];\n  tabularReport.cloneIntegerArray=[];\n  while(m<(tabularReport.colGrouping[0].uniqueSeries.length)){\n    tabularReport.integerArray.forEach((element) => {\n      tabularReport.cloneIntegerArray.push(element);\n    });\n    tabularReport.cloneDataCount.push(m);\n\n    m++;\n  }\n}\nif(tabularReport.colGrouping.length>1 && count===1){\n  let _count=0;\n  tabularReport.colGrouping[1].uniqueSeries.forEach((series) => {\n      tabularReport.colData.set(series,tabularReport.integerArray.length);\n    });\n  tabularReport.colGrouping[0].uniqueSeries.forEach((series) => {\n    tabularReport.colData.set(series,tabularReport.integerArray.length*(tabularReport.secondColData.get(series).length));\n    _count+=(tabularReport.secondColData.get(series).length);\n  });\n  tabularReport.cloneDataCount=[];\n  let cloneDataIndex=0;const data123=[];\n  while(cloneDataIndex<_count){\n    tabularReport.cloneDataCount.push(cloneDataIndex);\n    tabularReport.integerIndex.forEach((element) => {\n      data123.push(element);\n\n    });\n    cloneDataIndex++;\n  }\n  }\n  return tabularReport;\n}\n  /**to get data render value when single column grouping is applied\n   *\n   * @param TabularReport\n   *\n   */\n  dataFactory(tabularReport: TabularReport): TabularReport{\n  const rCount=tabularReport.rowGrouping.length-1;\n  const cCount=tabularReport.colGrouping.length;\n  let count=0;\n  tabularReport.countsData=new Map<number,any>();\n\n  let i=0;\n  tabularReport.matrix.attributes[rCount+cCount].groupData=[];\n  const sideTotal1=Array(tabularReport.integerArray.length).fill(0);\n  if(tabularReport.colGrouping.length===1){\n  while(i<tabularReport.matrix.attributes[0].series.length){\n    const groupData=tabularReport.matrix.attributes[rCount].groupData[i];\n     const subSeries=tabularReport.matrix.attributes[rCount+cCount].series.slice(i,i+groupData);\n     const _df1CountMap = new Map<any, number>();\n     subSeries.forEach(d => _df1CountMap.set(d, (_df1CountMap.get(d) ?? 0) + 1));\n     subSeries.forEach((_data) => {\n      tabularReport.matrix.attributes[rCount+cCount].groupData.push(_df1CountMap.get(_data) ?? 0);\n    });\n    i=i+groupData;\n  }\n\n\n  i=0;\n  const __Data=new Map<number,any>();\n  const __Data1=new Map<number,any>();\n  let firstColumnIndex=0;\n  const grandTotal=Array(tabularReport.integerArray.length*tabularReport.colGrouping[0].uniqueSeries.length).fill(0);\n  const countsGrandTotal=Array(tabularReport.matrix.attributes[rCount+cCount].uniqueSeries.length).fill(0);\n  let countTotal=0;\n  while(i<tabularReport.matrix.attributes[0].series.length){\n    let dataSeries=[]; let countDataSeries=[];\n    const countArray=Array(tabularReport.matrix.attributes[rCount+cCount].uniqueSeries.length).fill(0);\n    const iarr=[];\n    const groupData=tabularReport.matrix.attributes[rCount].groupData[i];\n    const subSeries=tabularReport.matrix.attributes[rCount+cCount].groupData.slice(i,i+groupData);\n    const dataSubSeries=tabularReport.matrix.attributes[rCount+cCount].series.slice(i,i+groupData);\n    const uniqueSeries= [...new Set(tabularReport.matrix.attributes[rCount+cCount].series)];\n    const countGroupData=tabularReport.matrix.attributes[rCount].groupData[i];\n    let countDataIndex=i;\n    const end=i+countGroupData;\n    uniqueSeries.sort();\n    while(countDataIndex<end){\n      uniqueSeries.forEach((element,dIndex) => {\n        if(element===tabularReport.matrix.attributes[rCount+cCount].series[countDataIndex]){\n          countArray.splice(dIndex,1,tabularReport.matrix.attributes[rCount+cCount].groupData[countDataIndex]);\n        }\n      });\n      countDataIndex=countDataIndex+tabularReport.matrix.attributes[rCount+cCount].groupData[countDataIndex];\n    }\n           dataSeries=[];\n          const rowCount=[];\n          tabularReport.rowsData=[];\n          let subSeriesIndex=0;\n          if(tabularReport.colGrouping.length===1){\n          const dataSeriesValues=Array(tabularReport.integerArray.length*tabularReport.colGrouping[0].uniqueSeries.length).fill(0);\n          while(subSeriesIndex<subSeries.length) {\n            rowCount.push(subSeries[subSeriesIndex]);\n            tabularReport.rowsData.push(dataSubSeries[subSeriesIndex]);\n            iarr.push(firstColumnIndex);\n            tabularReport.integerIndex.forEach((int) => {\n              this.getfirstColIntegerData(tabularReport,int,firstColumnIndex,subSeriesIndex,subSeries,dataSeries);\n            });\n            firstColumnIndex=firstColumnIndex+subSeries[subSeriesIndex];\n            subSeriesIndex=subSeriesIndex+subSeries[subSeriesIndex];\n          }\n\n          let index=0;\n          iarr.forEach((int) => {\n            const data= tabularReport.matrix.attributes[rCount+cCount].series[int];\n              let dataIndex=tabularReport.colGrouping[0].uniqueSeries.indexOf(data);\n              dataIndex=dataIndex*tabularReport.integerArray.length;\n              const arr=dataSeries.slice(index,tabularReport.integerArray.length+index);\n              let  value=dataIndex;\n              arr.forEach((element) => {\n                dataSeriesValues.splice(value,1,element);\n                value ++;\n              });\n\n              index=index+tabularReport.integerArray.length;\n\n          });\n          const sideTotal=this.getSideTotal(dataSeries,tabularReport.integerArray);\n          dataSeries=dataSeriesValues;\n          countDataSeries=dataSeriesValues.slice(0);\n          const min=Array<number>();\n          const max=Array<number>();\n\n          dataSeriesValues.forEach((element,ind) => {\n            if(tabularReport.cloneIntegerArray[ind].includes('Min')){\n              min.push(element);\n              if(element<grandTotal[ind]){\n                grandTotal[ind]=element;\n              }\n            }\n            else if(tabularReport.cloneIntegerArray[ind].includes('Max')){\n              max.push(element);\n              if(element>grandTotal[ind]){\n                grandTotal[ind]=element;\n              }\n            }\n            else{\n            grandTotal[ind]=(grandTotal[ind]+element);\n            }\n          });\n          sideTotal.forEach((element,index1) => {\n            if(tabularReport.integerArray[index1].includes('Avg')){\n              sideTotal[index1]=this.countGrandTotalAvg(element,dataSeriesValues.length/tabularReport.integerArray.length);\n              sideTotal1[index1]=(sideTotal1[index1]+element);\n\n            }\n            else if(tabularReport.integerArray[index1].includes('Min')){\n              sideTotal[index1]=this.countMin(min);\n              if(sideTotal[index1]<sideTotal1[index1]){\n                sideTotal1[index1]=sideTotal[index1];\n              }\n            }\n            else if(tabularReport.integerArray[index1].includes('Max')){\n              sideTotal[index1]=this.countMax(max);\n              if(sideTotal[index1]>sideTotal1[index1]){\n                sideTotal1[index1]=sideTotal[index1];\n              }\n            }\n            else{\n            sideTotal1[index1]=(sideTotal1[index1]+element);\n            }\n          });\n          // countsGrandTotal\n          countArray.forEach((countData,countIndex) => {\n            countsGrandTotal[countIndex]=(countsGrandTotal[countIndex]+countData);\n          });\n\n          tabularReport.grandTotal=grandTotal;\n          countTotal=countTotal+rowCount.reduce((a2, b2) => a2 + b2, 0);\n          if(tabularReport.rowGrouping.length>1){\n            __Data.set(i,dataSeries);\n            tabularReport.totalRowCount.set(i,rowCount.reduce((a1, b1) => a1 + b1, 0));\n            tabularReport.sideTotal.set(i,sideTotal);\n            __Data1.set(i,countDataSeries);\n            tabularReport.rowCountIndex.set(i,rowCount);\n            tabularReport.countsData.set(i,countArray);\n            tabularReport.dataIndexSTotal.set(count,i);\n          }\n          else{\n            __Data.set(count,dataSeries);\n            __Data1.set(count,countDataSeries);\n            tabularReport.totalRowCount.set(count,rowCount.reduce((a2, b2) => a2 + b2, 0));\n            tabularReport.sideTotal.set(count,sideTotal);\n            tabularReport.rowCountIndex.set(count,rowCount);\n            tabularReport.countsData.set(count,countArray);\n\n          }\n\n        }\n\n      count++;\n    i=i+groupData;\n\n  }\n  if(tabularReport.matrix.attributes[0].series.length>0){\n  tabularReport.grandTotal.forEach((element,index) => {\n    if(tabularReport.cloneIntegerArray[index].includes('Avg')){\n      tabularReport.grandTotal[index]=this.countGrandTotalAvg(element,count);\n    }\n  });\n  }\n  sideTotal1.forEach((element,indexD) => {\n    if(tabularReport.integerArray[indexD].includes('Avg')){\n      sideTotal1[indexD]=this.countGrandTotalAvg(element,count);\n    }\n\n  });\n  tabularReport.seriesData=__Data;\n  this.dataRender.emit(__Data);\n  const integerArrayValues=Array(tabularReport.integerArray.length*tabularReport.colGrouping[0].uniqueSeries.length).fill(0);\n  tabularReport=this.getIntegerIndex(integerArrayValues,tabularReport);\n  tabularReport.dataRender=__Data1;\n  tabularReport.grandTotal=tabularReport.grandTotal.concat(sideTotal1);\n  tabularReport.sideGrandTotal=sideTotal1.concat(countTotal);\n  tabularReport.countsTotal=new Array<number>();\n  tabularReport.countsTotal=countsGrandTotal.concat(countTotal);\n}\n\n  if(tabularReport.colGrouping.length===2){\n    tabularReport=this.getSecondColumn(tabularReport);\n    }\n  if(tabularReport.subTotal){\n      tabularReport=tabularReport.subTotalToggle(tabularReport);\n  }\n\n\n  if(tabularReport.subTotal && !tabularReport.rowCount){\n      tabularReport=tabularReport.subTotalToggle(tabularReport);\n  }\n\n  return tabularReport;\n}\n\ncountGrandTotalAvg(data: number,count: number): number{\n  return (parseFloat((data/count).toFixed(2)));\n}\n\n// countGrandTotalMin(series:)\n\n/** returns sum of integer  columns subSeries for column grouping\n *\n * @param Array\n *\n//  */\n// countSum(series: Array<number>): number{\n//   let total = 0;\n//   for(const data of series){\n//     total += Number(data);\n//   }\n//   return total;\n// }\n\n/** returns Average of integer  columns subSeries for column grouping\n *\n * @param Array\n *\n */\n// countAvg(series: Array<number>): number{\n//   let total = 0;\n//   for(const data of series){\n//     total += Number(data);\n//   }\n//   return (parseFloat((total/series.length).toFixed(2)));\n// }\n\n// /** returns Max of integer columns subSeries for column grouping\n//  *\n//  * @param Array\n//  *\n//  */\n// countMax(series: Array<number>): number{\n//   return  Math.max(...series);\n// }\n\n// /** returns min of integer  columns subSeries for column grouping\n//  *\n//  * @param Array\n//  *\n//  */\n// countMin(series: Array<number>): number{\n//   return  Math.min(...series);\n// }\n\ncountSum(series: Array<number>): number {\n  let total = 0;\n  for (const data of series) {\n      total += parseFloat(data.toString()); // Ensure parsing to handle decimal values\n  }\n  return total;\n}\n\ncountAvg(series: Array<number>): number {\n  let total = this.countSum(series); // Reuse countSum for total\n  return (series.length > 0) ? parseFloat((total / series.length).toFixed(2)) : 0; // Handle division by zero\n}\n\ncountMax(series: Array<number>): number {\n  return Math.max(...series.map(num => parseFloat(num.toString()))); // Ensure parsing to handle decimal values\n}\n\ncountMin(series: Array<number>): number {\n  return Math.min(...series.map(num => parseFloat(num.toString()))); // Ensure parsing to handle decimal values\n}\n\n/** returns count of unique data for  integer columns subSeries in column grouping\n *\n * @param Array\n *\n */\ngetUnique(series: Array<any>): number{\n  return [...new Set(series)].length;\n\n}\n\n/** to add integer column in IntegerArray\n *\n * @param TabularReport\n *\n */\ngetIntegerArray(tabularReport: TabularReport): TabularReport{\n  const data=[];\n    tabularReport.matrix.attributes.forEach((attribute,index) => {\n      if( !attribute.rowSpan && !attribute.colSpan){\n        if(attribute.aggregate.showUniqueCount)\n        {\n            tabularReport.integerArray.push('unique '+attribute.label);\n            tabularReport.integerIndex.push(tabularReport.matrix.attributes.indexOf(attribute));\n            data.push(tabularReport.matrix.attributes.indexOf(attribute));\n        }\n      }\n      if(attribute.type==='int' && !attribute.rowSpan && !attribute.colSpan){\n        tabularReport.integerIndex.push(tabularReport.matrix.attributes.indexOf(attribute));\n        if(attribute.aggregate.showSum)\n        {\n          data.push(tabularReport.matrix.attributes.indexOf(attribute));\n            tabularReport.integerArray.push('Sum '+attribute.label);\n        }\n\n        if(attribute.aggregate.showAvg)\n        {\n          data.push(tabularReport.matrix.attributes.indexOf(attribute));\n            tabularReport.integerArray.push('Avg '+attribute.label);\n        }\n\n        if(attribute.aggregate.showMax)\n        {\n          data.push(tabularReport.matrix.attributes.indexOf(attribute));\n            tabularReport.integerArray.push('Max '+attribute.label);\n        }\n\n        if(attribute.aggregate.showMin)\n        {\n          data.push(tabularReport.matrix.attributes.indexOf(attribute));\n            tabularReport.integerArray.push('Min '+attribute.label);\n        }\n      }\n    });\n  tabularReport.integerData=data;\n\n  return tabularReport;\n}\n\n/** to count clone data for single column grouping\n *\n * @param tabularReport\n * @param number\n * @param attributeData\n *\n */\ngetCloneData(tabularReport: TabularReport, index: number,attribute: AttributeData): AttributeData{\n  let startIndex=0;\n  const cloneSeries=[];\n  let gdIndex=0;\n  while(startIndex<= (tabularReport.matrix.attributes[index - 1].groupData.length-1)){\n    const dataSeries=[];\n    const _seenClone = new Set<any>();\n    gdIndex=tabularReport.matrix.attributes[index - 1].groupData[startIndex];\n    const subSeries = attribute.series.slice(startIndex,startIndex+gdIndex);\n    const _cloneCountMap = new Map<any, number>();\n    subSeries.forEach(d => _cloneCountMap.set(d, (_cloneCountMap.get(d) ?? 0) + 1));\n    subSeries.forEach((subSeriesData) => {\n      attribute.groupData.push(_cloneCountMap.get(subSeriesData) ?? 0);\n      // to replace repeated subSeriesData\n      if(_seenClone.has(subSeriesData)){\n        dataSeries.push('repeated');\n        cloneSeries.push('repeated');\n      }\n      else{\n        _seenClone.add(subSeriesData);\n        dataSeries.push(subSeriesData);\n        cloneSeries.push(subSeriesData);\n      }\n    });\n    attribute.cloneGroupData=attribute.groupData.slice(0);\n    startIndex=startIndex+gdIndex;\n\n  }\n  attribute.cloneSeries=cloneSeries;\n\n  return attribute;\n}\n/** to count clone data for double column grouping\n *\n * @param tabularReport\n * @param number\n *\n */\ngetSecondColData(tabularReport: TabularReport, _index: number): TabularReport{\n  tabularReport.matrix.attributes[_index-1].uniqueSeries.forEach((unique) => {\n    const data=[];\n    tabularReport.matrix.attributes[_index-1].series.forEach((series,index) => {\n        if(unique===series){\n          if(!data.includes(tabularReport.matrix.attributes[_index].series[index])){\n            data.push(tabularReport.matrix.attributes[_index].series[index]);\n            tabularReport.secondColSeries.push(tabularReport.matrix.attributes[_index].series[index]);\n          }\n        }\n      });\n      // tabularReport.secondSeries=\n      tabularReport.secondColData.set(unique,data);\n      data.forEach(() => {\n        tabularReport.firstColSeries.push(unique);\n\n      });\n    });\n   tabularReport.colGrouping[0].uniqueSeries=[...new Set(tabularReport.firstColSeries)];\n   return tabularReport;\n}\n\n/** create series with row count\n *\n * @param tabularReport\n * @param Array\n * @param Array\n *\n */\ngetSeriesWithCount(swap1: Array<number>,integerArray: Array<any>,rowCount: Array<number>,tabularReport: TabularReport): Array<number>{\n  let integerArrayIndex=integerArray.length-1; let dataIndex=0;\n this.cloneIntegerCount=Array(swap1.length).fill(0);\n const countIndex=Array(swap1.length).fill(0);\n  while(integerArrayIndex<swap1.length){\n    if(swap1[integerArrayIndex]>0){\n      countIndex.splice(integerArrayIndex+1,0,null);\n    }\n    else{\n      countIndex.splice(integerArrayIndex+1,0,null);\n    }\n    swap1.splice(integerArrayIndex+1,0,rowCount[dataIndex]);\n    this.cloneIntegerCount.splice(integerArrayIndex+1,0,'count');\n    if(integerArrayIndex<tabularReport.cloneIntegerArray.length){\n      this.cloneIntegerCount.splice(integerArrayIndex+1,1,'count');}\n    integerArrayIndex=integerArrayIndex+integerArray.length+1;\n    dataIndex++;\n  }\n  return swap1;\n}\n\n/** count Integer columns subSeries Data for single column grouping\n *\n * @param tabularReport\n * @param number\n * @param number\n * @param number\n * @param Array\n * @param Array\n *\n */\ngetfirstColIntegerData(tabularReport: TabularReport,int: number,firstColumnIndex: number,j: number,subSeries: Array<any>,swap: Array<number>): Array<number>{\n  if(tabularReport.matrix.attributes[int].aggregate.showUniqueCount){\n    swap.push(this.getUnique(tabularReport.matrix.attributes[int].series.slice(firstColumnIndex,firstColumnIndex+subSeries[j])));\n  }\n  if(tabularReport.matrix.attributes[int].aggregate.showSum){\n    swap.push(this.countSum(tabularReport.matrix.attributes[int].series.slice(firstColumnIndex,firstColumnIndex+subSeries[j])));\n  }\n  if(tabularReport.matrix.attributes[int].aggregate.showAvg){\n    swap.push(this.countAvg(tabularReport.matrix.attributes[int].series.slice(firstColumnIndex,firstColumnIndex+subSeries[j])));\n  }\n  if(tabularReport.matrix.attributes[int].aggregate.showMax){\n    swap.push(this.countMax(tabularReport.matrix.attributes[int].series.slice(firstColumnIndex,firstColumnIndex+subSeries[j])));\n  }\n  if(tabularReport.matrix.attributes[int].aggregate.showMin){\n    swap.push(this.countMin(tabularReport.matrix.attributes[int].series.slice(firstColumnIndex,firstColumnIndex+subSeries[j])));\n  }\n\n  return swap;\n}\n\n/** count Integer columns subSeries Data for double column grouping\n *\n * @param tabularReport\n * @param number\n * @param number\n * @param number\n * @param Array\n * @param Array\n *\n */\ngetSecondColIntegerData(tabularReport: TabularReport,int: number,secondColumnIndex: number,n: number,swap: Array<number>,xyz: Array<any>): Array<number>{\n  if(tabularReport.matrix.attributes[int].aggregate.showUniqueCount){\n    swap.push(this.getUnique(tabularReport.matrix.attributes[int].series.slice(secondColumnIndex,secondColumnIndex+xyz[n])));\n  }\n  if(tabularReport.matrix.attributes[int].aggregate.showSum){\n    swap.push(this.countSum(tabularReport.matrix.attributes[int].series.slice(secondColumnIndex,secondColumnIndex+xyz[n])));\n  }\n  if(tabularReport.matrix.attributes[int].aggregate.showAvg){\n    swap.push(this.countAvg(tabularReport.matrix.attributes[int].series.slice(secondColumnIndex,secondColumnIndex+xyz[n])));\n  }\n  if(tabularReport.matrix.attributes[int].aggregate.showMax){\n    swap.push(this.countMax(tabularReport.matrix.attributes[int].series.slice(secondColumnIndex,secondColumnIndex+xyz[n])));\n  }\n  if(tabularReport.matrix.attributes[int].aggregate.showMin){\n    swap.push(this.countMin(tabularReport.matrix.attributes[int].series.slice(secondColumnIndex,secondColumnIndex+xyz[n])));\n  }\n\n  return swap;\n}\n\n\n/** count horizontal grand Total\n *\n * @param Array\n * @param Array\n *\n */\ngetSideTotal(swap: Array<number>,integerArray: Array<any>): Array<number>{\n  let totalIndex=0; let integerArrayIndex=0;\n  const sideTotal=Array(integerArray.length).fill(0);\n  while(totalIndex<integerArray.length){\n    integerArrayIndex=totalIndex;\n    sideTotal[totalIndex]=swap[integerArrayIndex];\n    while(integerArrayIndex+integerArray.length<swap.length){\n      sideTotal[totalIndex]=sideTotal[totalIndex]+swap[integerArrayIndex+integerArray.length];\n      integerArrayIndex=integerArrayIndex+integerArray.length;\n    }\n    totalIndex++;\n\n  }\n  return sideTotal;\n}\n\n/** get Second column series grouping data\n *\n * @param Array\n * @param TabularReport\n * @param number\n * @param Array\n * @param Array\n *\n */\ngetSeriesData(iarr: Array<number>,tabularReport: TabularReport,rCount: number,cCount: number,swap: Array<number>,a: Array<number>): Array<number>{\n  let index=0;\n  iarr.forEach((element) => {\n    let iArrayIndex=tabularReport.firstColSeries.indexOf(tabularReport.matrix.attributes[rCount+1].series[element]);\n      const max=iArrayIndex+tabularReport.secondColData.get(tabularReport.matrix.attributes[rCount+1].series[element]).length;\n      while(iArrayIndex<max){\n          if(tabularReport.secondColSeries[iArrayIndex]===tabularReport.matrix.attributes[rCount+cCount].series[element]){\n            const arr=swap.slice(index,tabularReport.integerArray.length+index);\n            let  value=iArrayIndex*tabularReport.integerArray.length;\n              a.splice(value,1,swap[index]);\n              arr.forEach((data) => {\n                a.splice(value,1,data);\n                value ++;\n              });\n              index=index+tabularReport.integerArray.length;\n          }\n\n          iArrayIndex++;\n        }\n  });\n  return a;\n}\n\n\n/** get Second column data\n *\n * @param TabularReport\n *\n */\ngetSecondColumn(tabularReport: TabularReport): TabularReport{\nconst rCount=tabularReport.rowGrouping.length-1;\nconst cCount=tabularReport.colGrouping.length;\nlet count=0;\n\nlet i=0;\ntabularReport.matrix.attributes[rCount+cCount].groupData=[];\nconst sideTotal1=Array(tabularReport.integerArray.length).fill(0);\nwhile(i<tabularReport.matrix.attributes[0].series.length){\n  const groupData=tabularReport.matrix.attributes[rCount].groupData[i];\n   const subSeries=tabularReport.matrix.attributes[rCount+cCount].series.slice(i,i+groupData);\n   const _sc1CountMap = new Map<any, number>();\n   subSeries.forEach(d => _sc1CountMap.set(d, (_sc1CountMap.get(d) ?? 0) + 1));\n   subSeries.forEach((_data) => {\n    tabularReport.matrix.attributes[rCount+cCount].groupData.push(_sc1CountMap.get(_data) ?? 0);\n  });\n  i=i+groupData;\n}\ni=0;\nconst __Data=new Map<number,any>();\nconst __Data1=new Map<number,any>();\nlet subSeriesIndex=0;\nlet secondColumnIndex=0;\nconst grandTotal=Array(tabularReport.cloneDataCount.length*tabularReport.integerArray.length).fill(0);\nconst countGrandTotal=Array(tabularReport.cloneDataCount.length*tabularReport.integerArray.length+tabularReport.cloneDataCount.length).fill(0);\nlet countTotal=0;\nconst countsGrandTotal=Array(tabularReport.secondColSeries.length).fill(0);\nwhile(i<tabularReport.matrix.attributes[0].series.length){\n  const subSeriesDataCount=[];\n  let seriesData=[]; let countSeriesData=[];\n  const iarr=[];\n   const groupData=tabularReport.matrix.attributes[rCount].groupData[i];\n        seriesData=[];\n        const rowCount=[];\n        const dataSeriesValues=Array(tabularReport.cloneDataCount.length*tabularReport.integerArray.length).fill(0);\n        const groupDataSeries=tabularReport.matrix.attributes[rCount].groupData[i];\n        const countArray=Array(tabularReport.secondColSeries.length).fill(0);\n        const subSeries=tabularReport.matrix.attributes[rCount+1].series.slice(i,i+groupDataSeries);\n        const subSeriesGroupData=[];\n        const _sc2CountMap = new Map<any, number>();\n        subSeries.forEach(d => _sc2CountMap.set(d, (_sc2CountMap.get(d) ?? 0) + 1));\n         subSeries.forEach((data) => {\n           subSeriesGroupData.push(_sc2CountMap.get(data) ?? 0);\n         });\n         let sSeriesGDIndex=0;\n\n\n         while(sSeriesGDIndex<subSeriesGroupData.length){\n          const sSeries =(tabularReport.matrix.attributes[rCount+cCount].series.slice(subSeriesIndex,subSeriesIndex+subSeriesGroupData[sSeriesGDIndex]));\n          const _sSeriesCountMap = new Map<any, number>();\n          sSeries.forEach(d => _sSeriesCountMap.set(d, (_sSeriesCountMap.get(d) ?? 0) + 1));\n          sSeries.forEach((data1) => {\n            subSeriesDataCount.push(_sSeriesCountMap.get(data1) ?? 0);\n          });\n          subSeriesIndex=subSeriesIndex+subSeriesGroupData[sSeriesGDIndex];\n          sSeriesGDIndex=sSeriesGDIndex+subSeriesGroupData[sSeriesGDIndex];\n         }\n         let sSeriesGDCIndex=0;\n        while(sSeriesGDCIndex<subSeriesDataCount.length){\n          const data= tabularReport.matrix.attributes[rCount+cCount].series[i+sSeriesGDCIndex];\n          let series=[];\n          series=tabularReport.secondColData.get(subSeries[sSeriesGDCIndex]);\n          const x=tabularReport.firstColSeries.indexOf(tabularReport.matrix.attributes[rCount+1].series[i+sSeriesGDCIndex]);\n          const m=(series.indexOf(data));\n          countArray.splice(m+x,1,subSeriesDataCount[sSeriesGDCIndex]);\n          rowCount.push(subSeriesDataCount[sSeriesGDCIndex]);\n          iarr.push(secondColumnIndex);\n          tabularReport.integerIndex.forEach((int) => {\n            this.getSecondColIntegerData(tabularReport,int,secondColumnIndex,sSeriesGDCIndex,seriesData,subSeriesDataCount);\n          });\n          secondColumnIndex=secondColumnIndex+subSeriesDataCount[sSeriesGDCIndex];\n          sSeriesGDCIndex=sSeriesGDCIndex+subSeriesDataCount[sSeriesGDCIndex];\n        }\n\n        const sideTotal=this.getSideTotal(seriesData,tabularReport.integerArray);\n        if(tabularReport.integerArray.length!==0){\n        seriesData=this.getSeriesData(iarr,tabularReport,rCount,cCount,seriesData,dataSeriesValues);\n       }\n        countSeriesData=dataSeriesValues.slice(0);\n        countArray.forEach((countData,countIndex) => {\n          countsGrandTotal[countIndex]=(countsGrandTotal[countIndex]+countData);\n        });\n        tabularReport.cloneIntegerArray=[];\n        tabularReport.secondColSeries.forEach((element) => {\n          tabularReport.integerArray.forEach((element1) => {\n            tabularReport.cloneIntegerArray.push(element1);\n          });\n        });\n        const min=Array<number>();\n          const max=Array<number>();\n\n\n        dataSeriesValues.forEach((element,index) => {\n          if(tabularReport.cloneIntegerArray[index].includes('Min')){\n            min.push(element);\n            if(element<grandTotal[index]){\n              grandTotal[index]=element;\n            }\n          }\n          else if(tabularReport.cloneIntegerArray[index].includes('Max')){\n            max.push(element);\n            if(element>grandTotal[index]){\n              grandTotal[index]=element;\n            }\n          }\n          else{\n          grandTotal[index]=(grandTotal[index]+element);\n          }\n        });\n\n\n        tabularReport.grandTotal=grandTotal;\n        sideTotal.forEach((element,index1) => {\n          if(tabularReport.integerArray[index1].includes('Avg')){\n            sideTotal[index1]=this.countGrandTotalAvg(element,dataSeriesValues.length/tabularReport.integerArray.length);\n            sideTotal1[index1]=(sideTotal1[index1]+element);\n          }\n          else if(tabularReport.integerArray[index1].includes('Min')){\n            sideTotal[index1]=this.countMin(min);\n            if(sideTotal[index1]<sideTotal1[index1]){\n              sideTotal1[index1]=sideTotal[index1];\n            }\n          }\n          else if(tabularReport.integerArray[index1].includes('Max')){\n            sideTotal[index1]=this.countMax(max);\n            if(sideTotal[index1]>sideTotal1[index1]){\n              sideTotal1[index1]=sideTotal[index1];\n            }\n          }\n          else{\n          sideTotal1[index1]=(sideTotal1[index1]+element);\n          }\n        });\n        countTotal=countTotal+rowCount.reduce((a2, b2) => a2 + b2, 0);\n        if(tabularReport.rowGrouping.length>1){\n          __Data.set(i,seriesData);\n          __Data1.set(i,countSeriesData);\n          tabularReport.totalRowCount.set(i,rowCount.reduce((a1, b1) => a1 + b1, 0));\n          tabularReport.sideTotal.set(i,sideTotal);\n          tabularReport.rowCountIndex.set(i,rowCount);\n          tabularReport.countsData.set(i,countArray);\n          tabularReport.dataIndexSTotal.set(count,i);\n        }\n        else{\n          __Data.set(count,seriesData);\n          __Data1.set(count,countSeriesData);\n          tabularReport.totalRowCount.set(count,rowCount.reduce((a1, b1) => a1 + b1, 0));\n          tabularReport.sideTotal.set(count,sideTotal);\n          tabularReport.rowCountIndex.set(count,rowCount);\n          tabularReport.countsData.set(count,countArray);\n\n        }\n\n    count++;\n  i=i+groupData;\n}\n\n  tabularReport.grandTotal.forEach((element,indexData) => {\n    if(tabularReport.cloneIntegerArray[indexData].includes('Avg')){\n      tabularReport.grandTotal[indexData]=this.countGrandTotalAvg(element,count);\n    }\n  });\n  sideTotal1.forEach((_elementData,indexD) => {\n    if(tabularReport.integerArray[indexD].includes('Avg')){\n      sideTotal1[indexD]=this.countGrandTotalAvg(_elementData,count);\n    }\n\n  });\nthis.dataRender.emit(__Data);\ntabularReport.seriesData=__Data;\ntabularReport.dataRender=__Data1;\nconst integerArrayValues=Array(tabularReport.cloneDataCount.length*tabularReport.integerArray.length).fill(0);\nthis.getIntegerIndex(integerArrayValues,tabularReport);\ntabularReport.grandTotal=grandTotal;\ntabularReport.grandTotal=tabularReport.grandTotal.concat(sideTotal1);\ntabularReport.sideGrandTotal=sideTotal1.concat(countTotal);\ntabularReport.countsTotal=new Array<number>();\ntabularReport.countsTotal=countsGrandTotal.concat(countTotal);\nreturn tabularReport;\n}\n\n/** to get series data with row count\n *\n * @param TabularReport\n *\n */\nrowCountData(tabularReport: TabularReport): TabularReport{\n  const countGrandTotal=Array(tabularReport.cloneDataCount.length*tabularReport.integerArray.length+tabularReport.cloneDataCount.length).fill(0);\n  const total=tabularReport.colGrouping.length>1? Array(tabularReport.secondColSeries.length).fill(0) :Array(tabularReport.colGrouping[0].uniqueSeries.length).fill(0);\n  tabularReport.matrix.attributes[0].series.forEach((element,index) =>{\n    let countDataSeries=[];\n\n        if(tabularReport.dataRender.get(index) && tabularReport.integerArray.length!==0){\n          let data=[];\n          countDataSeries=tabularReport.seriesData.get(index).slice(0);\n            data=(this.getSeriesWithCount(countDataSeries,\n            tabularReport.integerArray,tabularReport.countsData.get(index),tabularReport));\n            tabularReport.dataRender.set(index,data);\n        }\n        let x=0;\n        countDataSeries.forEach((element1,index1) => {\n          if(this.cloneIntegerCount[index1]==='count' || index1===countDataSeries.length){\n            total[x]=(total[x]+element1);\n          x++;\n          }\n          countGrandTotal[index1]=(countGrandTotal[index1]+element1);\n        });\n\n  });\n  tabularReport.grandTotal2=tabularReport.grandTotal.slice(0);\n  let integerArrayIndex=tabularReport.integerArray.length-1;\n  let index=0;\n  while(integerArrayIndex<countGrandTotal.length){\n    tabularReport.grandTotal2.splice(integerArrayIndex+1,0,total[index]);\n    integerArrayIndex=integerArrayIndex+tabularReport.integerArray.length+1;\n    index ++;\n  }\n  tabularReport.grandTotal2.splice((tabularReport.grandTotal2.length-tabularReport.integerArray.length),tabularReport.integerArray.length);\n  tabularReport.grandTotal2=tabularReport.grandTotal2.concat(tabularReport.sideGrandTotal);\n  let x=0;\n  tabularReport.countIntegerIndexing=tabularReport.integerIndexing.slice(0);\n  while(x<countGrandTotal.length){\n    tabularReport.countIntegerIndexing.splice(x+tabularReport.integerArray.length,0,null);\n    x=x+tabularReport.integerArray.length+1;\n  }\n  tabularReport.countTotalIntegerIndexing=[];\n  tabularReport.countTotalIntegerIndexing=tabularReport.gTotalIntegerIndexing.slice(0);\n\n  let m=0;\n  while(m<tabularReport.gTotalIntegerIndexing.length){\n    tabularReport.countTotalIntegerIndexing.splice(m+tabularReport.integerArray.length,0,null);\n    m=m+tabularReport.integerArray.length+1;\n  }\n  if(tabularReport.subTotal){\n    tabularReport=tabularReport.subTotalToggle(tabularReport);\n  }\n\nreturn tabularReport;\n}\n\n\ngetIntegerIndex(integerArrayValues: Array<number>,tabularReport: TabularReport): TabularReport{\n  if(tabularReport.matrix.attributes[0].series.length>0){\n  let arrayIndex=0;\n  while(arrayIndex<tabularReport.seriesData.get(0).length){\n    let index1=arrayIndex;\n    tabularReport.integerData.forEach((element,index) => {\n      integerArrayValues.splice(index1,1,element);\n      index1++;\n    });\n    arrayIndex=arrayIndex+tabularReport.integerData.length;\n  }\n  tabularReport.integerIndexing=integerArrayValues;\n  tabularReport.gTotalIntegerIndexing=integerArrayValues.concat(tabularReport.integerData);\n  }\n  return tabularReport;\n}\ntableClickEvent(tabularReport: any): void{\n  const tabularProperty= new ElementProperty();\n  if(tabularReport instanceof TabularReport){\n  tabularProperty.page=null;\n  tabularProperty.element=tabularReport;\n  }\n  else{\n    tabularProperty.page=tabularReport;\n  }\n  this._tableClickEvent.emit(tabularProperty);\n}\n}\n","<div (contextmenu)=\"onContextMenu($event);\" class=\"h-full min-h-full max-h-full\">\n  <!--Title of the table-->\n  <div class=\"row\" style=\"display: flex; justify-content: space-between; align-items: center; flex-wrap: nowrap; padding-right: .75rem; padding-left: 0.30rem\">\n    <div class=\"col-10\">\n      <div *ngIf=\"tabularReport.matrix.attributes.length != 0\" \n           [style.color]=\"tabularReport.tableStyle.title.textColor\"\n           [style.font-size.px]=\"tabularReport.tableStyle.title.textSize\"\n           [style.font-family]=\"tabularReport.tableStyle.title.textStyle\"\n           [style.font-weight]=\"tabularReport.tableStyle.title.fontStyle?.fontWeight || 'normal'\"\n           [style.font-style]=\"tabularReport.tableStyle.title.fontStyle?.isItalicFont ? 'italic' : 'normal'\"\n           [style.text-decoration]=\"tabularReport.tableStyle.title.fontStyle?.textDecoration || 'none'\"\n           [style.text-align]=\"tabularReport.tableStyle.title.position || 'left'\"\n           [style.padding]=\"'0.75rem 0.75rem'\">\n        {{tabularReport.tableStyle.title.text}}\n      </div>\n    </div>\n    <div class=\"col-2\" style=\"text-align: right;\">\n      <ng-container>\n        <button *ngIf=\"tabularReport.matrix.attributes.length > 0\" \n                class=\"export-btn icon-btn\" \n                mat-button \n                (click)=\"displayNotification = false\" \n                [matMenuTriggerFor]=\"beforeMenu\">\n          <mat-icon matTooltip=\"Export Data\" svgIcon=\"axo_export\"></mat-icon>\n        </button>\n        <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n          <div (click)=\"$event.stopPropagation();\" class=\"send-excel-report-form\">\n            <form [formGroup]=\"exportFormBuilder\">\n              <div>XLSX</div>\n              <input mat-menu-item type=\"text\" \n                     class=\"report-xslx-email\" \n                     formControlName=\"email\"\n                     (ngModelChange)=\"emailValidate()\">\n              <p *ngIf=\"displayEmailValidationError\" class=\"email-send-email-error\">\n                Please provide a valid email ID\n              </p>\n              <p *ngIf=\"displayNotification\" class=\"email-send-notification\">\n                Export is in progress. You will receive the report on your email once completed.\n              </p>\n              <div class=\"send-excel-report-form-btn\">\n                <button mat-menu-item class=\"cancel-btn btn text-white\" \n                        (click)=\"closeExportMenu()\">Cancel</button>\n                <button mat-menu-item class=\"send-btn btn\" \n                        (click)=\"sendEmail()\" \n                        [disabled]=\"displayEmailValidationError\">\n                  Export <mat-icon>send</mat-icon>\n                </button>\n              </div>\n            </form>\n          </div>\n        </mat-menu>\n      </ng-container>\n    </div>\n  </div>\n  \n\n\n  <!-- Filter Container -->\n  <div *ngIf=\"isEditable || tabularReport.filters.length>0\" [ngClass]=\"{'justify-end' : tabularReport.filters.length<1}\"\n    class=\"filter-div px-3 h-11\">\n    <div class=\"tabular-chart-filter\" [ngClass]=\"{'dashboard-tabular-filter' : !isEditable}\"\n      *ngIf=\"isEditable || tabularReport.filters.length>0 || tabularReport.categories.length>0\">\n      <!-- <chart-filter\n        class=\"flex\"\n        [filters]=\"tabularReport.filters\"\n        [categories]=\"tabularReport.categories\"\n        [isEditable] = \"isEditable\"\n        [filterSourceElementType]=  \"filterSourceElementTypes.tabular\"\n        [chartRef]=\"componentRef\">\n      </chart-filter> -->\n      <lib-report-filter [filters]=\"tabularReport.filters\" [categories]=\"tabularReport.categories\" [reportId]=\"reportId\"\n        [screenType]=\"screenType\" [dataModel]=\"dataModel\" [isEditable]=\"isEditable\" [appVersion]=\"appVersionId\"\n        [filterSourceElementType]=\"filterSourceElementTypes.tabular\" (applyFilterEvent)=\"applyLocalFilter()\">\n      </lib-report-filter>\n    </div>\n  </div>\n\n  <div class=\"no-column-drop-here\" *ngIf='tabularReport.matrix.attributes.length===0'>\n    <div class=\"text-center\">\n      <mat-icon class=\"table-view-icon\">table_view</mat-icon>\n      <p class=\"font-size m-0 no-column-text\">No columns have been dropped yet !</p>\n    </div>\n  </div>\n  <div #removeFromDashboardMenu [style.left]=\"contextMenuPosition.x\" [style.top]=\"contextMenuPosition.y\"\n    [matMenuTriggerFor]=\"contextMenu\" *ngIf=\"screenTypes.dashboardBuilder === screenType\"\n    class=\"drillthrough-menu-trigger\">\n  </div>\n  <!-- Mat Menu trigger for table columns-->\n  <mat-menu #contextMenu=\"matMenu\">\n    <div id=\"table-menu\">\n      <ng-template matMenuContent>\n        <button mat-menu-item (click)=\"removeFromDashboard()\">Remove From Dashboard</button>\n      </ng-template>\n    </div>\n  </mat-menu>\n  \n\n  <lib-detail-view\n  *ngIf='tabularReport.colGrouping.length===0 && tabularReport.rowGrouping.length===0 '\n  [x1ImageMediaUrl]=\"x1ImageMediaUrl\"\n  [tabularReport]=\"tabularReport\"\n  [isEditable]=\"isEditable\"\n  [elementGuid]=\"elementGuid\"\n  [screenType]=\"screenType\"\n  [drillThroughFilterInput]=\"drillThroughFilterInput\"\n  [drillThroughParentType]=\"drillThroughParentType\"\n  [parentRef]=\"componentRef\"\n  [reportId]=\"reportId\"\n  [appVersionId]=\"appVersionId\"\n  [x1MediaUrl]=\"x1MediaUrl\"\n  >\n  </lib-detail-view>\n  <lib-row-group-view *ngIf='tabularReport.rowGrouping.length>0 && tabularReport.colGrouping.length===0 '\n    [x1ImageMediaUrl]=\"x1ImageMediaUrl\"\n    [tabularReport]=\"tabularReport\"\n    [isEditable]=\"isEditable\"\n    [elementGuid]=\"elementGuid\"\n    [screenType]=\"screenType\"\n    [drillThroughFilterInput]=\"drillThroughFilterInput\"\n    [drillThroughParentType]=\"drillThroughParentType\"\n    [reportId]=\"reportId\"\n    [parentRef]=\"componentRef\">\n  </lib-row-group-view>\n\n  <lib-column-group-view *ngIf='tabularReport.colGrouping.length>0 '\n    [x1ImageMediaUrl]=\"x1ImageMediaUrl\"\n    [tabularReport]=\"tabularReport\"\n    [isEditable]=\"isEditable\"\n    [elementGuid]=\"elementGuid\"\n    [screenType]=\"screenType\"\n    [drillThroughFilterInput]=\"drillThroughFilterInput\"\n    [drillThroughParentType]=\"drillThroughParentType\"\n    [reportId]=\"reportId\"\n    [parentRef]=\"componentRef\">\n  </lib-column-group-view>\n\n</div>\n<ng-container *ngIf=\"tabularReport.isDataLoaded \">\n<div class=\"flex align-items deatil-group-table-paginator\" *ngIf='tabularReport.colGrouping.length===0'>\n  <mat-paginator [disabled]=\"isDataLoading\" (page)=\"handlePageEvent($event)\" [length]=\"tabularReport.pageLength\" [pageSize]=\"tabularReport.pageSize\"\n  [pageIndex]=\"tabularReport.pageIndex\" [pageSizeOptions]=\"[10, 25, 50, 100]\" aria-label=\"Select page\" class=\"mat-paginator flex justify-end w-full\">\n  </mat-paginator>\n</div>\n</ng-container>\n<ng-container *ngIf=\"!tabularReport.isDataLoaded && tabularReport.matrix.attributes.length!==0\">\n  <app-ghost-loader [elementType]=\"GhostLoaderType.PaginationViewLoader\" class=\"tabular-pagination-ghost-loader\"></app-ghost-loader>\n</ng-container>\n<div #drillThorughMenuTrigger [style.left]=\"contextMenuPosition.x\"\n    [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"drillThroughMenu\" class=\"drillthrough-menu-trigger\"></div>\n<!-- Mat Menu trigger for table cells-->\n<mat-menu #drillThroughMenu=\"matMenu\">\n  <div id=\"table-menu\">\n    <ng-template matMenuContent let-item=\"reportData\">\n      <button mat-menu-item [matMenuTriggerFor]=\"drillThroughPages\">Drill Through</button>\n      <button mat-menu-item *ngIf=\"screenTypes.dashboardBuilder === screenType\" (click)=\"removeFromDashboard()\">Remove From Dashboard</button>\n    </ng-template>\n  </div>\n</mat-menu>\n<mat-menu #drillThroughPages=\"matMenu\">\n  <div id=\"table-menu\">\n    <ng-template matMenuContent let-item=\"reportData\">\n      <ng-container *ngFor=\" let page of pages\">\n        <button mat-menu-item (click)='pageClick(page)'> {{page.name}}</button>\n      </ng-container>\n    </ng-template>\n  </div>\n</mat-menu>\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Report } from '../../../../common-utils/report';\nimport { CrossFilterDto, ElementFilters, ElementsDto } from '../../../../common-dto/elements-dto';\nimport { FieldsListService } from '../../../../field-list-lib/fields-list.service';\nimport { AttributeData } from '../../../fields/attribute-data';\nimport { Page } from '../../graphical-report/page/page';\nimport { ReportBuilderMasterService } from '../../report-builder-master.service';\nimport { ITabularReportComponent } from '../itabular-report.component';\nimport { TabularReport } from '../tabular-report';\nimport { ElementService } from '../../element.service';\nimport { CommonService } from '../../../../common.service';\nimport { FilterSourceElementType } from '../../../filters/chart-filter-type';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { TabularReportService } from '../tabular-report.service';\nimport { Validators, FormGroup, FormBuilder } from '@angular/forms';\nimport { UserService } from '../../../../core/user/user.service';\nimport { ScopeType, ScreenType } from '../../../filters/condition-type';\nimport { AxExpression } from '../../../ax-expression/ax-expression';\nimport { Attribute } from '../../../data-model/attribute';\nimport { AxExpTextList } from '../../../ax-expression/ax-exp-text-list';\nimport { SearchNode } from '../../../filters/search-node';\nimport { AxFilter } from '../../../filters/ax-filter';\nimport { DashboardBuilderService } from '../../../../dashboard-lib/dashboard-builder.service';\nimport { DrillThroughService } from '../../../../drill-through/drill-through.service';\nimport { User } from '../../../../core/user/user.types';\nimport { UserDataService } from '../../../../core/user/user-data.service';\nimport { PageEvent } from '@angular/material/paginator';\nimport { GhostLoaderType } from '../../../../ghost-loader/ghost-loader.component';\nconst COL_GROUPING_MAX_PAGE_SIZE = 2000;\n\n@Component({\n  // eslint-disable-next-line @angular-eslint/component-selector\n  selector: 'tabular',\n  templateUrl: './tabular.component.html',\n  styleUrls: ['./tabular.component.scss']\n})\nexport class TabularComponent implements OnInit, ITabularReportComponent, OnChanges, OnDestroy {\n  @Input() page: Page;\n  @Input() tabularReport: TabularReport;\n  @Input() isEditable: boolean;\n  @Input() userEmail: string;\n  @Output() sendExcelReportEvent = new EventEmitter<any>();\n  @Input() x1ImageMediaUrl: string;\n  @Input() screenType: ScreenType;\n  @Input() drillThroughParentType: ScreenType;\n  @Input() drillThroughFilterInput: AxFilter;\n  @ViewChild(MatMenuTrigger) contextMenu: MatMenuTrigger;\n  @ViewChild('removeFromDashboardMenu', { read: MatMenuTrigger, static: false }) removeFromDashboardMenu: MatMenuTrigger;\n  @ViewChild('drillThorughMenuTrigger', { read: MatMenuTrigger, static: false }) drillThroughTrigger: MatMenuTrigger;\n  @Input() x1MediaUrl: string;\n  @Input() appVersionId: number;\n  GhostLoaderType = GhostLoaderType;\n  showGhostLoader: boolean = true;\n\n  columnData: any;\n  reportId: number;\n  contextMenuPosition = { x: '0px', y: '0px' };\n  currentIndex: number;\n  isDirty: boolean;\n  reportDirty: any;\n  report: Report;\n  _isColumnExist: boolean = false;\n  componentRef: any;\n  exportFormBuilder: FormGroup;\n  displayNotification: boolean = false;\n  emailPattern: string = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$';\n  displayEmailValidationError: boolean = false;\n  selectedDataPoints: Array<number> = [];// Holds the all selected points.\n  elementGuid: string;\n  drillThroughFilter: AxFilter;\n  pages: Array<Page> = [];\n  currentAttribute: AttributeData;\n  user: User;\n  isDataLoading: boolean;\n  /*\n   * Subject object which helps unsubscribe all the subscribed objects in the component\n   */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  constructor(\n    private _fieldsListService: FieldsListService,\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _elementService: ElementService,\n    private _commonService: CommonService,\n    private _tabularReportService: TabularReportService,\n    private _formBuilder: FormBuilder,\n    private _userDataService: UserDataService,\n    private _changeDetectorRef: ChangeDetectorRef,\n    private _dashboardBuilderService: DashboardBuilderService,\n    private _drillThroughService: DrillThroughService,\n    private _router: Router\n\n  ) { }\n\n  public get filterSourceElementTypes(): typeof FilterSourceElementType {\n    return FilterSourceElementType;\n  }\n\n  public get screenTypes(): typeof ScreenType {\n    return ScreenType;\n  }\n  ngOnChanges(changes: SimpleChanges): void {\n    // this.tabularReport = this.page.elements[0] as TabularReport;\n  }\n  ngOnInit(): void {\n    this.subscribers();\n    this.isEditable = (this.screenType !== ScreenType.drillThrough) && (this.screenType !== ScreenType.dashboardBuilder) && (this.screenType !== ScreenType.containerDashboard);\n    this.componentRef = this;\n    this.report = this._reportBuilderMasterService.report;\n    this.reportId = this.report?.id;\n  }\n\n  /**\n   * On destroy\n   */\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n  /**\n   * Subscribers for the component\n   */\n  subscribers(): void {\n    // Subscribe to user changes\n    this._userDataService.userDetails$\n      .pipe(takeUntil(this._unsubscribeAll))\n      .subscribe((user: User) => {\n        this.user = user;\n        // Mark for check\n        this._changeDetectorRef.markForCheck();\n      });\n    this.exportFormBuilder = this._formBuilder.group({\n      email: [this.userEmail, [Validators.required, Validators.email]]\n    });\n\n\n    this.componentRef = this;\n    this.report = this._reportBuilderMasterService.report;\n    /*whenever we change the filters we got call back from this subscribe */\n    this._elementService.refreshDataEvent$\n      .pipe(takeUntil(this._unsubscribeAll))\n      .subscribe((val: boolean) => {\n        if (val && this.tabularReport.colGrouping.length === 0) {\n          if (this.tabularReport.colGrouping.length > 0) {\n            this.tabularReport = this._tabularReportService.columnData(this.tabularReport);\n          }\n          this.tabularReport.isDataLoaded = false;\n          this.tabularReport.pageIndex=0;\n          this.tabularReport.pageLength=0;\n          this.tabularReport.isDataLoaded=false;\n          this.getMatrixDimension();\n        }\n\n      });\n\n    /*when we click on bar chart event will be emitted from this subscriber*/\n    this._elementService.crossFilterEvent.subscribe((crossFilter: CrossFilterDto) => {\n      if (this.tabularReport.guid !== crossFilter.elementGuid) {\n        if (crossFilter.resetFilter) {\n          this.getMatrixDimension();\n        } else if (crossFilter.values && crossFilter.selectedIndexLength > 0) {\n          // Only apply cross-filter when there are actual selected values from user interaction.\n          // Skip init-time reset events (values=null, selectedIndexLength=0) which would\n          // create malformed filter objects and cause 400 errors.\n          this.createCrossFilter(crossFilter);\n        }\n      }\n    });\n\n    // Load initial data on init without depending on crossFilterEvent from other charts.\n    this.getMatrixDimension();\n\n  }\n\n  getPageList(): void {\n    // Get pageslist\n    this._commonService.getPageList(this.appVersionId);\n  }\n\n  filterDrillThroughPages(attribute: AttributeData): void {\n    this._commonService.pageList$.subscribe((pages: Page[]) => {\n      this.pages = [];\n      pages?.forEach((_page) => {\n        _page?.drillData?.forEach((drillData) => {\n          if (drillData.columnName === attribute.columnName && drillData.tableName === attribute.tableName) {\n            this.pages.push(_page);\n          }\n        });\n      });\n      if ((this.screenType === ScreenType.reportBuilder) || (this.screenType === ScreenType.drillThrough)) {\n        this.pages = this.pages.filter(p => p.id !== this.page.id);\n      }\n    });\n  }\n\n  getMatrixDimension(): void {\n    if (this.tabularReport.matrix.attributes.length > 0) {\n      const data = new ElementsDto(this.tabularReport);\n      data.filters.localFilters.basic = this._elementService.getValidFilter(this.tabularReport.filters);\n      data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.tabularReport.categories);\n      data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);\n      data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);\n      data.reportId = this.reportId;\n      data.type = 'tabular-report'; // use enum\n      data.pageIndex = this.tabularReport.colGrouping.length>0?0:this.tabularReport.pageIndex;\n      data.pageSize = this.tabularReport.colGrouping.length>0?COL_GROUPING_MAX_PAGE_SIZE:this.tabularReport.pageSize;\n      data.pageLength=this.tabularReport.colGrouping.length>0?COL_GROUPING_MAX_PAGE_SIZE:this.tabularReport.pageLength;\n      data.orderBy = this.tabularReport.matrix.attributes;\n      this.isDataLoading = true;\n      data.sqlQuery=this.tabularReport.sqlQuery;\n      data.isCustomElement=this.tabularReport.isCustomElement;\n      this._fieldsListService.getMatrixData(data).then((entitiesAttribute) => {\n        this.isDataLoading = false;\n        if (entitiesAttribute != null) {\n          entitiesAttribute.matrix.attributes.showSum = true;\n          this.tabularReport.matrix.attributes = entitiesAttribute.matrix.attributes;\n          if (this.tabularReport.matrix.attributes[0].series.length === 0) {\n            this.tabularReport.showGrandTotal = false;\n            this.tabularReport.subTotal = false;\n          }\n          this.tabularReport = this._tabularReportService.groupData(this.tabularReport);\n          if (this.tabularReport.colGrouping.length > 0) {\n            this.tabularReport.colGrouping.forEach((attribute) => {\n              this.tabularReport = this._tabularReportService.newData(this.tabularReport, attribute);\n            });\n            this.tabularReport = this._tabularReportService.dataFactory(this.tabularReport);\n            if (this.tabularReport.rowCount && this.tabularReport.integerArray.length > 0) { this.tabularReport = this._tabularReportService.rowCountData(this.tabularReport); }\n          }\n          this.tabularReport.isDataLoaded = true;\n          this.tabularReport.pageLength = entitiesAttribute.totalRecords;\n        }\n        this.tabularReport.pageIndex = entitiesAttribute.pageIndex;\n        this.tabularReport.pageLength = entitiesAttribute.totalRecords;\n        this.tabularReport.pageSize = entitiesAttribute.pageSize;\n      }).catch(() => {\n        this.isDataLoading = false;\n      });\n    }\n    this.tabularReport.isDataLoaded = true;\n  }\n\n\n  /**\n   * Created filter object for cross filtering.\n   *\n   *  @param CrossFilterDto\n   */\n  createCrossFilter(crossFilterData: CrossFilterDto): void {\n    const axExpression = new AxExpression();\n    axExpression.comparisonOperator.text = 'In';\n    axExpression.comparisonOperator.value = 'IN';\n    axExpression.valueType = 2;\n    axExpression.field = new Attribute(crossFilterData.attributeData as unknown as Attribute);\n    const axExpTextList = new AxExpTextList();\n    if (crossFilterData.values) {\n      crossFilterData.values.forEach((value) => {\n        axExpTextList.value.push(value);\n      });\n    }\n    axExpression.value = axExpTextList;\n    const _searchNodes = new SearchNode();\n    _searchNodes.expression = axExpression;\n    const _filter = new AxFilter();\n    _filter.searchNodes.push(_searchNodes);\n    _filter.appVersionId = 0;\n    this.getCrossFilterData(_filter, crossFilterData);\n  }\n\n  /**\n   * pushed the filter object into basic filter and applied the filter on the data\n   *\n   *  @param CrossFilterDto\n   *  @param AxFilter\n   */\n  getCrossFilterData(_filter: AxFilter, crossFilterData: CrossFilterDto): void {\n    if (this.tabularReport.matrix.attributes.length) {\n      const elementDto = new ElementsDto(this.tabularReport);\n      elementDto.filters.localFilters.basic = this._elementService.getValidFilter(this.tabularReport.filters);\n      elementDto.filters.localFilters.basic.push(_filter);\n      elementDto.filters.localFilters.category = this._elementService.getValidFilterCategory(this.tabularReport.categories);\n      elementDto.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic);\n      elementDto.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category);\n      elementDto.reportId = this.reportId;\n      this._fieldsListService.getMatrixData(elementDto)\n        .then((entitiesAttribute: ElementsDto) => {\n          if (entitiesAttribute != null || entitiesAttribute.dimension.attribute.series.length > 0) {\n            // entitiesAttribute.matrix.attributes.showSum=true;\n            this.tabularReport.matrix.attributes = entitiesAttribute.matrix.attributes;\n            this.tabularReport = this._tabularReportService.groupData(this.tabularReport);\n          }\n        });\n    }\n  }\n  /**\n   * to add column into tabular report\n   *\n   * @param AttributeData\n   *\n   */\n  addColumn(attributeData: AttributeData): void {\n    this.isColumnExist(attributeData);\n    if (!this._isColumnExist) {\n      this.tabularReport.matrix.attributes.push(attributeData);\n      this._commonService.isReportBuilderDirty = true;\n      this.getMatrixDimension();\n    }\n    this._isColumnExist = false;\n\n  }\n  /**\n   * to check dropped column is already exist in table or not\n   *\n   * @param AttributeData\n   *\n   */\n  isColumnExist(attributeData: AttributeData): void {\n    this.tabularReport.matrix.attributes.forEach((attribute) => {\n      if (attribute.name === attributeData.name && attribute.tableName === attributeData.tableName) {\n        this._isColumnExist = true;\n      }\n    });\n  }\n\n  /**\n   *  call this function when apply filter\n   */\n  getChartData(): void {\n    if (this.tabularReport.colGrouping.length > 0) {\n      this.tabularReport = this._tabularReportService.columnData(this.tabularReport);\n    }\n    this.tabularReport.isDataLoaded = false;\n\n    this.getMatrixDimension();\n  }\n\n  /**\n   *  call this function for send email with excel report as attachment\n   */\n\n  sendEmail(): void {\n    this.displayNotification = false;\n    if (!this.displayEmailValidationError) {\n      const elementFilterAndCategory = new ElementFilters();\n      elementFilterAndCategory.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic,ScopeType.global);\n      elementFilterAndCategory.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category,ScopeType.global);\n      elementFilterAndCategory.localFilters.basic = this._elementService.getValidFilter(this.tabularReport.filters);\n      elementFilterAndCategory.localFilters.category = this._elementService.getValidFilterCategory(this.tabularReport.categories);\n      const sendEmailDto = {\n        emailId: this.exportFormBuilder.value['email'],\n        elementId: this.tabularReport.id,\n        Filters: elementFilterAndCategory\n      };\n      if (this.isEditable && this._commonService.isReportBuilderDirty) {\n        this.sendExcelReportEvent.emit({ sendEmailDto: sendEmailDto, component: this });\n      } else {\n        this._tabularReportService.sendEmail(sendEmailDto).then(() => {\n          this.displayNotification = true;\n        });\n      }\n    }\n  }\n\n  /**\n   *  close the export to email menu on click of cancel\n   */\n  closeExportMenu(): void {\n    this.contextMenu.closeMenu();\n    this.displayNotification = false;\n  }\n\n  /**\n   *  Validation of email id for export of tabular report\n   */\n\n  emailValidate(): void {\n    const regex = new RegExp(this.emailPattern);\n    this.displayEmailValidationError = !regex.test(this.exportFormBuilder.value['email']);\n    if (this.displayEmailValidationError) {\n      this.displayNotification = false;\n    }\n  }\n\n  /**\n   *\n   * @param MouseEvent\n   * @param number\n   * @param AttributeData\n   */\n  onContextMenu(event: MouseEvent): void {\n    if (!this.isEditable && ([this.screenTypes.containerDashboard, this.screenTypes.drillThrough].includes(this.screenType))) {\n      event.preventDefault();\n      return;\n    }\n\n    event.preventDefault();\n    const dashboardElement: HTMLElement = document.getElementById(this.elementGuid);\n    const elementClientRect: DOMRect = dashboardElement.getBoundingClientRect();\n    this.contextMenuPosition.x = (event.clientX - elementClientRect.x) + 'px';\n    this.contextMenuPosition.y = (event.clientY - elementClientRect.y) + 'px';\n    this.removeFromDashboardMenu.menu.focusFirstItem('mouse');\n    this.removeFromDashboardMenu.openMenu();\n  }\n\n  removeFromDashboard(): void {\n    this._dashboardBuilderService.deleteElement.emit(this.tabularReport);\n  }\n\n  drillThroughContext(event: MouseEvent, attribute: AttributeData, i: number): void {\n    this.filterDrillThroughPages(attribute);\n    if (!this.pages.length) {\n      return;\n    }\n    this.currentAttribute = attribute;\n    this.createDrillThroughFilter(attribute.series[i]);\n    if (this.screenType === ScreenType.drillThrough && !this.pages.length) {\n      event.stopPropagation();\n      event.preventDefault();\n    }\n    else if (!this.isEditable && (this.screenType !== ScreenType.drillThrough)) {\n      event.stopPropagation();\n      event.preventDefault();\n      const dashboardElement: HTMLElement = document.getElementById(this.elementGuid);\n      const elementBounds: DOMRect = dashboardElement.getBoundingClientRect();\n      this.contextMenuPosition.x = (event.clientX - elementBounds.x) + 'px';\n      this.contextMenuPosition.y = (event.clientY - elementBounds.y) + 'px';\n      this.drillThroughTrigger.menu.focusFirstItem('mouse');\n      this.drillThroughTrigger.openMenu();\n    }\n    else {\n      event.stopPropagation();\n      event.preventDefault();\n      this.contextMenuPosition.x = event.clientX + 'px';\n      this.contextMenuPosition.y = event.clientY + 'px';\n      this.drillThroughTrigger.menu.focusFirstItem('mouse');\n      this.drillThroughTrigger.openMenu();\n    }\n  }\n\n  /**\n   * Created filter object for cross filtering.\n   *\n   *  @param CrossFilterDto\n   */\n  createDrillThroughFilter(series: any): void {\n    const axExpression = new AxExpression();\n    axExpression.comparisonOperator.text = 'In';\n    axExpression.comparisonOperator.value = 'IN';\n    axExpression.valueType = 2;\n    axExpression.field = new Attribute(this.currentAttribute as unknown as Attribute);\n    const axExpTextList = new AxExpTextList();\n    axExpTextList.value.push(series);\n    axExpTextList.isSearchable = true;\n    axExpression.value = axExpTextList;\n    const _searchNodes = new SearchNode();\n    _searchNodes.expression = axExpression;\n    this.drillThroughFilter = new AxFilter();\n    this.drillThroughFilter.searchNodes.push(_searchNodes);\n    this.drillThroughFilter.appVersionId = 0;\n  }\n\n  /**\n   * Called on page name clicked on dropdown options of drill through pages\n   *\n   * @param page\n   */\n  pageClick(page: Page): void {\n    if (this.screenType !== ScreenType.drillThrough) {\n      if (this.drillThroughParentType ? this.drillThroughParentType === ScreenType.reportBuilder : this.isEditable) {\n        this._drillThroughService.setParentData(this.reportId, this._reportBuilderMasterService.report.name, this._router.url);\n        this.navigateToDrillThrough(page);\n      }\n      else {\n        this._dashboardBuilderService.dashboard$.pipe(takeUntil(this._unsubscribeAll)).subscribe((dashboard) => {\n          this._drillThroughService.setParentData(this.reportId, dashboard.name, this._router.url);\n          this.navigateToDrillThrough(page);\n        });\n      }\n    } else {\n      this.navigateToDrillThrough(page);\n    }\n  }\n\n  /**\n   * Navigate to drill through component with page id as route params\n   * Checks the parent URL if it is already exists or not\n   *\n   * @param page\n   */\n  navigateToDrillThrough(page: Page): void {\n    const parentUrl: string = this._drillThroughService.getParentData().url;\n    this._drillThroughService.drillPage(page, this.drillThroughFilter);\n    if (!parentUrl) {\n      this._router.navigate([this._router.url + '/drill-through/' + page.id]);\n    } else {\n      this._router.navigate([parentUrl, 'drill-through', page.id]);\n    }\n  }\n\n  /**\n   * handle paginator event to change data as per page index and pagesize\n   *\n   * @param event\n   */\n    handlePageEvent(event: PageEvent): void{\n    this.tabularReport.pageIndex=event.pageIndex;\n    this.tabularReport.pageSize=event.pageSize;\n    this.tabularReport.isDataLoaded=false;\n    this.getMatrixDimension();\n  }\n    /**\n     * Apply local filter.\n     */\n    applyLocalFilter(): void{\n        this.getChartData();\n    }\n\n}\n","import { Directive, OnInit, Renderer2, Input, ElementRef } from '@angular/core';\n\n@Directive({\n  selector: '[resizeColumnData]'\n})\nexport class ResizeColumnDirective implements OnInit {\n  @Input() resizeColumnData: any;\n\n  @Input() index: number;\n\n  private startX: number;\n\n  private startWidth: number;\n\n  private column: HTMLElement;\n\n  private table: HTMLElement;\n\n  private pressed: boolean;\n\n  private mouseMoveListenFn: any;\n\n  constructor(private renderer: Renderer2, private el: ElementRef) {\n    this.column = this.el.nativeElement;\n  }\n\n  ngOnInit() {\n    if (this.resizeColumnData.enable) {\n      const row = this.renderer.parentNode(this.column);\n      const thead = this.renderer.parentNode(row);\n      this.table = this.renderer.parentNode(thead);\n      const resizer = this.renderer.createElement('span');\n      // added class to show resize holder\n      this.renderer.addClass(resizer, 'resize-holder');\n      this.renderer.appendChild(this.column, resizer);\n      // it will called after mouse down event\n      this.renderer.listen(resizer, 'mousedown', this.onMouseDown);\n      // it will called after mouse up event\n      this.renderer.listen('document', 'mouseup', this.onMouseUp);\n    }\n  }\n\n  onMouseDown = (event: MouseEvent) => {\n    this.pressed = true;\n    this.startX = event.pageX;\n    this.startWidth = this.column.offsetWidth;\n    // called mouse move listener\n    this.mouseMoveListenFn = this.renderer.listen(this.table, 'mousemove', this.onMouseMove);\n  };\n\n  onMouseMove = (event: MouseEvent) => {\n    if (this.pressed && event.buttons) {\n      this.renderer.addClass(this.table, 'resizing');\n\n      // Calculate width of column\n      const width = this.startWidth + (event.pageX - this.startX);\n      if(this.resizeColumnData.index+1===this.resizeColumnData.report.matrix.attributes.length){\n        const element = document.getElementById('table');\n        element.scrollLeft=element.scrollLeft+width;\n      }\n\n      if(this.resizeColumnData.type=== 'attribute') {\n        this.resizeColumnData.attribute.colWidth = width;\n      }\n      else if(this.resizeColumnData.type === 'serialNo') {\n        this.resizeColumnData.report.serialNoColWidth = width;\n      }\n      // Set table header width\n    }\n  };\n\n  onMouseUp = (event: MouseEvent) => {\n    if (this.pressed) {\n      this.pressed = false;\n      this.renderer.removeClass(this.table, 'resizing');\n      // destroyed mousemove listener\n      this.mouseMoveListenFn();\n    }\n  };\n}\n","<div class=\"filter-component global-filter\">\n <filters\n    class=\"flex gap-x-2\"\n    [commonFilterArray]=\"commonFilterArray\"\n    [screenType]=\"screenType\"\n    (dirtyFlowCheckEvent)=\"dirtyFlowCheck()\"\n    (filterChangeEmit)= \"refreshElementData()\"\n    [scopeType]=\"scopeType\"\n    [ngClass]=\"{'widthWithCrossFilter': !showHeader && crossFilterEnabled}\"\n    >\n </filters>\n <button *ngIf=\"!showHeader && crossFilterEnabled\" (click)=\"resetCrossFilter()\" matTooltip=\"Remove cross filter\"  mat-icon-button class=\"flex items-center\">\n   <mat-icon class=\"filter-icon\"svgIcon=\"axo_filter_remove\"></mat-icon>\n </button>\n</div>\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CrossFilterDto } from '../../common-dto/elements-dto';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { ScopeType, ScreenType } from '../../enlighten-lib/filters/condition-type';\nimport { FilterCategory } from '../../enlighten-lib/filters/filter-category';\nimport { ElementService } from '../../enlighten-lib/report/element.service';\n\n@Component({\n  selector: 'lib-dashboard-filter',\n  templateUrl: './dashboard-filter.component.html',\n  styleUrls: ['./dashboard-filter.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class DashboardFilterComponent  implements OnInit,OnChanges {\n  @Input() filters: Array<AxFilter>;\n  @Input() categories: Array<FilterCategory>;\n  @Input() screenType: ScreenType;\n  @Input() commonFilterArray: any[] = [];\n  @Input() crossFilterEnabled: boolean;\n  @Output() dirtyFlowCheckEvent= new EventEmitter<any>();\n  scopeType = ScopeType.global;\n  showHeader: boolean = true;\n\n\n  constructor(\n    private _elementService: ElementService,\n    private activatedRoute: ActivatedRoute\n  ) {\n\n   }\n\n   ngOnInit(): void {\n    this.activatedRoute.paramMap.subscribe(\n      (params) => {\n        const showHeader = params.get('header');\n\n        if(showHeader && showHeader === 'hideHeader'){\n          this.showHeader = false;\n        }\n      });\n   }\n\n   /**\n    * Reset cross filter\n    */\n    resetCrossFilter(): void{\n      const crossfilterDto = new CrossFilterDto();\n      crossfilterDto.resetFilter = true;\n      this._elementService.triggerCrossFilter(crossfilterDto);\n    }\n\n  ngOnChanges(): void {\n      this.commonFilterArray=[];\n      this.allFilter();\n  }\n\n  /**\n   * Call dirty flow event emit\n   */\n  dirtyFlowCheck(): void{\n    this.dirtyFlowCheckEvent.emit();\n  }\n\n  /**\n   * call when the global filters fields values are selected.\n   */\n   refreshElementData(): void{\n    this._elementService.refreshElementData();\n  }\n  allFilter(): void {\n    this.filters.forEach((filter) => {\n    //   filter.generalFilterType = 1;\n        if(!this.commonFilterArray.includes(filter))\n        {\n\n          this.commonFilterArray.push(filter);\n        }\n    });\n    this.categories.forEach((category) => {\n      category.generalFilterType = 2;\n        if(!this.commonFilterArray.includes(category))\n        {this.commonFilterArray.push(category);}\n    });\n}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n  name: 'axoPercentage'\n})\nexport class AxoPercentagePipe implements PipeTransform {\n\n  transform(_number: number, series: string, type: string): string {\n    if(type==='detail'){\n      let total = 0;\n      for(const data of series){\n        total += Number(data);\n      }\n      const percentage=(parseFloat((_number*100/total).toFixed(4)));\n      return (percentage+'%');\n    }\n    else if(type==='column'){\n      return(_number+'%');\n    }\n  }\n\n}\n","<div class=\"tableContainer customscroll\" *ngIf='tabularReport.isDataLoaded'>\n  <table\n    (click)=\"tableSelect($event)\"\n    [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n    *ngIf=tabularReport cdkDropListGroup style=\"width:100%\" [ngClass]=\"{'mt-1': tabularReport.matrix.attributes.length>0 && tabularReport.matrix.attributes[0].series.length===0}\">\n    <caption></caption>\n      <thead class=\"thead\" class=\"thead\"[style.outline]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\" >\n        <tr class=\"example-list\"  cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event)\">\n          <!-- column headers -->\n          <ng-container *ngFor=\"let attr of tabularReport.matrix.attributes; let i= index\"\n          >\n          <th [id]=\"th\"\n            class=\"px-1.5\tpy-1.5\"\n            cdkDrag\n            [cdkDragDisabled]=\"!isEditable || attr.rowSpan\"\n            [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n            [style.color]=\"tabularReport.tableStyle.header.font.color\"\n            [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n            [style.background]=\"tabularReport.tableStyle.header.backgroundColor\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.text-align]='attr.alignment'\n            [resizeColumnData]=\"{enable:true, report:tabularReport, attribute:attr, type: 'attribute',index:i}\"\n            *ngIf='!attr.isHidden'\n            >\n\n            <div class=\"tabular-report-tabel-th\">\n              <div class=\"vertical-dot\" *ngIf=\"isEditable && !attr.rowSpan\" cdkDragHandle>\n                <mat-icon >drag_indicator</mat-icon>\n              </div>\n              <div class=\"w-full\">\n                <input class=\"tabular-report-table-text\" [(ngModel)]=\"attr.label\"\n                    [readonly] =\"!isEditable\" [style.width]=\"attr.label.length+1+'ch'\"\n                    [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n                    [style.color]=\"tabularReport.tableStyle.header.font.color\"\n                    [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n              />\n              </div>\n\n              <button *ngIf=\"isEditable\" mat-icon-button (click)=\"onContextMenu($event,i,attr);\">\n                <mat-icon  class=\"tab-down-arrow\" svgIcon=\"heroicons_outline:chevron-down\"></mat-icon>\n              </button>\n            </div>\n          </th>\n        </ng-container>\n        </tr>\n      </thead>\n    <tbody  [ngClass]=\"{'shadow':tabularReport.tableStyle.border.shadow.enable}\"\n      *ngIf=\"tabularReport.matrix.attributes.length>0\"\n      >\n\n      <ng-container *ngFor=\"let data of tabularReport.matrix.attributes[0].series;let i = index; even as isEven; let data1\">\n      <tr\n        [style.background]=\"tabularReport.tableStyle.body.backgroundColor\"\n        [ngStyle]=\"{ background: isEven ? tabularReport.tableStyle.rowStyle.oddColor: tabularReport.tableStyle.rowStyle.evenColor}\"\n        [style.border]=\"tabularReport.tableStyle.border.width + ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        >\n        <!--  series data  -->\n        <ng-container *ngFor=\"let _attr of tabularReport.matrix.attributes; even as isEven;let m = index\">\n          <td\n          class=\"px-1.5\tpy-1.5\"\n          *ngIf=\" _attr.rowSpan && _attr.cloneSeries && _attr.cloneSeries[i]!=='repeated' && !_attr.isHidden\"\n          [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n          [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n          [style.color]=\"tabularReport.tableStyle.body.font.color\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          [style.text-align]='_attr.alignment'\n          [rowSpan]='_attr.cloneGroupData[i]'\n          (contextmenu)=\"drillThroughContext($event, _attr, i)\"\n          >\n          {{indexing(_attr.groupData[i],i)}}\n          <div  [ngSwitch]=\"_attr.widgetType\">\n              <ng-container *ngIf='_attr.series[i]'>\n              <!-- when data type is datetime -->\n              <span *ngSwitchCase=\"'datepicker-widget'\">\n                <ng-container *ngIf=\"_attr.widgetSubType==='datetime' || _attr.widgetSubType==='both'\">\n                  <span >{{moment(_attr.series[i]+'Z')|date:_attr.valueFormatting.date}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='timestamp'\">\n                    <span>{{_attr.series[i]}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='time'\">\n                  <span *ngIf=\"_attr.series[i] \">{{moment(_attr.series[i],'hh:mm:ss')|date:_attr.valueFormatting.date}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='date'\">\n                  <span *ngIf=\" _attr.widgetSubType==='date'\">{{_attr.series[i]|date:_attr.valueFormatting.date }}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='date_range'\">\n                  {{_attr.series[i]}}\n                </ng-container>\n              </span>\n              <!-- when data type is text -->\n              <span *ngSwitchCase=\"'textbox-widget'\">\n                  <span *ngIf=\"_attr.widgetSubType==='decimal'|| _attr.widgetSubType==='text' || _attr.widgetSubType==='string'\">\n                  {{_attr.series[i]}}\n                  </span>\n                  <span *ngIf=\"_attr.widgetSubType==='numeric'\">\n                    <span *ngIf=\"_attr.valueFormatting.currency \">{{ _attr.series[i] |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n                    <span *ngIf=\" _attr.valueFormatting.percentage\">{{_attr.series[i]|  axoPercentage:_attr.series: 'detail'}}</span>\n                    <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{_attr.series[i]}}</span>\n                  </span>\n              </span>\n               <!-- When widget type is web link  -->\n               <span *ngSwitchCase=\"'hyperlink-widget'\">\n                <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is signature widget -->\n            <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is video widget -->\n            <span *ngSwitchCase=\"'videocapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is audio widget -->\n            <span *ngSwitchCase=\"'audiocapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n            <!-- When widget type is document widget -->\n            <span *ngSwitchCase=\"'fileupload-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is document widget -->\n            <span *ngSwitchCase=\"'document'\">\n              <span class=\"url cursor-pointer\" [title]=\"removeSlashFromURL(x1MediaUrl)+_attr.series[i]\" (click)=\"redirectOnSingleClick($event,removeSlashFromURL(x1MediaUrl)+_attr.series[i])\"><mat-icon class=\"doc-icon\" svgIcon=\"axo_pdf1\"></mat-icon></span>\n            </span>\n\n            <!-- When widget type is document widget -->\n            <span *ngSwitchCase=\"'imagecapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n\n              <!-- default case -->\n              <span *ngSwitchDefault>{{_attr.series[i]}}</span>\n            </ng-container>\n            <span *ngIf='!_attr.series[i]'>\n              <span *ngIf=\"_attr.widgetSubType==='numeric' || _attr.widgetSubType==='number'\">\n                <span *ngIf=\"_attr.valueFormatting.currency \">{{  0 |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" _attr.valueFormatting.percentage\">{{0 |  axoPercentage:_attr.series: 'detail'}}</span>\n                <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{0}}</span>\n              </span>\n              <!-- when series data is empty -->\n              <span *ngIf=\"_attr.widgetSubType!=='numeric' || _attr.widgetSubType==='number'\">-</span>\n\n            </span>\n\n            <span *ngIf='_attr.series[i]'> ({{_attr.groupData[i]}})</span>\n          </div>\n\n        </td>\n\n\n        <td\n          class=\"px-1.5\tpy-1.5\"\n          *ngIf=\"!_attr.rowSpan && _attr.series[i]!=='repeated' && !_attr.isHidden\"\n          [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n          [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n          [style.color]=\"tabularReport.tableStyle.body.font.color\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          [style.text-align]='_attr.alignment'\n          (contextmenu)=\"drillThroughContext($event, _attr, i)\"\n          >\n          <div  [ngSwitch]=\"_attr.widgetType\">\n            <ng-container *ngIf='_attr.series[i]'>\n              <!-- when data type is datetime -->\n              <span *ngSwitchCase=\"'datepicker-widget'\">\n                <ng-container *ngIf=\"_attr.widgetSubType==='datetime' || _attr.widgetSubType==='both'\">\n                  <span >{{moment(_attr.series[i]+'Z')|date:_attr.valueFormatting.date}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='timestamp'\">\n                    <span>{{_attr.series[i]}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='time'\">\n                  <span >{{moment(_attr.series[i],'hh:mm:ss')|date:_attr.valueFormatting.date}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='date'\">\n                  <span *ngIf=\"_attr.widgetSubType==='date'\">{{_attr.series[i]|date:_attr.valueFormatting.date }}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='date_range'\">\n                  {{_attr.series[i]}}\n                </ng-container>\n              </span>\n              <!-- when data type is text -->\n              <span *ngSwitchCase=\"'textbox-widget'\">\n                  <span *ngIf=\"_attr.widgetSubType==='decimal'|| _attr.widgetSubType==='text' || _attr.widgetSubType==='string'\">\n                  {{_attr.series[i]}}\n                  </span>\n                  <span *ngIf=\"_attr.widgetSubType==='numeric'\">\n                    <span *ngIf=\"_attr.valueFormatting.currency \">{{ _attr.series[i] |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n                    <span *ngIf=\" _attr.valueFormatting.percentage\">{{_attr.series[i]|  axoPercentage:_attr.series: 'detail'}}</span>\n                    <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{_attr.series[i]}}</span>\n                  </span>\n              </span>\n\n               <!-- When widget type is web link  -->\n               <span *ngSwitchCase=\"'hyperlink-widget'\">\n                <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is signature widget -->\n            <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is video widget -->\n            <span *ngSwitchCase=\"'videocapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is audio widget -->\n            <span *ngSwitchCase=\"'audiocapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n            <!-- When widget type is file widget -->\n            <span *ngSwitchCase=\"'fileupload-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is image widget -->\n            <span *ngSwitchCase=\"'imagecapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is document widget -->\n            <span *ngSwitchCase=\"'document'\">\n              <span class=\"url cursor-pointer\" [title]=\"removeSlashFromURL(x1MediaUrl)+_attr.series[i]\" (click)=\"redirectOnSingleClick($event,removeSlashFromURL(x1MediaUrl)+_attr.series[i])\"><mat-icon class=\"doc-icon\" svgIcon=\"axo_pdf1\"></mat-icon></span>\n            </span>\n\n              <!-- default case -->\n              <span *ngSwitchDefault>{{_attr.series[i]}}</span>\n            </ng-container>\n            <span *ngIf='!_attr.series[i]'>\n              <span *ngIf=\"_attr.widgetSubType==='numeric' || _attr.widgetSubType==='number'\">\n                <span *ngIf=\"_attr.valueFormatting.currency \">{{  0 |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" _attr.valueFormatting.percentage\">{{0 |  axoPercentage:_attr.series: 'detail'}}</span>\n                <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{0}}</span>\n              </span>\n              <!-- when series data is empty -->\n              <span *ngIf=\"_attr.widgetSubType!=='numeric' || _attr.widgetSubType==='number'\">-</span>\n\n            </span>\n          </div>\n\n        </td>\n\n      </ng-container>\n      </tr>\n      <!-- subtotal for future use -->\n      <tr *ngIf='tabularReport.subTotal  && (attrGlobal===i) '>\n      <ng-container *ngFor=\"let _attr of tabularReport.matrix.attributes; even as isEven;let m = index\">\n        <td *ngIf=\"m===0\"\n        class=\"px-1.5\tpy-1.5\"\n        [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n        [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n        [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n        [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n        [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        [style.text-align]='_attr.alignment'\n        >\n          <span>Subtotal</span>\n        </td>\n        <td\n        class=\"px-1.5\tpy-1.5\"\n        *ngIf=\"m>=tabularReport.rowGrouping.length\"\n        [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n        [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n        [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n        [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n        [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        [style.text-align]='_attr.alignment'\n        >\n         <span *ngIf=\"_attr.widgetType==='textbox-widget' && (_attr.widgetSubType==='numeric' || _attr.widgetSubType==='number')\">\n         <span *ngIf=\"_attr.valueFormatting.currency \">{{ subTotal(count,i,_attr.series) |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n         <span *ngIf=\" _attr.valueFormatting.percentage\">{{subTotal(count,i,_attr.series)|  axoPercentage:_attr.series: 'detail'}}</span>\n         <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{subTotal(count,i,_attr.series)}}</span>\n\n        </span>\n         <span *ngIf=\"_attr.enlightenType.matIcon!=='axo_number'\"></span>\n      </td>\n       </ng-container>\n      </tr>\n    </ng-container>\n    </tbody>\n    <!--  Table footer for grand total -->\n    <tfoot *ngIf=\"tabularReport.matrix.attributes.length>0\"\n      [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n      [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n      [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n      [style.color]=\"tabularReport.tableStyle.footer.font.color\">\n      <tr *ngIf=\"tabularReport.showGrandTotal\">\n          <!-- For future Use  -->\n        <ng-container *ngFor=\"let attr of tabularReport.matrix.attributes; let i=index\">\n          <td\n          class=\"px-1.5\tpy-1.5\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          [style.text-align]='attr.alignment'\n          >\n          <ng-container *ngIf=\"attr.widgetType==='textbox-widget' &&  (attr.widgetSubType==='numeric' || attr.widgetSubType==='number')\">\n            <span *ngIf=\"attr.aggregate.showSum\">\n             <span *ngIf=\"attr.valueFormatting.currency \">Sum: {{ sum(attr.series) |  currency:attr.valueFormatting.currency :'symbol'}}<br></span>\n             <span *ngIf=\" attr.valueFormatting.percentage\"> Sum:\n              <span *ngIf=\"sum(attr.series)>1\">100%</span>\n              <span *ngIf=\"sum(attr.series)<1\">0%</span>\n            <br></span>\n            <span *ngIf=\"!attr.valueFormatting.percentage && !attr.valueFormatting.currency\">Sum: {{sum(attr.series)}}<br></span>\n            </span>\n          <span *ngIf=\"attr.aggregate.showAvg\">\n            <span *ngIf=\"attr.valueFormatting.currency \">Avg: {{avg(attr.series) |  currency:attr.valueFormatting.currency :'symbol'}}<br></span>\n            <span *ngIf=\" attr.valueFormatting.percentage\">Avg: {{avg(attr.series)|  axoPercentage:attr.series: 'detail'}}<br></span>\n            <span *ngIf=\"!attr.valueFormatting.percentage && !attr.valueFormatting.currency\"> Avg: {{avg(attr.series)}}<br></span>\n           </span>\n          <span *ngIf=\"attr.aggregate.showMax\">\n            <span *ngIf=\"attr.valueFormatting.currency \"> Max: {{max(attr.series)|  currency:attr.valueFormatting.currency :'symbol'}}<br></span>\n            <span *ngIf=\" attr.valueFormatting.percentage\"> Max: {{max(attr.series)|  axoPercentage:attr.series: 'detail'}}<br></span>\n            <span *ngIf=\"!attr.valueFormatting.percentage && !attr.valueFormatting.currency\"> Max: {{max(attr.series)}}<br></span>\n           </span>\n          <span *ngIf=\"attr.aggregate.showMin\">\n            <span *ngIf=\"attr.valueFormatting.currency \">Min: {{min(attr.series) |  currency:attr.valueFormatting.currency :'symbol'}}<br></span>\n            <span *ngIf=\" attr.valueFormatting.percentage\">Min: {{min(attr.series)|  axoPercentage:attr.series: 'detail'}}<br></span>\n            <span *ngIf=\"!attr.valueFormatting.percentage && !attr.valueFormatting.currency\"> Min: {{min(attr.series)}}<br></span>\n           </span>\n        </ng-container>\n          </td>\n        </ng-container>\n      </tr>\n    </tfoot>\n  </table>\n  <div class=\"flex justify-center items-center flex-col zero-records\" *ngIf=\"(tabularReport.matrix.attributes.length>0 && tabularReport.matrix.attributes[0].series.length===0)\">\n    No records available\n  </div>\n</div>\n\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n  [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n\n<!-- Mat Menu trigger for table columns-->\n<mat-menu #contextMenu=\"matMenu\">\n  <div id=\"table-menu\">\n    <ng-template matMenuContent let-item=\"reportData\" >\n      <ng-container *ngIf=\"isEditable\">\n        <button *ngIf=\"tabularReport.matrix.attributes[currentIndex].type==='int' && (tabularReport.matrix.attributes[currentIndex].type==='int' || tabularReport.matrix.attributes[currentIndex].type==='float')\" mat-menu-item [matMenuTriggerFor]=\"Aggregate\">Aggregate</button>\n        <button *ngIf=\"!tabularReport.matrix.attributes[currentIndex-1].rowSpan\" mat-menu-item (click)=\"moveColumnLeft($event)\" >Move Left</button>\n        <button mat-menu-item (click)=\"moveColumnRight($event)\">Move Right</button>\n        <button mat-menu-item\n        *ngIf=\"!tabularReport.matrix.attributes[currentIndex].rowSpan &&\n        (tabularReport.rowGrouping.length+1 !== tabularReport.matrix.attributes.length)\"\n        (click)=\"removeColumn($event)\">Remove Column</button>\n      </ng-container>\n      <button *ngIf=\"screenTypes.dashboardBuilder === screenType\" mat-menu-item (click)=\"removeFromDashboard()\">Remove From Dashboard</button>\n    </ng-template>\n  </div>\n</mat-menu>\n<!------------------------------------------------------------------------------ -->\n\n\n\n<!-- Mat menu trigger for  Aggregation-->\n<mat-menu #Aggregate=\"matMenu\">\n  <ng-template matMenuContent *ngIf='tabularReport.matrix.attributes.length>0'>\n    <!-- <p>\n      <mat-checkbox  class=\"aggregate-fun\" [(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showUniqueCount'\n         (click)=\"$event.stopPropagation()\">Show Unique Count</mat-checkbox>\n    </p> -->\n    <section *ngIf=\"tabularReport.matrix.attributes[currentIndex].type==='int' || tabularReport.matrix.attributes[currentIndex].type==='float'\" class=\"detailed-group-aggregate-function\">\n      <p>\n        <mat-checkbox  class=\"aggregate-fun\" [(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showSum'\n          (change)=\"sumAggregation($event)\" (click)=\"$event.stopPropagation()\">sum</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\" [(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showAvg'\n          (change)=\"averageAggregation($event)\" (click)=\"$event.stopPropagation()\">Average</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\"[(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showMax'\n          (change)=\"maxAggregation($event)\" (click)=\"$event.stopPropagation()\">Max</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\"[(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showMin'\n          (change)=\"minAggregation($event)\"(click)=\"$event.stopPropagation()\">Min</mat-checkbox>\n      </p>\n    </section>\n  </ng-template>\n</mat-menu>\n\n<div *ngIf=\"!tabularReport.isDataLoaded && tabularReport.matrix.attributes.length!==0\" class=\"loader-spinner\">\n  <app-ghost-loader [elementType]=\"GhostLoaderType.TabularChartLoader\" ></app-ghost-loader>\n</div>\n<!-- <div *ngIf=\"!tabularReport.isDataLoaded && tabularReport.matrix.attributes.length!==0\" class=\"loader-spinner\">\n  <mat-spinner [diameter]=\"40\"></mat-spinner></div>  -->\n\n\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { ElementsDto } from '../../../../../common-dto/elements-dto';\nimport { Report } from '../../../../../common-utils/report';\nimport { AttributeData } from '../../../../fields/attribute-data';\nimport { FieldsListService } from '../../../../../field-list-lib/fields-list.service';\nimport moment from 'moment';\nimport { ReportBuilderMasterService } from '../../../report-builder-master.service';\nimport { TabularReport } from '../../tabular-report';\nimport { TabularReportService } from '../../tabular-report.service';\nimport { CommonService } from '../../../../../common.service';\nimport { ElementService } from '../../../element.service';\nimport { ScopeType, ScreenType } from '../../../../filters/condition-type';\nimport { DashboardBuilderService } from '../../../../../dashboard-lib/dashboard-builder.service';\nimport { TabularComponent } from '../tabular.component';\nimport { AxFilter } from '../../../../filters/ax-filter';\nimport { GhostLoaderType } from '../../../../../ghost-loader/ghost-loader.component';\n\n@Component({\n  selector: 'lib-row-group-view',\n  templateUrl: './row-group-view.component.html',\n  styleUrls: ['./row-group-view.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class RowGroupViewComponent implements OnInit,OnChanges {\n  // @Input() page: Page;\n  @Input() tabularReport: TabularReport;\n  @Input() isEditable: boolean;\n  @Input()x1ImageMediaUrl: string;\n  @Input() screenType: ScreenType;\n  @Input() drillThroughParentType: ScreenType;\n  @Input() drillThroughFilterInput: AxFilter;\n  @Input() parentRef: TabularComponent;\n  @Input() reportId: number;\n  @ViewChild(MatMenuTrigger)\n  contextMenu: MatMenuTrigger;\n  contextMenuPosition = { x: '0px', y: '0px' };\n  currentIndex: number;\n  showSum: boolean=false;\n  showMax: boolean=false;\n  showMin: boolean=false;\n  showAvg: boolean=false;\n  moment: any=moment;\n  isDirty: boolean;\n  report: Report;\n  attrGlobal: number;\n  count: number;\n  ct: number;\n  isDataLoaded=false;\n  GhostLoaderType = GhostLoaderType;\n  constructor(\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _fieldsListService: FieldsListService,\n    private _tabularReportService: TabularReportService,\n    private _commonService: CommonService,\n    private _elementService: ElementService,\n    private _dashboardBuilderService: DashboardBuilderService\n\n  ) { }\n\n  get screenTypes(): typeof ScreenType {\n    return ScreenType;\n}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.tabularReport.isDataLoaded=false;\n    this.report=this._reportBuilderMasterService.report;\n\n    this.getTabularData();\n\n  }\n\n  ngOnInit(): void {\n    this.report=this._reportBuilderMasterService.report;\n    // this. getTabularData();\n  }\n\n  /**\n   * remove slash from url\n   * @param url \n   * @returns \n   */\n  removeSlashFromURL(url: string): any{\n    if(url && url != \"\"){\n      return url.slice(0, -1);\n    }\n  }\n\n   getTabularData(): void {\n    if (this.tabularReport.matrix.attributes.length > 0) {\n      const data = new ElementsDto(this.tabularReport);\n      if(this.screenType === ScreenType.drillThrough){\n        data.filters.globalFilters.basic.push(this.drillThroughFilterInput);\n      } else {\n        data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);\n        data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);\n      }\n      data.filters.localFilters.basic = this._elementService.getValidFilter(this.tabularReport.filters);\n      data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.tabularReport.categories);\n      data.reportId = this.reportId;\n      data.type='tabular-report';\n      data.orderBy=this.tabularReport.rowGrouping;\n      data.pageIndex=this.tabularReport.pageIndex;\n      data.pageSize=this.tabularReport.pageSize;\n      data.pageLength=this.tabularReport.pageLength;\n      data.sqlQuery=this.tabularReport.sqlQuery;\n      data.isCustomElement=this.tabularReport.isCustomElement;\n      this._fieldsListService.getMatrixData(data).then((entitiesAttribute) => {\n        if (entitiesAttribute != null) {\n          entitiesAttribute.matrix.attributes.showSum=true;\n          this.tabularReport.matrix.attributes = entitiesAttribute.matrix.attributes;\n          this.tabularReport.pageLength=entitiesAttribute.totalRecords;\n          this.tabularReport.pageIndex=entitiesAttribute.pageIndex;\n          this.tabularReport.pageSize=entitiesAttribute.pageSize;\n          this.tabularReport = this._tabularReportService.groupData(this.tabularReport);\n        }\n\n      });\n    }\n    this.isDataLoaded=true;\n    this.tabularReport.isDataLoaded=true;\n  }\n\n/**\n * to drop column from tabular report\n *\n * @param CdkDragDrop\n *\n */\n drop(event: CdkDragDrop<string[]>): void{\n   if(!this.tabularReport.matrix.attributes[event.currentIndex].rowSpan){\n  moveItemInArray(this.tabularReport.matrix.attributes, event.previousIndex, event.currentIndex);\n  this._commonService.isReportBuilderDirty=true;\n   }\n}\n  /**\n   * to move column left on tabular report\n   *\n   * @param CdkDragDrop\n   *\n   */\n   moveColumnLeft(event: CdkDragDrop<string[]>): void{\n    moveItemInArray(this.tabularReport.matrix.attributes,this.currentIndex,this.currentIndex-1);\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n  /**\n   * to move column right on tabular report\n   *\n   * @param CdkDragDrop\n   *\n   */\n  moveColumnRight(event: CdkDragDrop<string[]>): void{\n    moveItemInArray(this.tabularReport.matrix.attributes,this.currentIndex,this.currentIndex+1);\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n\n  /**used to create a row for subtotal\n   *\n   *@param number\n   *@param number\n   */\n  indexing(count_: number,i: number): void{\n    this.ct=count_;\n    if(count_===1){\n      this.count=1;\n      this.attrGlobal=i;\n    }\n    if(count_>1){\n    this.attrGlobal=(count_+i)-1;\n    }\n\n  }\n  /**  to count subtotal of a grouped data\n   *\n   *@param number\n   *@param number\n   *@param string\n   *\n   */\n  subTotal(c: number, i: number, series: Array<string>): number{\n    let total=0;\n    if(this.ct>i){\n       for(let m=0;m<=i;m++){\n         total=total+Number(series[m]);\n       }\n    }\n  else{\n    let m =i-this.ct+1;\n    for(m;m<=i;m++){\n    total=total+Number(series[m]);\n    }\n  }\n    return total;\n  }\n\n  /**\n   *\n   * @param MouseEvent\n   * @param number\n   * @param AttributeData\n   */\n  onContextMenu(event: MouseEvent,index: number,attr: AttributeData): void {\n    if (!this.isEditable) {\n      event.preventDefault();\n      return;\n    }\n    event.stopPropagation();\n    event.preventDefault();\n    this.currentIndex=index;\n    this.contextMenuPosition.x = event.clientX + 'px';\n    this.contextMenuPosition.y = event.clientY + 'px';\n    this.contextMenu.menuData = { 'attr': attr };\n    this.contextMenu.menu.focusFirstItem('mouse');\n    if(attr.type==='int' && this.tabularReport.showGrandTotal || (!attr.rowSpan && (this.tabularReport.rowGrouping.length+1 !== this.tabularReport.matrix.attributes.length))){\n    this.contextMenu.openMenu();\n    }\n  }\n\n  /**\n   * to returns sum of rows\n   *\n   *@param string\n   */\n  sum(series: Array<string>): number{\n    let total = 0;\n    for(const data of series){\n      total += Number(data);\n    }\n    return total;\n  }\n  /**\n   * to returns average of rows\n   *\n   * @param string\n   *\n   */\n  avg(series: Array<string>): number{\n    let total = 0;\n    for(const data of series){\n      total += Number(data);\n    }\n    return (parseFloat((total/series.length).toFixed(2)));\n\n  }\n\n  /**\n   * to returns maximum value of rows\n   *\n   *@param string\n   */\n  max(series: Array<string>): number{\n    const a=[];\n    for(const data of series){\n      a.push(Number(data));\n    }\n    return  Math.max(...a);\n  }\n\n  /**\n   * to returns minimum value of rows\n   *\n   *@param string\n   */\n  min(series: Array<string>): number{\n    const a=[];\n    for(const data of series){\n      a.push(Number(data));\n    }\n    return  Math.min(...a);\n  }\n\n  /**\n   * to returns count of unique values of rows\n   *\n   * @param string\n   *\n   */\n     unique(series: Array<string>): number{\n      return [...new Set(series)].length;\n    }\n\n\n  /***\n   * On chart context  click for sum aggregation\n   * @param MatCheckboxChange\n   */\n  sumAggregation(ob: MatCheckboxChange): void{\n    this.showSum=ob.checked;\n    this._commonService.isReportBuilderDirty=true;\n  }\n  /***\n   * On chart context  click for avg aggregation\n   * @param MatCheckboxChange\n   */\n  averageAggregation(ob: MatCheckboxChange): void{\n    this.showAvg=ob.checked;\n    this._commonService.isReportBuilderDirty=true;\n  }\n  /***\n   * On chart context  click for max aggregation\n   * @param MatCheckboxChange\n   */\n  maxAggregation(ob: MatCheckboxChange): void{\n    this.showMax=ob.checked;\n    this._commonService.isReportBuilderDirty=true;\n  }\n  /***\n   * On chart context  click for min aggregation\n   * @param MatCheckboxChange\n   */\n  minAggregation(ob: MatCheckboxChange): void{\n    this.showMin=ob.checked;\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n\n/**\n * to set isDirty after changes in tabular report filter\n *\n */\n  dirtyFlowCheckEvent(): void{\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n  /**\n   * to remove column from tabular report\n   *\n   * @param Event\n   *\n   */\n   removeColumn($event: Event): void{\n    this.tabularReport.matrix.attributes.splice(this.currentIndex,1);\n    this. getTabularData();\n    this._commonService.isReportBuilderDirty=true;\n   }\n  /**\n   * will emit table properties on table click t\n   *\n   * @param event\n   */\n  tableSelect(event: PointerEvent): void {\n  event.stopPropagation();\n  this._tabularReportService.tableClickEvent(this.tabularReport);\n  }\n  /**\n   * to redirect media url\n   *\n   * @param event\n   * @param url\n   */\n  redirect(event: KeyboardEvent,url: string): void{\n    if(event.ctrlKey||event.metaKey){\n    window.open(url , '_blank');\n    }\n  }\n\n  /**\n * to redirect media url on single click \n */\n  redirectOnSingleClick(event: Event,url:string):void{\n    event.stopPropagation();\n    window.open(url , '_blank');\n  }\n\n  removeFromDashboard(): void {\n    this._dashboardBuilderService.deleteElement.emit(this.tabularReport);\n  }\n\n  drillThroughContext(event: MouseEvent, attribute: AttributeData, i: number): void {\n    this.parentRef.drillThroughContext(event, attribute,i);\n  }\n}\n","import { SearchNode } from '../../enlighten-lib/filters/search-node';\nimport { TagStyle } from './tag-style';\n\nexport class ConditionalFormatting {\n    id: number;\n    tagStyle: TagStyle;\n    condition: SearchNode;\n    conditionsJs: string;\n\n    constructor(conditionalFormatting?: ConditionalFormatting) {\n        if (conditionalFormatting) {\n            this.conditionalFormatting(conditionalFormatting);\n        }\n        else {\n            this.newconditionalFormatting();\n        }\n    }\n\n    conditionalFormatting(conditionalFormatting: ConditionalFormatting): void {\n        this.id = conditionalFormatting.id;\n        this.tagStyle = conditionalFormatting.tagStyle;\n        this.condition = conditionalFormatting.condition;\n        this.conditionsJs =conditionalFormatting.conditionsJs;\n    }\n    newconditionalFormatting() {\n        this.id = 0;\n        this.tagStyle = new TagStyle();\n        this.condition = new SearchNode();\n        this.conditionsJs = '';\n    }\n}\n","/**\n * @enum CodeEditorMode \n */\nexport enum CodeEditorMode{\n    HTML = 'html',\n    JAVASCRIPT = 'javascript',\n    JSON = 'json',\n    YAML ='yaml'\n}","/**\n * @enum CodeEditorTheme \n */\nexport enum CodeEditorTheme{\n    ECLIPSE = 'eclipse',\n}","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { CodeEditorMode } from './code-editor-modes';\nimport { CodeEditorTheme } from './code-editor-themes';\nimport { CodeEditorOptions } from './icode-editor-options';\n\n@Component({\n  selector: 'lib-code-editor',\n  templateUrl: './code-editor.component.html',\n  styleUrls: ['./code-editor.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class CodeEditorComponent implements OnInit {\n  //<--------------------(Inputs)------------------------>\n  @Input() text:string;\n  @Input() editorTitle:string = 'Code Editor'\n  @Input() mode:CodeEditorMode = CodeEditorMode.YAML;\n  @Input() theme:CodeEditorTheme = CodeEditorTheme.ECLIPSE;\n  @Input() options:CodeEditorOptions;\n  @Input() readonly:boolean = false;\n  @Input() autoUpdateContent:boolean = true;\n  @Input() durationBeforeCallback:number = 0;\n  @Output() textChanged:EventEmitter<any> = new EventEmitter();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<!-- Ace editor selector  -->\n<div class=\"flex flex-col h-full pb-6\">\n    <div class=\"axo-font text-base code-editor-header\">{{editorTitle}}</div>\n    <div class=\"h-full\">\n        <ace-editor [(text)]=\"text\" [theme]=\"theme\" [options]=\"options\" [readOnly]=\"readonly\"\n        [autoUpdateContent]=\"autoUpdateContent\" [durationBeforeCallback]=\"durationBeforeCallback\"\n        (textChanged)=\"textChanged.emit($event)\" class=\"h-full h-min-30\">\n    </ace-editor>\n    </div>\n    <div class=\"axo-font text-base code-editor-footer\"></div>\n</div>\n","import { Component, Inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ConditionalFormatting } from '../../../data-view-lib/data-view/conditional-formatting';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nexport interface DialogData {\n  conditionalFormatting: Array<ConditionalFormatting>;\n  confirmButtonText: string;\n  cancelButtonText: string;\n  confirmButtonType: string;\n}\n\n@Component({\n  selector: 'lib-conditional-formatting',\n  templateUrl: './conditional-formatting.component.html',\n  styleUrls: ['./conditional-formatting.component.scss'],\n  encapsulation:ViewEncapsulation.None,\n  providers: [\n    {\n      provide: MAT_SELECT_CONFIG,\n      useValue: { overlayPanelClass: 'code-editor-custom-overlay-panel' },\n    },\n  ],\n})\nexport class ConditionalFormattingComponent implements OnInit {\n  @ViewChild('editor') editor: any;\n  conditionalFormattingString=\"\"\n  conditionalFormatting:Array<ConditionalFormatting>=[]\n\n  constructor( public dialogRef: MatDialogRef<ConditionalFormattingComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: DialogData) { }\n\n  ngOnInit(): void {\n    const _cf=new ConditionalFormatting()\n    this.conditionalFormatting.push(_cf)\n    this.conditionalFormatting=this.data.conditionalFormatting.length?this.data.conditionalFormatting:this.conditionalFormatting\n    this.conditionalFormattingString = JSON.stringify(this.conditionalFormatting, null, 2);\n\n  }\n    /**\n     * This will get called on code change in editor\n     *\n     * @param value\n     */\n    editorTextChange(value: string): void {\n      this.conditionalFormattingString = value;\n      const data = JSON.parse(value);\n      this.conditionalFormatting=[];\n      data.forEach((condition) => {\n        this.conditionalFormatting.push(new ConditionalFormatting(condition));\n      });\n      console.log(this.conditionalFormatting)\n    }\n\n\n  save():void{\n    this.dialogRef.close(this.conditionalFormatting);\n  }\n  cancel():void{\n    this.dialogRef.close(this.data.conditionalFormatting);\n  }\n\n}\n","\n\n<div class=\"conditionalFormattingwrapper\">\n    <lib-code-editor #editor \n    [editorTitle]=\"'Conditional Formatting Editor'\"\n    (textChanged)=\"editorTextChange($event)\"\n    [text]=\"conditionalFormattingString\">\n    </lib-code-editor>   \n</div>\n\n\n<div class=\"flex justify-end\" mat-dialog-actions>\n    <button class=\"cancel-button mat-focus-indicator mat-flat-button mr-3 mat-button-base\" mat-button (click)=\"cancel()\">{{data.cancelButtonText}}</button>\n    <button class=\"mat-focus-indicator mat-flat-button mr-3 mat-button-base confirm-button mat-primary\"  mat-button (click)=\"save()\" cdkFocusInitial>{{data.confirmButtonText}}</button>\n  </div>   ","<div *ngIf=\"!tabularReport.isDataLoaded && tabularReport.matrix.attributes.length!==0\" class=\"loader-spinner\">\n  <app-ghost-loader [elementType]=\"GhostLoaderType.TabularChartLoader\" ></app-ghost-loader>\n</div>\n<!-- <div *ngIf=\"!tabularReport.isDataLoaded && tabularReport.matrix.attributes.length!==0\" class=\"loader-spinner\">\n  <mat-spinner [diameter]=\"40\"></mat-spinner>\n</div> -->\n<div class=\"tableContainer customscroll\" id=table  [ngClass]=\"{'local-body' : !isEditable && (screenType !== screenTypes.drillThrough) }\"\n*ngIf='tabularReport.matrix.attributes.length>0 && (isDataLoaded || tabularReport.isDataLoaded)'>\n\n    <table\n      (click)=\"tableSelect($event)\"\n      [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n      *ngIf=tabularReport cdkDropListGroup class=\"overflow-x-auto\" [ngClass]=\"{'mt-1': tabularReport.matrix.attributes.length>0 && tabularReport.matrix.attributes[0].series.length===0}\">\n      <caption></caption>\n      <thead class=\"thead\" [style.outline]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\">\n        <tr cdkDropList cdkDropListOrientation=\"horizontal\" (cdkDropListDropped)=\"drop($event)\" [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\">\n          <!-- serial number header -->\n          <th [id]=\"srNo\"\n          class=\" px-1.5 py-1.5 w-10 min-w-10\"\n          *ngIf=\"tabularReport.showSerialNo\"\n          [style.color]=\"tabularReport.tableStyle.header.font.color\"\n          [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n          [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n          [style.background]=\"tabularReport.tableStyle.header.backgroundColor\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n\n\n        ><div class=\"sr-head max-w-fit\">Sr No.</div></th>\n        <!-- column headers -->\n        <ng-container *ngFor=\"let attr of tabularReport.matrix.attributes; let i= index; let last = last\" cdkDragBoundary=\".page\" >\n          <th [id]=\"th\"\n            *ngIf=\"!attr.isHidden\"\n            class=\"deatail-group-tabale-header\"\n            [cdkDragDisabled]=\"!isEditable\"\n            [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n            [style.color]=\"tabularReport.tableStyle.header.font.color\"\n            [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n            [style.background]=\"tabularReport.tableStyle.header.backgroundColor\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n\n            cdkDrag\n\n            [style.text-align]='attr.alignment'\n            >\n              <div class=\"deatil-group-table-head-child gap-1\" (contextmenu)=\"onContextMenu($event, i, attr)\">\n                <div (click)=\"onClickSorting($event,i)\" class=\"w-full flex\" [ngClass]=\"{' gap-3 items-center justify-between':attr.groupBy===1 || attr.groupBy===2 || isEditable}\">\n                  <div class=\"vertical-dot\" *ngIf=\"isEditable\" cdkDragHandle>\n                    <mat-icon >drag_indicator</mat-icon>\n                  </div>\n                  <div class=\"w-full\">\n                    <input (click)=\"$event.stopPropagation()\" [style.width]=\"attr.label.length+1+'ch'\"\n                  class=\"table-heading\" [ngClass]=\"{'sort-heading' : !headerLoaded }\"\n                  [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n                  [style.color]=\"tabularReport.tableStyle.header.font.color\"\n                  [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n                   [(ngModel)]=\"attr.label\" [readonly] =\"!isEditable\"/>\n                  </div>\n\n                  <div class=\"sorting-arrow flex items-center gap-1\">\n                    <span *ngIf='attr.groupBy===1 || attr.groupBy===2' class=\"order-sequence axo-font\">{{attr.orderSequence}}</span>\n                    <div class=\"flex flex-col sorting-icon\">\n                      <div class=\"sort-arrow-up cursor-pointer\" [ngClass]=\"{'arrow-active': attr.groupBy===1}\">&#x25B2;</div>\n                      <div class=\"sort-arrow-down cursor-pointer\" [ngClass]=\"{'arrow-active': attr.groupBy===2}\">&#x25BC;</div>\n                    </div>\n                  </div>\n                </div>\n                <ng-container *ngIf=\"isEditable\">\n                  <button mat-icon-button (click)=\"onContextMenu($event, i, attr); $event.stopPropagation()\" class=\"flex items-center pb-1\">\n                    <mat-icon  class=\"tab-down-arrow\" svgIcon=\"heroicons_outline:chevron-down\"></mat-icon>\n                  </button>\n                  <div #matMenuTrigger\n                      class=\"filterMatMenu\"\n                      [matMenuTriggerFor]=\"contextMenu\"\n                      [id]=\"attr.tableName+'-'+ attr.name\">\n                  </div>\n                </ng-container>\n              </div>\n          </th>\n        </ng-container>\n\n      </tr>\n      </thead>\n      <tbody   [ngClass]=\"{'shadow':tabularReport.tableStyle.border.shadow.enable}\"\n        *ngIf=\"tabularReport.matrix.attributes.length>0\"\n        >\n\n        <ng-container *ngFor=\"let data of tabularReport.matrix.attributes[0].series;let i = index; even as isEven; let data1\">\n        <tr\n          [style.background]=\"selectedRowIndexes.includes(i)?tabularReport.tableStyle.body.backgroundColor+'60':tabularReport.tableStyle.body.backgroundColor\"\n          [ngStyle]=\"{ background: isEven ? tabularReport.tableStyle.rowStyle.oddColor: tabularReport.tableStyle.rowStyle.evenColor}\"\n          [style.border]=\"tabularReport.tableStyle.border.width + ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          (click)=\"rowSelected(i)\"\n          >\n          <!-- serial no of rows -->\n          <td *ngIf=\"tabularReport.showSerialNo\"\n            class=\"px-1.5\tpy-1.5 max-w-fit\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\" class=\"text-center \"\n            [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n            [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n            [style.color]=\"tabularReport.tableStyle.body.font.color\"\n\n            >\n            {{(((tabularReport.pageIndex -1 )* tabularReport.pageSize) + tabularReport.pageSize)+ i+1}}\n     </td>\n          <!--  series data  -->\n          <ng-container *ngFor=\"let _attr of tabularReport.matrix.attributes; even as isEven;let m = index\">\n          <td\n            *ngIf=\"!_attr.isHidden\"\n            class=\"px-1.5\tpy-1.5\t\"\n            [style.font-family]=\"_attr.seriesFormatting[i]?.font?_attr.seriesFormatting[i].font.family:tabularReport.tableStyle.body.font.family\"\n            [style.font-size.px]=\"_attr.seriesFormatting[i]?.font?_attr.seriesFormatting[i].font.size:tabularReport.tableStyle.body.font.size\"\n            [style.color]=\"_attr.seriesFormatting[i]?.font?_attr.seriesFormatting[i].font.color:tabularReport.tableStyle.body.font.color\"\n            [style.text-align]='_attr.alignment'\n            (contextmenu)=\"drillThroughContext($event, _attr, i);$event.stopPropagation();\"\n            [ngStyle]=\"{ background: _attr.seriesFormatting[i].backgroundColor,\n                        'border': _attr.seriesFormatting[i]?.border ? _attr.seriesFormatting[i].border.width+'px'+ ' '+ _attr.seriesFormatting[i].border.borderStyle + ' ' + _attr.seriesFormatting[i].border.color:\n                                  tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\n                        }\"\n            >\n\n\n\n\n            <ng-container *ngIf=\"_attr.series[i]\">\n            <div  [ngSwitch]=\"_attr.widgetType\">\n                <!-- when data type is datetime -->\n                <span *ngSwitchCase=\"'datepicker-widget'\">\n                  <ng-container *ngIf=\"_attr.widgetSubType==='datetime' || _attr.widgetSubType==='both'\">\n                    <span >{{moment(_attr.series[i]+'Z')|date:_attr.valueFormatting.date}}</span>\n                  </ng-container>\n                  <ng-container *ngIf=\"_attr.widgetSubType==='timestamp'\">\n                      <span>{{_attr.series[i]}}</span>\n                  </ng-container>\n                  <ng-container *ngIf=\"_attr.widgetSubType==='time'\">\n                    <span>{{moment(_attr.series[i],'hh:mm:ss')|date:_attr.valueFormatting.date}}</span>\n                  </ng-container>\n                  <ng-container *ngIf=\"_attr.widgetSubType==='date'\">\n                    <span *ngIf=\" _attr.widgetSubType==='date'\">{{_attr.series[i]|date:_attr.valueFormatting.date}}</span>\n                  </ng-container>\n                  <ng-container *ngIf=\"_attr.widgetSubType==='date_range'\">\n                    {{_attr.series[i]}}\n                  </ng-container>\n                </span>\n                <!-- when data type is text -->\n                <span *ngSwitchCase=\"'textbox-widget'\">\n                    <span *ngIf=\"_attr.widgetSubType==='text' || _attr.widgetSubType==='string'\" style=\"white-space: pre-line\">\n                        {{_attr.series[i]}}\n                    </span>\n                    <span *ngIf=\"_attr.widgetSubType==='numeric' || _attr.widgetSubType==='decimal'\">\n                      <span *ngIf=\"_attr.valueFormatting.currency \">{{ _attr.series[i] |  currency:_attr.valueFormatting.currency :'symbol':'1.2-5'}}</span>\n                      <span *ngIf=\" _attr.valueFormatting.percentage\">{{_attr.series[i]|  axoPercentage:_attr.series: 'detail'}}</span>\n                      <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{_attr.series[i]}}</span>\n                    </span>\n                </span>\n                <!-- When widget type is web link  -->\n                <span *ngSwitchCase=\"'hyperlink-widget'\">\n                    <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,_attr.series[i])\">{{_attr.series[i]}}</span>\n                </span>\n\n                <!-- When widget type is signature widget -->\n                <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n                  <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n                </span>\n\n                <!-- When widget type is video widget -->\n                <span *ngSwitchCase=\"'videocapture-widget'\">\n                  <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n                </span>\n\n                <!-- When widget type is audio widget -->\n                <span *ngSwitchCase=\"'audiocapture-widget'\">\n                  <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n                </span>\n                <!-- When widget type is document widget -->\n                <span *ngSwitchCase=\"'fileupload-widget'\">\n                  <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n                </span>\n\n                <!-- When widget type is document widget -->\n                <span *ngSwitchCase=\"'document'\">\n                  <span class=\"url cursor-pointer\" [title]=\"removeSlashFromURL(x1MediaUrl)+_attr.series[i]\" (click)=\"redirectOnSingleClick($event,removeSlashFromURL(x1MediaUrl)+_attr.series[i])\"><mat-icon class=\"doc-icon\" svgIcon=\"axo_pdf1\"></mat-icon></span>\n\n                </span>\n\n                <!-- When widget type is document widget -->\n                <span *ngSwitchCase=\"'imagecapture-widget'\">\n                  <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n                </span>\n                  <!-- default case -->\n                  <span *ngSwitchDefault>{{_attr.series[i]}}</span>\n\n              </div>\n            </ng-container>\n            <span *ngIf='!_attr.series[i]'>\n              <span *ngIf=\"_attr.widgetSubType==='numeric'\">\n                <span *ngIf=\"_attr.valueFormatting.currency \">{{  0 |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" _attr.valueFormatting.percentage\">{{0 |  axoPercentage:_attr.series: 'detail'}}</span>\n                <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">-</span>\n              </span>\n              <!-- when series data is empty -->\n              <span *ngIf=\"_attr.widgetSubType!=='numeric'\">-</span>\n\n            </span>\n\n          </td>\n        </ng-container>\n        </tr>\n      </ng-container>\n      <!-- subtotal row -->\n      <ng-container >\n      <tr *ngIf=tabularReport.showBottomRow>\n        <td *ngIf='tabularReport.showSerialNo'\n        class=\"px-1.5\tpy-1.5\t\"\n        [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n        [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n        [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n        [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        [style.color]=\"tabularReport.tableStyle.footer.font.color\"\n        >\n        </td>\n      <ng-container *ngFor=\"let attr of tabularReport.matrix.attributes; let i=index\">\n        <td\n        *ngIf=\"!attr.isHidden\"\n        class=\"px-1.5\tpy-1.5\t\"\n        [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n        [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n        [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n        [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        [style.color]=\"tabularReport.tableStyle.footer.font.color\"\n        >\n          <ng-container *ngIf=\"attr.widgetType==='textbox-widget' && ( attr.widgetSubType==='numeric') || (attr.widgetSubType=='decimal')\">\n            <span *ngIf=\"attr.aggregate.showSum\">\n             <span *ngIf=\"attr.valueFormatting.currency \">Sum: {{ sum(attr.series) |  currency:attr.valueFormatting.currency :'symbol':'1.2-4'}}<br></span>\n             <span *ngIf=\" attr.valueFormatting.percentage\"> Sum:\n               <span *ngIf=\"sum(attr.series)>1\">100%</span>\n               <span *ngIf=\"sum(attr.series)<1\">0%</span>\n             <br></span>\n             <span *ngIf=\"!attr.valueFormatting.percentage && !attr.valueFormatting.currency\">Sum: {{sum(attr.series)}}<br></span>\n            </span>\n          <span *ngIf=\"attr.aggregate.showAvg\">\n            <span *ngIf=\"attr.valueFormatting.currency \">Avg: {{avg(attr.series) |  currency:attr.valueFormatting.currency :'symbol'}}<br></span>\n            <span *ngIf=\" attr.valueFormatting.percentage\">Avg: {{avg(attr.series)|  axoPercentage:attr.series: 'detail'}}<br></span>\n            <span *ngIf=\"!attr.valueFormatting.percentage && !attr.valueFormatting.currency\"> Avg: {{avg(attr.series)}}<br></span>\n           </span>\n          <span *ngIf=\"attr.aggregate.showMax\">\n            <span *ngIf=\"attr.valueFormatting.currency \"> Max: {{max(attr.series)|  currency:attr.valueFormatting.currency :'symbol'}}<br></span>\n            <span *ngIf=\" attr.valueFormatting.percentage\"> Max: {{max(attr.series)|  axoPercentage:attr.series: 'detail'}}<br></span>\n            <span *ngIf=\"!attr.valueFormatting.percentage && !attr.valueFormatting.currency\"> Max: {{max(attr.series)}}<br></span>\n           </span>\n          <span *ngIf=\"attr.aggregate.showMin\">\n            <span *ngIf=\"attr.valueFormatting.currency \">Min: {{min(attr.series) |  currency:attr.valueFormatting.currency :'symbol'}}<br></span>\n            <span *ngIf=\" attr.valueFormatting.percentage\">Min: {{min(attr.series)| axoPercentage:attr.series: 'detail'}}<br></span>\n            <span *ngIf=\"!attr.valueFormatting.percentage && !attr.valueFormatting.currency\"> Min: {{min(attr.series)}}<br></span>\n           </span>\n        </ng-container>\n        </td>\n      </ng-container>\n      </tr>\n    </ng-container>\n\n      </tbody>\n    </table>\n    <div class=\"flex justify-center items-center flex-col zero-records\" *ngIf=\"(tabularReport.matrix.attributes.length>0 && tabularReport.matrix.attributes[0].series.length===0)\">\n      No records available\n    </div>\n</div>\n<!-- <div class=\"flex align-items deatil-group-table-paginator customscroll\">\n  <mat-paginator (page)=\"handlePageEvent($event)\" [length]=\"tabularReport.pageLength\" [pageSize]=\"tabularReport.pageSize\"\n  [pageIndex]=\"tabularReport.pageIndex\" [pageSizeOptions]=\"[10, 25, 50, 100]\" aria-label=\"Select page\" class=\"mat-paginator flex justify-end w-full\">\n  </mat-paginator>\n</div> -->\n\n\n<!-- Mat Menu trigger for table columns-->\n<mat-menu #contextMenu=\"matMenu\">\n  <div id=\"table-menu\">\n    <ng-template matMenuContent let-item=\"reportData\"> \n      <button *ngIf=\"((tabularReport.matrix.attributes[currentIndex].type==='int' && (tabularReport.matrix.attributes[currentIndex].widgetType==='textbox-widget' )|| tabularReport.matrix.attributes[currentIndex].widgetType==='computedvalue-widget')||tabularReport.matrix.attributes[currentIndex].type==='decimal'|| tabularReport.matrix.attributes[currentIndex].type==='float')\"mat-menu-item [matMenuTriggerFor]=\"Aggregate\">Aggregate</button>\n      <ng-container *ngIf=\"isEditable\">\n        <button mat-menu-item (click)=\"moveColumnLeft($event)\">Move Left</button>\n        <button mat-menu-item (click)=\"moveColumnRight($event)\">Move Right</button>\n        <button mat-menu-item (click)=\"removeColumn($event)\">Remove Column</button>\n        <button mat-menu-item (click)=\"openConditionalFormatting($event)\">Add Conditional Formatting</button>\n      </ng-container>\n      <button *ngIf=\"screenTypes.dashboardBuilder === screenType\" mat-menu-item (click)=\"removeFromDashboard()\">Remove From Dashboard</button>\n    </ng-template>\n  </div>\n</mat-menu>\n<!-- --------------------------------------------------------------------------- -->\n\n\n\n<!-- Mat menu trigger for  Aggregation-->\n<mat-menu #Aggregate=\"matMenu\">\n  <ng-template matMenuContent *ngIf='tabularReport.matrix.attributes.length>0'>\n    <!-- <p>\n      <mat-checkbox  class=\"aggregate-fun\" [(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showUniqueCount'\n        (click)=\"$event.stopPropagation()\">Show Unique Count</mat-checkbox>\n    </p> -->\n    <section *ngIf=\"tabularReport.matrix.attributes[currentIndex].type==='int'  ||  tabularReport.matrix.attributes[currentIndex].type==='float'\" class=\"detailed-group-aggregate-function\">\n      <p>\n        <mat-checkbox  class=\"aggregate-fun\" [(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showSum'\n          (change)=\"sumAggregation($event)\" (click)=\"$event.stopPropagation()\">sum</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\" [(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showAvg'\n          (change)=\"averageAggregation($event)\" (click)=\"$event.stopPropagation()\">Average</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\"[(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showMax'\n          (change)=\"maxAggregation($event)\" (click)=\"$event.stopPropagation()\">Max</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\"[(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showMin'\n          (change)=\"minAggregation($event)\"(click)=\"$event.stopPropagation()\">Min</mat-checkbox>\n      </p>\n    </section>\n  </ng-template>\n</mat-menu>\n\n\n\n\n\n\n","import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Component, HostListener, Injector, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { CrossFilterDto, ElementsDto } from '../../../../../common-dto/elements-dto';\nimport { Report } from '../../../../../common-utils/report';\nimport { AttributeData } from '../../../../fields/attribute-data';\nimport { FieldsListService } from '../../../../../field-list-lib/fields-list.service';\nimport moment from 'moment';\nimport { ReportBuilderMasterService } from '../../../report-builder-master.service';\nimport { TabularReport } from '../../tabular-report';\nimport { OrderByType } from '../../orderby-type';\nimport { CommonService } from '../../../../../common.service';\nimport { ElementService } from '../../../element.service';\nimport { ScopeType, ScreenType } from '../../../../filters/condition-type';\nimport { TabularReportService } from '../../tabular-report.service';\nimport { Page } from '../../../graphical-report/page/page';\nimport { DashboardBuilderService } from '../../../../../dashboard-lib/dashboard-builder.service';\nimport { TabularComponent } from '../tabular.component';\nimport { Subject } from 'rxjs';\nimport { AxFilter } from '../../../../filters/ax-filter';\n\nimport { PageEvent } from '@angular/material/paginator';\nimport { ConditionalFormattingComponent } from '../../../../../shared/conditional-formatting/conditional-formatting/conditional-formatting.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { GhostLoaderType } from '../../../../../ghost-loader/ghost-loader.component';\n@Component({\n  selector: 'lib-detail-view',\n  templateUrl: './detail-group-view.component.html',\n  styleUrls: ['./detail-group-view.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class DetailGroupViewComponent implements OnInit, OnChanges, OnDestroy {\n  @Input() page: Page;\n  @Input() tabularReport: TabularReport;\n  @Input() isEditable: boolean;\n  @Input()x1ImageMediaUrl: string;\n  @Input() elementGuid: string;\n  @Input() screenType: ScreenType;\n  @Input() drillThroughParentType: ScreenType;\n  @Input() drillThroughFilterInput: AxFilter;\n  @Input() parentRef: TabularComponent;\n  @ViewChild(MatMenuTrigger) contextMenu: HTMLElement;\n  @ViewChild('drillThorughMenuTrigger', { read: MatMenuTrigger, static: false}) drillThroughTrigger: MatMenuTrigger;\n  @Input()x1MediaUrl: string;\n  @Input() reportId: number;\n  @Input() appVersionId: number;\n\n  columnData: any;\n  contextMenuPosition = { x: '0px', y: '0px' };\n  currentIndex: number;\n  showSum: boolean=false;\n  showMax: boolean=false;\n  showMin: boolean=false;\n  showAvg: boolean=false;\n  moment: any=moment;\n  isDirty: boolean;\n  report: Report;\n  _isColumnExist: boolean=false;\n  isDataLoaded=false;\n  headerLoaded=false;\n  selectedRowIndexes: Array<number> = [];\n  drillThroughFilter: any;\n  currentAttribute: any;\n  isHidden: boolean=false;\n  dialog: MatDialog;\n  GhostLoaderType = GhostLoaderType;\n  private _unsubscribeAll: Subject<any> = new Subject();\n\n  constructor(\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _fieldsListService: FieldsListService,\n    private _commonService: CommonService,\n    private _elementService: ElementService,\n    private _tabularReportService: TabularReportService,\n    private _dashboardBuilderService: DashboardBuilderService,\n    private _injector: Injector,\n  ) {\n    this.dialog = this._injector.get(MatDialog);\n  }\n\n  get screenTypes(): typeof ScreenType {\n    return ScreenType;\n  }\n  /**\n   * hostListener use to open matMenu specific location\n   */\n  @HostListener('window:mousedown', ['$event'])\n    click(event): void {\n        if (\n            this.contextMenu &&\n            this.contextMenu.ariaExpanded === 'true' &&\n            event.which === 3\n        ) {\n            this.contextMenu.click();\n        }\n    }\n  ngOnInit(): void {\n    this.subscribers();\n    this.report=this._reportBuilderMasterService.report;\n    if(this.reportId){\n      // this.getTabularData();  // also calling form ngOnChanges as per discuss  with Swapnil\n    }\n  }\n\n  ngOnDestroy(): void {\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n  /**\n   * Subscribers should be added here.\n   */\n  subscribers(): void{\n    // CrossFilter Subscriber\n    this._elementService.crossFilterEvent.subscribe((crossFilter: CrossFilterDto) => {\n        if(crossFilter.resetFilter)\n          {this.selectedRowIndexes = [];}\n    });\n  }\n\n  /**\n   * Get Tabular data\n   */\n  getTabularData(): void {\n      if (this.tabularReport.matrix.attributes.length > 0) {\n        const data = new ElementsDto(this.tabularReport);\n        if(this.screenType === ScreenType.drillThrough){\n          data.filters.globalFilters.basic.push(this.drillThroughFilterInput);\n      } else {\n        data.filters.globalFilters.basic = this._elementService.getValidFilter(this._elementService.filtersDto.basic, ScopeType.global);\n        data.filters.globalFilters.category = this._elementService.getValidFilterCategory(this._elementService.filtersDto.category, ScopeType.global);\n      }\n      data.filters.localFilters.basic = this._elementService.getValidFilter(this.tabularReport.filters);\n      data.filters.localFilters.category = this._elementService.getValidFilterCategory(this.tabularReport.categories);\n      data.reportId = this.reportId;\n      data.type='tabular-report'; // use enum\n      data.orderBy=this.tabularReport.sorting;\n      data.pageIndex=this.tabularReport.pageIndex;\n      data.pageSize=this.tabularReport.pageSize;\n      data.pageLength=this.tabularReport.pageLength;\n      data.sqlQuery=this.tabularReport.sqlQuery; \n      data.isCustomElement=this.tabularReport.isCustomElement;\n      if(this.drillThroughParentType == ScreenType.dashboardBuilder || this.drillThroughParentType == ScreenType.containerDashboard) {\n        data.apiType = 'dashboard';\n      }\n      this._fieldsListService.getMatrixData(data).then((entitiesAttribute) => {\n        if (entitiesAttribute != null) {\n          entitiesAttribute.matrix.attributes.showSum=true;\n          this.tabularReport.matrix.attributes = entitiesAttribute.matrix.attributes;\n          this.tabularReport.pageLength=entitiesAttribute.totalRecords;\n          this.tabularReport.pageIndex=entitiesAttribute.pageIndex;\n          this.tabularReport.pageSize=entitiesAttribute.pageSize;\n        }\n        this.tabularReport.isDataLoaded=true;\n        this.isDataLoaded=true;\n        this.headerLoaded=true;\n      });\n\n    }\n    this.toShowAggregation();\n\n\n  }\n  /**\n   * to set matrix attribute data after onchange\n   *\n   * @param changes\n   */\n  ngOnChanges(changes: SimpleChanges): void {\n    this.isDataLoaded=false;\n    this.report=this._reportBuilderMasterService.report;\n     //Set Pagination\n     if(!this.tabularReport.pageIndex){\n      this.tabularReport.pageIndex = 0;\n      this.tabularReport.pageSize = 10;\n      this.tabularReport.pageLength = 0;\n    }\n\n    this.getTabularData();\n\n  }\n/**\n * to drop column from tabular report\n *\n * @param CdkDragDrop\n *\n */\n  drop(event: CdkDragDrop<string[]>): void{\n    moveItemInArray(this.tabularReport.matrix.attributes, event.previousIndex, event.currentIndex);\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n  /**\n   * to move column left on tabular report\n   *\n   * @param CdkDragDrop\n   *\n   */\n   moveColumnLeft(event: CdkDragDrop<string[]>): void{\n    moveItemInArray(this.tabularReport.matrix.attributes,this.currentIndex,this.currentIndex-1);\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n  /**\n   * to move column right on tabular report\n   *\n   * @param CdkDragDrop\n   *\n   */\n  moveColumnRight(event: CdkDragDrop<string[]>): void{\n    moveItemInArray(this.tabularReport.matrix.attributes,this.currentIndex,this.currentIndex+1);\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n  /**\n   * to remove column from tabular report\n   *\n   * @param Event\n   *\n   */\n  removeColumn($event: Event): void{\n   this.tabularReport.matrix.attributes.splice(this.currentIndex,1);\n   this. getTabularData();\n   this._commonService.isReportBuilderDirty=true;\n  }\n\n\n\n  /**context menu for table columns\n   *\n   * @param MouseEvent\n   * @param number\n   * @param AttributeData\n   */\n\n  onContextMenu(event: MouseEvent,index: number,attr?: AttributeData): void {\n    if (!this.isEditable) {\n      event.preventDefault();\n      return;\n    }\n    event.stopPropagation();\n    event.preventDefault();\n    this.contextMenu = document.getElementById(attr.tableName+'-'+ attr.name);\n    this.currentIndex=index;\n    this.contextMenu.click();\n  }\n\n  /**\n   * to returns sum of rows\n   *\n   * @param string\n   *\n   */\n  sum(series: Array<string>): number{\n    let total = 0;\n    for(const data of series){\n      total += Number(data);\n    }\n    return total;\n  }\n  /**\n   * to returns average of rows\n   *\n   * @param string\n   *\n   */\n  avg(series: Array<string>): number{\n    let total = 0;\n    for(const data of series){\n      total += Number(data);\n    }\n    if(series.length===0){\n      return 0;\n    }\n    return (parseFloat((total/series.length).toFixed(2)));\n  }\n\n  /**\n   * to returns maximum value of rows\n   *\n   * @param string\n   *\n   */\n  max(series: Array<string>): number{\n    const a=[];\n    for(const data of series){\n      a.push(Number(data));\n    }\n    if(a.length===0){\n      return 0;\n    }\n    return  Math.max(...a);\n  }\n\n  /**\n   * to returns minimum value of rows\n   *\n   * @param string\n   *\n   */\n  min(series: Array<string>): number{\n    const a=[];\n    for(const data of series){\n      a.push(Number(data));\n    }\n    if(a.length===0){\n      return 0;\n    }\n        return  Math.min(...a);\n  }\n  /**\n   * to returns count of unique value of rows\n   *\n   * @param string\n   *\n   */\n  unique(series: Array<string>): number{\n    return [...new Set(series)].length;\n  }\n\n\n  /***\n   * On chart context  click for sum aggregation\n   * @param MatCheckboxChange\n   */\n  sumAggregation(ob: MatCheckboxChange): void{\n    this.showSum=ob.checked;\n    this._commonService.isReportBuilderDirty=true;\n    this.toShowAggregation();\n  }\n  /***\n   * On chart context  click for avg aggregation\n   * @param MatCheckboxChange\n   */\n  averageAggregation(ob: MatCheckboxChange): void{\n    this.showAvg=ob.checked;\n    this._commonService.isReportBuilderDirty=true;\n    this.toShowAggregation();\n  }\n  /***\n   * On chart context  click for max aggregation\n   * @param MatCheckboxChange\n   */\n  maxAggregation(ob: MatCheckboxChange): void{\n    this.showMax=ob.checked;\n    this._commonService.isReportBuilderDirty=true;\n    this.toShowAggregation();\n  }\n  /***\n   * On chart context  click for min aggregation\n   * @param MatCheckboxChange\n   */\n  minAggregation(ob: MatCheckboxChange): void{\n    this.showMin=ob.checked;\n    this._commonService.isReportBuilderDirty=true;\n    this.toShowAggregation();\n  }\n\n\n/**\n * to set isDirty after changes in tabular report filter\n *\n */\n  dirtyFlowCheckEvent(): void{\n    this._commonService.isReportBuilderDirty=true;\n  }\n\n  /**\n   * This will sort the data of tabular\n   *\n   * @param event\n   * @param index\n   */\n  onClickSorting(event: KeyboardEvent,index: number): void{\n      const attr=this.tabularReport.matrix.attributes[index];\n      this.isColumnExist(attr);\n      attr.isSortable=true;\n      // to set group by according to last value //\n      if(attr.groupBy===OrderByType.ascending){\n        attr.groupBy=OrderByType.descending;\n      }\n      else if(attr.groupBy===OrderByType.none){\n        attr.groupBy=OrderByType.ascending;\n      }\n      else{\n        attr.groupBy=OrderByType.none;\n        attr.isSortable=false;\n      }\n    // --------if condition for multiple sorting--------------\n      if(event.ctrlKey||event.metaKey){\n          this.tabularReport.sorting.push(attr);\n\n      }\n      //---- for single column sorting -------\n      else{\n        this.singleColumnSorting(attr);\n    }\n    this.tabularReport.sorting.forEach((attribute,sortingIndex) => {\n      if(!attribute.isSortable){\n        this.tabularReport.sorting.splice(sortingIndex,1);\n      }\n\n    });\n\n    this.tabularReport.matrix.attributes[index].orderSequence=this.tabularReport.sorting.indexOf(attr)+1;\n      this.tabularReport.matrix.attributes.forEach((attribute) => {\n        if(attr.name!==attribute.name){\n          attribute.orderSequence=this.getSortIndex(attribute);\n          if(!attribute.orderSequence){\n            attribute.orderSequence=0;\n          }\n        }\n\n      });\n    this.headerLoaded=false;\n    this.getTabularData();\n}\nsingleColumnSorting(attr: AttributeData): void{\n  this.tabularReport.matrix.attributes.forEach((attribute) => {\n    if(attribute.name!==attr.name){\n      attribute.groupBy=OrderByType.none;\n      attribute.isSortable=false;\n    }\n  });\n  this.tabularReport.sorting=[];\n  this.tabularReport.sorting.push(attr);\n}\n// this function return true if attribute have show min/max/avg/sum aggregates to show last row\n  toShowAggregation(): void{\n    this.tabularReport.showBottomRow=false;\n    let hiddenCount = 0;\n    this.tabularReport.matrix.attributes.forEach((attribute) => {\n      if(attribute.aggregate.showAvg || attribute.aggregate.showMax||attribute.aggregate.showMin ||attribute.aggregate.showSum || attribute.aggregate.showUniqueCount) {\n        this.tabularReport.showBottomRow= true;\n      }\n      if(attribute.isHidden){\n        hiddenCount++;\n      }\n    });\n    if(hiddenCount ==  this.tabularReport.matrix.attributes.length){\n      this.isHidden = true;\n    }\n  }\n\n\n  getSortIndex(attributeData: AttributeData): number{\n    let attributeIndex = 0;\n    this.tabularReport.sorting.forEach((attribute,index) => {\n      if(attribute.name===attributeData.name && attribute.isSortable){\n        attributeIndex=index;\n      }\n    });\n    return attributeIndex+1;\n  }\n\n  /**\n   * to check dropped column is already exist in table or not\n   *\n   * @param AttributeData\n   *\n   */\n    isColumnExist(attributeData: AttributeData): void{\n    this.tabularReport.sorting.forEach((attribute,index) => {\n        if(attribute.name===attributeData.name){\n          this.tabularReport.sorting.splice(index,1);\n        }\n    });\n    }\n\n    /**\n     *to emit tabular property on table click\n     *\n     * @param event\n     */\n    tableSelect(event: PointerEvent): void {\n    event.stopPropagation();\n    this._tabularReportService.tableClickEvent(this.tabularReport);\n    }\n\n    /**\n     * to redirect media url\n     *\n     * @param event\n     * @param url\n     */\n    redirect(event: KeyboardEvent,url: string): void{\n      if(event.ctrlKey||event.metaKey){\n      window.open(url , '_blank');\n      }\n    }\n\n    /**\n     * to redirect media url on single click\n     */\n    redirectOnSingleClick(event: Event,url: string): void{\n      event.stopPropagation();\n      window.open(url , '_blank');\n    }\n\n    /**\n     * remove slash from url\n     *\n     * @param url\n     * @returns\n     */\n    removeSlashFromURL(url: string): any{\n      if(url && url != ''){\n        return url.slice(0, -1);\n      }\n    }\n\n    /**\n     * This will get called on row clicked. we are using this for cross filter .\n     *\n     * @param rowIndex\n     */\n    rowSelected(rowIndex: number): void{\n      // On builder we don't need cross filter tabular report have only one element on builder so there is no meaning of cross filter on builder.\n      if(!this.isEditable){\n        //Row is already selected then remove selection.\n        if(this.selectedRowIndexes.includes(rowIndex)){\n          const ind = this.selectedRowIndexes.indexOf(rowIndex);\n          this.selectedRowIndexes.splice(ind,1);\n        }else{\n            // Push selected row index in selectedRowIndexes array\n            this.selectedRowIndexes.push(rowIndex);\n        }\n\n        // Created crossFilter DTO\n        const crossFilterDto: CrossFilterDto = {\n          values: [],\n          attributeData: this.tabularReport.matrix.attributes[0],\n          chartType: this.tabularReport.type,\n          elementGuid: this.tabularReport.guid,\n          resetFilter:true,\n          selectedIndexLength: 1\n        };\n        // If rows are selected then filter other elements data.\n        if(this.selectedRowIndexes.length > 0)\n        {\n          crossFilterDto.resetFilter = false;  // set Reset filter false bcz we have selected rows.\n\n          //Added values of selected rows in cross filter dto\n          this.selectedRowIndexes.forEach((ind)=>{\n            crossFilterDto.values.push(this.tabularReport.matrix.attributes[0].series[ind]);\n          });\n        }\n\n        // trigged cross filter\n        this._elementService.triggerCrossFilter(crossFilterDto);\n\n      }\n    }\n\n    drillThroughContext(event: MouseEvent, attribute: AttributeData, i: number): void {\n      this.parentRef.drillThroughContext(event, attribute,i);\n    }\n\n    removeFromDashboard(): void {\n      this._dashboardBuilderService.deleteElement.emit(this.tabularReport);\n    }\n    /**\n     * handle paginator event to change data as per page index and pagesize\n     *\n     * @param event\n     */\n    handlePageEvent(event: PageEvent): void{\n      this.tabularReport.pageIndex=event.pageIndex;\n      this.tabularReport.pageSize=event.pageSize;\n      this.isDataLoaded=false;\n      this.tabularReport.isDataLoaded=false;\n      this.getTabularData();\n    }\n\n     openConditionalFormatting(index: Event): void{\n      const dialogRef = this.dialog.open(ConditionalFormattingComponent, {\n        width: '40%',\n        height:'50%',\n        data: {\n          conditionalFormatting: this.tabularReport.matrix.attributes[this.currentIndex].conditionalFormatting,\n          // message: 'Deleting a report will also delete the related graphs from the dashboard as well. Are you sure want to delete this report?',\n          confirmButtonText: 'Save',\n          cancelButtonText: 'Cancel',\n          confirmButtonType: 'submit'\n        },\n        panelClass: 'confirm-modal-container'\n      });\n\n      dialogRef.afterClosed().subscribe((result) => {\n        if (result) {\n          this.tabularReport.matrix.attributes[this.currentIndex].conditionalFormatting=result;\n        }\n      });\n\n    }\n\n}\n","<div class=\"column-grouping-table-container customscroll\" *ngIf='tabularReport.matrix.attributes[0].series.length!==0 && tabularReport.isDataLoaded'>\n  <table\n    (click)=\"tableSelect($event)\"\n    [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n    *ngIf=tabularReport cdkDropListGroup style=\"width:100%\" [ngClass]=\"{'mt-1': tabularReport.matrix.attributes.length>0 && tabularReport.matrix.attributes[0].series.length===0}\">\n    <caption></caption>\n    <tbody  [ngClass]=\"{'shadow':tabularReport.tableStyle.border.shadow.enable}\"\n      *ngIf=\"tabularReport.matrix.attributes.length>0\"\n      >\n      <ng-container *ngFor=\"let _attr of tabularReport.colGrouping; even as isEven;let m = index\">\n      <ng-container>\n      <tr *ngIf=\"m===0\">\n            <td\n            class=\"px-1.5\tpy-1.5\"\n            *ngIf=\"tabularReport.rowGrouping.length===2\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            ></td>\n            <th [id]=th\n            class=\"px-1.5\tpy-1.5\"\n            [style.color]=\"tabularReport.tableStyle.header.font.color\"\n            [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n            [style.color]=\"tabularReport.tableStyle.header.font.color\"\n            [style.background]=\"tabularReport.tableStyle.header.backgroundColor\"\n            [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            (contextmenu)=\"onContextMenu($event,i)\"\n            [style.text-align]='_attr.alignment'\n            >\n              <div class=\"tabular-report-tabel-th\">\n                <span class=\"tabular-report-table-text\">{{_attr.label}}</span>\n                <!-- <button mat-icon-button (click)=\"onContextMenu($event,i)\">\n                  <mat-icon class=\"tab-down-arrow\" svgIcon=\"heroicons_outline:chevron-down\"></mat-icon>\n                </button> -->\n              </div>\n            </th>\n\n            <!-- to show single column grouping unique series -->\n            <ng-container *ngFor='let data of _attr.uniqueSeries;let i= index'>\n                    <td\n                      class=\"px-1.5\tpy-1.5\"\n                      *ngIf=\"tabularReport.colGrouping.length===1\"\n                      [colSpan]=tabularReport.rowCount?tabularReport.colData.get(data)+1:tabularReport.colData.get(data)\n                      [style.font-family]=\"tabularReport.tableStyle.subHeader.font.family\"\n                      [style.font-size.px]=\"tabularReport.tableStyle.subHeader.font.size\"\n                      [style.color]=\"tabularReport.tableStyle.subHeader.font.color\"\n                      [style.background]=\"tabularReport.tableStyle.subHeader.backgroundColor\"\n                      [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n                      (contextmenu)=\"drillThroughContext($event, _attr, _attr.series.indexOf(data))\">\n\n                      <ng-container *ngIf=\"data\">\n\n                        <div  [ngSwitch]=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetType\">\n                            <!-- when data type is datetime -->\n                            <span *ngSwitchCase=\"'datepicker-widget'\">\n                              <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='datetime' || tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='both'\">\n                                <span>{{moment(data+'Z')|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                              </ng-container>\n                              <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='timestamp'\">\n                                <span >{{data}}</span>\n                              </ng-container>\n                              <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='time'\">\n                                <span *ngIf=\"data \">{{moment(data,'hh:mm:ss')|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                              </ng-container>\n                              <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date'\">\n                                <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date'\">{{data|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                              </ng-container>\n                              <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date_range'\">\n                                {{data}}\n                              </ng-container>\n                            </span>\n                            <!-- when data type is text -->\n                            <span *ngSwitchCase=\"'textbox-widget'\">\n                                <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='decimal'|| tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='text' || tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='string'\">\n                                {{data}}\n                                </span>\n                                <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='numeric'\">\n                                  <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency :'symbol'}}</span>\n                                  <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage\">{{data|  axoPercentage:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].series: 'column'}}</span>\n                                  <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency\">{{data}}</span>\n                                </span>\n                            </span>\n                            <!-- When widget type is web link  -->\n                            <span *ngSwitchCase=\"'hyperlink-widget'\">\n                                <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,data)\">{{data}}</span>\n                            </span>\n\n                            <!-- When widget type is signature widget -->\n                            <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n                              <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                            </span>\n\n                            <!-- When widget type is video widget -->\n                            <span *ngSwitchCase=\"'videocapture-widget'\">\n                              <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                            </span>\n\n                            <!-- When widget type is audio widget -->\n                            <span *ngSwitchCase=\"'audiocapture-widget'\">\n                              <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                            </span>\n                            <!-- When widget type is document widget -->\n                            <span *ngSwitchCase=\"'fileupload-widget'\">\n                              <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                            </span>\n\n                            <!-- When widget type is document widget -->\n                            <span *ngSwitchCase=\"'imagecapture-widget'\">\n                              <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                            </span>\n                              <!-- default case -->\n                              <span *ngSwitchDefault>{{data}}</span>\n\n                          </div>\n                        </ng-container>\n                        <span *ngIf='!data'>\n                          <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='numeric'\">\n                            <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency \">{{  0 |  currency:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency :'symbol'}}</span>\n                            <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage\">{{0 |  axoPercentage:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].series: 'detail'}}</span>\n                            <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency\">{{0}}</span>\n                          </span>\n                          <!-- when series data is empty -->\n                          <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType!=='numeric'\">-</span>\n\n                        </span>\n\n                    </td>\n\n                    <td\n                    class=\"px-1.5\tpy-1.5\"\n                    *ngIf=\"tabularReport.colGrouping.length>1 && tabularReport.integerArray.length>0\"\n                    [colSpan]=tabularReport.rowCount?tabularReport.colData.get(data)+tabularReport.secondColData.get(data).length:tabularReport.colData.get(data)\n                    [style.font-family]=\"tabularReport.tableStyle.subHeader.font.family\"\n                    [style.font-size.px]=\"tabularReport.tableStyle.subHeader.font.size\"\n                    [style.color]=\"tabularReport.tableStyle.subHeader.font.color\"\n                    [style.background]=\"tabularReport.tableStyle.subHeader.backgroundColor\"\n                    [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"                      >\n                    <ng-container *ngIf=\"data\">\n\n                      <div  [ngSwitch]=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetType\">\n                          <!-- when data type is datetime -->\n                          <span *ngSwitchCase=\"'datepicker-widget'\">\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='datetime' || tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='both'\">\n                              <span >{{moment(data+'Z')|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                            </ng-container>\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='timestamp'\">\n                              <span>{{data}}</span>\n                            </ng-container>\n\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='time'\">\n                              <span *ngIf=\"data \">{{moment(data,'hh:mm:ss')|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                            </ng-container>\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date'\">\n                              <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date'\">{{data|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                            </ng-container>\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date_range'\">\n                              {{data}}\n                            </ng-container>\n                          </span>\n                          <!-- when data type is text -->\n                          <span *ngSwitchCase=\"'textbox-widget'\">\n                              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='decimal'|| tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='text' || tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='string'\">\n                              {{data}}\n                              </span>\n                              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='numeric'\">\n                                <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency :'symbol'}}</span>\n                                <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage\">{{data|  axoPercentage:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].series: 'column'}}</span>\n                                <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency\">{{data}}</span>\n                              </span>\n                          </span>\n                          <!-- When widget type is web link  -->\n                          <span *ngSwitchCase=\"'hyperlink-widget'\">\n                              <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,data)\">{{data}}</span>\n                          </span>\n\n                          <!-- When widget type is signature widget -->\n                          <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n\n                          <!-- When widget type is video widget -->\n                          <span *ngSwitchCase=\"'videocapture-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n\n                          <!-- When widget type is audio widget -->\n                          <span *ngSwitchCase=\"'audiocapture-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n                          <!-- When widget type is document widget -->\n                          <span *ngSwitchCase=\"'fileupload-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n\n                          <!-- When widget type is document widget -->\n                          <span *ngSwitchCase=\"'imagecapture-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n                            <!-- default case -->\n                            <span *ngSwitchDefault>{{data}}</span>\n\n                        </div>\n                      </ng-container>\n                      <span *ngIf='!data'>\n                        <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='numeric'\">\n                          <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency \">{{  0 |  currency:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency :'symbol'}}</span>\n                          <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage\">{{0 |  axoPercentage:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].series: 'detail'}}</span>\n                          <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency\">{{0}}</span>\n                        </span>\n                        <!-- when series data is empty -->\n                        <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType!=='numeric'\">-</span>\n\n                      </span>\n                  </td>\n\n                  <td\n                    class=\"px-1.5\tpy-1.5\"\n                    *ngIf=\"tabularReport.colGrouping.length>1 && tabularReport.integerArray.length===0\"\n                    [colSpan]=\"tabularReport.secondColData.get(data).length\"\n                    [style.font-family]=\"tabularReport.tableStyle.subHeader.font.family\"\n                    [style.font-size.px]=\"tabularReport.tableStyle.subHeader.font.size\"\n                    [style.background]=\"tabularReport.tableStyle.subHeader.backgroundColor\"\n                    [style.color]=\"tabularReport.tableStyle.subHeader.font.color\"\n                    [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"                    >\n\n                    <ng-container *ngIf=\"data\">\n\n                      <div  [ngSwitch]=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetType\">\n                          <!-- when data type is datetime -->\n                          <span *ngSwitchCase=\"'datepicker-widget'\">\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='datetime' || tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='both'\">\n                              <span>{{moment(data+'Z')|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                            </ng-container>\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='timestamp'\">\n                              <span>{{data}}</span>\n                            </ng-container>\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='time'\">\n                              <span *ngIf=\"data \">{{moment(data,'hh:mm:ss')|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                            </ng-container>\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date'\">\n                              <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date'\">{{data|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                            </ng-container>\n                            <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date_range'\">\n                              {{data}}\n                            </ng-container>\n                          </span>\n                          <!-- when data type is text -->\n                          <span *ngSwitchCase=\"'textbox-widget'\">\n                              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='decimal'|| tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='text' || tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='string'\">\n                              {{data}}\n                              </span>\n                              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='numeric'\">\n                                <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency :'symbol'}}</span>\n                                <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage\">{{data|  axoPercentage:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].series: 'column'}}</span>\n                                <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency\">{{data}}</span>\n                              </span>\n                          </span>\n                          <!-- When widget type is web link  -->\n                          <span *ngSwitchCase=\"'hyperlink-widget'\">\n                              <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,data)\">{{data}}</span>\n                          </span>\n\n                          <!-- When widget type is signature widget -->\n                          <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n\n                          <!-- When widget type is video widget -->\n                          <span *ngSwitchCase=\"'videocapture-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n\n                          <!-- When widget type is audio widget -->\n                          <span *ngSwitchCase=\"'audiocapture-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n                          <!-- When widget type is document widget -->\n                          <span *ngSwitchCase=\"'fileupload-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n\n                          <!-- When widget type is document widget -->\n                          <span *ngSwitchCase=\"'imagecapture-widget'\">\n                            <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                          </span>\n                            <!-- default case -->\n                            <span *ngSwitchDefault>{{data}}</span>\n\n                        </div>\n                      </ng-container>\n                      <span *ngIf='!data'>\n                        <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='numeric'\">\n                          <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency \">{{  0 |  currency:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency :'symbol'}}</span>\n                          <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage\">{{0 |  axoPercentage:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].series: 'detail'}}</span>\n                          <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency\">{{0}}</span>\n                        </span>\n                        <!-- when series data is empty -->\n                        <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType!=='numeric'\">-</span>\n\n                      </span>\n                  </td>\n\n            </ng-container>\n            <!-- grand total header -->\n            <td\n            class=\"px-1.5\tpy-1.5\"\n            *ngIf=\"tabularReport.showGrandTotal\"\n            [colSpan]=tabularReport.rowCount?tabularReport.integerArray.length+1:tabularReport.integerArray.length\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n            [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n            [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n\n            >\n                Total\n            </td>\n\n        </tr>\n\n\n        <tr *ngIf=\"m===1\">\n          <!-- to show double column grouping header with series data -->\n          <td\n          class=\"px-1.5\tpy-1.5\"\n          *ngIf=\"tabularReport.rowGrouping.length===2\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          ></td>\n          <th [id]=th\n          class=\"px-1.5\tpy-1.5\"\n          [style.color]=\"tabularReport.tableStyle.header.font.color\"\n          [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n          [style.background]=\"tabularReport.tableStyle.header.backgroundColor\"\n          [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          [style.text-align]='_attr.alignment'\n          >\n            <div class=\"tabular-report-tabel-th\">\n              <span class=\"tabular-report-table-text\">{{_attr.label}}</span>\n              <!-- <button mat-icon-button (click)=\"onContextMenu($event,i)\">\n                <mat-icon class=\"tab-down-arrow\" svgIcon=\"heroicons_outline:chevron-down\"></mat-icon>\n              </button> -->\n            </div>\n          </th>\n          <ng-container *ngFor=\"let series of tabularReport.colGrouping[0].uniqueSeries \">\n\n            <ng-container *ngFor=\"let data of tabularReport.secondColData.get(series) let x=index\">\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              [colSpan]=tabularReport.rowCount?tabularReport.integerArray.length+1:tabularReport.integerArray.length\n              [style.font-family]=\"tabularReport.tableStyle.subHeader.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.subHeader.font.size\"\n              [style.color]=\"tabularReport.tableStyle.subHeader.font.color\"\n              [style.background]=\"tabularReport.tableStyle.subHeader.backgroundColor\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              (contextmenu)=\"drillThroughContext($event, _attr, i)\"\n              >\n                <ng-container *ngIf=\"data\">\n                  <div  [ngSwitch]=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetType\">\n                      <!-- when data type is datetime -->\n                      <span *ngSwitchCase=\"'datepicker-widget'\">\n                        <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='datetime' || tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='both'\">\n                          <span>{{moment(data+'Z')|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                        </ng-container>\n                         <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='timestamp'\">\n                          <span>{{data}}</span>\n                         </ng-container>\n\n                        <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='time'\">\n                          <span *ngIf=\"data \">{{moment(data,'hh:mm:ss')|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                        </ng-container>\n                        <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date'\">\n                          <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date'\">{{data|date:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.date}}</span>\n                        </ng-container>\n                        <ng-container *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='date_range'\">\n                          {{data}}\n                        </ng-container>\n                      </span>\n                      <!-- when data type is text -->\n                      <span *ngSwitchCase=\"'textbox-widget'\">\n                          <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='decimal'|| tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='text' || tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='string'\">\n                          {{data}}\n                          </span>\n                          <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='numeric'\">\n                            <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency :'symbol'}}</span>\n                            <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage\">{{data|  axoPercentage:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].series: 'column'}}</span>\n                            <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency\">{{data}}</span>\n                          </span>\n                      </span>\n                      <!-- When widget type is web link  -->\n                      <span *ngSwitchCase=\"'hyperlink-widget'\">\n                          <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,data)\">{{data}}</span>\n                      </span>\n\n                      <!-- When widget type is signature widget -->\n                      <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n                        <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                      </span>\n\n                      <!-- When widget type is video widget -->\n                      <span *ngSwitchCase=\"'videocapture-widget'\">\n                        <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                      </span>\n\n                      <!-- When widget type is audio widget -->\n                      <span *ngSwitchCase=\"'audiocapture-widget'\">\n                        <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                      </span>\n                      <!-- When widget type is document widget -->\n                      <span *ngSwitchCase=\"'fileupload-widget'\">\n                        <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                      </span>\n\n                      <!-- When widget type is document widget -->\n                      <span *ngSwitchCase=\"'imagecapture-widget'\">\n                        <span class=\"url\" [title]=\"x1ImageMediaUrl+data\" (click)=\"redirect($event,x1ImageMediaUrl+data)\">{{data}}</span>\n                      </span>\n                        <!-- default case -->\n                        <span *ngSwitchDefault>{{data}}</span>\n\n                    </div>\n                  </ng-container>\n                  <span *ngIf='!data'>\n                    <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType==='numeric'\">\n                      <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency \">{{  0 |  currency:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency :'symbol'}}</span>\n                      <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage\">{{0 |  axoPercentage:tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].series: 'detail'}}</span>\n                      <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].valueFormatting.currency\">{{0}}</span>\n                    </span>\n                    <!-- when series data is empty -->\n                    <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.rowGrouping.length+m].widgetSubType!=='numeric'\">-</span>\n\n                  </span>\n              </td>\n            </ng-container>\n\n\n          </ng-container>\n          <td *ngIf=\"tabularReport.showGrandTotal\"\n          class=\"px-1.5\tpy-1.5\"\n          [colSpan]=tabularReport.rowCount?tabularReport.integerArray.length+1:tabularReport.integerArray.length\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n          [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n          [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\">-</td>\n      </tr>\n      </ng-container>\n        </ng-container>\n      <tr cdkDropList cdkDropListOrientation=\"horizontal\" class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\n        <!-- column headers -->\n        <ng-container *ngFor=\"let attr of tabularReport.rowGrouping; even as isEven;let m = index\">\n            <th\n                [id]=\"th\"\n                class=\"px-1.5\tpy-1.5\"\n                [style.color]=\"tabularReport.tableStyle.header.font.color\"\n                [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n                [style.background]=\"tabularReport.tableStyle.header.backgroundColor\"\n                [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n                [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n                (contextmenu)=\"onContextMenu($event,i)\"\n                [style.text-align]='attr.alignment'\n                >\n                <div class=\"tabular-report-tabel-th\">\n                  <span class=\"tabular-report-table-text\">{{attr.label}}</span>\n                  <!-- <button mat-icon-button (click)=\"onContextMenu($event,i)\">\n                    <mat-icon class=\"tab-down-arrow\" svgIcon=\"heroicons_outline:chevron-down\"></mat-icon>\n                  </button> -->\n                </div>\n             </th>\n        </ng-container>\n\n        <!-- to show integer column headers  -->\n        <ng-container *ngFor=\"let data of tabularReport.cloneDataCount; let m=index\" >\n        <ng-container *ngFor=\"let attr of tabularReport.integerArray;let i=index\">\n            <th\n            [id]=th\n            class=\"px-1.5\tpy-1.5\"\n            [style.color]=\"tabularReport.tableStyle.header.font.color\"\n            [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n            [style.color]=\"tabularReport.tableStyle.header.font.color\"\n            [style.background]=\"tabularReport.tableStyle.header.backgroundColor\"\n            [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.text-align]='attr.alignment'\n              >\n              <div class=\"tabular-report-tabel-th\">\n                <span class=\"tabular-report-table-text\">{{attr}}</span>\n                <!-- <button mat-icon-button (click)=\"onContextMenu($event,i)\">\n                  <mat-icon class=\"tab-down-arrow\" svgIcon=\"heroicons_outline:chevron-down\"></mat-icon>\n                </button> -->\n              </div>\n            </th>\n          </ng-container>\n          <!-- row count header -->\n          <th *ngIf=\"tabularReport.rowCount\"\n          [id]=th\n          class=\"px-1.5\tpy-1.5\"\n          [style.color]=\"tabularReport.tableStyle.header.font.color\"\n          [style.font-family]=\"tabularReport.tableStyle.header.font.family\"\n          [style.color]=\"tabularReport.tableStyle.header.font.color\"\n          [style.background]=\"tabularReport.tableStyle.header.backgroundColor\"\n          [style.font-size.px]=\"tabularReport.tableStyle.header.font.size\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          >\n          <div class=\"tabular-report-tabel-th\">\n            <span class=\"tabular-report-table-text\">Count</span>\n            <!-- <button mat-icon-button (click)=\"onContextMenu($event,i)\">\n              <mat-icon class=\"tab-down-arrow\" svgIcon=\"heroicons_outline:chevron-down\"></mat-icon>\n            </button> -->\n          </div>\n          </th>\n        </ng-container>\n        <!-- horizontal grand total headers -->\n        <ng-container *ngIf=\"tabularReport.showGrandTotal\">\n        <ng-container *ngFor=\"let attr of tabularReport.integerArray;let i=index\">\n          <td\n          class=\"px-1.5\tpy-1.5\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n          [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n          [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n          colGrouping\n\n            >\n            <span>{{attr}}</span>\n          </td>\n        </ng-container>\n        <td *ngIf=\"tabularReport.rowCount\"\n        class=\"px-1.5\tpy-1.5\"\n        [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n        [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n        [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n\n        >\n          Count\n        </td>\n      </ng-container>\n      </tr>\n\n      <ng-container *ngIf=\"tabularReport.rowGrouping.length>1\">\n      <ng-container *ngFor=\"let data of tabularReport.matrix.attributes[0].series;let i = index; even as isEven; let data1\">\n        <tr\n          [style.background]=\"tabularReport.tableStyle.subHeader.backgroundColor\"\n          [ngStyle]=\"{ background: isEven ? tabularReport.tableStyle.rowStyle.oddColor: tabularReport.tableStyle.rowStyle.evenColor}\"\n          [style.border]=\"tabularReport.tableStyle.border.width + ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n\n          >\n          <!--  series data  -->\n          <ng-container *ngFor=\"let _attr of tabularReport.matrix.attributes; even as isEven;let m = index\">\n            <td\n            class=\"px-1.5\tpy-1.5\"\n            *ngIf=\" _attr.rowSpan && !_attr.cplSpan && _attr.cloneSeries && _attr.cloneSeries[i]!=='repeated' && m!==1\"\n            [style.font-family]=\"tabularReport.tableStyle.subHeader.font.family\"\n            [style.font-size.px]=\"tabularReport.tableStyle.subHeader.font.size\"\n            [style.color]=\"tabularReport.tableStyle.subHeader.font.color\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.text-align]='_attr.alignment'\n            [rowSpan]='_attr.cloneGroupData[i]'\n            [style.background]=\"tabularReport.tableStyle.subHeader.backgroundColor\"\n            [style.color]=\"tabularReport.tableStyle.subHeader.font.color\"\n            (contextmenu)=\"drillThroughContext($event, _attr, i)\"\n            >\n            {{indexing(_attr.groupData[i],i)}}\n            <div  [ngSwitch]=\"_attr.widgetType\">\n              <!-- when data type is number -->\n              <span *ngSwitchCase=\"'int-widget'\">\n                <span *ngIf=\"_attr.valueFormatting.currency \">{{ _attr.series[i] |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" _attr.valueFormatting.percentage\">{{_attr.series[i]|  axoPercentage: [] : 'column'}}</span>\n                <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{_attr.series[i]}}</span>\n              </span>\n                <!-- when data type is datetime -->\n                <span *ngSwitchCase=\"'datepicker-widget'\">\n                  <ng-container *ngIf=\"_attr.widgetSubType==='date_range' || _attr.widgetSubType==='datetime' || _attr.widgetSubType==='both'\">\n                    <span>{{moment(_attr.series[i]+'Z')|date:_attr.valueFormatting.date}}</span>\n                  </ng-container>\n                  <ng-container *ngIf=\"_attr.series[i] &&  _attr.widgetSubType==='timestamp'\">\n                    <span >{{_attr.series[i]|date:_attr.valueFormatting.date}}</span>\n                  </ng-container>\n                  <ng-container *ngIf=\"_attr.widgetSubType==='time'\">\n                    <span *ngIf=\"_attr.series[i] \">{{moment(_attr.series[i],'hh:mm:ss')|date:_attr.valueFormatting.date}}</span>\n                  </ng-container>\n                  <ng-container *ngIf=\"_attr.widgetSubType==='date'\">\n                    <span *ngIf=\"_attr.series[i] && _attr.widgetSubType==='date'\">{{_attr.series[i]|date:_attr.valueFormatting.date }}</span>                </ng-container>\n                </span>\n                <!-- when data type is text -->\n                <span *ngSwitchCase=\"'textbox-widget'\">\n                    <span *ngIf=\"_attr.widgetSubType==='decimal'|| _attr.widgetSubType==='text' || _attr.widgetSubType==='string'\">\n                    {{_attr.series[i]}}\n                    </span>\n                    <span *ngIf=\"_attr.widgetSubType==='numeric'\">\n                      <span *ngIf=\"_attr.valueFormatting.currency \">{{ _attr.series[i] |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n                      <span *ngIf=\" _attr.valueFormatting.percentage\">{{_attr.series[i]|  axoPercentage: [] : 'column'}}</span>\n                      <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{_attr.series[i]}}</span>\n                    </span>\n              </span>\n\n               <!-- When widget type is web link  -->\n               <span *ngSwitchCase=\"'hyperlink-widget'\">\n                <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,_attr.series[i])\">{{_attr.series[i]}}</span>\n              </span>\n\n              <!-- When widget type is signature widget -->\n              <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n                <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n              </span>\n\n              <!-- When widget type is video widget -->\n              <span *ngSwitchCase=\"'videocapture-widget'\">\n                <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n              </span>\n\n              <!-- When widget type is audio widget -->\n              <span *ngSwitchCase=\"'audiocapture-widget'\">\n                <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n              </span>\n              <!-- When widget type is document widget -->\n              <span *ngSwitchCase=\"'fileupload-widget'\">\n                <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n              </span>\n\n              <!-- When widget type is document widget -->\n              <span *ngSwitchCase=\"'imagecapture-widget'\">\n                <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n              </span>\n\n                <!-- default case -->\n                <span *ngSwitchDefault>{{_attr.series[i]}}</span>\n                <!-- when series data is empty -->\n                <span *ngIf='!_attr.series[i]'>-</span>\n\n            </div>\n\n          </td>\n        </ng-container>\n        <!-- when two rows grouped -->\n        <ng-container *ngFor=\"let _attr of tabularReport.matrix.attributes; even as isEven;let m = index\">\n          <ng-container>\n          <td\n          class=\"px-1.5\tpy-1.5\"\n          *ngIf=\" tabularReport.rowGrouping.length>1 && m>0 && _attr.rowSpan && _attr.cloneSeries[i]!=='repeated'\"\n          [style.font-family]=\"tabularReport.tableStyle.subHeader.font.family\"\n          [style.font-size.px]=\"tabularReport.tableStyle.subHeader.font.size\"\n          [style.background]=\"tabularReport.tableStyle.subHeader.backgroundColor\"\n          [style.color]=\"tabularReport.tableStyle.subHeader.font.color\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          [style.text-align]='_attr.alignment'\n          (contextmenu)=\"drillThroughContext($event, _attr, i)\"\n          >\n          <div  [ngSwitch]=\"_attr.widgetType\">\n            <!-- when data type is number -->\n            <span *ngSwitchCase=\"'int-widget'\">\n              <span *ngIf=\"_attr.valueFormatting.currency \">{{ _attr.series[i] |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" _attr.valueFormatting.percentage\">{{_attr.series[i]|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{_attr.series[i]}}</span>\n            </span>\n              <!-- when data type is datetime -->\n              <span *ngSwitchCase=\"'datepicker-widget'\">\n                <ng-container *ngIf=\"_attr.widgetSubType==='datetime' || _attr.widgetSubType==='both'\">\n                  <span>{{moment(_attr.series[i]+'Z')|date:_attr.valueFormatting.date}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.series[i] &&  _attr.widgetSubType==='timestamp'\">\n                  <span >{{_attr.series[i]|date:_attr.valueFormatting.date}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='time'\">\n                  <span *ngIf=\"_attr.series[i] \">{{moment(_attr.series[i],'hh:mm:ss')|date:_attr.valueFormatting.date}}</span>\n                </ng-container>\n                <ng-container *ngIf=\"_attr.widgetSubType==='date'\">\n                  <span *ngIf=\"_attr.series[i] && _attr.widgetSubType==='date'\">{{moment(_attr.series[i],'YYYY-MM-dd')|date:_attr.valueFormatting.date }}</span>                </ng-container>\n              </span>\n              <!-- when data type is text -->\n              <span *ngSwitchCase=\"'textbox-widget'\">\n                  <span *ngIf=\"_attr.widgetSubType==='decimal'|| _attr.widgetSubType==='text' || _attr.widgetSubType==='string' || _attr.widgetSubType==='date_range'\">\n                  {{_attr.series[i]}}\n                  </span>\n                  <span *ngIf=\"_attr.widgetSubType==='numeric'\">\n                    <span *ngIf=\"_attr.valueFormatting.currency \">{{ _attr.series[i] |  currency:_attr.valueFormatting.currency :'symbol'}}</span>\n                    <span *ngIf=\" _attr.valueFormatting.percentage\">{{_attr.series[i]|  axoPercentage: [] : 'column'}}</span>\n                    <span *ngIf=\"!_attr.valueFormatting.percentage && !_attr.valueFormatting.currency\">{{_attr.series[i]}}</span>\n                  </span>\n            </span>\n\n             <!-- When widget type is web link  -->\n             <span *ngSwitchCase=\"'hyperlink-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is signature widget -->\n            <span *ngSwitchCase=\"'wetsignaturecapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is video widget -->\n            <span *ngSwitchCase=\"'videocapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is audio widget -->\n            <span *ngSwitchCase=\"'audiocapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n            <!-- When widget type is document widget -->\n            <span *ngSwitchCase=\"'fileupload-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n            <!-- When widget type is document widget -->\n            <span *ngSwitchCase=\"'imagecapture-widget'\">\n              <span class=\"url\" [title]=\"x1ImageMediaUrl+_attr.series[i]\" (click)=\"redirect($event,x1ImageMediaUrl+_attr.series[i])\">{{_attr.series[i]}}</span>\n            </span>\n\n              <!-- default case -->\n              <span *ngSwitchDefault>{{_attr.series[i]}}</span>\n              <!-- when series data is empty -->\n              <span *ngIf='!_attr.series[i]'>-</span>\n\n            <span *ngIf='_attr.series[i]'> ({{_attr.cloneGroupData[i]}})</span>\n          </div>\n        </td>\n        </ng-container>\n      </ng-container>\n\n      <!-- when rowCount is off -->\n      <ng-container *ngIf=\"!tabularReport.rowCount\">\n        <ng-container *ngFor=\"let data of map.get(i); let m=index\">\n        <td\n          class=\"px-1.5\tpy-1.5\"\n          [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n          [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n          [style.color]=\"tabularReport.tableStyle.body.font.color\"\n          [style.background]=\"tabularReport.tableStyle.body.backgroundColor\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n        >\n        <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n        <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n        <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n\n      </td>\n        </ng-container>\n\n\n        <!-- to show side grand total -->\n        <ng-container *ngIf=\"tabularReport.showGrandTotal  && tabularReport.matrix.attributes[1].cloneSeries[i]!=='repeated'\" >\n          <td\n          class=\"px-1.5\tpy-1.5\"\n          *ngFor=\"let data of tabularReport.sideTotal.get(i); let m=index\"\n          [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n          [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n          [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          [style.color]=\"tabularReport.tableStyle.footer.font.color\">\n          <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n          <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n          <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n\n        </td>\n          </ng-container>\n      </ng-container>\n          <!-- to show data with row count -->\n          <ng-container *ngIf='tabularReport.rowCount'>\n            <td\n            class=\"px-1.5\tpy-1.5\"\n            *ngFor=\"let data of tabularReport.dataRender.get(i) ;let m=index\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n            [style.background]=\"tabularReport.tableStyle.body.backgroundColor\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n          >\n          <span *ngIf=\"tabularReport.countIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n          <span *ngIf=\" tabularReport.countIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n          <span *ngIf=\"tabularReport.countIntegerIndexing[m] && !tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n          <span *ngIf=\"!tabularReport.countIntegerIndexing[m]\">{{data}}</span>\n\n\n         </td>\n\n          <ng-container *ngIf=\"tabularReport.integerArray.length===0 \">\n            <ng-container *ngFor=\"let data of tabularReport.countsData.get(i)\">\n              <td\n                class=\"px-1.5\tpy-1.5\"\n                [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n                [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n                [style.color]=\"tabularReport.tableStyle.body.font.color\"\n                [style.background]=\"tabularReport.tableStyle.body.backgroundColor\"\n                [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              > {{data}}</td>\n              </ng-container>\n            </ng-container>\n\n\n          <ng-container *ngIf=\"tabularReport.showGrandTotal\" >\n            <ng-container  *ngIf=\"tabularReport.sideTotal.get(i) && tabularReport.matrix.attributes[1].cloneSeries[i]!=='repeated'\">\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngFor=\"let data of tabularReport.sideTotal.get(i) let m=index\"\n              [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n              [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n              [style.color]=\"tabularReport.tableStyle.footer.font.color\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n            </td>\n          </ng-container>\n            <td\n            class=\"px-1.5\tpy-1.5\"\n            *ngIf=\"tabularReport.totalRowCount.get(i) && tabularReport.matrix.attributes[1].cloneSeries[i]!=='repeated'\"\n            [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n            [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n            [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.color]=\"tabularReport.tableStyle.footer.font.color\"\n            >{{tabularReport.totalRowCount.get(i)}}</td>\n            </ng-container>\n\n          </ng-container>\n          </tr>\n      <!-- subtotal -->\n        <tr *ngIf='tabularReport.subTotal  && (attrGlobal===i) '>\n          <ng-container *ngFor=\"let _attr of tabularReport.rowGrouping; even as isEven;let m = index\">\n            <td\n            class=\"px-1.5\tpy-1.5\"\n            *ngIf=\"m===0\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n            [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n            [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n            [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            [style.text-align]='_attr.alignment'\n            >\n              <span>Subtotal</span>\n            </td>\n            <td\n            class=\"px-1.5\tpy-1.5\"\n            *ngIf=\"m===1\"\n            [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n              [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n              [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            >-</td>\n           </ng-container>\n\n           <ng-container *ngFor=\"let data of tabularReport.colSubTotal.get(i) let m=index\">\n             <td\n             class=\"px-1.5\tpy-1.5\"\n             [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n             [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n             [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n             [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n             [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n             [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n             >\n              <ng-container *ngIf=\"!tabularReport.rowCount\">\n                <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n                <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n               </ng-container>\n              <ng-container *ngIf=\"tabularReport.rowCount\">\n                <span *ngIf=\"tabularReport.countIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" tabularReport.countIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n                <span *ngIf=\"tabularReport.countIntegerIndexing[m] && !tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n                <span *ngIf=\"!tabularReport.countIntegerIndexing[m]\">{{data}}</span>\n              </ng-container>\n             </td>\n           </ng-container>\n           <ng-container *ngIf=\"tabularReport.integerArray.length===0\">\n              <td\n                class=\"px-1.5\tpy-1.5\"\n                *ngFor=\"let data of tabularReport.countsSubTotal.get(i)\"\n                [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n                [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n                [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n                [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n                [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n                [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n                {{data}}\n              </td>\n           </ng-container>\n           <ng-container *ngIf=\"tabularReport.showGrandTotal\">\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngFor=\"let data of tabularReport.sideSubTotal.get(i) let m=index\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n              [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n              [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n                <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n                <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n              </td>\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngIf=\"tabularReport.rowCount\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n              [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n              [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n                {{tabularReport.countSTotal.get(i)}}\n              </td>\n           </ng-container>\n          </tr>\n      </ng-container>\n\n    </ng-container>\n\n\n    <!-- when single row grouping is applied -->\n    <ng-container *ngIf=\"tabularReport.rowGrouping.length===1\">\n      <ng-container *ngFor=\"let data of tabularReport.matrix.attributes[0].uniqueSeries;let i = index; even as isEven; let data1\">\n        <tr>\n          <td\n          class=\"px-1.5\tpy-1.5\"\n          [style.font-family]=\"tabularReport.tableStyle.subHeader.font.family\"\n          [style.font-size.px]=\"tabularReport.tableStyle.subHeader.font.size\"\n          [style.background]=\"tabularReport.tableStyle.subHeader.backgroundColor\"\n          [style.color]=\"tabularReport.tableStyle.subHeader.font.color\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          (contextmenu)=\"drillThroughContext($event, tabularReport.matrix.attributes[0], i)\"\n          >\n            <span>{{data}}</span>\n            <span *ngIf='!data'>-</span>\n          </td>\n          <ng-container *ngIf=\"!tabularReport.rowCount\">\n            <ng-container *ngFor=\"let data of map.get(i) let m=index\">\n            <td\n              class=\"px-1.5\tpy-1.5\"\n              [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n              [style.color]=\"tabularReport.tableStyle.body.font.color\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              [style.background]=\"tabularReport.tableStyle.body.backgroundColor\"\n              >\n              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n          </td>\n          </ng-container>\n\n            <ng-container *ngIf=\"tabularReport.showGrandTotal\" >\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngFor=\"let data of tabularReport.sideTotal.get(i); let m=index\"\n              [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n              [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n              [style.color]=\"tabularReport.tableStyle.footer.font.color\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n\n            </td>\n              </ng-container>\n\n          </ng-container>\n\n\n          <ng-container *ngIf=\"tabularReport.rowCount\">\n            <ng-container *ngFor=\"let data of tabularReport.dataRender.get(i) let m=index\">\n            <td\n              class=\"px-1.5\tpy-1.5\"\n              [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n              [style.color]=\"tabularReport.tableStyle.body.font.color\"\n              [style.background]=\"tabularReport.tableStyle.body.backgroundColor\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            >\n            <span *ngIf=\"tabularReport.countIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" tabularReport.countIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"tabularReport.countIntegerIndexing[m] && !tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n              <span *ngIf=\"!tabularReport.countIntegerIndexing[m]\">{{data}}</span>\n\n          </td>\n            </ng-container>\n\n            <ng-container *ngIf=\"tabularReport.integerArray.length===0\">\n              <ng-container *ngFor=\"let data of tabularReport.countsData.get(i)\">\n                <td\n                  class=\"px-1.5\tpy-1.5\"\n                  [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n                  [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n                  [style.color]=\"tabularReport.tableStyle.body.font.color\"\n                  [style.background]=\"tabularReport.tableStyle.body.backgroundColor\"\n                  [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n                > {{data}}</td>\n\n                </ng-container>\n              </ng-container>\n            <ng-container *ngIf=\"tabularReport.showGrandTotal\" >\n              <td\n              class='px-1.5\tpy-1.5'\n              *ngFor=\"let data of tabularReport.sideTotal.get(i) let m=index\"\n              [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n              [style.color]=\"tabularReport.tableStyle.footer.font.color\"\n              [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n             </td>\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n              [style.color]=\"tabularReport.tableStyle.footer.font.color\"\n              [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n                {{tabularReport.totalRowCount.get(i)}}\n              </td>\n              </ng-container>\n          </ng-container>\n        </tr>\n        <!-- when subtotal toggle is on -->\n        <tr *ngIf=\"tabularReport.subTotal\">\n          <td\n          class=\"px-1.5\tpy-1.5\"\n          [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n          [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n          [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n          [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"          >SubTotal</td>\n            <ng-container *ngIf=\"!tabularReport.rowCount\">\n            <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngFor=\"let data of map.get(i) let m=index\"\n              [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n              [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n              [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n            >\n\n            <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n            <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n            <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span></td>\n\n            <!-- to show side grand total -->\n            <ng-container *ngIf=\"tabularReport.showGrandTotal\" >\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngFor=\"let data of tabularReport.sideTotal.get(i) let m=index\"\n              [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n              [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n              [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n            </td>\n              </ng-container>\n            </ng-container>\n            <!-- to show row count -->\n            <ng-container *ngIf=\"tabularReport.rowCount\">\n              <td\n                class=\"px-1.5\tpy-1.5\"\n                *ngFor=\"let data of tabularReport.dataRender.get(i) let m=index\"\n                [style.font-family]=\"tabularReport.tableStyle.body.font.family\"\n                [style.font-size.px]=\"tabularReport.tableStyle.body.font.size\"\n                [style.color]=\"tabularReport.tableStyle.body.font.color\"\n                [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n                [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n                <span *ngIf=\"tabularReport.countIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" tabularReport.countIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n                <span *ngIf=\"tabularReport.countIntegerIndexing[m] && !tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.countIntegerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n                <span *ngIf=\"!tabularReport.countIntegerIndexing[m]\">{{data}}</span></td>\n              <ng-container *ngIf=\"tabularReport.integerArray.length===0\">\n                <ng-container *ngFor=\"let data of tabularReport.countsData.get(i)\">\n                  <td\n                    class=\"px-1.5\tpy-1.5\"\n                    [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n                    [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n                    [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n                    [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n                    [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n                  > {{data}}</td>\n                  </ng-container>\n                </ng-container>\n\n\n              <ng-container *ngIf=\"tabularReport.showGrandTotal\">\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngFor=\"let data of tabularReport.sideTotal.get(i) let m=index\"\n              [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n              [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n              [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n              <span *ngIf=\"tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency \">{{ data |  currency:tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage\">{{data|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"!tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.integerIndexing[m]].valueFormatting.currency\">{{data}}</span>\n\n             </td>\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              [style.font-family]=\"tabularReport.tableStyle.subFooter.font.family\"\n              [style.font-size.px]=\"tabularReport.tableStyle.subFooter.font.size\"\n              [style.color]=\"tabularReport.tableStyle.subFooter.font.color\"\n              [style.background]=\"tabularReport.tableStyle.subFooter.backgroundColor\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              >\n                {{tabularReport.totalRowCount.get(i)}}\n              </td>\n            </ng-container>\n           </ng-container>\n        </tr>\n      </ng-container>\n\n    </ng-container>\n    </tbody>\n    <!--  Table footer for grand total -->\n    <tfoot *ngIf=\"tabularReport.matrix.attributes.length>0\"\n      [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n      [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n      [style.font-size.px]=\"tabularReport.tableStyle.footer.font.size\"\n      [style.color]=\"tabularReport.tableStyle.footer.font.color\"\n      >\n      <tr *ngIf=\"tabularReport.showGrandTotal\">\n        <td\n          class=\"px-1.5\tpy-1.5\"\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\">\n          Grand Total</td>\n        <td\n          class=\"px-1.5\tpy-1.5\"\n          *ngIf='tabularReport.rowGrouping.length>1'\n          [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n          >\n          -\n        </td>\n\n          <ng-container *ngIf=\"!tabularReport.rowCount\">\n              <td *ngFor=\"let total of tabularReport.grandTotal;let m=index\"\n                class=\"px-1.5\tpy-1.5\"\n                [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n                [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n                [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n                >\n                <span *ngIf=\"tabularReport.gTotalIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.gTotalIntegerIndexing[m]].valueFormatting.currency \">{{ total |  currency:tabularReport.matrix.attributes[tabularReport.gTotalIntegerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n                <span *ngIf=\" tabularReport.gTotalIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.gTotalIntegerIndexing[m]].valueFormatting.percentage\">{{total|  axoPercentage: [] : 'column'}}</span>\n                <span *ngIf=\"tabularReport.gTotalIntegerIndexing[m] && !tabularReport.matrix.attributes[tabularReport.gTotalIntegerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.gTotalIntegerIndexing[m]].valueFormatting.currency\">{{total}}</span>\n                <span *ngIf=\"!tabularReport.gTotalIntegerIndexing[m]\">{{total}}</span>\n              </td>\n          </ng-container>\n          <!-- when row count toggle is on -->\n          <ng-container *ngIf=\"tabularReport.rowCount\">\n            <ng-container *ngIf=\"tabularReport.integerArray.length>0\">\n            <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngFor=\"let total of tabularReport.grandTotal2;let m=index\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n              [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n              >\n              <span *ngIf=\"tabularReport.countTotalIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countTotalIntegerIndexing[m]].valueFormatting.currency \">{{ total |  currency:tabularReport.matrix.attributes[tabularReport.countTotalIntegerIndexing[m]].valueFormatting.currency :'symbol'}}</span>\n              <span *ngIf=\" tabularReport.countTotalIntegerIndexing[m] && tabularReport.matrix.attributes[tabularReport.countTotalIntegerIndexing[m]].valueFormatting.percentage\">{{total|  axoPercentage: [] : 'column'}}</span>\n              <span *ngIf=\"tabularReport.countTotalIntegerIndexing[m] && !tabularReport.matrix.attributes[tabularReport.countTotalIntegerIndexing[m]].valueFormatting.percentage && !tabularReport.matrix.attributes[tabularReport.countTotalIntegerIndexing[m]].valueFormatting.currency\">{{total}}</span>\n              <span *ngIf=\"!tabularReport.countTotalIntegerIndexing[m]\">{{total}}</span>\n            </td>\n          </ng-container>\n            <ng-container *ngIf=\"tabularReport.integerArray.length===0\">\n\n              <td\n              class=\"px-1.5\tpy-1.5\"\n              *ngFor=\"let total of tabularReport.countsTotal;let i=index\"\n              [style.border]=\"tabularReport.tableStyle.border.width+'px'+ ' '+ tabularReport.tableStyle.border.borderStyle + ' ' + tabularReport.tableStyle.border.color\"\n              [style.font-family]=\"tabularReport.tableStyle.footer.font.family\"\n              [style.background]=\"tabularReport.tableStyle.footer.backgroundColor\"\n              >\n                <span>{{total}}</span>\n\n              </td>\n\n            </ng-container>\n        </ng-container>\n      </tr>\n    </tfoot>\n  </table>\n  <div class=\"flex justify-center items-center flex-col zero-records\" *ngIf=\"(tabularReport.matrix.attributes.length>0 && tabularReport.matrix.attributes[0].series.length===0)\">\n    No records available\n  </div>\n</div>\n\n<div style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\"\n  [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"contextMenu\">\n</div>\n\n<!-- Mat Menu trigger for table columns-->\n<mat-menu #contextMenu=\"matMenu\">\n  <div id=\"table-menu\">\n    <ng-template matMenuContent let-item=\"reportData\">\n      <button *ngIf=\"tabularReport.matrix.attributes.length>0 \"mat-menu-item [matMenuTriggerFor]=\"Aggregate\">Aggregate</button>\n      <button mat-menu-item (click)=\"moveColumnLeft($event)\">Move Left</button>\n      <button mat-menu-item (click)=\"moveColumnRight($event)\">Move Right</button>\n      <button *ngIf=\"screenTypes.dashboardBuilder === screenType\" mat-menu-item (click)=\"removeFromDashboard()\">Remove From Dashboard</button>\n    </ng-template>\n  </div>\n</mat-menu>\n<!-- --------------------------------------------------------------------------- -->\n\n\n\n<!-- Mat menu trigger for  Aggregation-->\n<mat-menu #Aggregate=\"matMenu\">\n  <ng-template matMenuContent *ngIf='tabularReport.matrix.attributes.length>0'>\n    <section>\n      <p>\n        <mat-checkbox  class=\"aggregate-fun\" [(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showSum'\n          (change)=\"sumAggregation($event)\" (click)=\"$event.stopPropagation()\">sum</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\" [(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showAvg'_attr.widgetSubType==='date_range' ||\n          (change)=\"averageAggregation($event)\" (click)=\"$event.stopPropagation()\">Average</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\"[(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showMax'\n          (change)=\"maxAggregation($event)\" (click)=\"$event.stopPropagation()\">Max</mat-checkbox>\n      </p>\n      <p>\n        <mat-checkbox class=\"aggregate-fun\"[(ngModel)]='tabularReport.matrix.attributes[currentIndex].aggregate.showMin'\n          (change)=\"minAggregation($event)\"(click)=\"$event.stopPropagation()\">Min</mat-checkbox>\n      </p>\n    </section>\n  </ng-template>\n</mat-menu>\n\n<div *ngIf=\"!tabularReport.isDataLoaded && tabularReport.matrix.attributes.length!==0\" class=\"loader-spinner\">\n  <app-ghost-loader [elementType]=\"GhostLoaderType.TabularChartLoader\" ></app-ghost-loader>\n</div>\n<!-- <div *ngIf=\"!tabularReport.isDataLoaded && tabularReport.matrix.attributes.length!==0\" class=\"loader-spinner\"> -->\n  <!-- <mat-spinner [diameter]=\"40\"></mat-spinner></div> -->\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport moment from 'moment';\nimport { ElementsDto } from '../../../../../common-dto/elements-dto';\nimport { ReportBuilderMasterService } from '../../../report-builder-master.service';\nimport { TabularReport } from '../../tabular-report';\nimport { TabularReportService } from '../../tabular-report.service';\nimport { FieldsListService } from '../../../../../field-list-lib/fields-list.service';\nimport { Report } from '../../../../../common-utils/report';\nimport { AttributeData } from '../../../../fields/attribute-data';\nimport { DashboardBuilderService } from '../../../../../dashboard-lib/dashboard-builder.service';\nimport { ScreenType } from '../../../../../enlighten-lib/filters/condition-type';\nimport { TabularComponent } from '../tabular.component';\nimport { AxFilter } from '../../../../filters/ax-filter';\nimport { GhostLoaderType } from '../../../../../ghost-loader/ghost-loader.component';\n\n@Component({\n  selector: 'lib-column-group-view',\n  templateUrl: './column-group-view.component.html',\n  styleUrls: ['./column-group-view.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class ColumnGroupViewComponent implements OnInit, OnChanges {\n\n\n  @Input() tabularReport: TabularReport;\n  @Input() isEditable: boolean;\n  @Input() x1ImageMediaUrl: string;\n  @Input() screenType: ScreenType;\n  @Input() drillThroughParentType: ScreenType;\n  @Input() drillThroughFilterInput: AxFilter;\n  @Input() parentRef: TabularComponent;\n  @Input() reportId: number;\n  @ViewChild(MatMenuTrigger)\n\n  contextMenu: MatMenuTrigger;\n  columnData: any;\n  contextMenuPosition = { x: '0px', y: '0px' };\n  currentIndex: number;\n  _avg: boolean = false;\n  _max: boolean = false;\n  _min: boolean = false;\n  showSum: boolean = false;\n  showMax: boolean = false;\n  showMin: boolean = false;\n  showAvg: boolean = false;\n  moment: any = moment;\n  isDirty: boolean;\n  report: Report;\n  attrGlobal: number;\n  count: number;\n  ct: number;\n  colSeries: number;\n  attributeDataClone: Array<AttributeData> = [];\n  map: Map<number, any>;\n  isDataLoaded = false;\n  fColData: Array<string>;\n  GhostLoaderType = GhostLoaderType;\n  constructor(\n    private _reportBuilderMasterService: ReportBuilderMasterService,\n    private _fieldsListService: FieldsListService,\n    private _tabularReportService: TabularReportService,\n    private _dashboardBuilderService: DashboardBuilderService\n  ) { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    // this.tabularReport=this._tabularReportService.columnData(this.tabularReport);\n  }\n\n  ngOnInit(): void {\n    this.report = this._reportBuilderMasterService.report;\n\n    this.tabularReport = this._tabularReportService.columnData(this.tabularReport);\n\n    this.tabularReport.isDataLoaded = false;\n    this.getMatrixDimension();\n\n    this._tabularReportService.dataRender.subscribe((value) => {\n      this.map = value;\n      this.tabularReport.firstColData = value;\n    });\n  }\n\n  getMatrixDimension(): void {\n    if (this.tabularReport.matrix.attributes.length > 0) {\n      const data = new ElementsDto(this.tabularReport);\n      data.reportId = this.reportId;\n      data.type = 'tabular-report';\n      data.orderBy = this.tabularReport.rowGrouping;\n      data.pageIndex = 0;\n      data.pageSize = 0;\n      data.pageLength=0;\n      data.sqlQuery=this.tabularReport.sqlQuery; \n      data.isCustomElement = this.tabularReport.isCustomElement;\n      if (this.drillThroughParentType == ScreenType.dashboardBuilder || this.drillThroughParentType == ScreenType.containerDashboard) {\n        data.apiType = 'dashboard';\n      }\n      if (this.screenType === ScreenType.drillThrough) {\n        data.filters.globalFilters.basic.push(this.drillThroughFilterInput);\n      }\n      this._fieldsListService.getMatrixData(data).then((entitiesAttribute) => {\n        if (entitiesAttribute != null) {\n          entitiesAttribute.matrix.attributes.showSum = true;\n          this.tabularReport.matrix.attributes = entitiesAttribute.matrix.attributes;\n          this.tabularReport = this._tabularReportService.groupData(this.tabularReport);\n          this.tabularReport.colGrouping.forEach((attribute) => {\n            this.tabularReport = this._tabularReportService.newData(this.tabularReport, attribute);\n          });\n          this.tabularReport = this._tabularReportService.dataFactory(this.tabularReport);\n          if (this.tabularReport.rowCount && this.tabularReport.integerArray.length > 0) { this.tabularReport = this._tabularReportService.rowCountData(this.tabularReport); }\n          this.tabularReport.isDataLoaded = true;\n        }\n        this.isDataLoaded = true;\n        this.tabularReport.isDataLoaded = true;\n      });\n    }\n    this.isDataLoaded = true;\n    this.tabularReport.isDataLoaded = true;\n  }\n\n\n  // context menu for table columns\n  onContextMenu(event: MouseEvent, index: number, attr: AttributeData): void {\n    if (!this.isEditable) {\n      event.preventDefault();\n      return;\n    }\n    event.stopPropagation();\n    event.preventDefault();\n    this.currentIndex = index;\n    this.contextMenuPosition.x = event.clientX + 'px';\n    this.contextMenuPosition.y = event.clientY + 'px';\n    this.contextMenu.menuData = { 'attr': attr };\n    this.contextMenu.menu.focusFirstItem('mouse');\n    this.contextMenu.openMenu();\n  }\n\n  /**\n   * to returns sum of rows\n   *\n   */\n  sum(series: Array<string>): number {\n    let total = 0;\n    for (const data of series) {\n      total += Number(data);\n    }\n    this.report.isDirty = true;\n    return total;\n  }\n  /**\n   * to returns average of rows\n   *\n   */\n  avg(series: Array<string>): number {\n    let total = 0;\n    for (const data of series) {\n      total += Number(data);\n    }\n    this.report.isDirty = true;\n    return total / series.length;\n  }\n\n  /**\n   * to returns maximum value of rows\n   *\n   */\n  max(series: Array<string>): number {\n    const a = [];\n    for (const data of series) {\n      a.push(Number(data));\n    }\n    this.report.isDirty = true;\n    return Math.max(...a);\n  }\n\n  /**\n   * to returns minimum value of rows\n   *\n   */\n  min(series: Array<string>): number {\n    const a = [];\n    for (const data of series) {\n      a.push(Number(data));\n    }\n    this.report.isDirty = true;\n    return Math.min(...a);\n  }\n\n  /***\n   * On chart context  click for sum aggregation\n   */\n  sumAggregation(ob: MatCheckboxChange): void {\n    this.showSum = ob.checked;\n  }\n  /***\n   * On chart context  click for avg aggregation\n   */\n  averageAggregation(ob: MatCheckboxChange): void {\n    this.showAvg = ob.checked;\n  }\n  /***\n   * On chart context  click for max aggregation\n   */\n  maxAggregation(ob: MatCheckboxChange): void {\n    this.showMax = ob.checked;\n  }\n  /***\n   * On chart context  click for min aggregation\n   */\n  minAggregation(ob: MatCheckboxChange): void {\n    this.showMin = ob.checked;\n  }\n\n\n  /**\n   * to set isDirty after changes in tabular report filter\n   *\n   */\n  dirtyFlowCheckEvent(): void {\n    this.report.isDirty = true;\n  }\n\n  /**used to create a row for subtotal\n *\n *@param number\n *@param number\n */\n  indexing(count_: number, i: number): void {\n    this.ct = count_;\n    if (count_ === 1) {\n      this.count = 1;\n      this.attrGlobal = i;\n    }\n    if (count_ > 1) {\n      this.attrGlobal = (count_ + i) - 1;\n    }\n\n  }\n  /**\n   * will emit table properties on table click t\n   *\n   * @param event\n   */\n  tableSelect(event: PointerEvent): void {\n    event.stopPropagation();\n    this._tabularReportService.tableClickEvent(this.tabularReport);\n  }\n\n  /**\n   * to redirect media url\n   *\n   * @param event\n   * @param url\n   */\n  redirect(event: KeyboardEvent, url: string): void {\n    if (event.ctrlKey || event.metaKey) {\n      window.open(url, '_blank');\n    }\n  }\n\n  removeFromDashboard(): void {\n    this._dashboardBuilderService.deleteElement.emit(this.tabularReport);\n  }\n\n  drillThroughContext(event: MouseEvent, attribute: AttributeData, i: number): void {\n    this.parentRef.drillThroughContext(event, attribute, attribute.series.indexOf(attribute.uniqueSeries[i]));\n  }\n}\n","import { Matrix} from '../graphical-report/chart/matrix';\nimport { AxElement } from '../../elements/ax-element';\nimport { AttributeData } from '../../fields/attribute-data';\nimport { TableStyle } from './table-style';\nimport { EventEmitter, Type} from '@angular/core';\nimport { TabularComponent } from './tabular/tabular.component';\n\nexport class Tabular extends AxElement{\n\tcomponent: Type<TabularComponent> = TabularComponent;\n    matrix: Matrix;\n    showSerialNo: boolean;\n    showGrandTotal: boolean;\n    tableStyle: TableStyle;\n\tisDirty: boolean;\n    isEditable;\n    rowGrouping: Array<AttributeData>;\n    colGrouping: Array<AttributeData>;\n\treportChangeEvent: EventEmitter<any>;\n    subTotal: boolean;\n    rowCount: boolean;\n    showSum: boolean;\n    showMax: boolean;\n    showMin: boolean;\n    showAvg: boolean;\n    isDataLoaded: boolean;\n    columnSpan: number;\n    serialNoColWidth: number;\n    sCount: Array<number>;\n    attribute: Array<AttributeData>;\n    sorting: Array<AttributeData>;\n    integerArray: Array<string>;\n    numberFieldExist: boolean=false;\n    colData = new Map<string, number>();\n    rowData=new Map<string,number>();\n    cloneDataCount=Array<number>();\n    secondColData=new Map<string,any>();\n    integerIndex=Array<number>();\n    seriesData=new Map<number,any>();\n    dataRender=new Map<number,any>();\n    firstColData=new Map<number,any>();\n    dataIndex=Array<number>();\n    secondColSeries: Array<string>;\n    firstColSeries: Array<string>;\n    grandTotal: Array<number>;\n    grandTotal2: Array<number>;\n    sideTotal=new Map<number,any>();\n    totalRowCount=new Map<number,number>();\n    rowCountIndex=new Map<number,any>();\n    sideGrandTotal: Array<number>;\n    integerData: Array<number>;\n    integerIndexing: Array<number>;\n    countArray: Array<number>;\n    rowsData: Array<string>;\n    countsData=new Map<number,any>();\n    countsTotal: Array<number>;\n    gTotalIntegerIndexing: Array<number>;\n    countIntegerIndexing: Array<number>;\n    countTotalIntegerIndexing: Array<number>;\n    dataIndexSTotal=new Map<number,number>();\n    colSubTotal=new Map<number,any>();\n    colSubTotalCount=new Map<number,any>();\n    sideSubTotal=new Map<number,any>();\n    countSTotal=new Map<number,number>();\n    countsSubTotal=new Map<number,any>();\n    cloneIntegerArray: Array<any>;\n    showBottomRow: boolean;\n    pageIndex: number=1;\n    pageSize: number=10;\n    pageLength: number;\n    sqlQuery:any;\n    isCustomElement: boolean;\n\n    constructor(tabularReport?: Tabular,){\n        super(tabularReport);\n        this.type='tabular';\n        this.subType='tabular-report';\n        if(tabularReport){\n            this.tabular(tabularReport);\n        }\n    }\n/**function to create tabular report object with existing values\n*\n*@param TabularReport\n*/\ntabular(tabularReport: Tabular): void{\n    this.matrix=new Matrix(tabularReport.matrix);\n    this.showSerialNo= tabularReport.showSerialNo;\n    this.showGrandTotal= tabularReport.showGrandTotal;\n    this.subTotal=tabularReport.subTotal;\n    this.tableStyle=  new TableStyle(tabularReport.tableStyle);\n    this.isEditable= tabularReport.isEditable;\n    this.rowGrouping=tabularReport.rowGrouping;\n    this.colGrouping=tabularReport.colGrouping;\n    this.rowCount=tabularReport.rowCount;\n    this.columnSpan=tabularReport.columnSpan;\n    this.showSum=tabularReport.showSum;\n    this.showMax=tabularReport.showMax;\n    this.showMin=tabularReport.showMin;\n    this.showAvg=tabularReport.showAvg;\n    this.rowGrouping=tabularReport.rowGrouping ? tabularReport.rowGrouping : [];\n    this.colGrouping=tabularReport.colGrouping ? tabularReport.colGrouping : [];\n    this.sorting=tabularReport.sorting? tabularReport.sorting:[];\n    this.showBottomRow=tabularReport.showBottomRow;\n    this.pageIndex=tabularReport.pageIndex?tabularReport.pageIndex:0;\n    this.pageSize=tabularReport.pageSize?tabularReport.pageSize : 10;\n    this.pageLength=tabularReport.pageLength? tabularReport.pageLength:0;\n    this.sqlQuery=tabularReport.sqlQuery;\n    this.isCustomElement=tabularReport.isCustomElement;\n}\n\n/**function to update group data value when sub total toggle value changed\n*\n*@param TabularReport\n*/\nsubTotalToggle(tabularReport: Tabular): Tabular{\n\n    if(tabularReport.colGrouping.length>0 && tabularReport.rowGrouping.length>1){\n        tabularReport=this.countSubTotal(tabularReport);\n    }\n\n    if(tabularReport.colGrouping.length===0){\n    const i=0;\n    if(tabularReport.rowGrouping.length===3){\n      if(tabularReport.matrix.attributes[2] && tabularReport.matrix.attributes[2].rowSpan && tabularReport.matrix.attributes[2].groupData[i]){\n        tabularReport=this.rowSpan(tabularReport,2);\n\n     }\n    }\n    if (tabularReport.rowGrouping.length<3){\n      if(tabularReport.matrix.attributes[1].rowSpan && tabularReport.matrix.attributes[1].groupData[i]){\n            tabularReport=this.rowSpan(tabularReport,1);\n      }\n    }\n    }\n    return tabularReport;\n}\n\n/**function to calculate 2nd and 3rd row grouping data values to show subtotal\n*\n*@param TabularReport\n*@param number\n*/\nrowSpan(tabularReport: Tabular, _number: number): Tabular{\n    let i=0;\n    let groupData=0;\n    let counter=0;\n    if(_number===1){\n    while(i<tabularReport.matrix.attributes[0].groupData.length){\n        groupData=tabularReport.matrix.attributes[_number-1].groupData[i];\n        const subSeries=tabularReport.matrix.attributes[_number].groupData.slice(i,i+groupData);\n        let subIndex=0;\n        counter=0;\n        while(subIndex<subSeries.length){\n            if(subSeries[subIndex]>1){\n                counter++;\n                subIndex+=subSeries[subIndex];\n            }\n            else{\n                subIndex+=1;\n            }\n        }\n        tabularReport.matrix.attributes[_number-1].cloneGroupData[i]+=counter;\n    i=i+groupData;\n    }}\n\n    if(_number===2){\n        i=0;\n        while(i<tabularReport.matrix.attributes[0].groupData.length){\n            groupData=tabularReport.matrix.attributes[0].groupData[i];\n            const subSeries=tabularReport.matrix.attributes[1].groupData.slice(i,i+groupData);\n            let subIndex=0;\n            counter=0;\n            while(subIndex<subSeries.length){\n                const nIndex=i+subIndex;\n                const gData=tabularReport.matrix.attributes[1].groupData[nIndex];\n                const subSeries2=tabularReport.matrix.attributes[2].groupData.slice(nIndex,nIndex+gData);\n                    let ssindex=0;\n                    while(ssindex<subSeries2.length){\n                        if(subSeries2[ssindex]>1){\n                            ssindex+=subSeries2[ssindex];\n                            tabularReport.matrix.attributes[0].cloneGroupData[i]++;\n                            tabularReport.matrix.attributes[_number-1].cloneGroupData[nIndex]++;\n                        }\n                        else{\n                            ssindex++;\n                        }\n                    }\n                if(subSeries[subIndex]>1){\n                    counter++;\n                    subIndex+=subSeries[subIndex];\n                }\n                else{\n                    subIndex+=1;\n                }\n            }\n\n            i=i+groupData;\n        }\n}\n\n\n    return tabularReport;\n}\n/**function to count subtotal when column grouping is applied\n*\n*@param TabularReport\n*@param number\n*/\ncountSubTotal(tabularReport: Tabular): Tabular{\n    let i=0;\n    let index=0;\n    while(i<tabularReport.matrix.attributes[0].series.length){\n        const data1=Array(tabularReport.firstColData.get(0).length).fill(0);\n        const data2=Array(tabularReport.dataRender.get(0).length).fill(0);\n        const gData=tabularReport.matrix.attributes[0].groupData[i];\n        const data=tabularReport.matrix.attributes[1].series.slice(i,i+gData);\n        let max=[...new Set(data)].length;\n        max=index+max;\n        const subTotal=tabularReport.rowCount? data2 :data1;\n        const sideSubTotal=Array(tabularReport.sideTotal.get(0).length).fill(0);\n        const countSubTotal=Array(tabularReport.countsData.get(0).length).fill(0);\n        let countSTotal=0;\n         while(index<max){\n             const dataIndex=tabularReport.dataIndexSTotal.get(index);\n             const countTotalValues=tabularReport.totalRowCount.get(dataIndex);\n             const countsSubTotal=tabularReport.countsData.get(dataIndex);\n             countSTotal=countSTotal+countTotalValues;\n             const sideTotalValues=tabularReport.sideTotal.get(dataIndex);\n             const dataSeriesValues=tabularReport.rowCount? tabularReport.dataRender.get(dataIndex):tabularReport.firstColData.get(dataIndex);\n            sideTotalValues.forEach((element,_index) => {\n                sideSubTotal[_index]=(sideSubTotal[_index]+element);\n            });\n\n             dataSeriesValues.forEach((element,ind) => {\n                subTotal[ind]=(subTotal[ind]+element);\n              });\n\n             countsSubTotal.forEach((element,countIndex) => {\n                countSubTotal[countIndex]=(countSubTotal[countIndex]+element);\n             });\n           index++;\n         }\n         tabularReport.countSTotal.set((i+gData)-1,countSTotal);\n         tabularReport.sideSubTotal.set((i+gData)-1,sideSubTotal);\n         tabularReport.colSubTotal.set((i+gData)-1,subTotal);\n         tabularReport.countsSubTotal.set((i+gData)-1,countSubTotal);\n         i=i+tabularReport.matrix.attributes[0].groupData[i];\n    }\n    return tabularReport;\n}\n}\n","import { EntityBase } from '../common-utils/entity-base';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { FilterCategory } from '../enlighten-lib/filters/filter-category';\nimport { DashboardElement } from './dashboard-element/dashboard-element';\n\nexport class Dashboard extends EntityBase {\n    name: string;\n    description: string;\n    appVersionId: number;\n    userId: number = 0;\n    dashboardElements: Array <DashboardElement>;\n    filters: Array<AxFilter>;\n    categories: Array<FilterCategory>;\n    isDirty: boolean;\n    autoLayout: boolean;\n    constructor(dashboard?: Dashboard) {\n        super(dashboard);\n        this.name=dashboard.name;\n        this.appVersionId = dashboard.appVersionId;\n        this.dashboardElements = dashboard && dashboard.dashboardElements || [];\n        this.filters = dashboard && AxFilter.createFilters(dashboard.filters) || [];\n        this.categories = dashboard && FilterCategory.createCategories(dashboard.categories) || [];\n        this.isDirty=dashboard && dashboard.isDirty || false;\n        this.autoLayout=dashboard && dashboard.autoLayout || false;\n    }\n}\n\n","export class DashboardElementProperty {\n    rows: number;\n    cols: number;\n    x: number;\n    y: number;\n    constructor(dasboardElementProperty?: DashboardElementProperty) {\n        this.rows = dasboardElementProperty && dasboardElementProperty.rows || 7;\n        this.cols = dasboardElementProperty && dasboardElementProperty.cols || 8;\n        this.x = dasboardElementProperty && dasboardElementProperty.x || 0;\n        this.y = dasboardElementProperty && dasboardElementProperty.y || 0;\n    }\n}\n","import { AxoUtils } from '../../axo-utils/axo-utils';\nimport { AxElement } from '../../enlighten-lib/elements/ax-element';\nimport { DashboardElementProperty } from '../dashboard-element-property/dashboard-property/dashboard-element-property';\nexport class DashboardElement {\n    id: number;\n    guid: string;\n    element: AxElement;\n    properties: DashboardElementProperty;\n    constructor(dashboardElement?: DashboardElement) {\n        this.guid = dashboardElement && dashboardElement.guid || AxoUtils.guid();\n        this.id = dashboardElement && dashboardElement.id || 0;\n        this.element = dashboardElement && dashboardElement.element || null;\n        this.properties = dashboardElement && new DashboardElementProperty(dashboardElement.properties) || new DashboardElementProperty();\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { AxElement } from '../enlighten-lib/elements/ax-element';\nimport { ElementFactory } from '../enlighten-lib/elements/element-factory';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { FilterCategory } from '../enlighten-lib/filters/filter-category';\nimport { Chart } from '../enlighten-lib/report/graphical-report/chart/chart';\nimport { ChartFactory } from '../enlighten-lib/report/graphical-report/chart/chart-factory';\nimport { Tabular } from '../enlighten-lib/report/tabular-report/tabular';\nimport { Dashboard } from './dashboard';\nimport { DashboardElementProperty } from './dashboard-element-property/dashboard-property/dashboard-element-property';\nimport { DashboardElement } from './dashboard-element/dashboard-element';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DashboardControlService {\n  dashboard: Dashboard;\n  elements: Array<AxElement> = [];\n  elementFactory: ElementFactory;\n  chartFactory: ChartFactory;\n  /**\n   * Constructor\n   */\n  constructor() {\n    this.chartFactory = new ChartFactory();\n  }\n\n\n  createDashboardObject(dashboardDetail: Dashboard): Dashboard {\n    this.dashboard = new Dashboard(dashboardDetail);\n    // this.dashboard.filters = this.createDashboardFilterArray(dashboardDetail.filters);\n    // this.dashboard.categories = this.createDashboardFilterCategoryArray(dashboardDetail.categories);\n    this.dashboard.dashboardElements = this.createDashboardElementArray(dashboardDetail.dashboardElements);\n\n    return this.dashboard;\n  }\n  createDashboardFilterArray(dashboardFilters: Array<AxFilter>): Array<AxFilter>{\n    let dashboardFilterArray = Array<AxFilter>();\n    dashboardFilterArray=AxFilter.createFilters(dashboardFilters);\n    return dashboardFilterArray;\n  }\n  createDashboardFilterCategoryArray(dashboardFiltersCategory: Array<FilterCategory>): Array<FilterCategory>\n  {\n    let dashboardFilterCategoryArray = Array<FilterCategory>();\n    dashboardFilterCategoryArray=FilterCategory.createCategories(dashboardFiltersCategory);\n    return dashboardFilterCategoryArray;\n  }\n\n  createDashboardElementArray(dashboardElements: Array<DashboardElement>): Array<DashboardElement> {\n    const dashboardElementArray = Array<DashboardElement>();\n    dashboardElements.forEach((dashboardEement) => {\n      const dashboardElementObj = new DashboardElement(dashboardEement);\n      dashboardElementObj.element = this.getElementObject(dashboardElementObj.element);\n      dashboardElementObj.element.xPosition = 0;\n      dashboardElementObj.element.yPosition = 0;\n      dashboardElementObj.element.id = dashboardEement.id;\n      dashboardElementObj.element.apiType = 'dashboard';\n      if(dashboardElementObj.element.subType==='card-chart' && dashboardEement.properties.cols===0){\n          dashboardEement.properties.rows=4;\n          dashboardEement.properties.cols=5;\n      }\n      dashboardElementObj.properties = new DashboardElementProperty(dashboardElementObj.properties);\n      dashboardElementArray.push(dashboardElementObj);\n    });\n    return dashboardElementArray;\n\n  }\n\n   // Element Factory methods\n   getElementObject(element: AxElement): AxElement {\n    let _element;\n    switch (element.type) {\n        case 'chart-element':\n            _element = this.chartFactory.createChartObject(element as Chart);\n            return _element;\n        case 'static-control-element':\n            _element = this.chartFactory.createChartObject(element as Chart);\n            return _element;\n        case 'tabular':\n            _element= new Tabular(element as Tabular);\n            return _element;\n        }\n    }\n\n    /**function to create axElements object with existing values\n    *\n    *@param AxElement\n    *\n    */\n    createElement(elements: Array<AxElement>): Array<AxElement>{\n        const _elements: Array<AxElement> = [];\n        if(elements){\n            elements.forEach((element) => {\n                const _element=this.getElementObject(element);\n                _elements.push(_element);\n            });\n        }\n        return _elements;\n    }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DashboardControlService } from './dashboard-control.service';\nimport { MatMomentDateModule, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { SelectDashboardsDialogComponent } from './show-dashboards/show-dashboards.component';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DashboardListService } from './dashboard-list.service';  \n\n@NgModule({\n  declarations: [\n    SelectDashboardsDialogComponent\n  ],\n  imports: [\n    CommonModule,\n    MatInputModule,\n    MatButtonModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    MatMomentDateModule,\n    MatListModule,\n    MatCheckboxModule,\n    MatTableModule,\n    MatSortModule,\n    MatSelectModule,\n    MatSlideToggleModule,\n    MatDialogModule,\n    MatMenuModule,\n    MatGridListModule,\n    MatFormFieldModule,\n    ReactiveFormsModule,\n    MatSnackBarModule,\n    MatIconModule,\n    FormsModule,\n    ReactiveFormsModule\n\n  ],\n  exports:[\n  ],\n  providers:[\n    DashboardControlService,\n    DashboardListService,\n    { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\n  ]\n})\nexport class DashboardLibModule { }\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MyAppListService } from '../app-list/my-app-list.service'; \nimport { AppListDto } from '../../public-api'; \nimport { CommonLibConfigurationService } from '../../public-api';\n\n@Component({\n  selector: 'app-qrdialog',\n  templateUrl: './qrdialog.component.html',\n  styleUrls: ['./qrdialog.component.scss']\n})\nexport class QrdialogComponent implements OnInit {\n  @Input() appListDto: AppListDto;\n\n  constructor(\n    public dialogRef: MatDialogRef<QrdialogComponent>,\n    private myAppListService: MyAppListService,\n    private commonLibConfig: CommonLibConfigurationService,\n\n  ) { }\n  @Output() close: EventEmitter<void> = new EventEmitter<void>();\n  viewWebAppUrl: string = this.commonLibConfig.ViewWebApp;\n\n  ngOnInit() {\n    if (this.appListDto && this.appListDto.appVersionId) {\n      this.fetchAppDetails(this.appListDto.appVersionId);\n    }\n  }\n\n  downloadAndroidApp() {\n    // Logic to download Android app\n  }\n\n  downloadIOSApp() {\n    // Logic to download iOS app\n  }\n  CloseDialog(){\n    this.dialogRef.close();\n  }\n  viewSubmissions() {\n\n  }  \n  fetchAppDetails(appVersionId: any) {\n    this.myAppListService.fetchAppDetails(appVersionId,this.commonLibConfig.axonatorX1Url).subscribe((response) => {\n      // Handle the response here\n      console.log('App details:', response);\n    }, (error) => {\n      // Handle error\n      console.error('Error fetching app details:', error);\n    });\n  }\n\n  onViewSubmissionClick():void {\n    window.open(this.viewWebAppUrl, '_blank');\n  }\n}\n","<div class=\"popup-container test\">\n  <h1 mat-dialog-title>Get Mobile App</h1>\n  <button class=\"close-icon\" (click)=\"CloseDialog()\"></button>\n  <p>Download the mobile app to start using on your Android or iOS mobile device</p>\n\n  <div class=\"flex items-center justify-evenly my-6\">\n    <div class=\"flex flex-col justify-between items-center\">\n      <!-- QR code for Android app -->\n      <img src=\"assets/android-link-qr.svg\" alt=\"Android QR Code\" class=\"custom-img qr-code-img\"\n        (click)=\"downloadAndroidApp()\">\n      <img src=\"assets/playstore.svg\" alt=\"Android Logo\" class=\"app-logo\" (click)=\"downloadAndroidApp()\">\n    </div>\n    <div class=\"flex flex-col justify-between items-center\">\n      <!-- QR code for iOS app -->\n      <img src=\"assets/ios-link-qr.svg\" alt=\"iOS QR Code\" class=\"custom-img qr-code-img\" (click)=\"downloadIOSApp()\">\n      <img src=\"assets/appstore.svg\" alt=\"iOS Logo\" class=\"app-logo\" (click)=\"downloadIOSApp()\">\n    </div>\n  </div>\n\n  <div class=\"w-full text-center\">\n    <!-- <a mat-button color=\"primary\" [href]=\"viewWebAppUrl\" target=\"_blank\">View Submissions on Web</a> -->\n     <button class=\"stroke-btn\" (click)=\"onViewSubmissionClick()\">View submission on web</button>\n  </div>\n</div>","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-loading-dialog',\n  template: `\n    <div class=\"loading-dialog-content\">\n      <div *ngIf=\"data?.loadingMessage; else defaultContent\">{{ data.loadingMessage }}</div>\n      <ng-template #defaultContent>\n        <img src=\"assets/App_install.gif\" alt=\"app-publish-animation.gif\" style=\"border-radius:15px\">\n      </ng-template>\n    </div>\n  `,\n  styles: [`\n    .loading-dialog-content {\n      width: 550px;\n      border-radius: 15px !important;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      justify-content: center;\n    }\n  `]\n})\nexport class LoadingAppinstallComponent {\n  @Input() data: { loadingMessage: string } = { loadingMessage: '' };\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA,MatDialogRef } from '@angular/material/dialog';\nimport { QrdialogComponent } from '../qrdialog/qrdialog.component'; \nimport { MatDialog } from '@angular/material/dialog';\nimport { trigger, state, style, animate, transition } from '@angular/animations';\nimport { CommonService } from '../common.service'; \nimport { CommonLibConfigurationService } from '../common-lib-configuration.service';\n\n@Component({\n  selector: 'app-success-dialog',\n    templateUrl: `./success-dialog.component.html`,\n    styleUrls:[`./success-dialog.component.scss`],\n    animations: [\n      trigger('slideInOut', [\n        transition(':enter', [\n          style({ transform: 'translateX(100%)' }),\n          animate('0.3s ease-in-out', style({ transform: 'translateX(0%)' }))\n        ]),\n        transition(':leave', [\n          animate('0.3s ease-in-out', style({ transform: 'translateX(100%)' }))\n        ])\n      ])\n    ]\n})\nexport class SuccessDialogComponent {\n  viewWebAppUrl: string = this.commonLibConfig.ViewWebApp;\n  user: string;\n  userCount: number;\n\n  constructor(\n    @Inject(MAT_DIALOG_DATA) public data: { message: string ,heading:string},\n    public dialog: MatDialog,public dialogRef: MatDialogRef<SuccessDialogComponent>, \n    private _commonService: CommonService,private commonLibConfig: CommonLibConfigurationService,\n  ) {}\n\n\n  onCloseClick(): void {\n    this.dialogRef.close();\n  }\n\n  openQRCodeDialog(): void {\n    this.dialogRef.close();\n    const qrDialogRef = this.dialog.open(QrdialogComponent, {\n      width: '250px', // Adjust width as needed\n    });\n  }\n\n  getUserDetails(): void {\n    this._commonService.getUserDetail()\n      .subscribe((response: any) => {\n        this.user = response.ud;\n        this.userCount = response?.ud?.user_count || 0;\n        // this.userLimit = response?.ud?.user_limit || 0;\n        // this.trialEndDate = response?.ud?.trial_end_date || '';\n        // this.payment_status = response?.ud?.payment_status ?? '';\n\n        // this.calculateDaysRemaining();  // Calculate days remaining after fetching details\n\n        // this._changeDetectorRef.detectChanges();\n        // // After fetching the user details, populate the user object with the response\n      });\n  }\n  \n  ngOnInit(): void {\n    this.getUserDetails();\n  }\n}\n\n","<!-- success-dialog.component.html -->\n<div [@slideOutLeft]>\n\n\n<div class=\"success-dialog-parent\">\n    <div class=\"content-container-parent\">\n        <mat-icon _ngcontent-swa-c166=\"\" role=\"img\" svgicon=\"axo_sculptor_publish-1\" class=\"mat-icon notranslate publish-svg mat-icon-no-color\" aria-hidden=\"true\" ng-reflect-svg-icon=\"axo_sculptor_publish-1\" data-mat-icon-type=\"svg\" data-mat-icon-name=\"axo_sculptor_publish-1\"><svg width=\"100%\" height=\"100%\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" fit=\"\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\">\n            <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#D1FADF\"></rect>\n            <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#ECFDF3\" stroke-width=\"8\"></rect>\n            <path d=\"M25.9033 23.1645L22.2515 23.5567C21.4581 23.642 20.7778 24.1544 20.4846 24.8876L19.3615 27.6963C18.9926 28.6188 19.9923 29.4926 20.8746 29.0188L23.5717 27.6506M32.6011 30.0648L32.204 33.6716C32.1178 34.4553 31.599 35.1273 30.8567 35.4168L28.013 36.5261C27.079 36.8904 26.1943 35.903 26.674 35.0316L28.1686 32.281M36.5454 19.449C37.6202 20.5106 36.8781 25.4066 33.3631 28.8783C31.9674 30.2569 30.4519 31.31 29.0219 31.97C26.5403 33.1153 27.3322 31.2477 25.966 29.8983C24.5998 28.5489 22.709 29.3312 23.8686 26.88C24.5368 25.4676 25.6029 23.9707 26.9987 22.5921C30.5137 19.1204 35.4706 18.3875 36.5454 19.449ZM23.1381 35.4673C22.4239 36.1727 19 37 19 37C19 37 19.8376 33.6182 20.5518 32.9128C21.266 32.2074 22.4239 32.2074 23.1381 32.9128C23.8523 33.6182 23.8523 34.7619 23.1381 35.4673ZM33.3212 23.6953C33.3212 24.2816 32.84 24.7569 32.2464 24.7569C31.6528 24.7569 31.1716 24.2816 31.1716 23.6953C31.1716 23.109 31.6528 22.6337 32.2464 22.6337C32.84 22.6337 33.3212 23.109 33.3212 23.6953Z\" stroke=\"#039855\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\n            </svg></mat-icon>\n        <div class=\"content-container\">\n            <div class=\"publish-header-parent\">\n                <h2 mat-dialog-title >App {{ data.heading }} Successfully</h2>\n                <mat-icon _ngcontent-kmo-c166=\"\" role=\"img\" id=\"close-icon\" mat-flat-button id = \"no-button\" [mat-dialog-close]=\"false\" class=\"mat-icon notranslate material-icons mat-icon-no-color\" aria-hidden=\"true\" data-mat-icon-type=\"font\">close</mat-icon>\n            </div>\n            <mat-dialog-content>\n                <span class=\"content span\">{{ data.message }} Download the mobile app to start using it on your Android or iOS mobile device.</span>\n            </mat-dialog-content>\n            <!-- <div class=\"qr-code\">\n\n      <img src=\"assets/prod_qr.svg\" alt=\"QR For Android and Ios\" class=\"custom-img qr-code-img\">\n    </div> -->\n        </div>\n    </div>\n\n    <mat-dialog-actions class=\"button-parent flex flex-col md:flex-row\">\n        <div class=\"\">\n            <!-- show on mobile and tablets -->\n            <div class=\"text-center block base:hidden\">\n                <a href=\"https://app.axonator.com/qr_redirect\" target=\"_blank\"><button class=\"btn fill-btn\">Open in App</button></a>\n            </div>\n\n            <!-- show on desktop -->\n            <div class=\"qr-code hidden base:block\">\n                <!-- QR code for Android app -->\n                <img src=\"assets/prod_qr.svg\" alt=\"QR For Android and Ios\" class=\"custom-img qr-code-img\">\n                <span class=\"qr-span\"> Scan to Install Mobile App</span>\n            </div>\n        </div>\n      <!-- <button type=\"button\" class=\"btn-publish btn-cancel\" mat-flat-button id = \"no-button\" [mat-dialog-close]=\"false\">\n        <span class=\"\">Close</span>\n      </button> -->\n            <!-- <button class=\"btn-publish btn-cancel\" mat-flat-button id=\"yes-button\" [mat-dialog-close]=\"true\">\n                <a [href]=\"viewWebAppUrl\" target=\"_blank\" class=\"view-web-app-btn\">View Web App</a>\n            </button> -->\n            <a class=\"web-app-url\" [href]=\"viewWebAppUrl\" target=\"_blank\">\n                <img src=\"../../assets/icons/axo/web-frame.svg\" alt=\"\">\n                <span class=\"web-span\">Click to Use Web App</span>\n                <span class=\"underline-span\"></span>\n            </a>\n    </mat-dialog-actions>\n\n    <div style=\"display: flex; flex-direction: row; align-items: center; margin-top: -50px;\">\n        <p style=\"margin-top: 15px;\">Users: {{userCount}}</p>\n        <div class=\"tooltip-container p-1 rounded-md\" style=\"position: relative;\">\n            <img src=\"../../assets/icons/axo/sculptor/axo_helpText.svg\" class=\"h-7 w-6 cursor-pointer\" alt=\"\">\n            <div class=\"tooltip-content\">\n                <img src=\"../../assets/icons/axo/Add_user_helpimg.png\" alt=\"\">\n                <span>You can add users from the users tab or from the Add button down in the footer</span>\n            </div>\n        </div>\n    </div>\n    \n    \n</div>\n</div>\n","<div class=\"popup-container create-app-popup\">\n   <button class=\"close-icon\" (click)=\"onCancel()\"></button>\n  <h1>Create a New App</h1>\n  <div class=\"flex flex-col gap-2\">\n    <div>\n      <label for=\"app-name\">App Name<sup>*</sup></label>\n      <input type=\"text\" [(ngModel)]=\"name\" id=\"app-name\" class=\"\" (blur)=\"onBlur()\" (input)=\"onInput()\" [ngClass]=\"{'invalid-input': showErrMessge.name && errMessage.name}\" required />\n      <div class=\"err-message-container\"><span *ngIf=\"showErrMessge.name && errMessage.name\" class=\"error-message\">{{ errMessage.name }}</span></div>\n    </div>\n    <div>\n      <label for=\"app-desc\">Description</label>\n      <textarea [(ngModel)]=\"description\" id=\"app-desc\" placeholder=\"Please provide a detailed description of your app so that our AI can assist you in building your apps faster.\" class=\"\" rows=\"5\"></textarea>\n    </div>\n  </div>\n  <div class=\"action-btn-container\">\n    <button (click)=\"onCancel()\" class=\"stroke-btn\">Cancel</button>\n    <button (click)=\"onSubmit()\"  class=\"fill-btn\">Create</button>\n  </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n  selector: 'app-app-create-dialog-component',\n  templateUrl: './app-create-dialog-component.component.html',\n  styleUrls: ['./app-create-dialog-component.component.scss', \"../../styles/styles.scss\"]\n})\nexport class AppCreateDialogComponentComponent {\n\n  name: string = '';\n  description: string = '';\n  errMessage = { name: '' };\n  showErrMessge = {name: false};\n\n  constructor(public dialogRef: MatDialogRef<AppCreateDialogComponentComponent>) {}\n\n  onCancel(): void {\n    this.dialogRef.close();\n  }\n\n  onSubmit(): void {\n    if (this.name.trim()) {\n      this.dialogRef.close({ name: this.name, description: this.description });\n    } else {\n      this.onBlur();\n      // Optional: Display an error message if name is empty\n    }\n  }\n\n  onBlur(){\n    this.showErrMessge.name = true;\n    this.onInput();\n  }\n\n  onInput(){\n    this.name.trim() ? this.errMessage.name = \"\" : this.errMessage.name = \"App name should not be empty\";\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, switchMap } from 'rxjs/operators';\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\nimport { UserService } from '../user/user.service';\n\n@Injectable({\n    providedIn: 'root'})\nexport class AuthService\n{\n    private _authenticated: boolean = false;\n\n    /**\n     * Constructor\n     */\n    constructor(\n        private _httpClient: HttpClient,\n        private _userService: UserService,\n        public oidcSecurityService: OidcSecurityService\n    )\n    {\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Accessors\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Setter & getter for access token\n     */\n    set accessToken(token: string)\n    {\n        localStorage.setItem('accessToken', token);\n    }\n\n    get accessToken(): string\n    {\n        return localStorage.getItem('accessToken') ?? '';\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Public methods\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Forgot password\n     *\n     * @param email\n     */\n    forgotPassword(email: string): Observable<any>\n    {\n        return this._httpClient.post('api/auth/forgot-password', email);\n    }\n\n    /**\n     * Reset password\n     *\n     * @param password\n     */\n    resetPassword(password: string): Observable<any>\n    {\n        return this._httpClient.post('api/auth/reset-password', password);\n    }\n\n    /**\n     * Sign in\n     *\n     * @param credentials\n     */\n    signIn(credentials: { email: string; password: string }): Observable<any>\n    {\n        // Throw error, if the user is already logged in\n        if ( this._authenticated )\n        {\n            return throwError('User is already logged in.');\n        }\n\n        return this._httpClient.post('api/auth/sign-in', credentials).pipe(\n            switchMap((response: any) => {\n\n                // Store the access token in the local storage\n                this.accessToken = response.accessToken;\n\n                // Set the authenticated flag to true\n                this._authenticated = true;\n\n                // Store the user on the user service\n                this._userService.user = response.user;\n\n                // Return a new observable with the response\n                return of(response);\n            })\n        );\n    }\n\n    /**\n     * Sign in using the access token\n     */\n    signInUsingToken(): Observable<any>\n    {\n        // Renew token\n        return this._httpClient.post('api/auth/refresh-access-token', {\n            accessToken: this.accessToken\n        }).pipe(\n            catchError(() =>\n\n                // Return false\n                of(false)\n            ),\n            switchMap((response: any) => {\n\n                // Store the access token in the local storage\n                this.accessToken = response.accessToken;\n\n                // Set the authenticated flag to true\n                this._authenticated = true;\n\n                // Store the user on the user service\n                this._userService.user = response.user;\n\n                // Return true\n                return of(true);\n            })\n        );\n    }\n\n    /**\n     * Sign out\n     */\n    signOut(): Observable<any>\n    {\n        if(!this.oidcSecurityService.getAccessToken())\n            location.reload();\n        //Logout from the Identity Server\n        localStorage.removeItem(\"userDetails\");\n        this.oidcSecurityService.logoff();\n\n        // Set the authenticated flag to false\n        this._authenticated = false;\n\n        // Return the observable\n        return of(true);\n    }\n\n    /**\n     * Sign up\n     *\n     * @param user\n     */\n    signUp(user: { name: string; email: string; password: string; company: string }): Observable<any>\n    {\n        return this._httpClient.post('api/auth/sign-up', user);\n    }\n\n    /**\n     * Unlock session\n     *\n     * @param credentials\n     */\n    unlockSession(credentials: { email: string; password: string }): Observable<any>\n    {\n        return this._httpClient.post('api/auth/unlock-session', credentials);\n    }\n\n    /**\n     * Check the authentication status\n     */\n    check(): Observable<boolean>\n    {\n        // Check if the user is logged in\n        if ( this._authenticated )\n        {\n            return of(true);\n        }\n\n        // Check the access token availability\n        if ( !this.accessToken )\n        {\n            return of(false);\n        }\n\n        // If the access token exists and it didn't expire, sign in using it\n        return this.signInUsingToken();\n    }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, from, Observable, throwError } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { tap, catchError } from 'rxjs/operators';\nimport { IFlatten } from '../common-utils/iFlatten';\nimport { CommonLibConfigurationService } from '../common-lib-configuration.service';\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class FlattenService {\n\n  // Private\n  private flatten: BehaviorSubject<IFlatten | null> = new BehaviorSubject<IFlatten | null>(null);\n  _http: any;\n\n  constructor(private _httpClient: HttpClient,private _configuration: CommonLibConfigurationService) { }\n\n  /**\n   * Getter for flatten data as an observable\n   */\n  get flatten$(): Observable<IFlatten | null> {\n    return this.flatten.asObservable();\n  }\n\n  /**\n   * Fetch flatten details and update BehaviorSubject\n   * @param appVersionId - The application version ID\n   * @returns Observable<IFlatten> - The flatten data\n   */\n\n\n\n  // getFlattenData(appVersionId: number): Observable<IFlatten> {\n  //   const url = `${environment.axonatorX1Url}flattenExists`;\n  \n  //   return this._httpClient.get<IFlatten>(url, { params: { appVersionId: appVersionId.toString() } })\n  //     .pipe(\n  //       tap((response: IFlatten) => {\n  //         if (response && response.accountId !== undefined) {\n  //           localStorage.setItem('accountId', response.accountId.toString());\n  //         }\n  //         this.flatten.next(response);\n  //       }),\n  //       catchError((error) => {\n  //         console.error('Error fetching flatten data:', error); // Log the error for debugging\n  //         return throwError(() => error); // Properly throw the error for the caller to handle\n  //       })\n  //     );\n  // }\n  \n\n\n\n  // getFlattenData(appVersionId: number): Observable<IFlatten> {\n  //   return from(fetch(environment.axonatorX1Url + 'apps/flattenExists?appVersionId=' + appVersionId)\n  //     .then(response => response.json())\n  //     .then((response: IFlatten) => {\n  //       localStorage.setItem('accountId', response.accountId.toString());\n  //       this.flatten.next(response);\n  //       return response;\n  //     })\n  //     .catch((error) => {\n  //       throw error;\n  //     }));\n  // }\n\n  getFlattenData(appVersionId: number): Observable<IFlatten> {\n    return this._httpClient.get<IFlatten>(this._configuration.axonatorX1Url + 'flattenExists/?appVersionId=' + appVersionId)\n      .pipe(\n        tap((response) => {\n          localStorage.setItem('accountId', response.accountId.toString());\n          this.flatten.next(response);\n        })\n      )\n  };\n  /**\n   * Flatten the app data\n   * @param appVersionId - The application version ID\n   * @param accountId - The account ID\n   * @returns Observable<number> - The response\n   */\n  flattenApp(appVersionId: number, accountId: number): Observable<number> {\n    return this._httpClient.post<number>('apps/flatten', {\n      appVersionId: appVersionId,\n      accountId: accountId\n    }).pipe(\n      tap((response) => {\n        //console.log('Flatten app response:', response); // Debugging line\n      }),\n      catchError((error) => {\n        //console.error('Error flattening app:', error); // Debugging line\n        return throwError(error);\n      })\n    );\n  }\n\n  /**\n   * Retrieve account ID from localStorage\n   * @returns The account ID or null if not set\n   */\n  getAccountId(): string | null {\n    const accountId = localStorage.getItem('accountId');\n    //console.log('Account ID from localStorage:', accountId); // Debugging line\n    return accountId;\n  }\n\n  /**\n   * Clear account ID from localStorage\n   */\n  clearAccountId(): void {\n    localStorage.removeItem('accountId');\n  }\n\n}\n","<div class=\"flex flex-col flex-auto h-full-appList my-app-list overflow-hidden page-background axo-font\">\n    <!-- Header -->\n    <div class=\"sticky top-0 bg-white\">\n        <div class=\"app-list-main-header relative flex flex-0 h-12 z-49 box-border px-6\">\n            <div class=\"flex flex-auto items-center min-w-0 gap-2\"> \n                <img class=\"w-36 h-7\" src=\"assets/images/logo/axo-logo.svg\" alt=\"Logo image\"> <!--<span class=\"beta\">Beta</span>--> \n                <span class=\"text-sm font-medium axo-font text-black tracking-wide mt-1\">Studio</span>\n            </div>\n            <div class=\"flex flex-auto justify-end items-center min-w-0 gap-3\">\n                <button mat-icon-button class=\"mt-1.5\">\n                    <mat-icon svgIcon=\"axo_search\"></mat-icon>\n                </button>\n                <button mat-icon-button class=\"mt-1.5\">\n                    <mat-icon class=\"cursor-pointer axo_notifiction-2\" matTooltip=\"Notification\" svgIcon=\"axo_notifiction-2\"></mat-icon>\n                </button>\n                <!-- once we fix identity server API, this code will be needed again\n                    <button (click)=\"$event.stopPropagation();\" mat-icon-button [matMenuTriggerFor]=\"userProfile09Menu\">\n                    <ng-container *ngIf=\"userImage; else isEmptyImage\">\n                        <img [src]=\"baseUrl + 'images/'+ userImage\" onError =\"this.src='assets/icons/organization.png'\" class=\"inline object-cover w-7 h-7 mr-2 organizationIcon\" alt=\"avtar\">\n                    </ng-container>\n                    <ng-template #isEmptyImage>\n\n                        <span  class=\"empty-app-icon\">{{ (user['FirstName']).charAt(0) + \"\" +  (user['LastName']).charAt(0) | uppercase }}</span>\n                    </ng-template>\n                </button>\n                <mat-menu #userProfile09Menu=\"matMenu\">\n                    <button mat-menu-item class=\"h-full\">\n                        <ng-container *ngIf=\"userImage; else isEmptyProfileImage\">\n                            <img class=\"organizationIcon\" [src]=\"baseUrl + 'images/'+ userImage\" alt=\"\" onError =\"this.src='assets/icons/organization.png'\"/>\n                        </ng-container>\n                        <ng-template #isEmptyProfileImage>\n                            <span  class=\"userEmptyIcon\">{{ (user['FirstName']).charAt(0) + \"\" +  (user['LastName']).charAt(0) | uppercase }}</span>\n                        </ng-template>\n                        <div class=\"inline-grid\">\n                            <span class=\"user-name-title \">{{ userEmail }}</span>\n                            <span class=\"user-emailid \">{{ userName }}</span>\n                        </div>\n                    </button>\n                    <button mat-menu-item class=\"organization-section\" (click)=\"signOut()\">\n                        <span class=\"logout-title\">Logout</span>\n                    </button>\n                </mat-menu> -->\n\n                <button (click)=\"$event.stopPropagation();\" mat-icon-button [matMenuTriggerFor]=\"userProfile09Menu\">\n                    <ng-container *ngIf=\"userImage; else isEmptyImage\">\n                        <img [src]=\"baseUrl + userImage\" onError =\"this.src='assets/icons/organization.svg'\" class=\"organizationIcon\" alt=\"avtar\">\n                    </ng-container>\n                    <ng-template #isEmptyImage>\n\n                        <span  class=\"uppercase font-medium cursor-pointer text-sm h-8 w-8 flex justify-center items-center ml-2 bg-gray-300 rounded-full\">{{ (user['fname']).charAt(0) + \"\" +  (user['lname']).charAt(0) | uppercase }}</span>\n                    </ng-template>\n                </button>\n                <mat-menu #userProfile09Menu=\"matMenu\" backdropClass=\"app-list-mat-menu-panel-class\">\n                    <button mat-menu-item class=\"h-full user-info\">\n                        <ng-container *ngIf=\"userImage; else isEmptyProfileImage\">\n                            <img class=\"organizationIconprofile\" [src]=\"baseUrl + userImage\" alt=\"\" onError =\"this.src='assets/icons/organization.svg'\"/>\n                        </ng-container>\n                        <ng-template #isEmptyProfileImage>\n                            <span  class=\"userEmptyIcon\">{{ (user['fname']).charAt(0) + \"\" +  (user['lname']).charAt(0) | uppercase }}</span>\n                        </ng-template>\n                        <div class=\"inline-grid py-3\">\n                            <span class=\"user-emailid\">{{ userEmail }}</span>\n                            <span class=\"user-name-title\">{{ userName }}</span>\n                        </div>\n                    </button>\n                    <mat-divider class=\"my-0\"></mat-divider>\n                    <button mat-menu-item class=\"user-logout-btn organization-btn\" (click)=\"navigatetoOrganiation()\" *ngIf=\"hasOrgUserAccess\">\n                        <!-- <mat-icon [svgIcon]=\"'heroicons_outline:user-group'\"></mat-icon> -->\n                        <span class=\"logout-label\">Organization Users</span>\n                      </button>\n                      <button mat-menu-item class=\"user-logout-btn organization-btn\" (click)=\"navigatetoOrganiationSettings()\" *ngIf=\"hasOrgUserAccess\">\n                        <!-- <mat-icon [svgIcon]=\"'heroicons_outline:user-group'\"></mat-icon> -->\n                        <span class=\"logout-label\">Organization Settings</span>\n                      </button>\n                      <button mat-menu-item class=\"user-logout-btn billing-btn\" (click)=\"navigateToBilling()\">\n                        <!-- <mat-icon [svgIcon]=\"'heroicons_outline:credit-card'\"></mat-icon> -->\n                        <span class=\"logout-label\">Billing</span>\n                      </button>\n                    <mat-divider class=\"my-0\"></mat-divider>\n                    <button mat-menu-item class=\"user-logout-btn\" (click)=\"signOut()\">\n                        <!-- <mat-icon [svgIcon]=\"'heroicons_outline:logout'\"></mat-icon> -->\n                        <span class=\"logout-lable\">Logout</span>\n                    </button>\n\n                </mat-menu>\n\n\n\n            </div>\n        </div>\n        <!-- Header -->\n        <div class=\"app-list-main-subheader\">\n            <div class=\"app-list-header relative flex flex-0 items-center z-49 box-border px-4 sm:px-6\">\n                <div class=\"flex flex-auto items-center min-w-0 gap-3\">\n                    <div class=\"flex items-center hover:bg-gray-100 p-2 rounded-lg\">\n                        <mat-form-field appearance=\"standard\" class=\"sm:w-full flex items-center organization-mat-select\">\n                            <mat-select [(ngModel)]=\"selectedOrganization\" placeholder=\"select Organization\" class=\"flex items-center\">\n                                <mat-select-trigger class=\"flex items-center\" *ngIf=\"selectedOrganization\">\n                                    <span>\n                                        <img class=\"organizationIcon\" alt=\"\" [src]=\"(selectedOrganization.icon.indexOf('https://') !== -1) ? selectedOrganization.icon : baseUrl + selectedOrganization.icon\" onError =\"this.src='assets/icons/organization.svg'\">\n                                    </span>\n                                    <span class=\"org-name\" [matTooltip]=\"selectedOrganization.name\"> {{ selectedOrganization.name }}</span>\n                                    <!-- Custom arrow icon -->\n                                    <!-- <mat-icon class=\"dropdown-arrow\" svgIcon=\"dropdown-arrow\"></mat-icon> -->\n                                </mat-select-trigger>\n                                <div class=\"switch flex p-2 gap-2 pl-4 items-center cursor-pointer \">\n                                    <mat-icon svgIcon=\"axo_switch\" class=\"switch-icon h-8 w-8\"></mat-icon>\n                                    <span class=\"switch-span\">Switch Organization</span>\n                                </div>\n                                <mat-option  class=\"organizationList\"\n                                    *ngFor=\"let organization of organizationList; let organizationIndex = index\"\n                                    [value]=\"organization\"\n                                    (click)=\"switchAccount(organization.id)\"\n                                    [selected]=\"selectedOrganization.id === organization.id\"\n                                    >\n                                    <div class=\"org-icon-span\">\n                                        <img class=\"organizationIcon\" alt=\"\" [src]=\"(organization.icon.indexOf('https://') !== -1) ? organization.icon : baseUrl + organization.icon\" onError =\"this.src='assets/icons/organization.svg'\">\n                                    </div>\n                                    <div class=\"sm:text-lg text-xs font-medium org-name\"> {{ organization.name}}</div>\n                                </mat-option>\n                            </mat-select>\n                        </mat-form-field>\n                    </div>\n                    <span class=\"sm:text-lg text-xs font-medium main-title\">My Apps</span>\n                </div>\n                <div>\n                    <button *ngIf=\"hasAppBuilderPermission && !isRestrictedUrl()\" class=\"primary-btn axo-font w-28\" (click)=\"openCreateAppDialog()\">\n                      <span>Create App</span>\n                    </button>\n                  </div>\n                  \n            </div>\n\n        </div>\n    </div>\n\n    <!-- App List with Overlay -->\n    <div class=\"relative flex-auto app-list h-full-appList px-4 py-5 sm:py-8 overflow-auto page-background\">\n        <!-- Overlay for web portal access -->\n        <!-- <div *ngIf=\"showWebPortalAccessOverlay\" class=\"permission-overlay\">\n            You don't have permission to access App Builder. Please visit <a href=\"https://web.axonator.com\" target=\"_blank\" class=\"text-blue-500\">Axonator Web App</a> to view app data.\n        </div> -->\n        <div  *ngIf=\"showWebPortalAccessOverlay\" class=\"permission-overlay flex flex-col md:flex-row\">\n            <div class=\"mb-2\">\n                You don't have permission to access App Builder.\n            </div>\n            <div class=\"mb-2 mx-1\">\n                Please visit \n                <a href=\"https://web.axonator.com\" target=\"_blank\" class=\"text-blue-500 underline mx-1\">\n                Axonator Web App\n                </a>\n                to view app data.\n            </div>\n        </div>\n          \n          \n          \n          \n\n        <ng-container *ngIf=\"appList.length; else notEmptyAppList\">\n            <div class=\"app-grid items-start card-body w-full\">\n                <div class=\"card-outer-div\" *ngFor=\"let appDetail of appList; let i = index\">\n                    <fuse-card class=\"fuse-card-app flex flex-col gap-2 filter-list\" [ngStyle]=\"{'background': appDetail.gradient}\" (click)=\"openApp(appDetail.appVersionId)\">\n                        <div *ngIf=\"appDetail.qr_status === true && showQRIcon\" (click)=\"disableQRDialog(appDetail.appVersionId, i); $event.stopPropagation();\" class=\"flex justify-center items-center border-0 rounded-full qr-icon bg-white absolute top-4 right-4\"  [ngClass]=\"{'appHover': openPopupMenu === appDetail.appVersionId}\" style=\"padding: .3rem;\">\n                            <img matTooltip=\"Disable QR\"  src=\"assets/icons/axo/sculptor/axo_qrcode_new.svg\"\n                                 alt=\"\"\n                                 class=\"h-3 w-3 object-cover\">\n                         </div>\n                        <div class=\"flex items-center card justify-between\" style=\"margin-left: -20px;\">\n                            <div class=\"dots-vertical-app\" *ngIf=\"showDotsOption\"  [ngClass]=\"{'appHover': openPopupMenu === appDetail.appVersionId}\">\n                                <button (click)=\"$event.stopPropagation();setOpenPopupMenu(appDetail.appVersionId)\" mat-icon-button [disableRipple]=\"true\"\n                                [matMenuTriggerFor]=\"contextMenu\">\n                                <mat-icon [svgIcon]=\"'heroicons_solid:dots-vertical'\" style=\"color: #FFFFFF;\"></mat-icon>\n                            </button>\n                            <mat-menu #contextMenu=\"matMenu\" class=\"customize\">\n                                    <div id=\"report-menu\">\n                                        <button mat-menu-item (click)=\"openQRCodeDialog()\"  class=\"py-0 pl-4 pr-6\">\n                                            <img src=\"assets/icons/options-mobile.svg\" alt=\"\" class=\"h-6 w-6 inline-block mr-2\">\n                                            <span>Use On Mobile</span>\n                                        </button>\n                                    </div>\n                                    <div *ngIf=\"hasAppBuilderPermission\" id=\"report-menu\">\n                                        <button mat-menu-item (click)=\"openDeleteAppDialog(appDetail.appVersionId)\"  class=\"py-0 pl-4 pr-6\">\n                                            <img src=\"assets/icons/options-delete.svg\" alt=\"\" class=\"h-6 w-6 inline-block mr-2\">\n                                            <span>Delete</span>\n                                        </button>\n                                    </div>\n                                </mat-menu>\n                            </div>\n                        </div>\n                        <div class=\"card-inner-div\">\n                            <div class=\"flex items-center justify-center dashboard-icon\">\n                                <img [src]=\"baseUrl + appDetail.icon\" onError =\"this.src='https://static.axonator.com/static/default_icons/app.png'\" alt=\"Logo image\">\n                            </div>\n                        </div>\n                        <div class=\"card-content\">\n                            <div class=\"app-info\">\n                                <div class=\"block app-title-wrapper\">\n                                    <div class=\"app_title font-medium leading-tight axo-font\" [matTooltip]=\"appDetail.name\">\n                                        {{appDetail.name}}\n                                    </div>\n                                </div>\n                                <div class=\"app_version w-full leading-tight text-xs\">\n                                    v {{appDetail.version.split('.')[0]}}.{{padZero(appDetail.minorVersion)}}\n                                </div>\n                            </div>\n                            <div class=\"cust-open flex justify-end w-full\">\n                                <div class=\"flex flex-row items-center justify-end space-x-2\">\n                                    <a *ngIf=\"showCustomize\" routerLink=\"\" class=\"customize text-left leading-tight text-xs\">Customize</a>\n                                    <button class=\"open-button\">Open</button>\n                                </div>\n                            </div>\n                        </div>\n                    </fuse-card>\n                </div>\n            </div>\n        </ng-container>\n        \n    </div>\n    <ng-template #notEmptyAppList>\n        <!-- if app list is empty -->\n        <div class=\"flex flex-col flex-auto min-w-0 relative items-center\" #notEmptyAppList>\n            <div class=\"container flex flex-col my-auto items-center justify-center no-app-created\">\n                <h2>No app created yet!</h2>\n            </div>\n        </div>\n    </ng-template>\n    <app-common-footer [showAddBtn]=\"showAddBtn\" [showUpgradeBtn]=\"true\" [reinitialize]=\"reinitializeFooter\"></app-common-footer>\n    <!-- <div class=\"fixed bottom-0 flex flex-0 items-center justify-start w-full h-14 px-4 md:px-6 z-49 bg-white app-list-footer\">\n        <span class=\"font-medium text-secondary\">Axonator &copy; {{currentYear}}</span>\n    </div> -->\n</div>\n","/* eslint-disable arrow-parens */\n/* eslint-disable @typescript-eslint/member-ordering */\n/* eslint-disable radix */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n\nimport { Component, OnInit, ViewEncapsulation, OnDestroy, Input, Output, SimpleChanges, EventEmitter, ChangeDetectorRef, Injectable } from '@angular/core';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { Router ,  NavigationExtras} from '@angular/router';\nimport { BehaviorSubject, Observable, Subject, throwError } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { AxoSnackBarService, AxoSnackBarType } from '../axo-snack-bar/axo-snack-bar.service';\nimport { AuthService } from '../core/auth/auth.service';\nimport { UserService } from '../core/user/user.service';\nimport { User } from '../core/user/user.types';\nimport { AppListDto } from './app-list-dto';\nimport { MyAppListService } from './my-app-list.service';\nimport { OrganizationListDto } from './organization-list-dto';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FlattenService } from '../flatten-module/flatten.service';\nimport { IFlatten } from '../common-utils/iFlatten';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { CookieService } from 'ngx-cookie-service';\nimport { ActivatedRoute } from '@angular/router';\nimport { EnlightenLibModule } from '../enlighten-lib/enlighten-lib.module';\nimport { QrdialogComponent } from '../qrdialog/qrdialog.component';\nimport { LoggingService } from '../services/logging.service';\nimport { LoadingDialogComponent } from '../loading-dialog/loading-dialog.component';\nimport { CommonModule } from '@angular/common';\nimport { LoadingAppinstallComponent } from '../loading-appinstall/loading-appinstall.component'; \nimport { CommonService } from '../common.service';\nimport { SuccessDialogComponent } from '../success-dialog/success-dialog.component'; \nimport { take,  } from 'rxjs/operators';\nimport { forkJoin, of } from 'rxjs';\nimport { locale } from 'moment';\nimport { AppCreateDialogComponentComponent } from '../app-create-dialog-component/app-create-dialog-component.component'; \n\n//import { Console } from 'console';\nimport { CommonLibConfigurationService } from '../common-lib-configuration.service';\nimport { DataViewFiltersService } from '../data-view-lib/data-view-filters/data-view-filters.service';\nimport { ConfirmationModalComponent } from '../shared/comfirmation-modal/confirmation-modal.component';\nimport { SubscribedPlanName } from '../subscribedPlanName.service';\nimport { StripeService } from '../stripe.service';\n@Injectable({\n  providedIn: 'root'\n})\n@Component({\n  selector: 'lib-app-list',\n  templateUrl: './app-list.component.html',\n  styleUrls: ['./app-list.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: MAT_SELECT_CONFIG,\n      useValue: { overlayPanelClass: 'organization-list-overlay-panel' },\n    },\n  ],\n})\nexport class AppListComponent implements OnInit, OnDestroy {\n  @Input() currentOrg:string;\n  @Input() appList: Array<AppListDto>;\n  @Input() baseUrl: string;\n  @Input() organizationList: Array<OrganizationListDto> = [];\n  @Input() selectedOrganization: OrganizationListDto;\n  @Input() user: User;\n  @Input() listType: string;\n  @Input() showCreateButton:boolean = false;\n  @Input() showQRIcon:boolean = false;\n  @Input() showDotsOption:boolean = false;\n  @Input() showCustomize:boolean = false;\n  @Input() showAddBtn:boolean = false;\n  @Output() switchAccountEvent = new EventEmitter<any>();\n  @Output() openAppEvent = new EventEmitter<any>();\n  @Output() updateListEvent = new EventEmitter<any>();\n  // user: User;\n  isAppChangedAfterPublish: boolean = false;\n  userName: string;\n  appVersionId: number;\n  userEmail: string;\n  fullVersion: string;\n  fullVersions: string[] = [];\n  userImage: string;\n  version: string = '';\n  minorVersion: string = '';\n  appId: string ='';\n  builderUrl: string;\n  openPopupMenu: number;\n  gradients = [\n    'radial-gradient(circle at 80% 20%, #DB6D81, #BF4581)',\n    'radial-gradient(circle at 80% 20%, #4491D9, #4559BF)',\n    'radial-gradient(circle at 80% 20%, #E7A779, #AA5525)',\n    'radial-gradient(circle at 80% 20%, #44D953, #0D9212)'\n  ];\n  currentUrl = document.URL;\n  baseUsrl = document.baseURI;\n  regex = /\\/apps\\/(\\d+)\\/(\\w+)/;\n  match = this.currentUrl.match(this.regex);\n  reinitializeFooter = false;\n  data = {};\n  previousOrg:string;\n\n  /*\n     * Subject object which helps unsubscribe all the subscribed objects in the component\n     */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  organizatonId: number;\n  userPermissions: string[] = []; // Variable to hold user permissions\n  hasOrgUserAccess: boolean;\n  currentAppVersionId: string;\n  showWebPortalAccessOverlay: boolean = false; // Flag to control overlay display\n  private hasCalledGetUserPermissions: boolean = false; // Flag to track if the function has been called\n  permissions: string[] = [];\n  constructor(private _authService: AuthService,\n    private _changeDetectorRef: ChangeDetectorRef,\n    private _userService: UserService,\n    private commonLibConfig: CommonLibConfigurationService,\n    private _mpAppListService: MyAppListService,\n    private _router: Router,\n    private _axoSnackBar: AxoSnackBarService,\n    private dialog: MatDialog,\n    private _flattenService: FlattenService,\n    private http: HttpClient, // Inject HttpClient\n    private _httpClient: HttpClient,\n    private cookieService: CookieService,\n    private route: ActivatedRoute,\n    private router: Router,\n    private _loggingService : LoggingService,\n    private _commonService:CommonService,\n    private _dataViewFiltersService: DataViewFiltersService,\n    private _subscribedPlanName: SubscribedPlanName,\n    private stripeService: StripeService,\n\n    \n  ) { }\n  /**\n   * Getter for current year\n   */\n  get currentYear(): number {\n    return new Date().getFullYear();\n  }\n\n  setOpenPopupMenu(appId) {\n    this.openPopupMenu = appId;\n    const overlay = document.querySelector('.cdk-overlay-container');\n    overlay.addEventListener('click', () => {\n      this.openPopupMenu = undefined;\n    });\n  }\n\n  openQRCodeDialog(): void {\n\n    const qrDialogRef = this.dialog.open(QrdialogComponent, {\n      width: '250px', // Adjust width as needed\n    });\n  }\n\n  navigatetoOrganiation(): void {\n    const urlMap: { [key: string]: string } = {\n      'localhost:4200': 'https://localhost:4200/',\n      'localhost:4201': 'https://localhost:4200/',\n      'andromeda-builder-qa.axonator.com': 'https://andromeda-builder-qa.axonator.com/',\n      'andromeda-container-qa.axonator.com': 'https://andromeda-builder-qa.axonator.com/',\n      'builder.axonator.com': 'https://builder.axonator.com/',\n      'web.axonator.com': 'https://builder.axonator.com/'\n    };\n    const url: string = urlMap[window.location.host] || '';\n    if (this.match) {\n      const userListUrl = `apps/${this.match[1]}/users`; // dynamic part based on match\n      window.open(url + userListUrl, '_self'); // open dynamic URL\n    } else {\n      window.open(url + 'organization', '_self'); // fallback to organization route\n    }\n  }  \n\n  navigatetoOrganiationSettings(): void {\n    this._router.navigateByUrl('organization-settings');\n  }\n  \n\n\n\n  // deleteApp(appId: string, version: string): void {\n  //   this._mpAppListService.deleteApp(appId, version)\n  //     .pipe(\n  //       takeUntil(this._unsubscribeAll),\n  //       catchError((error) => {\n  //         console.log('Error occurred while deleting app:', error);\n  //         // this._snackbarSevice.openSnackBar('Error occurred while deleting app.', AxoSnackBarType.error);\n  //         return throwError(error);\n  //       })\n  //     )\n  //     .subscribe(\n  //       // response => this.handleDeleteSuccess(response),\n  //       // error => this.handleDeleteError(error)\n  //     );\n  // }\n\n  // Assuming _deleteService has a deleteApp method that handles app deletion\n  // Also, assuming handleDeleteSuccess and handleDeleteError are methods to handle success and error scenarios\n\n  padZero(value: string): string {\n    var padding='';\n    let length=value.toString().length;\n    if(length==1)\n    {\n      padding='00'+value\n    }\n    else if(length==2)\n    {\n      padding='0'+value\n    }\n    else if(length==3)\n    {\n      padding=value\n    }\n    return padding;\n  }\n\n  public hasAppBuilderPermission: boolean = false;\n\n  getUserDetails(): void {\n    this._commonService.getUserDetail()\n      .pipe(\n        takeUntil(this._unsubscribeAll),\n        catchError((error) => {\n          console.error('Error fetching user details:', error);\n          return throwError(error);\n        }),\n        tap((userResponse: any) => {\n          const userPermissions = userResponse?.ud?.permissions || [];\n          // Check if \"APP_BUILDER\" permission exists\n          this.hasAppBuilderPermission = userPermissions.includes(\"APP_BUILDER\") && userPermissions.includes(\"ACCESS_WEB_PORTAL\");\n        })\n      )\n      .subscribe((response: any) => {\n        const subscriptionOptions = {\n          accountId: response.ud.lastused_account\n        };\n        \n        this.stripeService.getSubscription(subscriptionOptions).subscribe(\n          (subscriptionResponse) => {\n            \n            \n            if (subscriptionResponse && subscriptionResponse.length > 0) {\n              const subscriptionInfo = subscriptionResponse[0];\n              const productOptions = {\n                ProductId: subscriptionInfo.items[0].productId\n              };\n              \n              this.stripeService.getProductDetails(productOptions).subscribe(\n                (productResponse) => {\n                  this._subscribedPlanName.subscribedPlanName = productResponse.name;\n                },\n                (error) => {\n                  console.error('Error fetching product details:', error);\n                }\n              );\n            }\n          },\n          (error) => {\n            console.error('Error fetching subscription details:', error);\n          }\n        );\n      });\n  }\n  \n\n  ngOnInit(): void {\n    this.getUserPermissions();\n   \n    // this.currentAppVersionId = window.location.href.split(\"/\")[4];\n    // this._navigation.updateClassicNavigationRoutes(this.currentAppVersionId.toString());\n\n    // Fetch user details\n    \n    \n    if (this.user) {\n      this.userEmail = this.user.email;\n      this.userName = this.user['fname'] + ' ' + this.user['lname'];\n      this.userImage = this.user['uimg'];\n    }\n\n    this.getUserDetails();\n    \n  //AXE-I6376\n  //Issue : Parameterized url was not maintain (app installation), authorization call somehow loses the parameters\n  //url storage is maintained by the name \"appname\"\n  //It is set in auth.resolver and removed here\n  //if appname exist in session used the stored name, if not used the value from the url\n  //\nvar appNamecheck=localStorage.getItem('appname');\n//console.log(\"!113\");\n// if(appNamecheck!==null)\n// {\n//   if(appNamecheck==\"/apps\")\n//   {\n//     localStorage.removeItem(\"appname\");\n//   }\n// }\n// appNamecheck=localStorage.getItem('appname');\n//console.log(\"!113\");\n//console.log(appNamecheck)\n  //\nvar appNamecheck=localStorage.getItem('appname');\nvar appPublishStatus=localStorage.getItem('publishstatus');\n//console.log(\"!113\");\n// if(appNamecheck!==null)\n// {\n//   if(appNamecheck==\"/apps\")\n//   {\n//     localStorage.removeItem(\"appname\");\n//   }\n// }\n// appNamecheck=localStorage.getItem('appname');\n//console.log(\"!113\");\n//console.log(appNamecheck)\n  let appname:string;\n  let category:string;\n\n// const urlParams = new URLSearchParams(window.location.search);\n// const appNameCheck = urlParams.get('appname');\n// console.log(appNameCheck)\n// const category = urlParams.get('category');\n// console.log(category)i\n\n\nlet InstallAppName:string;\nInstallAppName=localStorage.getItem(\"InstalledAppName\");\nif(InstallAppName!=null){\nconst capitalizedAppName: string = this.capitalizeWords(InstallAppName.replace(/-/g, ' '));\nthis.checkAndPublishApp(capitalizedAppName);\nlocalStorage.removeItem(\"InstalledAppName\");\n}\nif (appNamecheck !== null) {\n  //\n  const urlParams = new URLSearchParams(appNamecheck.split('?')[1]);\n  const appNameTemp = urlParams.get('appname');\n  const categoryTemp = urlParams.get('category');\n  //const appNameTemp = appNamecheck.split('=')[1].split('&')[0]; // Extracting appname value from URL parameter\n  //localStorage.setItem(\"InstalledAppName\",appNameTemp)\n// Extracting category value from URL parameter\n // const categoryTemp = appNamecheck.split('category=')[1];\n  //\n  if (appNameTemp) {\n    this.installApp(appNameTemp, categoryTemp).then(() => {\n      localStorage.removeItem(\"appname\");\n    }).catch(error => {\n      // Handle error if installApp fails\n      console.error('Error installing app:', error);\n      localStorage.removeItem(\"appname\");\n    });\n  }\n\n// let appName: string; \n// if(appNamecheck!==null){\n//   appName=appNamecheck.split('=')[1].split('%2F')[0];\n//   if (appName) {\n//     this.installApp(appName,).then(() => {\n//       localStorage.removeItem(\"appname\");\n      \n//     })\n//     .catch(error => {\n//       // Handle error if installApp fails\n//       console.error('Error installing app:', error);\n//     });\n//   }\n  \n  \n  }\n  else{\n    // Variable to store appname\n\n    \n    this.route.queryParams.pipe(\n      takeUntil(this._unsubscribeAll)\n    ).subscribe(params => {\n      appname = params['appname'];\n      //localStorage.setItem(\"InstalledAppName\",appname);\n      \n      category = params['category'];\n      \n    \n      if (appname) {\n        // Split the appname at the first occurrence of '/'\n        const appNameParts = appname.split('/', 1);\n        const appName = appNameParts[0]; // Store appname\n        //const category = category; // Store category\n        // console.log(\"appName=\"+appName);\n        // console.log(\"category=\"+category);\n        \n        // Navigate to the same route without any query parameters\n        const navigationExtras: NavigationExtras = {\n          replaceUrl: true,\n        };\n        this.router.navigate([], navigationExtras);\n        \n\n        if (appname) {\n          \n         \n          localStorage.setItem(\"publishstatus\",\"False\")\n          this.installApp(appname,category).then(() => {\n            // Handle successful installation\n            console.log('App installed Method called:', appname, category);\n            localStorage.removeItem(\"appname\");\n          })\n          .catch(error => {\n            // Handle error if installApp fails\n            console.error('Error installing app:', error);\n            localStorage.removeItem(\"appname\");\n          });\n        \n        }\n      // } else {\n      //   console.error('appname or category query parameter is missing');\n      }});\n\n    }\n    \n    // once we fix identity server API, this code will be needed again\n    // Subscribe to user changes\n    // this._userService.user$\n    // .pipe(takeUntil(this._unsubscribeAll))\n    // .subscribe((user: any) => {\n    //     this.user = user;\n    //     this.userEmail = user.email;\n    //     this.userName = user.FirstName + ' '+ user.LastName ;\n    //     this.userImage = user.picture;\n    //     // Mark for check\n    //     this._changeDetectorRef.markForCheck();\n    // });\n\n\n\n\n    const url = sessionStorage.getItem('url');\n    if (url) {\n      window.location.href = url;\n      // Remove saved data from sessionStorage\n      sessionStorage.removeItem('url');\n\n      // Remove all saved data from sessionStorage\n      sessionStorage.clear();\n    }\n\n  }\n\n  \n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.currentOrg !== this.previousOrg) {\n      this.getUserPermissions().then(() => {\n          this.previousOrg = this.currentOrg;\n          this.reinitializeFooter = true;\n\n          // Reset the trigger to prevent unintended reinitialization\n          setTimeout(() => {\n              this.reinitializeFooter = false;\n          });\n      }).catch((error) => {\n          console.error(\"Error in getUserPermissions:\", error);\n      });\n  }\n    if (changes.appList && changes.appList.currentValue) {\n      this.assignGradients();\n    }\n  }\n\n  assignGradients(): void {\n    if (this.appList && this.appList.length > 0) {\n      this.appList.forEach((app, index) => {\n        app.gradient = this.gradients[index % this.gradients.length];\n      });\n    }\n  }\n\n/**\n * Opens the app after ensuring permissions are loaded.\n *\n * @param appVersionId The ID of the app version to open.\n */\nopenApp(appVersionId: number): void {\n  if (!this.permissions || this.permissions.length === 0) {\n      setTimeout(() => this.openApp(appVersionId), 100);\n      return;\n  }\n  const currentUrl = window.location.origin;\n  if (currentUrl.includes('localhost:4200') || currentUrl.includes('builder.axonator.com') || currentUrl.includes('andromeda-builder-qa.axonator.com')) {\n      if (!this.user) {\n          this._axoSnackBar.openSnackBar('User not found or not logged in', AxoSnackBarType.error);\n          return;\n      }\n      if (!this.permissions.includes('APP_BUILDER') && !this.permissions.includes('APP_IAM')) {\n          this._axoSnackBar.openSnackBar('You need either APP_BUILDER or APP_IAM permissions to perform this action.', AxoSnackBarType.error,'close', {duration: 15000});\n          setTimeout(() => {\n              window.open(this.commonLibConfig.ViewWebApp, '_blank');\n          }, 2000);\n          return;\n      }\n  }\n  this.openAppEvent.emit(appVersionId);\n}\n\n\n\n  navigateToHome(appVersionId: number): void {\n    this._router.navigateByUrl(`apps/${appVersionId}/home`);\n  }\n\n  /**\n   * function use to Switch the organization\n   */\n  switchAccount(organizationId: string): void {\n    this.switchAccountEvent.emit(organizationId);\n    \n   \n  }\n\n  /**\n   * Sign out\n   */\n  signOut(): void {\n    this._loggingService.trackEvent('user logged out',{step : 'logout in bu '+this.userName});\n    this._authService.signOut();\n  }\n\n  /**\n   * Billing\n   */\n  navigateToBilling(): void {\n    this._router.navigateByUrl('paymentinfo/pricing')\n    \n  }\n\n\n\n  ///////////////////// Create Appp///////////////////\n  /**\n   *to create new app\n   */\n   openCreateAppDialog(): void {\n    const dialogRef = this.dialog.open(AppCreateDialogComponentComponent, {\n      width: '600px',\n      height: 'auto',\n      panelClass: 'custom-dialog-container',\n      backdropClass: 'custom-dialog-backdrop'\n    });\n\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        const { name, description } = result;\n\n        this._axoSnackBar.openSnackBar('Creating App...', AxoSnackBarType.info);\n        this.createApp(name, description);\n      }\n    });\n  }\n\n  createApp(name: string, description: string): void {\n    const formDataForService = new FormData();\n    formDataForService.append('name', name);\n    formDataForService.append('description', description);\n\n    this._mpAppListService.addAppBasicInfo(formDataForService).toPromise()\n      .then(response => {\n        if (response?.addAppBasicInfo?.status === 'success' && response.addAppBasicInfo.app?.appversion_id) {\n          //this._navigation.updateClassicNavigationRoutes(response.addAppBasicInfo.app.appversion_id);\n          //this._router.navigate(['apps', response.addAppBasicInfo.app.appversion_id]);\n          \n          this._axoSnackBar.openSnackBar('App created.', AxoSnackBarType.success);\n          this.openApp(response.addAppBasicInfo.app.appversion_id)\n        } else if (response?.addAppBasicInfo?.app === 'already_exists') {\n          this._axoSnackBar.openSnackBar('App already exists', AxoSnackBarType.warning);\n        } else {\n          this._axoSnackBar.openSnackBar('Oops! Something went wrong', AxoSnackBarType.error);\n        }\n      })\n      .catch(error => {\n        console.error('Error creating app:', error);\n        var errorMessage = 'Oops! Something went wrong'\n      if (error) {\n         if (error === 'AX_ERR_67')\n        {\n            errorMessage = 'Oops! Can\\'t reach our servers 📡. Please wait, we\\'ll notify you soon.';\n        }\n      }\n        this._axoSnackBar.openSnackBar(errorMessage, AxoSnackBarType.error);\n      });\n  }\n//Trying to implement url as well as button functionality for installing app\n// async installApp(userInput?: string): Promise<void> {\n  \n//   if (!userInput) {\n//     userInput = prompt('Enter the string to send to the API:');\n//     if (!userInput) {\n//       // If user cancels or provides no input, do nothing\n//       return;\n//     }\n//   }\n\n//   this._axoSnackBar.openSnackBar('Installing App...', AxoSnackBarType.info);\n  \n \ncheckAndPublishApp(installedApp: string) {\n  //\n  const appNamecheck = localStorage.getItem('appname'); // Replace with your logic to get appNamecheck\n  const appPublishStatus = localStorage.getItem('publishstatus'); // Replace with your logic to get appPublishStatus\n  const appInstallStatus=localStorage.getItem('installstatus')\n\n   if (appNamecheck == null && appPublishStatus == \"False\" && appInstallStatus==\"True\") {\n    const appId = localStorage.getItem('publishAppIdData');\n    const appVersion = \"1.00\";\n    const publishStatus = \"P\";\n    if (appId) {\n      this._commonService.publishapp(appId, appVersion, publishStatus).subscribe(\n        response => {\n          // Handle the response if needed\n          console.log('Publish response:', response);\n          // const appName = installedApp || 'Your App';\n          // const appVersion = '1.000';\n          // const successMessage = `App: ${appName} version ${appVersion} is published successfully.`;\n         // this.openSuccessDialog('version published successfully!');\n         const appName = installedApp;\n         const appVersion = '1.000';\n         const boxheading=`Installed`\n         const successMessage = `App: ${appName} version ${appVersion} is installed successfully. `;\n         const successDialogRef = this.dialog.open(SuccessDialogComponent, {\n           width: '500px',\n           data: { message: successMessage , heading:boxheading},\n           disableClose: true\n         });\n          // Remove local storage items\n          localStorage.removeItem('publishAppIdData');\n          localStorage.removeItem('publishstatus');\n          localStorage.removeItem('installstatus');\n        },\n        error => {\n          // Handle error if needed\n          console.error('Error publishing app:', error);\n        }\n      );\n    }\n  }\n}\nfetchAppDetails(flatten: any) {\n  if (flatten && flatten.appVersionId) {\n    this._mpAppListService.fetchAppDetails(flatten.appVersionId, this.commonLibConfig.axonatorX1Url).subscribe(\n      (response: any) => {\n        const isAppChangedAfterPublish = response?.data?.details?.is_app_changed_edited_after_publish || false;\n        this.isAppChangedAfterPublish = isAppChangedAfterPublish;\n\n        this.isAppChangedAfterPublish = true;\n        console.log(\"Details Found\")\n        // Trigger change detection to update the view\n        // this.detectChanges(); // <--- Call detectChanges() here\n\n      },\n      (error) => {\n        console.error('Error fetching app details:', error);\n      }\n    );\n  } else {\n    console.error('appVersionId is missing or invalid in the flatten object:', flatten);\n  }\n}\n\n\nasync  installApp(userInput: string, category: string): Promise<void> {\n  //\n  \n  this._axoSnackBar.openSnackBar( 'Installing App...', AxoSnackBarType.info);\n  const loadingDialogRef = this.dialog.open(LoadingAppinstallComponent, {\n    width: '600px',\n    data: { loadingMessage: 'Installing app, please wait...' },\n    disableClose: true\n  });\n  //const loadingDialogRef = this.openLoadingDialogWithMessage('Please wait. Installing in progress...');\n  \n    const data = {\n      requestString: userInput,\n      secondString: category\n    }; \n    const response = await this.http.post<string>('InstallApp', data, {\n      headers: new HttpHeaders({\n        'Content-Type': 'application/json' // Set content type to application/json\n      }),\n      withCredentials: true\n    }).toPromise();\n\n    //console.log('Response from server:', response); \n    \n    //const responseObject = JSON.parse(response);\n    \n    \n  //   if (response) {\n\n  //     if(responseObject.status==\"success\"){\n  //     this._axoSnackBar.openSnackBar('App installed successfully', AxoSnackBarType.success);\n  //     setTimeout(() => {\n  //       window.location.reload();\n  //     }, 15000);\n  //   } else if(responseObject.status=='failure') {\n  //     this._axoSnackBar.openSnackBar('Form Not Found in this app', AxoSnackBarType.error);\n  //   }\n  //     else {\n  //     this._axoSnackBar.openSnackBar('Oops! Something went wrong while installing the app.', AxoSnackBarType.error);\n      \n  //     console.error(AxoSnackBarType.error);\n  //   }}\n  // } catch (error) {\n  //   console.error('Error installing app:', error);\n  //   this._axoSnackBar.openSnackBar('Oops! Something went wrong while installing the app.', AxoSnackBarType.error);\n  //   //this._loggingService.trackEvent('Error occurred while installing app', error);\n  // }\n\n    \n      //const responseObject = JSON.parse(response);\n      //console.log(responseObject);\n      localStorage.setItem(\"InstalledAppName\",userInput)\n      const responseObject = typeof response === 'string' ? JSON.parse(response) : response;\n      \n      if (response) {\n        //if (responseObject) {\n         if (responseObject.status === \"success\") {          \n          localStorage.setItem(\"installstatus\",\"True\")\n            setTimeout(() => {\n              \n              this._axoSnackBar.openSnackBar('App installed successfully', AxoSnackBarType.success);\n              window.location.reload();\n              loadingDialogRef.close();\n            }, 20000);\n            \n           \n          // } else if (responseObject.status === 'failure') {\n          //   this._axoSnackBar.openSnackBar('Form Not Found in this app', AxoSnackBarType.error);\n        }else {\n          this._axoSnackBar.openSnackBar('Form cannot be found for this app', AxoSnackBarType.error);\n          loadingDialogRef.close();\n          console.error(AxoSnackBarType.error);\n        }}\n        else{\n          this._axoSnackBar.openSnackBar('Oops!Something went wrong while creating the app', AxoSnackBarType.error);\n          loadingDialogRef.close();\n          console.error(AxoSnackBarType.error);\n        }\n    }   \n\n\n    openDeleteAppDialog(appVersionId:number){\n      const dialogRef = this.dialog.open(ConfirmationModalComponent, {\n        width: '30%',\n      data: {\n        title: 'Delete App',\n        message: 'Are you sure want to delete this app?',\n        confirmButtonText: 'Delete',\n        cancelButtonText: 'Cancel',\n        confirmButtonType: 'delete'\n      },\n      panelClass: 'confirm-modal-container'\n      });\n\n      dialogRef.afterClosed().subscribe(result => {\n        if (result) {\n          this.deleteApp(appVersionId); // Proceed with deletion\n        }\n      });\n    }\n\n    deleteApp(appVersionId:number): void {\n    if(this.hasAppBuilderPermission){\n      this._flattenService.getFlattenData(appVersionId)\n          .pipe(\n              takeUntil(this._unsubscribeAll),\n              switchMap((flatten) => {\n                  if (flatten && flatten.appId !== undefined && flatten.version !== undefined) {\n                      const appId = flatten.appId.toString();\n                      const appVersion = flatten.version.toString();\n                      const AppV=appVersionId;\n                      console.log(\"App version Id:\"+appVersionId);\n\n                      this.data={\n                        \"App Id\" : flatten.appId,\n                        \"App Name\" : flatten.appName,\n                        \"App version\" : flatten.version\n                      }\n\n                      console.log('Fetched app details from flatten:', { appId, appVersion });\n  \n                      return this._mpAppListService.deleteApp(appId, appVersion.toString())\n                          .pipe(\n                              catchError((error) => {\n                                  console.log('Error occurred while deleting app:', error);\n                                  // Handle the error, e.g., display a message or perform additional actions\n                                  return throwError(error);\n                              })\n                          );\n                  } else {\n                      console.log('Error: flatten object or its properties are undefined.');\n                      // Handle the case where flatten or its properties are undefined\n                      return throwError('Flatten object or its properties are undefined');\n                  }\n              })\n          )\n          .subscribe(\n              (response) => {\n                  // Handle the success response here if needed\n                  console.log('Delete app success:', response);\n                 // Remove the deleted app from the appList\n                 this.appList = this.appList.filter(app => app.appVersionId !== appVersionId);\n                 this._axoSnackBar.openSnackBar('App deleted successfully', AxoSnackBarType.success);\n                 this._loggingService.trackEvent('App deleted', this.data);\n                  // Manually trigger change detection to update the view\n                  this._changeDetectorRef.detectChanges();                   \n                      },\n              (error) => {\n                  // Handle the error here if needed\n                  console.error('Delete app error:', error);\n              }\n          );\n        }else{\n          this._axoSnackBar.openSnackBar('Permission Denied', AxoSnackBarType.error);\n        }\n  }\n    \n  \n\nprivate openLoadingDialogWithMessage(message: string): Promise<void> {\n  \n  const dialogRef = this.dialog.open(LoadingAppinstallComponent, {\n    width: '500px',\n    \n    panelClass: 'app-loading-dialog',\n    data: { message, type: 'Your app is being Published...' },\n  });\n\n  return new Promise<void>((resolve) => {\n    setTimeout(() => {\n      dialogRef.close();\n      //this.openSuccessDialog('version published successfully!');\n      resolve(); // Resolve the promise after closing the dialog\n    }, 13800); // 13.6 seconds in milliseconds\n  });\n}\n\nprivate openSuccessDialog(message: string): void {\n  //\n  this._flattenService.flatten$.pipe(\n    take(1),\n    switchMap((flatten) => {\n      if (!flatten || !flatten.appVersionId) {\n        return throwError('Flatten object or its properties are undefined');\n      }\n      return forkJoin({\n        flatten: of(flatten),\n        appDetails: this._mpAppListService.fetchAppDetails(flatten.appVersionId, this.commonLibConfig.axonatorX1Url).pipe(\n          catchError((error) => {\n            console.error('Error fetching app details:', error);\n            return of(null);\n          })\n        )\n      });\n    })\n  ).subscribe(({ flatten, appDetails }) => {\n    console.log('fetchAppDetails function called 4');\n    this.isAppChangedAfterPublish = appDetails?.data?.details?.is_app_changed_edited_after_publish || false; // Set isAppChangedAfterPublish based on the API response\n    // Fetch the minor version from getVersionList\n    this._commonService.getVersionList(flatten.appId, flatten.version).subscribe((result) => {\n      let appMinorVersion = 'Unknown'; // Default value if minor version is not found\n      if (result && result.v && result.v.versionslist && result.v.versionslist.length > 0) {\n        appMinorVersion = result.v.versionslist[0].appminorversion;\n      }\n      const appName = flatten?.appName || 'Your App';\n        const appVersion = flatten?.version || 'version';\n        const successMessage = `App: ${appName} version ${appMinorVersion} is Installed successfully.`;\n        const appheading =`Installed`\n        const successDialogRef = this.dialog.open(SuccessDialogComponent, {\n          width: '500px',\n          data: { message: successMessage}\n        });\n    });\n  });\n}\n\ncapitalizeWords(str: string): string {\n  return str\n    .split(' ')\n    .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n    .join(' ');\n}\n\n\n  /**\n   * On destroy\n   */\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n  disableQR(appVersionId: any , index: number){\n    let data = {\n      appVersionId : appVersionId\n    };\n  \n    this._dataViewFiltersService.disableQR(data)\n      .subscribe(\n        (response) => {\n          this._axoSnackBar.openSnackBar('QR code disabled successfully', AxoSnackBarType.success);\n          this._loggingService.trackEvent('QR Disabled',{response});\n          this.appList[index].qr_status = false;\n          this._changeDetectorRef.detectChanges();\n        },\n        (error) => {\n          console.error('Error:', error);\n          // Handle the error\n        }\n      );  \n  }\n\n  disableQRDialog(appVersionId: any, index: number){\n    const dialogRef = this.dialog.open(ConfirmationModalComponent, {\n      width: '30%',\n      data: {\n        title: 'Disable QR',\n        message: 'Are you sure you want to disable QR for this form?',\n        confirmButtonText: 'Disable',\n        cancelButtonText: 'Cancel',\n        confirmButtonType: 'delete'\n      },\n      panelClass: 'confirm-modal-container'\n    });\n    dialogRef.afterClosed().subscribe(result => {\n      if (result) {\n        this.disableQR(appVersionId, index);\n      }\n    });\n  }\n\n  getUserPermissions() {\n    return new Promise<void>((resolve, reject) => {\n    this._commonService.getUserDetail(true).subscribe(\n      (response: any) => {\n        if (response.status === 'success' && response.ud) {\n          this.permissions = response.ud.permissions; // Extract permissions\n          this.hasOrgUserAccess = this.permissions.includes('ORG_IAM'); // Check if 'ORG_IAM' is in the permissions array\n          \n          // Show overlay only if 'ACCESS_WEB_PORTAL' permission is not present\n          this.showWebPortalAccessOverlay = !this.permissions.includes('ACCESS_WEB_PORTAL');\n          this.hasAppBuilderPermission = this.permissions.includes(\"APP_BUILDER\") && this.permissions.includes(\"ACCESS_WEB_PORTAL\");\n          resolve();\n        }\n      },\n      (error) => {\n        console.error('Error fetching user details:', error);\n        reject(error)\n      }\n    );\n  })\n}\n  isRestrictedUrl(): boolean {\n    const restrictedUrls = [\n      'https://andromeda-container-qa.axonator.com/apps',\n      'https://localhost:4201/apps',\n      'https://web.axonator.com/apps'\n    ];\n    return restrictedUrls.includes(window.location.href);\n  }\n}\n\n","// External libs\nimport { Component, ViewEncapsulation, OnInit, AfterViewInit, OnDestroy, ViewChild, ElementRef, ComponentFactoryResolver, Output, EventEmitter, ViewContainerRef, ComponentRef, Input, OnChanges } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\n\n// Components from ax-common-ui-lib\n// Services\nimport { MatMenuTrigger } from '@angular/material/menu';\nimport { ChartFactory } from '../../../../lib/enlighten-lib/report/graphical-report/chart/chart-factory';\nimport { AxElement } from '../../../../lib/enlighten-lib/elements/ax-element';\nimport { Report } from '../../../../lib/common-utils/report';\nimport { CommonService } from '../../../../lib/common.service';\nimport { Attribute } from '../../data-model/attribute';\nimport { Dimension } from './chart/dimension';\nimport { Page } from './page/page';\nimport { ChartType, Type } from './chart/chart-type';\nimport { ReportBuilderMasterService } from '../report-builder-master.service';\nimport { IGraphicalReportComponent } from './igraphical-report.component';\nimport { BarChart } from './bar-chart/bar-chart';\nimport { AttributeData } from '../../fields/attribute-data';\nimport { ElementProperty } from '../../property/element-property';\nimport { ScreenType } from '../../filters/condition-type';\nimport { AxFilter } from '../../filters/ax-filter';\n\n@Component({\n    selector: 'graphical-report',\n    templateUrl: './graphical-report.component.html',\n    styleUrls: ['./graphical-report.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\n/**\n * This component render all report element in the pages\n * For dynamic rendering we use graphical directives\n */\nexport class GraphicalReportComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\n\n    /**\n     * Element reference for drop container\n     */\n    @ViewChild('graphicalReportDropZone', { read: ElementRef, static: true }) graphicalReportDropZone: ElementRef;\n\n    /**\n     * * *  * Directive reference to render components dynamically using component factory* */\n    @ViewChild('graphicalReportHost', { read: ViewContainerRef })\n         graphicalReportHost: ViewContainerRef;\n\n    /***\n    * MatMenuTrigger Use for right click on the chart action\n    */\n\n    @ViewChild(MatMenuTrigger)\n\n    contextMenu: MatMenuTrigger;\n\n\n    @Input() page: Page;\n    @Input() attributeDropZoneList: string[] = [];\n  \n\n    // Event fired to parent component (ReportBuilderMasterComponent) when page is clicked\n    @Output() pageClickedEvent = new EventEmitter<any>();\n\n    // Event fired to parent component (ReportBuilderMasterComponent) when any chart/graph is clicked\n    @Output() graphClickedEvent = new EventEmitter<any>();\n    @Output() elementDeleteEvent = new EventEmitter<any>();\n    @Input() screenType: ScreenType;\n    @Input() drillThroughFilterInput: AxFilter;\n    @Output() nextPageClicked: EventEmitter<any> = new EventEmitter();\n    @Output() previousPageClicked: EventEmitter<any> = new EventEmitter();\n    @Input() drillThroughParentType: ScreenType;\n    @Input() hasNextPage: boolean;\n    @Input() appVersionId: number;\n    newELementDropped: boolean = false;\n\n\n\n    contextMenuPosition = { x: '0px', y: '0px' };\n    componentsReferences = Array<ComponentRef<any>>();\n\n\n\n\n    // Page object for maintaining page properties\n    chartFactory: ChartFactory;\n\n    /**\n     * Array of objects of chart classes that implement IChart\n     */\n\n    elements: Array<AxElement> = [];\n    chartType: any = Type;\n    series: any;\n    childUniqueKey: number = 0;\n    report: Report;\n    chartIcons = [\n        { type: 'pie', subType: 'horizontal', dropped: false },\n        { type: 'bar', subType: 'vertical', dropped: false },\n        // Add other chart types as needed\n      ];\n\n\n    /**\n     * Subject object which helps unsubscribe all the subscribed objects in the component\n     */\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n    dropZoneList: string[]= ['chart-icons'];\n    droppedCharts: any[] = []; // To track dropped chart instances\n\n\n    /**\n     * Constructor\n     *\n     */\n    constructor(\n        private _componentFactoryResolver: ComponentFactoryResolver,\n        private _reportBuilderMasterService: ReportBuilderMasterService,\n        private _commonService: CommonService\n    ) {\n        this.chartFactory = new ChartFactory();\n    }\n\n    public get screenTypes(): typeof ScreenType {\n        return ScreenType;\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Lifecycle hooks start\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * On init\n     */\n    ngOnInit(): void {\n        this.dropZoneList = ['chart-icons', ...this.attributeDropZoneList];\n        this.report=this._reportBuilderMasterService.report;\n    }\n\n    //  Use loop\n    ngAfterViewInit(): void {\n        this.page.elements.forEach((element) => {\n            if(!element.isDeleted){\n                this.renderElementComponent(element);\n            }\n        });\n    }\n\n\n\n\n    /***\n     * onClickAddChartList - called when click on add chart list\n     * @param selectedChart\n     */\n\n    addElement(selectedChart: AxElement | ChartType | any): void {\n        this.newELementDropped = true;\n        const element = this.chartFactory.createChartObjectByType(selectedChart);\n        this.page.elements.push(element);\n        this._componentFactoryResolver.resolveComponentFactory(element.component);\n        this.renderElementComponent(element);\n    }\n\n    \n\n\n    /****\n     * renderElementComponent function use for render the  elemengt\n     */\n\n    renderElementComponent(element: AxElement): void{\n        this.elements.push(element);\n        /* We have to add element at the start of dropZone because cdkdrop connect on this sequence.\n        This sequene is required for nested drop zone in our case element drop zone inside the page drop zone\n        so which drop zone has been selected it's depend on connectedTo sequence\n        */\n       if(this.screenType !== ScreenType.drillThrough)\n            {this.attributeDropZoneList.unshift('cdk-drop-'+element.guid);}\n        const componentFactory= this._componentFactoryResolver.resolveComponentFactory(element.component);\n        const componentRef = this.graphicalReportHost.createComponent<IGraphicalReportComponent>(componentFactory);\n        componentRef.instance.reportData = element;\n        if(this.screenType === this.screenTypes.drillThrough){\n            componentRef.instance.drillThroughFilterInput = this.drillThroughFilterInput;\n            componentRef.instance.drillThroughParentType = this.drillThroughParentType;\n        }\n        componentRef.instance.screenType = this.screenType;\n        componentRef.instance.isEditable = (this.screenType !== ScreenType.drillThrough);\n        componentRef.instance.uniquekey = ++this.childUniqueKey;\n        componentRef.instance.currentPageId = this.page.id;\n        componentRef.instance.appVersionId = this.appVersionId;\n        this.componentsReferences.push(componentRef);\n\n        componentRef.instance.onchartClickedEvent.subscribe((data) => {\n            this.graphClickedEvent.emit(data);\n        });\n        componentRef.instance.onchartRightClickDeleteEvent.subscribe((data) => {\n            this.onChartRightClickDelete(componentRef.instance.uniquekey);\n        });\n\n        componentRef.changeDetectorRef.detectChanges();\n        // Dropped element set as selected.\n        if(this.newELementDropped){\n            setTimeout(() => {\n                this.graphClickedEvent.emit(componentRef.instance.property);\n                this.newELementDropped = false;\n            },100);\n\n        }\n\n    }\n    /**\n     * On destroy\n     */\n    ngOnDestroy(): void {\n        // Unsubscribe from all subscriptions\n        this._unsubscribeAll.next();\n        this._unsubscribeAll.complete();\n    }\n\n    /**\n     * ngOnChanges use to change the current page object\n     */\n\n    // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\n    ngOnChanges(): void {\n        if(this.graphicalReportHost && this.page){\n            this.graphicalReportHost.clear();\n            if(this.page.elements.length){\n                this.page.elements.forEach((element) => {\n                    if(!element.isDeleted){\n                        this.renderElementComponent(element);\n                    }\n                });\n            }\n        }\n    }\n    // -----------------------------------------------------------------------------------------------------\n    // @ Lifecycle hooks end\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * attributeOrChartDropped\n     * Called when attribute is dragged from left side fields list and dropped\n     * Also called when a chart is drragged & dropped (moved) within the central panel\n     *\n     * @param $event\n     */\n    // attributeOrChartDropped($event: CdkDragDrop<any>): void {\n    //     //process attribute on page if it is dropped under the page\n    //     if($event.isPointerOverContainer)\n    //         {this.processAttributeOnPage($event);}\n    // }\n\n\n    handleChartDrop(chartData: any, dropPoint: { x: number, y: number }): void {\n        \n        const rect = this.graphicalReportDropZone.nativeElement.getBoundingClientRect();\n        const left = dropPoint.x - rect.left; // Calculate left position\n        const top = dropPoint.y - rect.top; // Calculate top position\n\n        // Check if a chart with the same GUID already exists\n        const existingChart = this.droppedCharts.find(chart => chart.guid === chartData.guid);\n        if (existingChart) {\n            // If it exists, allow moving the existing chart\n            existingChart.xPosition = left; // Update the x position\n            existingChart.yPosition = top; // Update the y position\n            this.renderElementComponent(existingChart); // Re-render the existing chart\n        } else {\n            // Create a new chart instance\n            const newChart = this.chartFactory.createChartObjectByType(chartData);\n            newChart.xPosition = left; // Set the x position\n            newChart.yPosition = top; // Set the y position\n\n            // Add the new chart to the droppedCharts array\n            this.droppedCharts.push(newChart);\n            this.renderElementComponent(newChart); // Render the chart\n            this.page.elements.push(newChart); // Add to the page elements\n        }\n    }\n   \n\n    attributeOrChartDropped($event: CdkDragDrop<any>): void {\n\n        const isIcon = $event.item.data instanceof ChartFactory; \n        \n        if ($event.isPointerOverContainer) {\n            const rect = this.graphicalReportDropZone.nativeElement.getBoundingClientRect();\n            let top = $event.dropPoint.y - rect.top;\n            let left = $event.dropPoint.x - rect.left;\n\n    \n            if ($event.item.data instanceof Attribute) {\n                this.processForRenderingTheAttribute($event.item.data, left, top);}\n            else if($event.item.data instanceof ChartFactory){\n                this.processForRenderingTheChart($event.item.data, left, top);\n            } else {\n                // This is an existing chart being moved\n                this.setItemPosition($event, left, top, $event.item.element.nativeElement.getBoundingClientRect());\n            }\n            this._commonService.isReportBuilderDirty = true;\n        }\n    }\n    \n    processForRenderingTheChart(chartData: any, left: number, top: number): void {\n        this.newELementDropped = true;\n        const element = this.chartFactory.createChartObjectByType(chartData);\n        element.xPosition = left;\n        element.yPosition = top;\n        this.renderElementComponent(element);\n        this.page.elements.push(element);\n    }\n\n    /**\n     * processAttributeOnPage\n     * Called when attribute is dragged from left side fields list and dropped on central page i.e. drop list container\n     *\n     * @param $event\n     */\n    processAttributeOnPage($event: CdkDragDrop<any>): void {\n        // Calculating top & left absolute position where the attribute or chart was dropped\n        const rect = $event.item.element.nativeElement.getBoundingClientRect();\n        const rectDrop = this.graphicalReportDropZone.nativeElement.getBoundingClientRect();\n        let top = rect.top + $event.distance.y - rectDrop.top;\n        let left = rect.left + $event.distance.x - rectDrop.left;\n        this._commonService.isReportBuilderDirty=true;\n        // Check if the dragged item is Attribute from left hand side panel or the chart within the central panel\n        if ($event.item.data instanceof Attribute) {\n            if(($event.dropPoint.x + 325) > rectDrop.right){\n                left = left - (($event.dropPoint.x + 355) - rectDrop.right);\n            }\n            if(($event.dropPoint.y + 325) > rectDrop.bottom){\n                top = top - (($event.dropPoint.y + 355) - rectDrop.bottom);\n            }\n            this.processForRenderingTheAttribute($event.item.data, left, top);\n        }\n        else {\n        // Else part shows that the item being dragged is graph/chart that is moved within the container\n            this.setItemPosition($event, left, top, rect);\n        }\n        this._commonService.isReportBuilderDirty=true;\n    }\n\n    /**\n     * processForRenderingTheAttribute() - process the attrinute for rendering on page as chart\n     *\n     * @param data\n     * @param left\n     * @param top\n     */\n    processForRenderingTheAttribute(data: Attribute, left: number,top: number): void{\n        this.newELementDropped = true;\n        const element = new BarChart();\n        element.xPosition = left;\n        element.yPosition = top;\n        const attribute = new AttributeData(data);\n        attribute.aggregateFn='count';\n        element.matrix.attributes.push(attribute);\n        element.dimension = new Dimension();\n        const dimensionAttr = new AttributeData(data);\n        element.dimension.attribute = dimensionAttr;\n        element.dimension.attribute.aggregateFn = 'none';\n        this.renderElementComponent(element);\n        this.page.elements.push(element);\n    }\n\n    /**\n     * setItenPosition() - Set the new position of the item on item dropped\n     *\n     * @param $event\n     * @param left\n     * @param top\n     * @param rect\n     */\n    setItemPosition($event: CdkDragDrop<any>, left: number, top: number, rect: DOMRect): void {\n        const minTopMargin = 0;\n        const minLeftMargin = 0;\n        const maxTopMargin = ((top + $event.item.data.height) > 1100) ? (1100 -$event.item.data.height) : top;\n        const maxLeftMargin = (left > 436) ? 436 : left;\n        let leftMargin = (left < minLeftMargin) ? minLeftMargin : maxLeftMargin;\n        const topMargin = (top < minTopMargin) ? minTopMargin : maxTopMargin;\n        if((rect.width + left) > 780){\n            leftMargin = (rect.width > 780) ? 0 :780 - rect.width;\n        }\n        $event.item.data.xPosition = leftMargin;\n        $event.item.data.yPosition = topMargin;\n    }\n\n    /**\n     * Called when a page is clicked on graphical report builder\n     */\n    onPageClicked(): void {\n        const data= new ElementProperty();\n        data.page=this.page;\n        this.pageClickedEvent.emit(data);\n    }\n\n\n    /*\n    ** Delete element from container  and remove it from element array\n    *  @param key\n    */\n    onChartRightClickDelete(key: number): void {\n        // Find the component\n        const componentRef = this.componentsReferences.filter(\n            x => x.instance.uniquekey === key\n        )[0];\n        const vcrIndex: number = this.graphicalReportHost.indexOf(componentRef.hostView as any);\n        this.graphicalReportHost.remove(vcrIndex);\n        // removing component from the list\n        this.componentsReferences = this.componentsReferences.filter(\n            x => x.instance.uniquekey !== key\n        );\n\n        // mark element as deleted\n        componentRef.instance.reportData.isDeleted = true;\n        this.elementDeleteEvent.emit(componentRef.instance.reportData.guid);\n\n    }\n\n    previousPage(): void{\n        this.previousPageClicked.emit();\n    }\n\n    nextPage(): void{\n        this.nextPageClicked.emit();\n    }\n}\n","\n\t\n\t<!-- This is the central page that looks like PDF & it will have all the charts in it. -->\n\t<div id=\"central-page\" class=\"page\" cdkDropList \n\t[cdkDropListData]=\"elements\" \n\t(cdkDropListDropped)=\"attributeOrChartDropped($event)\" \n\tcdkDropListSortingDisabled=\"true\" \n\t\n\t#graphicalReportDropZone \n\t(click)=\"onPageClicked()\">\n\t\t<ng-container *ngIf=\"screenType === screenTypes.drillThrough\">\n\t\t\t<mat-icon (click)=\"previousPage()\" class=\"back-btn\" [svgIcon]=\"'axo_back_arrow'\"></mat-icon>\n\t\t\t<mat-icon (click)=\"nextPage()\" *ngIf=\"hasNextPage\" class=\"next-btn\" [svgIcon]=\"'axo_back_arrow'\"></mat-icon>\n\t\t</ng-container>\n\t\t<!-- Dynamically the charts will be rendered here based on the type. -->\n\t\t<ng-template #graphicalReportHost></ng-template>\n    </div>\n\t\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[graphicalReportHost]',\n})\nexport class GraphicalReportDirective {\n  constructor(public viewContainerRef: ViewContainerRef) { }\n}\n","<!-- This is tabular report component -->\n<div id=\"central-page\" class=\"page customscroll-x\" cdkDropList [cdkDropListData]=\"elements\"\n    (cdkDropListDropped)=\"attributeDropped($event)\" cdkDropListSortingDisabled=\"true\" #tabularReportDropZone\n    (click)=\"onPageClicked()\" [ngClass]=\"{'flex items-center justify-center': tabularReport.matrix.attributes.length===0}\">\n    <ng-container *ngIf=\"screenType === screenTypes.drillThrough\">\n        <mat-icon (click)=\"previousPage()\" class=\"back-btn\" [svgIcon]=\"'axo_back_arrow'\"></mat-icon>\n        <mat-icon (click)=\"nextPage()\" *ngIf=\"hasNextPage\" class=\"next-btn\" [svgIcon]=\"'axo_back_arrow'\"></mat-icon>\n</ng-container>\n\t\t<!-- Dynamically the tabular report will be rendered here. -->\n        <tabular\n          [x1MediaUrl]=\"x1MediaUrl\"\n          [x1ImageMediaUrl]='x1ImageMediaUrl' \n          [tabularReport]=\"tabularReport\" \n          [page]=\"page\"\n          [appVersionId]=\"appVersionId\"\n          [isEditable]='true'\n          [userEmail]=\"userEmail\" \n          (sendExcelReportEvent)=\"sendExcelReportEvent.emit($event)\" \n          [screenType]=\"screenType\"\n          [drillThroughFilterInput]=\"drillThroughFilterInput\"\n          [drillThroughParentType]=\"drillThroughParentType\"\n          class=\"tabular-report\"\n          ></tabular>\n</div>","// Angular & External libs\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { Component, ViewEncapsulation, OnDestroy, Input, AfterViewInit, EventEmitter, Output, ViewChild, OnChanges, SimpleChanges, OnInit } from '@angular/core';\nimport { Attribute } from '../../data-model/attribute';\nimport { AxElement } from '../../elements/ax-element';\nimport { AttributeData } from '../../fields/attribute-data';\nimport { AxFilter } from '../../filters/ax-filter';\nimport { ScreenType } from '../../filters/condition-type';\nimport { ElementProperty } from '../../property/element-property';\nimport { Page } from '../graphical-report/page/page';\nimport { TabularReport } from './tabular-report';\nimport { TabularComponent } from './tabular/tabular.component';\n\n@Component({\n    selector: 'tabular-report',\n    templateUrl: './tabular-report.component.html',\n    styleUrls: ['./tabular-report.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\nexport class TabularReportComponent implements OnDestroy, AfterViewInit, OnChanges, OnInit {\n    @ViewChild(TabularComponent) tabularReportComponentRef!: TabularComponent;\n\n    @Output() pageClickedEvent = new EventEmitter<any>();\n    @Output() sendExcelReportEvent = new EventEmitter<any>();\n    @Output() previousPageClicked: EventEmitter<any> = new EventEmitter();\n    @Output() nextPageClicked: EventEmitter<any> = new EventEmitter();\n    @Input() page: Page;\n    @Input() x1ImageMediaUrl: string;\n    @Input() screenType: ScreenType;\n    @Input() drillThroughParentType: ScreenType;\n    @Input() drillThroughFilterInput: AxFilter;\n    @Input() userEmail: string;\n    @Input() hasNextPage: boolean;\n    @Input()x1MediaUrl: string;\n    @Input() appVersionId: number;\n\n    series: any;\n    tabularReport: TabularReport;\n    /**\n     * Constructor\n     *\n     */\n    elements: Array<AxElement> = [];\n\n    constructor() {\n    }\n\n    get screenTypes(): typeof ScreenType {\n        return ScreenType;\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Lifecycle hooks start\n    // -----------------------------------------------------------------------------------------------------\n    ngOnInit(): void {\n    }\n    /**\n     * On Change\n     */\n    ngOnChanges(changes: SimpleChanges): void {\n        this.tabularReport = this.page.elements[0] as TabularReport;\n        this.tabularReport.pageIndex = 0;\n        this.tabularReport.pageLength = 0;\n        this.tabularReport.pageSize = 10;\n    }\n    ngAfterViewInit(): void {\n        this.page.elements.forEach((element) => {\n            this.elements.push(element);\n        });\n    }\n    /**\n     * On destroy\n     */\n    ngOnDestroy(): void {\n\n    }\n    // -----------------------------------------------------------------------------------------------------\n    // @ Lifecycle hooks end\n    // -----------------------------------------------------------------------------------------------------\n\n    attributeDropped($event: CdkDragDrop<any>): void {\n        if ($event.item.data instanceof Attribute) {\n            const attribute = new AttributeData($event.item.data);\n            attribute.aggregateFn = '';\n            this.tabularReportComponentRef.addColumn(attribute);\n        }\n    }\n\n    /**\n     * Called when a page is clicked on graphical report builder\n     */\n    onPageClicked(): void {\n        const data = new ElementProperty();\n        data.page = this.page;\n        this.pageClickedEvent.emit(data);\n    }\n\n    previousPage(): void {\n        this.previousPageClicked.emit();\n    }\n\n    nextPage(): void {\n        this.nextPageClicked.emit();\n    }\n\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { AttributesDto } from '../../common-dto/attributes-dto';\nimport { FilterProperty } from '../../enlighten-lib/property/filter-property';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { ScreenType } from '../../enlighten-lib/filters/condition-type';\nimport { WidgetSubType } from '../../forms/page/common/widget-enums';\n\n@Injectable()\nexport class ReferenceListFilterService {\n  refreshFilterPropertyEvent: EventEmitter<any> = new EventEmitter();\n  parentEventEmitterRef: EventEmitter<any> = new EventEmitter();\n  refreshChildFilterEventEmitterRef: EventEmitter<any> = new EventEmitter();\n  private _parentFilterList: BehaviorSubject<any[] | null> = new BehaviorSubject(null);\n  /**\n   * Constructor\n   */\n  constructor(private _httpClient: HttpClient, private _configuration: CommonLibConfigurationService) { }\n  /**\n   * Getter for entities\n   */\n  get parentFilterList$(): Observable<AxFilter[]> {\n    return this._parentFilterList.asObservable();\n  }\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshChildFilter(parentFilterKey: string | number, parentFilter: AxFilter): void {\n    this.refreshChildFilterEventEmitterRef.emit({ parentKey: parentFilterKey, parentValue: parentFilter });\n  }\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshFilterProperty(filter: any): void {\n    const filterProperty = new FilterProperty();\n    filterProperty.filter = filter;\n    this.refreshFilterPropertyEvent.emit(filterProperty);\n  }\n\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshFilterListProperty(filters: Array<AxFilter>): void {\n    this._parentFilterList.next(filters);\n  }\n  /**\n   * when parent filter add to child filter then call\n   */\n  refreshParentEventEmitter(guid: string): void {\n    this.parentEventEmitterRef.emit(guid);\n  }\n\n  /**\n   * Get Category list by the app-version id\n   */\n  getAttributeSeries(data: AttributesDto): Promise<AttributesDto> {\n    return new Promise((resolve, reject) => {\n      this._httpClient.post('attributesdata', data).subscribe((response: any) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n  /**\n   * to get reference widget values\n   *\n   * @param searchObject\n   * @returns\n   */\n  getDistinctWidgetValue(searchObject: any) {\n    const formData = new FormData();\n    formData.append('search', JSON.stringify(searchObject));\n    return new Promise((resolve, reject) => {\n      this._httpClient.post(this._configuration.axonatorX1Url + 'search/', formData).subscribe((response: any) => {\n        resolve(response);\n      }, reject);\n    });\n  }\n\n    /**\n     * Register panel scroll event (this is listener for mat options scroll.)\n     */\n     registerPanelScrollEvent(componentRef: any): void {\n      // Get options panel form select directive.\n      const panel = componentRef.selectElem.panel.nativeElement;\n\n      //Added Scroll event listener.\n      panel.addEventListener('scroll', (event) => {\n\n        // current scrolled position\n        const pos = event.srcElement.offsetHeight + event.srcElement.scrollTop;\n\n        //max scroll position\n        const max = event.srcElement.scrollHeight;\n\n        //Scrolled position and max scrolled position are same that mean scrolled reached at bottom. then load next page attribute list\n        if ((max - pos) < 2) {\n\n          //Saved current scroll position.\n          componentRef.attributeListScrollPos = event.srcElement.scrollTop;\n\n          componentRef.startIndex=componentRef.startIndex + 10;\n          //Fetch distinct values of widget values of next page as lazy load.\n          if (componentRef.screenType === ScreenType.dataList || componentRef.screenType === ScreenType.dataView || componentRef.screenType === ScreenType.dataViewBuilder) {\n            if(componentRef.expression.field.widgetSubType === WidgetSubType.fixedList){\n              componentRef.seriesList = componentRef.expression.field.fixedSeries;\n            }\n            else{\n              if(componentRef.startIndex>componentRef.seriesList.length || (componentRef.startIndex===10 && componentRef.seriesList.length===0)){\n                componentRef.limit=componentRef.limit+10;\n                this.getReferenceList(componentRef,event);\n\n              }\n            }\n            componentRef.isNoData = componentRef.seriesList.length ? true : false;\n          }\n        }\n      });\n    }\n\n      /**\n       * to get reference list from x1\n       *\n       * @param event\n       */\n  getReferenceList(componentRef: any,event: any = null): void {\n    console.log(componentRef.seriesList.length);\n    const searchObject = { 'srct': 'A', 'sc': 'f', 'afid': componentRef.filter.searchNodes[0].expression.field.formId,\n    'folnt': 78.534454, 'folat': 17.4508872, 'kw':componentRef.searchedTerm,'offset': 0, 'limit': componentRef.limit,\n    'search_in_all_fields':false };\n    componentRef.startIndex=componentRef.seriesList.length;\n    componentRef.offsetArray.push(componentRef.seriesList.length);\n    console.log(componentRef.offsetArray);\n    this.getDistinctWidgetValue(searchObject).then((data) => {\n      componentRef.referenceList = data['wfis_resp'].wfis.form_objects as Array<any>;\n      componentRef.seriesList = data['wfis_resp'].wfis.form_objects as Array<any>;\n      componentRef.totalFormObject = data['wfis_resp'].wfis.total_form_objects;\n      componentRef.isNoData = componentRef.seriesList.length ? true : false;\n      componentRef.totalFormObject = data['wfis_resp'].wfis.total_form_objects;\n\n    });\n    // to checked lazy loaded data if selectAll is true\n    if (componentRef.isSelectedAll && componentRef.isNoData) {\n      // componentRef.selectElem.options.forEach((item: MatOption) => item.select());\n      componentRef.expressionValue.value=[];\n      componentRef.seriesList.forEach((data) => {\n        componentRef.expressionValue.value.push(data.id);\n      });\n      // componentRef.expressionValue.value=\n      componentRef.expressionValue.isSearchable = true;\n    }\n    componentRef.expressionValue.value=componentRef.selectedSeries;\n\n  }\n\n}\n","import { Directive, ElementRef, Input, OnInit } from '@angular/core';\nimport { ScreenType } from '../enlighten-lib/filters/condition-type';\n\n@Directive({\n    selector: '[adjustFontSize]'\n})\nexport class AdjustFontSize implements OnInit{\n    @Input() screenType: ScreenType;\n    constructor(public element: ElementRef){\n    }\n\n    public adjustFontSize(): void{\n        let fitted = false;\n        while(!fitted){\n            if(this.isOverflow()){\n                const style = window.getComputedStyle(this.element.nativeElement,null).getPropertyValue('font-size');\n                const fontSize = parseFloat(style);\n                this.element.nativeElement.style.fontSize = (fontSize - 1) + 'px';\n                fitted = true;\n            }\n            else\n            {\n                const style = window.getComputedStyle(this.element.nativeElement,null).getPropertyValue('font-size');\n                const fontSize = parseFloat(style);\n                this.element.nativeElement.style.fontSize = (fontSize + 1) + 'px';\n                if(!this.isOverflow())\n                    {fitted = true;}\n            }\n        }\n\n    }\n    ngOnInit(): void{\n        if(this.screenType === ScreenType.containerDashboard || this.screenType === ScreenType.dashboardBuilder)\n            setInterval(() => this.adjustFontSize(),10);\n    }\n\n    isOverflow(): boolean{\n        if((this.element.nativeElement.clientWidth < this.element.nativeElement.scrollWidth) ||\n            (this.element.nativeElement.clientHeight < this.element.nativeElement.scrollHeight)){\n            return true;\n        }\n        return false;\n\n    }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FilterProperty } from '../../enlighten-lib/property/filter-property';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\n\n@Injectable()\nexport class ChoiceListFilterService {\n  refreshFilterPropertyEvent: EventEmitter<any> = new EventEmitter();\n  parentEventEmitterRef: EventEmitter<any> = new EventEmitter();\n  refreshChildFilterEventEmitterRef: EventEmitter<any> = new EventEmitter();\n  private _parentFilterList: BehaviorSubject<any[] | null> = new BehaviorSubject(null);\n  /**\n   * Constructor\n   */\n  constructor() { }\n  /**\n   * Getter for entities\n   */\n  get parentFilterList$(): Observable<AxFilter[]> {\n    return this._parentFilterList.asObservable();\n  }\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshChildFilter(parentFilterKey: string | number, parentFilter: AxFilter): void {\n    this.refreshChildFilterEventEmitterRef.emit({ parentKey: parentFilterKey, parentValue: parentFilter });\n  }\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshFilterProperty(filter: any): void {\n    const filterProperty = new FilterProperty();\n    filterProperty.filter = filter;\n    this.refreshFilterPropertyEvent.emit(filterProperty);\n  }\n\n  /**\n   * when filter click then open filter properties.\n   */\n  refreshFilterListProperty(filters: Array<AxFilter>): void {\n    this._parentFilterList.next(filters);\n  }\n  /**\n   * when parent filter add to child filter then call\n   */\n  refreshParentEventEmitter(guid: string): void {\n    this.parentEventEmitterRef.emit(guid);\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GhostLoaderComponent } from './ghost-loader.component';\n\n\n\n@NgModule({\n  declarations: [\n    GhostLoaderComponent,\n  ],\n  exports: [\n    GhostLoaderComponent\n  ],\n  imports: [\n    CommonModule\n  ]\n})\nexport class GhostLoaderModule { }\n","/* eslint-disable @typescript-eslint/no-inferrable-types */\nimport { Component, OnInit, ViewEncapsulation, OnDestroy, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { Router } from '@angular/router';\nimport { Subject, throwError } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { AxoSnackBarService, AxoSnackBarType } from '../../public-api';\nimport { AuthService } from '../core/auth/auth.service';\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { UserService } from '../core/user/user.service';\n\nimport { AppListDto } from '../../public-api';\nimport { MyAppListService } from '../app-list/my-app-list.service';\nimport { OrganizationListDto } from '../../public-api';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FlattenService } from '../flatten-module/flatten.service';\nimport { CommonService } from '../../public-api'; \nexport interface HUser {\n  name: string;\n  email: string;\n  fname?: string;\n  lname?: string;\n  payment_status?: string; // Add payment_status property\n  trial_end_date?: string; // Add trial_end_date property\n}\n\n@Component({\n  selector: 'app-common-header',\n  templateUrl: './common-header.component.html',\n  styleUrls: ['./common-header.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n      provide: MAT_SELECT_CONFIG,\n      useValue: { overlayPanelClass: 'organization-list-overlay-panel' },\n    },\n  ],\n})\n\nexport class CommonHeaderComponent implements OnInit {\n  userCount: number;\n  userLimit: number;\n  trialEndDate: string;\n  payment_status: string;\n  @Input() appList: Array<AppListDto>;\n  @Input() baseUrl: string;\n  @Input() organizationList: Array<OrganizationListDto> = [];\n  @Input() selectedOrganization: OrganizationListDto;\n  @Input() user: HUser;\n  @Input() listType: string;\n  @Output() switchAccountEvent = new EventEmitter<any>();\n  @Output() openAppEvent = new EventEmitter<any>();\n  @Output() updateListEvent = new EventEmitter<any>();\n  // user: User;\n  userName: string;\n  userEmail: string;\n  userImage: string;\n  version = '';\n  appId ='';\n\n\n\n  /*\n     * Subject object which helps unsubscribe all the subscribed objects in the component\n     */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  constructor(private _authService: AuthService,\n    private _changeDetectorRef: ChangeDetectorRef,\n    private _userService: UserService,\n    private _mpAppListService: MyAppListService,\n    private _router: Router,\n    private _axoSnackBar: AxoSnackBarService,\n    private dialog: MatDialog,\n    private _flattenService: FlattenService,\n    private _commonService: CommonService\n  ) { }\n  /**\n   * Getter for current year\n   */\n  get currentYear(): number {\n    return new Date().getFullYear();\n  }\n\n  getUserDetails(): void {\n    this._commonService.getUserDetail()\n      .pipe(\n        takeUntil(this._unsubscribeAll),\n        catchError(error => {\n          console.error('Error fetching user details:', error);\n          this._axoSnackBar.openSnackBar('Error fetching user details', AxoSnackBarType.error);\n          return throwError(error);\n        })\n      )\n      .subscribe((response: any) => {\n        this.user = response.ud;\n        this.userCount = response?.ud?.user_count || 0;\n        this.userLimit = response?.ud?.user_limit || 0;\n        this.trialEndDate = response?.ud?.trial_end_date || '';\n        this.payment_status = response?.ud?.payment_status || '';\n        this._changeDetectorRef.detectChanges();\n        // After fetching the user details, populate the user object with the response\n      });\n  }\n  \n\n  navigatetoOrganiation(): void {\n    this._router.navigateByUrl('organization');\n  }\n  navigatetoOrganiationSettings(): void {\n    this._router.navigateByUrl('organization-settings');\n  }\n  navigateToRoute(): void {\n    this._router.navigateByUrl('apps');\n  }\n \n\n\n  ngOnInit(): void {\n    this.getUserDetails();\n    this._commonService.sendlimitexceedmail()\n    if (this.user) {\n      this.userEmail = this.user.email;\n      this.userName = this.user['fname'] + ' ' + this.user['lname'];\n      this.userImage = this.user['uimg'];\n    }\n\n\n\n\n\n    const url = sessionStorage.getItem('url');\n    if (url) {\n      window.location.href = url;\n      // Remove saved data from sessionStorage\n      sessionStorage.removeItem('url');\n\n      // Remove all saved data from sessionStorage\n      sessionStorage.clear();\n    }\n\n  }\n  /**\n   * Call apps App Version Id route\n   *\n   * @param appVersionId\n   */\n  openApp(appVersionId: number): void {\n    this.openAppEvent.emit(appVersionId);\n  }\n\n  /**\n   * function use to Switch the organization\n   */\n  switchAccount(organizationId: string): void {\n    this.switchAccountEvent.emit(organizationId);\n  }\n\n  /**\n   * Sign out\n   */\n  signOut(): void {\n    this._authService.signOut();\n  }\n\n  /**\n   * Billing\n   */\n  navigateToBilling(): void {\n    this._router.navigateByUrl('paymentinfo/pricing')\n    \n  }\n\n\n\n  ///////////////////// Create Appp///////////////////\n  /**\n   *to create new app\n   */\n\n\n  /**\n   * On destroy\n   */\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n}\n","<div class=\"flex flex-col flex-auto h-full-appList my-app-list overflow-hidden page-background axo-font\" style=\"border-bottom: 1px solid #E9EFFA;\">\n    <!-- Header -->\n    <div class=\"sticky top-0 bg-white\">\n        <div class=\"app-list-main-header relative flex flex-0 h-12 z-49 box-border px-6\">\n          <div class=\"flex flex-auto items-center min-w-0\">\n              <img class=\"w-36 h-7 cursor-pointer\" src=\"assets/images/logo/axo-logo.svg\" alt=\"Logo image\" (click)=\"navigateToRoute()\">\n            </div>\n\n            <div class=\"flex flex-auto justify-end items-center min-w-0 gap-3\">\n                <button mat-icon-button class=\"mt-1.5\">\n                    <mat-icon svgIcon=\"axo_search\"></mat-icon>\n                </button>\n                <button mat-icon-button class=\"mt-1.5\">\n                    <mat-icon class=\"cursor-pointer axo_notifiction-2\" svgIcon=\"axo_notifiction-2\"></mat-icon>\n                </button>\n\n\n                <button (click)=\"$event.stopPropagation();\" mat-icon-button [matMenuTriggerFor]=\"userProfile09Menu\">\n                    <!-- <ng-container *ngIf=\"userImage; else isEmptyImage\">\n                        <img [src]=\"baseUrl + userImage\" onError =\"this.src='assets/icons/organization.png'\" class=\"organizationIcon\" alt=\"avtar\">\n                    </ng-container> -->\n                    <ng-template #isEmptyImage>\n\n                        <p class=\"uppercase font-medium cursor-pointer text-sm h-8 w-8 flex justify-center items-center ml-2 bg-gray-300 rounded-full m-0\">{{ user.fname[0] + user.lname[0] | uppercase }}</p>\n\n                    </ng-template>\n                </button>\n                <button mat-button [matMenuTriggerFor]=\"userProfile09Menu\" class=\"border-0\">\n                  <ng-container *ngIf=\"user && userImage; else isEmptyImage\">\n                    <img class=\"organizationIcon\" [src]=\"baseUrl + userImage\" alt=\"Avatar\" />\n                  </ng-container>\n                  <!-- <ng-container *ngIf=\"!(user && userImage); else isEmptyImage\">\n                    <span class=\"userEmptyIcon\">{{ (user?.name?.charAt(0) || '') | uppercase }}</span>\n                  </ng-container> -->\n                </button>\n\n                <mat-menu #userProfile09Menu=\"matMenu\" backdropClass=\"app-list-mat-menu-panel-class\">\n                  <button mat-menu-item class=\"h-full user-info\">\n                    <!-- <img class=\"organizationIconprofile\" [src]=\"baseUrl + userImage\" alt=\"Avatar\" (error)=\"fallbackToDefaultImage($event)\" /> -->\n                    <div class=\"inline-grid py-3\">\n                      <span class=\"user-name-title\">{{ user.fname }} {{ user.lname }}</span>\n                      <span class=\"user-emailid\">{{ user.email }}</span>\n\n                    </div>\n                  </button>\n\n                  <mat-divider class=\"my-0\"></mat-divider>\n                  <button mat-menu-item class=\"user-logout-btn organization-btn\" (click)=\"navigatetoOrganiation()\">\n                      <!-- <mat-icon [svgIcon]=\"'heroicons_outline:user-group'\"></mat-icon> -->\n                      <span class=\"logout-label\">Organization Users</span>\n                    </button>\n                    <button mat-menu-item class=\"user-logout-btn organization-btn\" (click)=\"navigatetoOrganiationSettings()\">\n                      <!-- <mat-icon [svgIcon]=\"'heroicons_outline:user-group'\"></mat-icon> -->\n                      <span class=\"logout-label\">Organization Settings</span>\n                    </button>\n                    <button mat-menu-item class=\"user-logout-btn billing-btn\" (click)=\"navigateToBilling()\">\n                      <!-- <mat-icon [svgIcon]=\"'heroicons_outline:credit-card'\"></mat-icon> -->\n                      <span class=\"logout-label\">Billing</span>\n                    </button>\n                    <mat-divider class=\"my-0\"></mat-divider>\n                    <button mat-menu-item class=\"user-logout-btn\" (click)=\"signOut()\">\n                      <!-- <mat-icon [svgIcon]=\"'heroicons_outline:logout'\"></mat-icon> -->\n                      <span class=\"logout-label\">Logout</span>\n                    </button>\n                </mat-menu>\n\n\n\n\n\n            </div>\n        </div>\n","// src/ax-common-ui-lib/src/lib/common-footer/common-footer.component.ts\nimport { Component, OnInit, ViewEncapsulation, OnDestroy, Input, Output, EventEmitter, ChangeDetectorRef, SimpleChanges } from '@angular/core';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\nimport { Router } from '@angular/router';\nimport { Subject, throwError } from 'rxjs';\nimport { catchError, map, switchMap, takeUntil } from 'rxjs/operators';\nimport { AxoSnackBarService, AxoSnackBarType } from '../../public-api';\nimport { AuthService } from '../core/auth/auth.service';\nimport { UserService } from '../core/user/user.service';\nimport { AppListDto, OrganizationListDto } from '../../public-api';\nimport { MyAppListService } from '../app-list/my-app-list.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FlattenService } from '../flatten-module/flatten.service';\nimport { CommonService } from '../../public-api'; \nimport { LoggingService } from '../services/logging.service';\n\nexport interface User {\n  name: string;\n  email: string;\n  fname?: string;\n  lname?: string;\n  payment_status?: string;\n  trial_end_date?: string;\n}\n\n@Component({\n  selector: 'app-common-footer',\n  templateUrl: './common-footer.component.html',\n  styleUrls: ['./common-footer.component.scss']\n})\nexport class CommonFooterComponent implements OnInit, OnDestroy  {\n  userCount: number;\n  userLimit: number;\n  trialEndDate: string;\n  trialDaysRemaining: number;  // New property for days remaining\n  payment_status: string;\n  @Input() reinitialize: boolean;\n  @Input() currentOrg:string;\n  @Input() organizationId: string;\n  @Input() appList: Array<AppListDto>;\n  @Input() switchAcc:boolean;\n  @Input() baseUrl: string;\n  @Input() organizationList: Array<OrganizationListDto> = [];\n  @Input() selectedOrganization: OrganizationListDto;\n  @Input() user: User;\n  @Input() listType: string;\n  @Input() showAddBtn = false;\n  @Input() showUpgradeBtn = false;\n  @Output() switchAccountEvent = new EventEmitter<any>();\n  @Output() openAppEvent = new EventEmitter<any>();\n  @Output() updateListEvent = new EventEmitter<any>();\n  // user: User;\n  userName: string;\n  userEmail: string;\n  userImage: string;\n  version = '';\n  appId ='';\n  currentUrl = document.URL;\n  baseUsrl = document.baseURI;\n\n  regex = /\\/apps\\/(\\d+)\\/(\\w+)/;\n  match = this.currentUrl.match(this.regex);\n\n  /*\n     * Subject object which helps unsubscribe all the subscribed objects in the component\n     */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  hasOrgUserPermission: boolean;\n  hasAppUserPermission: boolean;\n\n  constructor(private _authService: AuthService,\n    private _changeDetectorRef: ChangeDetectorRef,\n    private _userService: UserService,\n    private _mpAppListService: MyAppListService,\n    private _router: Router,\n    private _axoSnackBar: AxoSnackBarService,\n    private dialog: MatDialog,\n    private _flattenService: FlattenService,\n    private _userServices: CommonService,\n    private _loggingService : LoggingService,\n    private _commonService : CommonService,\n  ) { }\n  /**\n   * Getter for current year\n   */\n  get currentYear(): number {\n    return new Date().getFullYear();\n  }\n\n  getUserDetails(): void {\n    this._userServices.getUserDetail()\n      .pipe(\n        takeUntil(this._unsubscribeAll),\n        catchError(error => {\n          console.error('Error fetching user details:', error);\n          this._axoSnackBar.openSnackBar('Error fetching user details', AxoSnackBarType.error);\n          return throwError(error);\n        })\n      )\n      .subscribe((response: any) => {\n        this.user = response.ud;\n        this.userCount = response?.ud?.user_count || 0;\n        this.userLimit = response?.ud?.user_limit || 0;\n        this.trialEndDate = response?.ud?.trial_end_date || '';\n        this.payment_status = response?.ud?.payment_status ?? '';\n\n        this.calculateDaysRemaining();  // Calculate days remaining after fetching details\n\n        this._changeDetectorRef.detectChanges();\n        // After fetching the user details, populate the user object with the response\n      });\n  }\n\n  calculateDaysRemaining(): void {\n    if (this.trialEndDate) {\n      const endDate = new Date(this.trialEndDate);\n      const today = new Date();\n      const timeDiff = endDate.getTime() - today.getTime();\n      this.trialDaysRemaining = Math.ceil(timeDiff / (1000 * 3600 * 24));\n    } else {\n      this.trialDaysRemaining = null;\n    }\n  }\n\n  navigatetoOrganiation(): void {\n    this._router.navigateByUrl('organization');\n  }\n  navigateToRoute(): void {\n    this._router.navigateByUrl('apps');\n  }\n\n  ngOnInit(): void {\n    this.getUserDetails();\n    this._userServices.sendlimitexceedmail()\n    if (this.user) {\n      this.hasOrgUserPermission= this.user[\"permissions\"].includes('ORG_IAM')\n      this.hasAppUserPermission= this.user[\"permissions\"].includes('APP_IAM')\n      this.userEmail = this.user.email;\n      this.userName = this.user['fname'] + ' ' + this.user['lname'];\n      this.userImage = this.user['uimg'];\n    }\n    this._commonService.updateData(this.userCount)\n\n\n    this._commonService.data$.subscribe(value => {\n      this.userCount = value;\n      \n    });\n    \n\n    const url = sessionStorage.getItem('url');\n    if (url) {\n      window.location.href = url;\n      // Remove saved data from sessionStorage\n      sessionStorage.removeItem('url');\n\n      // Remove all saved data from sessionStorage\n      sessionStorage.clear();\n    }\n\n  }\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.reinitialize && changes.reinitialize.currentValue) {\n      this.ngOnInit();\n  }\n  }\n  /**\n   * Call apps App Version Id route\n   *\n   * @param appVersionId\n   */\n  openApp(appVersionId: number): void {\n    this.openAppEvent.emit(appVersionId);\n  }\n  \n\n  addUserList(): void {\n    const urlMap: { [key: string]: string } = {\n      'localhost:4200': 'https://localhost:4200/',\n      'localhost:4201': 'https://localhost:4200/',\n      'andromeda-builder-qa.axonator.com': 'https://andromeda-builder-qa.axonator.com/',\n      'andromeda-container-qa.axonator.com': 'https://andromeda-builder-qa.axonator.com/',\n      'builder.axonator.com': 'https://builder.axonator.com/',\n      'web.axonator.com': 'https://builder.axonator.com/'\n    };\n    const url: string = urlMap[window.location.host] || '';\n    if (this.match ) {\n      if(this.hasAppUserPermission){\n      const userListUrl = `apps/${this.match[1]}/users`; // dynamic part based on match\n      window.open(url + userListUrl, '_self'); // open dynamic URL\n      }else{\n        this._axoSnackBar.openSnackBar('Permission Denied', AxoSnackBarType.error);\n      }\n    }else{\n      if(this.hasOrgUserPermission){\n      window.open(url + 'organization', '_self'); // fallback to organization route\n      }else{\n      this._axoSnackBar.openSnackBar('Permission Denied', AxoSnackBarType.error);\n    }\n  }  \n}\n\n  reqprofservices(): void {\n    window.open('https://axonator.com/request-for-demo/', '_blank');\n  }\n\n  helpservices(): void {\n    window.open('https://axonator.com/docs/', '_blank');\n  }\n\n  /**\n   * function use to Switch the organization\n   */\n  switchAccount(organizationId: string): void {\n    this.switchAccountEvent.emit(organizationId);\n  }\n\n  /**\n   * Sign out\n   */\n  signOut(): void {\n    this._authService.signOut();\n  }\n\n  /**\n   * Billing\n   */\n  navigateToBilling(): void {\n    const urlMap: { [key: string]: string } = {\n      'localhost:4200': 'https://localhost:4200/paymentinfo/pricing',\n      'localhost:4201': 'https://localhost:4200/paymentinfo/pricing',\n      'andromeda-builder-qa.axonator.com': 'https://andromeda-builder-qa.axonator.com/paymentinfo/pricing',\n      'andromeda-container-qa.axonator.com': 'https://andromeda-builder-qa.axonator.com/paymentinfo/pricing',\n      'builder.axonator.com': 'https://builder.axonator.com/paymentinfo/pricing',\n      'web.axonator.com': 'https://builder.axonator.com/paymentinfo/pricing'\n    };\n    \n    const url: string = urlMap[window.location.host] || '';\n\n    this._loggingService.trackEvent('upgrade plan clicked', { nextStep: 'navigation to billing' });\n    window.open(url, '_self');\n  }\n\n  /**\n   * On destroy\n   */\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n}\n","<div class=\"bottom-0 flex flex-0 items-center justify-between w-full px-4 md:px-6 z-49 bg-white app-list-footer\">\n\n  <div class=\" flex space-x-4\" style=\"color: #1b2b4b;\"> <!-- Adjust the margin-right value as needed -->\n    <div *ngIf=\"userCount !== undefined && userLimit !== undefined\" class=\"flex items-center space-x-2\">\n        <!-- <img src=\"../../../../assets/icons/axo/user-licenses-remaining.svg\" class=\"user-licenses-remaining\" alt=\"\"> -->\n        <img src=\"https://static.axonator.com/static/img/doc-designer-assets/user-licenses-remaining-border.svg\" class=\"user-licenses-remaining\" alt=\"user\">\n        <span class=\"footer-heading\">Users</span> <span *ngIf=\"trialDaysRemaining > 0\">{{userCount}}</span><span *ngIf=\"trialDaysRemaining <= 0\">{{ userCount }}/{{ userLimit }}</span>\n\n        <button type=\"button\" id=\"userAddbtn\" class=\"btn-add flex items-center pr-2\" (click)=\"addUserList()\" *ngIf=\"showAddBtn\">\n        <img src=\"https://static.axonator.com/static/img/doc-designer-assets/plus-icon.svg\" alt=\"plus\">\n          <span>Add</span></button>\n      </div>\n\n      <div class=\" flex space-x-4\">\n          <div *ngIf=\"user?.payment_status === 'A'; else trialEndDateBlock\" class=\"flex items-center space-x-2\">\n              <span class=\"footer-heading\">Account Status</span>&nbsp;Active\n          </div>\n\n          <ng-template #trialEndDateBlock>\n            <div *ngIf=\"trialDaysRemaining !== null\" class=\"flex items-center\">\n              <span *ngIf=\"trialDaysRemaining >= 0\"><span class=\"footer-heading ml-6\">Trial Ends&nbsp;</span> {{trialDaysRemaining}} days</span>\n              <span *ngIf=\"trialDaysRemaining < 0\" style=\"color: red;\"><span class=\"footer-heading ml-6\">Trial Ended&nbsp;</span> {{-trialDaysRemaining}} days ago</span>\n\n            </div>\n          </ng-template>\n\n          <button *ngIf=\"showUpgradeBtn\" type=\"button\" id=\"needupgradebtn\" class=\"btn btn-upgrade\" (click)=\"navigateToBilling()\">\n            <img src=\"https://static.axonator.com/static/img/doc-designer-assets/crown-icon.svg\" alt=\"\">\n            <span class=\"text-sm\">Upgrade</span>\n          </button>\n      </div>\n  </div>\n  <div class=\" flex justify-center items-center gap-3\" style=\"margin-right: 4rem;\">\n\n    <button type=\"button\" id=\"reqprofservicebtn\" class=\"btn-request\" (click)=\"reqprofservices()\">\n      <img src=\"https://static.axonator.com/static/img/doc-designer-assets/coffee-icon.svg\" alt=\"\">\n      <span>Request Professional Services</span>\n    </button>\n    <button type=\"button\" id=\"needhelpbtn\" class=\"ml-2\" (click)=\"helpservices()\"><span>Need Help</span>\n      <img src=\"https://static.axonator.com/static/img/doc-designer-assets/help-icon.svg\" class=\"icon-help\" alt=\"\">\n    </button>\n    <span class=\"company\">Axonator &copy; {{ currentYear }}</span>\n  </div>\n</div>\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CommonHeaderComponent } from './common-header/common-header.component'; \nimport { CommonFooterComponent } from './common-footer/common-footer.component'; \nimport { MatSelectModule } from '@angular/material/select';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { MatMenuModule } from '@angular/material/menu';\n\n@NgModule({\n  declarations: [CommonHeaderComponent,CommonFooterComponent],\n  imports: [\n    CommonModule,\n    MatSelectModule,\n    MatInputModule,\n    MatFormFieldModule,\n    MatDialogModule,\n    MatButtonModule,\n    MatSnackBarModule,\n    MatProgressSpinnerModule,\n    FormsModule,\n    MatMenuModule\n  ],schemas:[CUSTOM_ELEMENTS_SCHEMA],\n  exports:[CommonHeaderComponent,CommonFooterComponent]\n})\nexport class HeadfootModule { }\n","import { Injectable } from '@angular/core';\n\n//line chart service\n@Injectable()\nexport class LineColumnChartService {\n\n    /**\n     * Constructor\n     */\n    constructor() { }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Accessors\n    // -----------------------------------------------------------------------------------------------------\n\n\n}\n","import { ReportFilterModule } from './report/report-filter/report-filter.module';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgApexchartsModule } from 'ng-apexcharts';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { GridsterModule } from 'angular-gridster2';\nimport { CommonModule } from '@angular/common';\n//Mat menu\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatListModule } from '@angular/material/list';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { ResizableModule } from 'angular-resizable-element';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { BarChartComponent } from './report/graphical-report/bar-chart/bar-chart.component';\nimport { BarChartService } from './report/graphical-report/bar-chart/bar-chart.service';\nimport { CardChartComponent } from './report/graphical-report/card-chart/card-chart.component';\nimport { CardChartService } from './report/graphical-report/card-chart/card-chart.service';\nimport { LineChartComponent } from './report/graphical-report/line-chart/line-chart.component';\nimport { LineChartService } from './report/graphical-report/line-chart/line-chart.service';\nimport { PieChartComponent } from './report/graphical-report/pie-chart/pie-chart.component';\nimport { PieChartService } from './report/graphical-report/pie-chart/pie-chart.service';\nimport { TextService } from './report/graphical-report/text/text.service';\nimport { TextComponent } from './report/graphical-report/text/text.component';\nimport { CommonChartService } from './report/graphical-report/chart/common-chart.service';\nimport { ChartFilterComponent } from './report/chart-filter/chart-filter.component';\nimport { MatNativeDateModule, MatOptionModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatRadioModule} from '@angular/material/radio';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatMomentDateModule, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from '@angular/material-moment-adapter';\nimport { TabularComponent } from './report/tabular-report/tabular/tabular.component';\nimport { ResizeColumnDirective } from './report/tabular-report/tabular/resize-column-directive';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSortModule } from '@angular/material/sort';\nimport { ReportFilterService } from './report/report-filter/report-filter.service';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MultiSelectFilterService } from '../filters/multi-select-filter/multi-select-filter.service';\nimport { FieldsListService } from '../field-list-lib/fields-list.service';\nimport { ReportBuilderMasterService } from './report/report-builder-master.service';\nimport { ReportControlService } from './report-control.service';\nimport { SendToDashboardService } from '../dashboard-lib/send-to-dashboard.service';\nimport { CategoryFilterService } from '../filters/category-filter/category-filter.service';\nimport { DashboardFilterComponent } from '../dashboard-lib/dashboard-filter/dashboard-filter.component';\nimport { ElementService } from './report/element.service';\nimport { RowGroupViewComponent } from './report/tabular-report/tabular/row-group-view/row-group-view.component';\nimport { DetailGroupViewComponent } from './report/tabular-report/tabular/detail-group-view/detail-group-view.component';\nimport { ColumnGroupViewComponent } from './report/tabular-report/tabular/column-group-view/column-group-view.component';\nimport { AxoPercentagePipe } from './report/tabular-report/axo-percentage.pipe';\nimport { FuseScrollbarModule } from '../scrollbar';\nimport { FiltersModule } from '../filters/filters.module';\nimport { AxoUtilsModule } from '../axo-utils/axo-utils.module';\nimport { DashboardLibModule } from '../dashboard-lib/dashboard-lib.module';\nimport { AppListComponent } from '../app-list/app-list.component';\nimport { GraphicalReportComponent } from './report/graphical-report/graphical-report.component';\nimport { GraphicalReportDirective } from './report/graphical-report/graphical-report.directive';\nimport { TabularReportComponent } from './report/tabular-report/tabular-report.component';\nimport { DashboardBuilderService } from '../dashboard-lib/dashboard-builder.service';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { ReferenceListFilterService } from '../filters/reference-list-filter/reference-list-filter.service';\nimport { AdjustFontSize } from '../directive/adjust-font-size';\nimport { ChoiceListFilterService } from '../filters/choice-list-filter/choice-list-filter.service';\nimport { FiltersService } from '../filters/filters.service';\nimport { GhostLoaderModule } from '../ghost-loader/ghost-loader.module';\nimport { HeadfootModule } from '../headfoot.module';\nimport { LineColumnChartComponent } from './report/graphical-report/line-column-chart/line-column-chart.component';\nimport { LineColumnChartService } from './report/graphical-report/line-column-chart/line-column-chart.service';\n\n@NgModule({\n  declarations: [\n  \tBarChartComponent,\n\t  PieChartComponent,\n    LineChartComponent,\n    CardChartComponent,\n    TextComponent,\n    TabularComponent,\n    ResizeColumnDirective,\n    AppListComponent,\n    ChartFilterComponent,\n    DashboardFilterComponent,\n    RowGroupViewComponent,\n    DetailGroupViewComponent,\n    ColumnGroupViewComponent,\n    AxoPercentagePipe,\n    GraphicalReportComponent,\n    GraphicalReportDirective,\n    TabularReportComponent,\n    AxoPercentagePipe,\n    CardChartComponent,\n    AdjustFontSize,\n    LineColumnChartComponent\n  ],\n  imports: [\n    CommonModule,\n    HeadfootModule,\n    NgApexchartsModule,\n    DragDropModule,\n    GridsterModule,\n    MatMenuModule,\n    ResizableModule,\n    AngularResizeEventModule,\n    FormsModule,\n    MatFormFieldModule,\n    MatSelectModule,\n    MatOptionModule,\n    MatIconModule,\n    MatRadioModule,\n    ReactiveFormsModule,\n    MatInputModule,\n    MatDatepickerModule,\n    MatNativeDateModule,\n    MatMomentDateModule,\n    MatListModule,\n    MatCheckboxModule,\n    MatTableModule,\n    MatSortModule,\n    MatTooltipModule,\n    FuseScrollbarModule,\n    FiltersModule,\n    AxoUtilsModule,\n    DashboardLibModule,\n    MatProgressSpinnerModule,\n    MatPaginatorModule,\n    GhostLoaderModule,\n    ReportFilterModule\n\n  ],\n  exports: [\n  \tBarChartComponent,\n\t  PieChartComponent,\n    LineChartComponent,\n    CardChartComponent,\n    ChartFilterComponent,\n    TabularComponent,\n    AppListComponent,\n    ResizeColumnDirective,\n    DashboardFilterComponent,\n    DetailGroupViewComponent,\n    RowGroupViewComponent,\n    ColumnGroupViewComponent,\n    GraphicalReportComponent,\n    GraphicalReportDirective,\n    TabularReportComponent,\n    HeadfootModule,\n    LineColumnChartComponent\n  ],\n  providers: [\n    BarChartService,\n    LineChartService,\n    CardChartService,\n    PieChartService,\n    TextService,\n    CommonChartService,\n    MultiSelectFilterService,\n    ChoiceListFilterService,\n    ReportFilterService,\n    CategoryFilterService,\n    FieldsListService,\n    ReportBuilderMasterService,\n    ReportControlService,\n    SendToDashboardService,\n    ElementService,\n    FiltersService,\n    AxoPercentagePipe,\n    DashboardBuilderService,\n    ReferenceListFilterService,\n    LineColumnChartService,\n    { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\n  ],\n  schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class EnlightenLibModule { }\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Widget } from '../../../../../forms/page/widgets/widget';\n\n@Component({\n  selector: 'lib-text-box-header',\n  templateUrl: './text-box-header.component.html',\n  styleUrls: ['./text-box-header.component.css']\n})\nexport class TextBoxHeaderComponent implements OnInit {\n  @Input() widget: Widget;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","{{widget.prompt}}\n","import { TextBoxHeaderComponent } from './widgets/text-box-header/text-box-header.component';\n\nexport class WidgetHeaderTypeHandler{\n\n    public static getWidgetHeaderComponent(type: string): any {\n        switch(type){\n            default:\n                return TextBoxHeaderComponent;\n        }\n    }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[widgetsHeaderHost]'\n})\nexport class WidgetsHeaderDirective {\n\n  constructor(public viewContainerRef: ViewContainerRef) { }\n\n}\n","import { Component, ComponentFactoryResolver, Input, OnInit, ViewChild } from '@angular/core';\nimport { Widget } from '../../../forms/page/widgets/widget';\nimport { WidgetHeaderTypeHandler } from './widget-header-type-handler';\nimport { WidgetsHeaderDirective } from './widgets-header.directive';\n\n@Component({\n  selector: 'lib-form-object-list-header',\n  templateUrl: './form-object-list-header.component.html',\n  styleUrls: ['./form-object-list-header.component.css']\n})\nexport class FormObjectListHeaderComponent implements OnInit {\n  @Input() widget: Widget;\n\n  @ViewChild(WidgetsHeaderDirective,{static:true}) widgetsHost!: WidgetsHeaderDirective;\n  constructor(private componentFactoryResolver: ComponentFactoryResolver) { }\n\n  ngOnInit(): void {\n     /*\n    * Component Factory Resolver for widget\n    */\n   const componentFactory = this.componentFactoryResolver.resolveComponentFactory(WidgetHeaderTypeHandler.getWidgetHeaderComponent(this.widget.type));\n   const viewContainerRef = this.widgetsHost.viewContainerRef;\n   viewContainerRef.clear();\n   const componentRef = viewContainerRef.createComponent<any>(componentFactory);\n   componentRef.instance.widget = this.widget;\n  }\n\n}\n","<ng-template widgetsHeaderHost ></ng-template>","import { Constants } from '../../forms/page/common/constants';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\n@JsonObject('afo')\nexport class TaskAssetFormObjectDto{\n    @JsonProperty(Constants.formNamePlural, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    formNamePlural: string;\n\n    @JsonProperty(Constants.assetCreator, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    assetCreator: string;\n\n    @JsonProperty(Constants.assetFormObjectId, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    assetFormObjectId: string;\n\n    @JsonProperty(Constants.form_Name, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    formName: string;\n\n    @JsonProperty(Constants.listViewTitle, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    listViewTitle: string;\n\n    @JsonProperty(Constants.listViewSubTitle, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    listViewSubTitle: string;\n\n    @JsonProperty(Constants.updatedDate, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    updatedDate: Date;\n\n    constructor(assetFormObject?: TaskAssetFormObjectDto) {\n        if (assetFormObject) {\n            this.assetFormObject(assetFormObject);\n        } else {\n            this.newAssetFormObject();\n        }\n    }\n\n    /**\n     * create Instance of assetFormObject\n     * @param assetFormObject\n     */\n    assetFormObject(assetFormObject: TaskAssetFormObjectDto){\n        this.formNamePlural = assetFormObject.formNamePlural;\n        this.assetCreator = assetFormObject.assetCreator;\n        this.assetFormObjectId = assetFormObject.assetFormObjectId;\n        this.formName = assetFormObject.formName;\n        this.listViewTitle = assetFormObject.listViewTitle;\n        this.listViewSubTitle = assetFormObject.listViewSubTitle;\n        this.updatedDate = assetFormObject.updatedDate;\n    }\n\n    /**\n     * create new Instance of assetFormObject\n     */\n    newAssetFormObject(){\n        this.formNamePlural = '';\n        this.assetCreator = '';\n        this.assetFormObjectId = '';\n        this.formName = '';\n        this.listViewTitle = '';\n        this.listViewSubTitle = '';\n        this.updatedDate = new Date();\n    }\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { User } from \"../../core/user/user.types\";\nimport { AxForm } from \"../../forms/ax-form\";\nimport { Constants } from \"../../forms/page/common/constants\";\nimport { FormType } from \"../../forms/page/common/widget-enums\";\nimport { StringToNumberConverter } from \"../../forms/page/value-converters/string-to-number -converter\";\nimport { TaskAssetFormObjectDto } from \"./task-asset-form-object-dto\";\n\n@JsonObject('task')\nexport class Task {\n    @JsonProperty(Constants.Id, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    taskId: string = '';\n\n    // @JsonProperty(Constants.formField, AxForm,PropertyConvertingMode.IGNORE_NULLABLE)\n    // fields: AxForm = null;\n\n    @JsonProperty(Constants.assetForm, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    assetFormName: string = '';\n\n    @JsonProperty(Constants.assetFormObject, TaskAssetFormObjectDto,PropertyConvertingMode.IGNORE_NULLABLE)\n    assetFormObject : TaskAssetFormObjectDto = null;\n\n    @JsonProperty(Constants.assignTo, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    assignTo: string = '';\n\n    @JsonProperty(Constants.assignToId, StringToNumberConverter,PropertyConvertingMode.IGNORE_NULLABLE)\n    assignToId: number = null;\n\n    @JsonProperty(Constants.assignedBy, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    assignedBy:string = '';\n\n    @JsonProperty(Constants.id, Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    formId: number = null;\n\n    @JsonProperty(Constants.formObject, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    formObject: AxForm = null;\n\n    @JsonProperty(Constants.taskType, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    taskType: FormType = null;\n\n    @JsonProperty(Constants.description, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    description: string = '';\n\n    @JsonProperty(Constants.short_description, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    shortDescription: string = '';\n\n    @JsonProperty(Constants.availableTo, [],PropertyConvertingMode.IGNORE_NULLABLE)\n    availableTo: Array<User> = [];\n\n    @JsonProperty(Constants.trackingActionVerb, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    trackingActionVerb: string = '';\n\n    @JsonProperty(Constants.Status, Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    status: TaskStatus = null;\n\n    @JsonProperty(Constants.type, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    stepType: StepTypes = null;\n\n    @JsonProperty(Constants.rejectionComments, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    rejectionComments: string = '';\n\n    @JsonProperty(Constants.isTaskRejected, Boolean,PropertyConvertingMode.IGNORE_NULLABLE)\n    isTaskRejected: boolean = false;\n\n    @JsonProperty(Constants.workFlowName, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    workFlowName: string = '';\n\n    @JsonProperty(Constants.created, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    created: Date = new Date();\n\n    @JsonProperty(Constants.updated, String,PropertyConvertingMode.IGNORE_NULLABLE)\n    updated: Date = new Date();\n\n    constructor(task?: Task) {\n        if (task) {\n            this.task(task);\n        } else {\n            this.newTask();\n        }\n    }\n\n    /**\n     * Create New instance of task\n     */\n    newTask() {\n        this.taskId = '';\n        this.assetFormName = '';\n        this.assetFormObject = null;\n        this.assignTo = '';\n        this.assignToId = null;\n        this.assignedBy = '';\n        this.formId = null;\n        this.formObject = null;\n        this.taskType = null;\n        this.description = '';\n        this.shortDescription = '';\n        this.availableTo = [];\n        this.trackingActionVerb = '';\n        this.status = null;\n        this.stepType = null;\n        this.rejectionComments = '';\n        this.isTaskRejected = null;\n        this.workFlowName = '';\n        this.created = new Date();\n        this.updated = new Date();\n    }\n    /**\n     * Create instance of task\n     * @param task\n     */\n    task(task: Task) {\n        this.taskId = task.taskId;\n        this.assetFormName = task.assetFormName;\n        this.assetFormObject = task.assetFormObject;\n        this.assignTo = task.assignTo;\n        this.assignToId = task.assignToId;\n        this.assignedBy = task.assignedBy;\n        this.formId = task.formId;\n        this.formObject = task.formObject;\n        this.taskType = task.taskType;\n        this.description = task.description;\n        this.shortDescription = task.shortDescription;\n        this.availableTo = task.availableTo;\n        this.trackingActionVerb = task.trackingActionVerb;\n        this.status = task.status;\n        this.stepType = task.stepType;\n        this.rejectionComments = task.rejectionComments;\n        this.isTaskRejected = task.isTaskRejected;\n        this.workFlowName = task.workFlowName;\n        this.created = task.created;\n        this.updated = task.updated;\n    }\n}\n\n\n/**\n * Task's step types\n */\nexport enum StepTypes {\n    fillForm = 'fill_form',\n    assignTask = 'assign_task',\n    assignTaskFillForm = 'assign_task_fill_form',\n    start = 'start'\n}\n\n/**\n * Task Status type.\n */\nexport enum TaskStatus {\n    todo = 0,\n    overdue=8,\n    delivered = 1,\n    done = 2,\n    rejected = 3,\n    failed = 4,\n    unassigned = 5,\n    cancelled = 6,\n    due=7\n}\n","import { JsonObject } from \"json2typescript\";\nimport { AxSection } from \"./ax-section\";\n\n@JsonObject(\"Section\")\nexport class Section extends AxSection{\n    \n    title : string = null;\n\n    showBorder :boolean = null;\n     \n\n    constructor(section?: Section){\n        super(section);\n        if(section){\n            this.createValue(section);\n        }\n        else{\n            this.createNewValue();\n        }\n    }\n\n      // Function to create new text value\n      createNewValue(): void{\n       this.sections = new Array<AxSection> ();\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?): void{\n       \n    }\n}\n\n","import { JsonObject } from \"json2typescript\";\nimport { AxSection } from \"./ax-section\";\n\n@JsonObject(\"SectionField\")\nexport class SectionField extends AxSection{\n    \n    childSectionId: number = null;\n    \n    colSpan :number = 100;\n    \n    constructor(section?: SectionField){\n        super(section);\n        if(section){\n            this.createValue(section);\n        }\n        else{\n            this.createNewValue();\n        }\n    }\n\n      // Function to create new text value\n      createNewValue(): void{\n       \n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?): void{\n       \n    }\n}\n\n","import { JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { AxForm } from \"../../forms/ax-form\";\nimport { Constants } from \"../../forms/page/common/constants\";\nimport { AxSection } from \"../../forms/page/data-detail-view/ax-section\";\nimport { FormObject } from \"../../forms/page/form-object\";\n\nexport class DataDetailViewDto {\n\n    @JsonProperty(Constants.Id,String,PropertyConvertingMode.IGNORE_NULLABLE)\n    id : string = null;\n\n    @JsonProperty(Constants.formObject,FormObject,PropertyConvertingMode.IGNORE_NULLABLE)\n    formObject :  AxForm= null;\n\n    @JsonProperty(Constants.form,AxForm,PropertyConvertingMode.IGNORE_NULLABLE)\n    form : AxForm = null;\n\n    @JsonProperty(Constants.sections,[AxSection],PropertyConvertingMode.IGNORE_NULLABLE)\n    sections : Array<AxSection> = null;\n\n\n    constructor(value?: DataDetailViewDto){\n        if(value){\n            this.createValue(value);\n        }\n        else{\n            this.createNewValue();\n        }\n    }\n\n      // Function to create new text value\n      createNewValue(): void{\n       this.id = null;\n       this.formObject = null;\n       this.form = null;\n       this.sections = new Array<AxSection>();\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?: DataDetailViewDto): void{\n       this.id = value.id;\n       this.formObject = value.formObject;\n       this.form = value.form;\n       this.sections = value.sections;\n    }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { JsonConvert } from 'json2typescript';\nimport _ from 'lodash';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { TaskStatus } from '../../data-view-lib/data-view/task';\nimport { AxForm } from '../../forms/ax-form';\nimport { SectionType, WidgetType } from '../../forms/page/common/widget-enums';\nimport { AxSection } from '../../forms/page/data-detail-view/ax-section';\nimport { DataDetails } from '../../forms/page/data-detail-view/data-details';\nimport { Section } from '../../forms/page/data-detail-view/section';\nimport { SectionField } from '../../forms/page/data-detail-view/section-field';\nimport { WidgetDeserializer } from '../../forms/page/value-converters/widget-deserializer';\nimport { SubForm } from '../../forms/page/widgets/sub-form';\nimport { Widget } from '../../forms/page/widgets/widget';\nimport { DataDetailViewDto } from './data-detail-view-dto';\nimport { ImageAnnotationDataDto } from './form-object-widgets/image-widget-view/image-annotation-data-dto';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class FormObjectViewService {\n\n\n    private _dataDetailId: BehaviorSubject<number | null> = new BehaviorSubject(null);\n\n    private _formObject: BehaviorSubject<AxForm | null> = new BehaviorSubject(null);\n\n    private _pageEventData: BehaviorSubject<FormData | null> = new BehaviorSubject(null);\n\n    private _widgetIdentifier: BehaviorSubject<string | null> = new BehaviorSubject(null);\n    private dataDetailView: BehaviorSubject<DataDetailViewDto | null> = new BehaviorSubject(null);\n    private widgetValueMap: Map<string, Widget> = new Map<string, Widget>();\n    private identitiferWidgetMap: Map<string, Widget> = new Map<string, Widget>();\n    sectionType: any = Object.assign({}, SectionType);\n    private jsonConvert: JsonConvert;\n\n\n    /**\n     * Constructor\n     */\n    constructor(private _httpClient: HttpClient) {\n        this.jsonConvert = new JsonConvert();\n    }\n    // -----------------------------------------------------------------------------------------------------\n    // @ Accessors\n    // -----------------------------------------------------------------------------------------------------\n\n    get dataDetailId$(): Observable<number> {\n        return this._dataDetailId.asObservable();\n    }\n\n    get formObject$(): Observable<AxForm> {\n        return this._formObject.asObservable();\n    }\n\n\n    get pageEventData$(): Observable<FormData> {\n        return this._pageEventData.asObservable();\n    }\n\n    get getWidgetIdentifier$(): Observable<string> {\n        return this._widgetIdentifier.asObservable();\n    }\n\n    get dataDetailView$(): Observable<DataDetailViewDto> {\n        return this.dataDetailView.asObservable();\n    }\n\n    setFormObjectWithDataDetailId(formObject, dataDetailId) {\n        this._dataDetailId.next(dataDetailId);\n        this._formObject.next(formObject);\n    }\n\n    setFormDataForPaginator(formData) {\n        this._pageEventData.next(formData);\n    }\n\n    /**\n     * Get  Image Annotations\n     */\n    getImageFieldWithAnnotations(formData: FormData, axonatorX1Url: string): Promise<any> {\n        return new Promise((resolve, reject) => {\n            this._httpClient.post(axonatorX1Url + 'getImageFieldWithAnnotations/', formData).subscribe((response: any) => {\n                resolve(response);\n            }, reject);\n        });\n    }\n\n    processFormFields(fields: Array<any>) {\n        if (fields != null && fields.length != 0) {\n            fields.forEach((widget) => {\n                if (widget.identifier in this.widgetValueMap)\n                    {widget.setWidgetValue(this.widgetValueMap[widget.identifier].getWidgetValue());}\n                this.identitiferWidgetMap[widget.identifier] = widget;\n\n                if (widget.type == WidgetType.subForm) {\n                    const subFormWidget = widget as SubForm;\n                    this.processFormFields(subFormWidget.markup);\n                }\n            });\n        }\n    }\n    // Need to use strongly-typed class inplace of any\n    processFormObjectFields(fields: Array<any>) {\n        if (fields != null && fields.length != 0) {\n            fields.forEach((widget) => {\n                this.widgetValueMap[widget.identifier] = widget;\n                if (widget.type == WidgetType.subForm) {\n                    this.processFormObjectFields(widget.value);\n                }\n            });\n        }\n    }\n\n    processDataDetailViewSection(sections: Array<any>): Array<AxSection> {\n        const _sections = new Array<AxSection>();\n\n        if (sections != null && sections.length != 0) {\n\n            sections.forEach((section) => {\n                let parentSection = new Section();\n                let childSection = new SectionField();\n                parentSection = _.cloneDeep(section);\n                parentSection.sections = new Array<AxSection>();\n                /**\n                 * iterate through form object to add each widget in section by checking identifier\n                 * iterate through form object to create widget value map to process add widgets in section\n                 */\n                if (section.type == this.sectionType.section) {\n                    if (section.sections != undefined && section.sections != null && section.sections.length != 0) {\n                        childSection = new SectionField();\n                        section.sections.forEach((selectedSection) => {\n                            /**\n                             *  assign section to child section\n                             */\n                            if (selectedSection.type == this.sectionType.section || (selectedSection.identifier in this.identitiferWidgetMap && this.identitiferWidgetMap[selectedSection.identifier].type == WidgetType.subForm)) {\n                                let subSection = new Section();\n                                subSection = _.cloneDeep(selectedSection);\n                                subSection.widget = this.identitiferWidgetMap[selectedSection.identifier];\n                                subSection.sections = this.processDataDetailViewSection(selectedSection.sections);\n                                parentSection.sections.push(subSection);\n                            }\n                            else if (this.identitiferWidgetMap[selectedSection.identifier] == undefined || this.identitiferWidgetMap[selectedSection.identifier].type != WidgetType.groupHeader) {\n                                childSection = selectedSection;\n                                childSection.widget = this.identitiferWidgetMap[selectedSection.identifier];\n\n                                /**\n                                 * add each section in parent section\n                                 */\n                                parentSection.sections.push(childSection);\n                            }\n                        });\n\n                    }\n                }\n                else {\n                    if(this.identitiferWidgetMap[section.identifier] != undefined &&  this.identitiferWidgetMap[section.identifier].type != WidgetType.groupHeader)\n                    {\n                        if(this.identitiferWidgetMap[section.identifier].type == WidgetType.subForm){\n                            if (section.sections != undefined && section.sections != null && section.sections.length != 0) {\n                                childSection = new SectionField();\n                                section.sections.forEach((selectedSection) => {\n                                    /**\n                                     *  assign section to child section\n                                     */\n                                    if (selectedSection.type == this.sectionType.section || (selectedSection.identifier in this.identitiferWidgetMap && this.identitiferWidgetMap[selectedSection.identifier].type == WidgetType.subForm)) {\n                                        let subSection = new Section();\n                                        subSection = _.cloneDeep(selectedSection);\n                                        subSection.widget = this.identitiferWidgetMap[selectedSection.identifier];\n                                        subSection.sections = this.processDataDetailViewSection(selectedSection.sections);\n                                        parentSection.sections.push(subSection);\n                                    }\n                                    else if (this.identitiferWidgetMap[selectedSection.identifier].type != WidgetType.groupHeader) {\n                                        childSection = selectedSection;\n                                        childSection.widget = this.identitiferWidgetMap[selectedSection.identifier];\n\n                                        /**\n                                         * add each section in parent section\n                                         */\n                                        parentSection.sections.push(childSection);\n                                    }\n                                });\n                            }\n                        }\n                    }\n                    parentSection.widget = this.identitiferWidgetMap[section.identifier];\n\n                }\n                /**\n                 * add each section in data detail view structure\n                 */\n                _sections.push(parentSection);\n            });\n        }\n        return _sections;\n    }\n\n    getFormDetails(fid: number, axonatorX1Url: string): Promise<any> {\n        const formData = new FormData();\n        const form = { 'fid': fid };\n        formData.append('form', JSON.stringify(form));\n        return new Promise((resolve, reject) => {\n            this._httpClient.post(axonatorX1Url + 'getFormDetails/', formData).subscribe((response: any) => {\n                resolve(response);\n            }, reject);\n        });\n    }\n\n    /**\n     * Get serialized formobject\n     */\n    getFormObject(formobjectId: string, axonatorX1Url: string): Promise<any> {\n        return new Promise((resolve, reject) => {\n            const formData = new FormData();\n            formData.append('foid', formobjectId);\n            this._httpClient.post(axonatorX1Url + 'getFormObjectDetails/', formData).subscribe((response: any) => {\n                resolve(this.jsonConvert.deserializeObject(response?.fod?.fo, AxForm));\n            }, reject);\n\n        });\n    }\n\n    /**\n     * Get  data-list data\n     */\n    getDataDetailView(dataDetailViewId: number, axonatorX1Url: string): Promise<any> {\n        let params = new HttpParams();\n        params = params.append('id', dataDetailViewId);\n        return new Promise((resolve, reject) => {\n            this._httpClient.get<DataDetails>('datadetailview', { params: params })\n                .subscribe((response) => {\n                    resolve(response);\n                }, reject);\n        });\n    }\n\n\n\n\n    createDataDetailView(dataDetailId: number, formObjectId: string, formId: number, axonatorX1Url: string,taskStatus : TaskStatus = null): Promise<any> {\n        //var dataDetailId;\n        return new Promise(async (resolve, reject) => {\n            const _dataDetailViewStructure = new DataDetailViewDto();\n\n            // const res = await this.getDataDetailView(dataDetailId);\n            let res = null;\n            let serializedFormObject = null;\n            let dataDetailViewData = null;\n            let serializedForm = null;\n\n            if(taskStatus != null && (taskStatus == TaskStatus.todo || taskStatus == TaskStatus.overdue)){\n                res = await Promise.all([this.getDataDetailView(dataDetailId, axonatorX1Url), this.getFormDetails(formId, axonatorX1Url)]);\n                dataDetailViewData = res[0];\n                dataDetailViewData.sections.pop(); // temporarily popped last item from sections list because collection view is not handled.\n                serializedForm = res[1];\n            }\n            else{\n                res = await Promise.all([this.getFormObject(formObjectId, axonatorX1Url), this.getDataDetailView(dataDetailId, axonatorX1Url), this.getFormDetails(formId, axonatorX1Url)]);\n                serializedFormObject = res[0];\n                dataDetailViewData = res[1];\n                serializedFormObject.name = serializedFormObject.listViewTitle;\n                dataDetailViewData.sections.pop(); // temporarily popped last item from sections list because collection view is not handled.\n                serializedForm = res[2];\n            }\n\n\n            /**\n             * iterate through form object to create widget value map to process add widgets in section\n             */\n\n            const serializedWidgets = serializedForm.fd.form.ff.map(formWidget => WidgetDeserializer.deserializeWidget(formWidget));\n            serializedForm = this.jsonConvert.deserializeObject(serializedForm.fd.form, AxForm);\n            serializedForm.widgets = serializedWidgets;\n\n            this.widgetValueMap = new Map<string, Widget>();\n            this.identitiferWidgetMap = new Map<string, Widget>();\n\n            if(serializedFormObject)\n                this.processFormObjectFields(serializedFormObject?.widgets);\n            this.processFormFields(serializedForm.widgets);\n\n\n            /**\n             * assign data-detail id to dataDetailStructure\n             */\n            _dataDetailViewStructure.id = dataDetailViewData.id;\n\n            if(serializedFormObject){\n                _dataDetailViewStructure.formObject = serializedFormObject;\n                _dataDetailViewStructure.formObject.id = formObjectId;\n            }\n            _dataDetailViewStructure.form = serializedForm;\n\n            /**\n             * process and add each section in data detail view structure\n             */\n            _dataDetailViewStructure.sections = this.processDataDetailViewSection(dataDetailViewData.sections);\n\n            if(_dataDetailViewStructure && taskStatus != null && (taskStatus == TaskStatus.todo || taskStatus == TaskStatus.overdue)){\n                resolve(_dataDetailViewStructure);\n            }\n            else if(_dataDetailViewStructure && serializedFormObject){\n                resolve(_dataDetailViewStructure);\n            }\n            else{\n                reject();\n            }\n\n\n        });\n    }\n\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { FilterCategory } from '../../enlighten-lib/filters/filter-category';\nimport { AxForm } from '../../forms/ax-form';\nimport { DataListColumn } from '../../forms/page/data-list/data-list-column';\n\n@JsonObject('FormObjectList')\nexport class FormObjectList\n{\n    @JsonProperty('formNameSingular',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    formNameSingular: string = '';\n\n    @JsonProperty('id',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    id: string = '';\n\n    @JsonProperty('title',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    title: string = '';\n\n    @JsonProperty('searchText',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    searchText: string='';\n\n    @JsonProperty('currentPage',Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    currentPage: number = 0;\n\n    @JsonProperty('pageIndex',Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    pageIndex: number = 0;\n\n    @JsonProperty('pageSize',Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    pageSize: number =  10;\n\n    @JsonProperty('totalFormObjects',Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    totalFormObjects: number = 0;\n\n    @JsonProperty('columns',[DataListColumn],PropertyConvertingMode.IGNORE_NULLABLE)\n    columns: Array<DataListColumn> = [];\n\n    @JsonProperty('headerColor',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    headerColor: string='';\n\n    @JsonProperty('evenRowColor',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    evenRowColor: string='';\n\n    @JsonProperty('evenColumnColor',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    evenColumnColor: string='';\n\n    @JsonProperty('oddRowColor',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    oddRowColor: string='';\n\n    @JsonProperty('oddColumnColor',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    oddColumnColor: string='';\n\n    @JsonProperty('label',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    label: string='';\n\n    @JsonProperty('identifier',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    identifier: string = '';\n\n    @JsonProperty('columnHeaderColor',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    columnHeaderColor: string = '';\n\n    @JsonProperty('isSortable',Boolean,PropertyConvertingMode.IGNORE_NULLABLE)\n    isSortable: boolean= false;\n\n    @JsonProperty('condition',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    condition: string = '';\n\n    @JsonProperty('prompt',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    prompt: string = '';\n\n    @JsonProperty('type',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    type: string = '';\n\n    @JsonProperty('sub_Type',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    subType: string='';\n\n    @JsonProperty('value',String,PropertyConvertingMode.IGNORE_NULLABLE)\n    value: any='';\n\n    @JsonProperty('formObjects',[AxForm],PropertyConvertingMode.IGNORE_NULLABLE)\n    formObjects: Array<AxForm>=[];\n\n    @JsonProperty('filters',[AxFilter],PropertyConvertingMode.IGNORE_NULLABLE)\n    filters: Array<AxFilter> = [];\n\n    @JsonProperty('FilterCategory',[FilterCategory],PropertyConvertingMode.IGNORE_NULLABLE)\n    categories: Array<FilterCategory> = [];\n\n    @JsonProperty('isAdminUser',Boolean,PropertyConvertingMode.IGNORE_NULLABLE)\n    isAdminUser: boolean = false;\n\n   \n\n    dataDetailId: number = null ;\n\n\n    constructor(formObjectList?: FormObjectList)\n    {\n        if(formObjectList){\n            this.formObjectList(formObjectList);\n        }\n        else{\n            this.newformObjectList();\n        }\n    }\n      // Function to create new formObjectList object\n      newformObjectList(): void{\n        this.currentPage = 0;\n        this.pageIndex = 0;\n        this.pageSize = 10;\n        this.totalFormObjects = null;\n        this.title = null;\n        this.label = null;\n        this.identifier = ' ';\n        this.columnHeaderColor = null;\n        this.isSortable = null;\n        this.condition = null;\n        this.prompt = null;\n        this.headerColor= null;\n        this.evenRowColor= null;\n        this.evenColumnColor= null;\n        this.oddRowColor= null;\n        this.oddColumnColor= null;\n        this.type = null;\n        this.subType = null;\n        this.value = '';\n        this.title = '';\n        this.columns = new Array<DataListColumn>();\n    }\n\n    /**function to create formObjectList object with existing values\n    *\n    *@param FormObjectList\n    *\n    */\n    formObjectList(formObjectList: FormObjectList): void{\n        this.currentPage = formObjectList.currentPage;\n        this.pageIndex = formObjectList.pageIndex;\n        this.pageSize = formObjectList.pageSize;\n        this.totalFormObjects = formObjectList.totalFormObjects;\n        this.title = formObjectList.title;\n        this.searchText = formObjectList.searchText;\n        this.label = formObjectList.label;\n        this.identifier = formObjectList.identifier;\n        this.columnHeaderColor = formObjectList.columnHeaderColor;\n        this.isSortable = formObjectList.isSortable;\n        this.condition = formObjectList.condition;\n        this.prompt = formObjectList.prompt;\n        this.headerColor= formObjectList.headerColor;\n        this.evenRowColor= formObjectList.evenRowColor;\n        this.evenColumnColor= formObjectList.label;\n        this.oddRowColor=formObjectList.oddRowColor;\n        this.oddColumnColor= formObjectList.oddColumnColor;\n        this.type = null;\n        this.subType = null;\n        this.value = '';\n        this.columns = formObjectList.columns;\n        //this.formObjects = formObjectList.formObjects;\n    }\n}\n","import { DataListSearchNode } from './dataList-searchNode';\nexport class DataListSeachQueryTree {\n    nodes: Array<DataListSearchNode>;\n    constructor(searchNode?: DataListSeachQueryTree) {\n        if(searchNode){\n            this.searchNode(searchNode);\n        }else{\n            this.newSearchNode();\n        }\n    }\n\n    /**\n     * Create new search node class and default value\n     */\n    newSearchNode(): void{\n        this.nodes=[];\n    }\n\n    /**\n     * Assign existing value to search nodes class\n     *\n     * @param searchNode\n     */\n     searchNode(searchNode?: DataListSeachQueryTree): void{\n        this.nodes=searchNode.nodes;\n    }\n}\n","import { DataListSeachQueryTree } from '../enlighten-lib/filters/dataListSeachQueryTree';\n\nexport class DataListFilterDto {\n    searchQueryTree: DataListSeachQueryTree;\n    type: string;\n    form_id: string;\n    fo_info: any;\n    app_id: number;\n    appVersion: number;\n    constructor(dataListFilterDto?: DataListFilterDto | any) {\n        dataListFilterDto = dataListFilterDto || {};\n        this.appVersion = dataListFilterDto.appVersionId ? dataListFilterDto.appVersion : 0;\n        this.searchQueryTree = dataListFilterDto.searchQueryTree ? dataListFilterDto.searchQueryTree: new DataListSeachQueryTree();\n        this.form_id = dataListFilterDto.filter ? dataListFilterDto.form_id : '';\n        this.fo_info = dataListFilterDto.fo_info ? dataListFilterDto.fo_info : '';\n        this.app_id = dataListFilterDto.app_id ? dataListFilterDto.app_id : '';\n        this.type = dataListFilterDto && dataListFilterDto.type || 'solr';\n    }\n}\n","export enum OperatorText{\n    in = 'In',\n    lessThanOrEqualTo = 'Less than or equal to',\n    greaterThanOrEqualTo = 'Greater than or equal to',\n    lessThanAndEqualTo = 'Less than and equal to',\n    greaterThanAndEqualTo = 'Greater than and equal to',\n    today = 'Today',\n    isEmpty = 'IS EMPTY'\n}\n","export class DataListFilterOperator {\n    text: string;\n    val: string;\n    constructor(dataListFilterOperator?: DataListFilterOperator){\n        if(dataListFilterOperator){\n            this.dataListFilterOperator(dataListFilterOperator);\n        }\n        else{\n            this.newDataListFilterOperator();\n        }\n    }\n    /**\n     * Assign existing value\n     *\n     * @param DataListFilterOperator\n     */\n    dataListFilterOperator(dataListFilterOperator: DataListFilterOperator): void{\n        this.text=dataListFilterOperator.text;\n        this.val=dataListFilterOperator.val;\n    }\n    /**\n     * Assign by default value\n     */\n    newDataListFilterOperator(): void{\n        this.text='';\n        this.val='';\n    }\n}\nexport enum ConvertOperatorText{\n    in='equals',\n    lessThanOrEqualTo='Less_than or equal to',\n    greaterThanOrEqualTo = 'Greater than or equal to',\n    lessThanAndEqualTo='Less_than or equal to',\n    greaterThanAndEqualTo = 'Greater than or equal to'\n}\n\nexport enum OperatorValue{\n    in = '=',\n    lessThanOrEqualTo ='<',\n    greaterThanOrEqualTo ='>',\n    lessThanAndEqualTo='<=',\n    greaterThanAndEqualTo ='>='\n}\n","import { List } from 'lodash';\nimport { DataListFilterOperator } from './dataListFilterOperator';\n\nexport class DataListFilterExpression {\n    field: string;\n    operator: DataListFilterOperator;\n    type: string;\n    value: string;\n    isMultivalued: boolean;\n    values: Array<string>;\n    constructor(dataListFilterExpression?: DataListFilterExpression ) {\n        if(dataListFilterExpression){\n            this.dataListFilterExpression(dataListFilterExpression);\n        }else{\n            this.newDataListFilterExpression();\n        }\n    }\n    /**\n     * Assign existing value\n     *\n     * @param DataListFilterExpression\n     */\n    dataListFilterExpression(dataListFilterExpression: DataListFilterExpression): void{\n        this.field=dataListFilterExpression.field;\n        this.operator=dataListFilterExpression.operator;\n        this.type=dataListFilterExpression.type;\n        this.value=dataListFilterExpression.value;\n\n    }\n     /**\n      * Assign by default value\n      */\n    newDataListFilterExpression(): void{\n        this.field='';\n        this.operator=new DataListFilterOperator();\n        this.type='';\n        this.value=null;\n    }\n}\n\n","\nimport { DataListFilterExpression } from './dataListFilterExpression';\nimport { SearchNode } from './search-node';\nexport class DataListSearchNode {\n    operator: string; // and?or\n    type: any; // condition = 1  & group-condition = 2;//searchNodeType\n    expression: DataListFilterExpression;\n    nodes: Array<DataListSearchNode>;\n    src: any;\n\n    constructor(searchNode?: DataListSearchNode) {\n        if(searchNode){\n            this.searchNode(searchNode);\n        }else{\n            this.newSearchNode();\n        }\n    }\n\n    /**\n     * function to create searchNodes object with existing values\n     *\n     *@param searchNodes\n     *\n     */\n     static createSearchNode(nodes: Array<SearchNode> ): Array<SearchNode>{\n        const _nodes: Array<SearchNode> = [];\n        if(nodes){\n            nodes.forEach((node) => {\n                _nodes.push(new SearchNode(node));\n            });\n        }\n        return _nodes;\n    }\n\n    /**\n     * Create new search node class and default value\n     */\n    newSearchNode(): void{\n        this.operator =  '';\n        this.type =  null;\n        this.expression = new DataListFilterExpression();\n        this.nodes = [];\n    }\n\n    /**\n     * Assign existing value to search nodes class\n     *\n     * @param searchNode\n     */\n     searchNode(searchNode?: DataListSearchNode): void{\n        this.operator =  searchNode.operator;\n        this.type =  searchNode.type;\n        this.expression =searchNode.expression;\n        this.nodes = searchNode.nodes;\n    }\n}\n","import { Injectable } from '@angular/core';\nimport moment from 'moment';\nimport { DataListFilterDto } from '../common-dto/dataListFilter-dto';\nimport { AxExpDateRangeValue } from '../enlighten-lib/ax-expression/ax-exp-date-range-value';\nimport { AxExpDateTimeValue } from '../enlighten-lib/ax-expression/ax-exp-date-time';\nimport { AxExpDateTimeRangeValue } from '../enlighten-lib/ax-expression/ax-exp-date-time-range-value';\nimport { AxExpDateValue } from '../enlighten-lib/ax-expression/ax-exp-date-value';\nimport { AxExpNumberValue } from '../enlighten-lib/ax-expression/ax-exp-number-value';\nimport { AxExpTimeValue } from '../enlighten-lib/ax-expression/ax-exp-time';\nimport { AxTimeRange } from '../enlighten-lib/ax-expression/ax-exp-time-range';\nimport { AxNumberRange } from '../enlighten-lib/ax-expression/ax-number-range';\nimport { OperatorText } from '../enlighten-lib/enums/operator-text-enum';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { ConditionType } from '../enlighten-lib/filters/condition-type';\nimport { DataListSearchNode } from '../enlighten-lib/filters/dataList-searchNode';\nimport { ConvertOperatorText, OperatorValue } from '../enlighten-lib/filters/dataListFilterOperator';\n\n@Injectable()\nexport class ConvertToOldService {\n    constructor() {\n\n    }\n\n    /**\n     * Creating a searchNode\n     *\n     * @param filter\n     * @param val\n     * @param operator\n     */\n    createSearchNode(filter: AxFilter, val: any, operator: string, formId: number): DataListSearchNode {\n        const searchNode = new DataListSearchNode();\n        searchNode.type = ConditionType.condition;\n        searchNode.operator = operator;\n        if (filter.searchNodes[0].type === 1 || filter.searchNodes[0].type === 'Condition' ) {\n            searchNode.type = 'condition';\n        }\n        else {\n            searchNode.type = 'condition_group';\n        }\n        searchNode.expression.field = formId + '_' + filter.searchNodes[0].expression.field.identifier;\n        searchNode.expression.type = filter.searchNodes[0].expression.field.widgetSubType;\n        switch (filter.searchNodes[0].expression.comparisonOperator.text) {\n            case OperatorText.in:\n                searchNode.expression.operator.text = ConvertOperatorText.in;\n                searchNode.expression.operator.val = OperatorValue.in;\n                break;\n            case OperatorText.lessThanOrEqualTo:\n                searchNode.expression.operator.text = ConvertOperatorText.lessThanOrEqualTo;\n                searchNode.expression.operator.val = OperatorValue.lessThanOrEqualTo;\n                break;\n            case OperatorText.greaterThanOrEqualTo:\n                searchNode.expression.operator.text = ConvertOperatorText.greaterThanOrEqualTo;\n                searchNode.expression.operator.val = OperatorValue.greaterThanOrEqualTo;\n                break;\n            case OperatorText.lessThanAndEqualTo:\n                searchNode.expression.operator.text = ConvertOperatorText.lessThanAndEqualTo;\n                searchNode.expression.operator.val = OperatorValue.lessThanAndEqualTo;\n                break;\n            case OperatorText.greaterThanAndEqualTo:\n                searchNode.expression.operator.text = ConvertOperatorText.greaterThanAndEqualTo;\n                searchNode.expression.operator.val = OperatorValue.greaterThanAndEqualTo;\n                break;\n            default:\n                searchNode.expression.operator.text = ConvertOperatorText.in;\n                searchNode.expression.operator.val = OperatorValue.in;\n        }\n        searchNode.expression.value = val;\n        return searchNode;\n    }\n\n    /**\n     * Creating DatalistFilterDto\n     *\n     * @param filters\n     * @param appVersion\n     * @param appId\n     * @param formId\n     */\n\n    createDataListFilterDto(filters: Array<AxFilter>, appVersion, appId, formId): DataListFilterDto {\n        const dataListFilterDto = new DataListFilterDto();\n        filters.forEach((filter) => {\n            if (!filter.isDeleted) {\n                let operator = 'AND';\n                const value = filter.searchNodes[0].expression.value as any;\n                if (value && value.value instanceof AxNumberRange) {\n                    filter.searchNodes[0].expression.comparisonOperator.text = 'Greater than and equal to';\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, value.value.from, operator, formId));\n\n                    filter.searchNodes[0].expression.comparisonOperator.text = 'Less than and equal to';\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, value.value.to, operator, formId));\n                }\n                else if (value instanceof AxExpNumberValue) {\n                    value.value = value.value ? value.value : 0;\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, value.value, operator, formId));\n                }\n\n                else if (value && value instanceof AxExpDateValue || value instanceof AxExpDateTimeValue) {\n                    if(filter.searchNodes[0].expression.comparisonOperator.text == OperatorText.today ){\n                        const from = moment(new Date(value.value).setHours(0,0,0,0));\n                        const to = moment(new Date(value.value).setHours(23,59,59,59));\n                        filter.searchNodes[0].expression.comparisonOperator.text = 'Greater than and equal to';\n                        dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, from, operator, formId));\n                        filter.searchNodes[0].expression.comparisonOperator.text = 'Less than and equal to';\n                        dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, to, operator, formId));\n                    }\n                    else{\n                        if(value instanceof AxExpDateValue){\n                            const dateValue = moment(new Date(value.value).setHours(0,0,0,0));\n                            dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, dateValue, operator, formId));\n                        }\n                        else{\n                            dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, value.value, operator, formId));\n                        }\n                    }\n\n                }\n                else if (value && value instanceof AxExpDateRangeValue || value instanceof AxExpDateTimeRangeValue) {\n                    let from = moment(new Date(value.value.from));\n                    let to = moment(new Date(value.value.to));\n                    if(value instanceof AxExpDateRangeValue){\n                        from = moment(new Date(value.value.from).setHours(0,0,0,0));\n                        to = moment(new Date(value.value.to).setHours(23,59,59,59));\n                    }\n                    filter.searchNodes[0].expression.comparisonOperator.text = 'Greater than and equal to';\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, from, operator, formId));\n                    filter.searchNodes[0].expression.comparisonOperator.text = 'Less than and equal to';\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, to, operator, formId));\n                }\n\n                else if (value && value instanceof AxExpTimeValue) {\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, value.value, operator, formId));\n                }\n                else if (value && value instanceof AxTimeRange) {\n                    filter.searchNodes[0].expression.comparisonOperator.text = 'Greater than and equal to';\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, value.from, operator, formId));\n                    filter.searchNodes[0].expression.comparisonOperator.text = 'Less than and equal to';\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, value.to, operator, formId));\n                }\n                else if (value && value.value.length >= 0 && !filter.isDeleted) {\n                    const newNode = new DataListSearchNode();\n                    newNode.type = ConditionType.condition;\n                    newNode.operator = operator;\n                    newNode.expression = undefined;\n                    newNode.type = 'condition_group';\n                    newNode.src = 'advancedSearchGroupCondition';\n                    operator = 'OR';\n                    const _newNode=this.createSearchNode(filter, value.value[0], operator, formId);\n                    if(value.value.length > 1){\n                        _newNode.expression.isMultivalued = true;\n                        _newNode.expression.values = value.value;\n                    }\n                    else{\n                        _newNode.expression.isMultivalued = false;\n                        _newNode.expression.value = value.value;\n                    }\n                    newNode.nodes.push(_newNode);\n                    dataListFilterDto.searchQueryTree.nodes.push(newNode);\n                }\n                else {\n                    dataListFilterDto.searchQueryTree.nodes.push(this.createSearchNode(filter, ' ', operator, formId));\n                    operator = 'OR';\n                }\n            }\n        });\n        dataListFilterDto.app_id = appId;\n        dataListFilterDto.form_id = formId;\n        dataListFilterDto.appVersion = appVersion;\n        return dataListFilterDto;\n    }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { JsonConvert } from 'json2typescript';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { ConvertToOldService } from '../../converters/convert-to-old-service';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { FiltersService } from '../../filters/filters.service';\nimport { DataList } from '../../forms/page/data-list/data-list';\nimport { FormObjectList } from './form-object-list';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class FormObjectListService {\n  _dashboardId: BehaviorSubject<number | null>;\t// Private\n  _formObjectList: BehaviorSubject<Array<FormObjectList> | null>;\n  private dataListSubscription: any = null;\n  /**\n   * Constructor\n   */\n  constructor(\n    private _httpClient: HttpClient,\n    private _commonLibConfigurationService: CommonLibConfigurationService,\n    private _convertToOldService: ConvertToOldService,\n    private _filterService: FiltersService\n  ) {\n    this._dashboardId = new BehaviorSubject(null);\n  }\n  // -----------------------------------------------------------------------------------------------------\n  // @ Accessors\n  // -----------------------------------------------------------------------------------------------------\n\n  /**\n   * Getter for form objects\n   */\n  get formObjectList$(): Observable<FormObjectList[]> {\n    return this._formObjectList.asObservable();\n  }\n\n\n  /**\n   * Get  data-list data\n   */\n  getDataList(dataListId: number): Promise<any> {\n    let params = new HttpParams();\n    params = params.append('id', dataListId);\n    return new Promise((resolve, reject) => {\n      this._httpClient.get<DataList>('datalist', { params: params })\n        .subscribe((response) => {\n          resolve(response);\n        }, reject);\n    });\n  }\n\n  /**\n   * Get  form-object details from x1\n   */\n  getFormObjectList(formId: number, currentPage: number, pageSize: number,filters: Array<AxFilter>, searchText?: string,orderedArray?: Array<string>): Promise<FormObjectList> {\n    const validFilters = this._filterService.getValidFilter(filters);\n    if(validFilters?.length > 0){\n      return this.getFilteredFormObjects(formId, currentPage, pageSize,validFilters,searchText,orderedArray);\n    }else{\n      return this.getFormObjects(formId, currentPage, pageSize,searchText,orderedArray);\n    }\n\n  }\n\n  /**\n   * Check valid filters. If filters are valid or default filter then call advance filter api.\n   *\n   * @param filrers\n   * @returns\n   */\n  checkValidFilter(filrers: Array<AxFilter>) {\n    return filrers;\n  }\n\n\n  /**\n   * Get filtered form-objects from x1\n   */\n  getFilteredFormObjects(formId: number, currentPage: number, pageSize: number,filters: Array<AxFilter>, searchText?: string,orderedArray?: Array<string>): Promise<any> {\n    const dataListFilterDto = this._convertToOldService.createDataListFilterDto(filters, null, null, formId);\n    const fo_info = { 'afid': formId, 'currentPage': currentPage+1, 'pagesize': pageSize, 'keyword': searchText, 'selected_afoid': '', 'from_date': '', 'to_date': '' ,'sort_order':orderedArray};\n    this.removeHexCodes(dataListFilterDto);\n    const formData = new FormData();\n    formData.append('searchQueryTree', JSON.stringify(dataListFilterDto.searchQueryTree));\n    formData.append('type', (dataListFilterDto.type));\n    formData.append('form_id', (formId.toString()));\n    formData.append('fo_info', JSON.stringify(fo_info));\n\n    const jsonConvert: JsonConvert = new JsonConvert();\n\n    return new Promise((resolve, reject) => {\n\n      this._httpClient.post(this._commonLibConfigurationService.axonatorX1Url + 'getAdvancedSearchResult/', formData).subscribe((response: any) => {\n        if (response) {\n          const jsonConvert: JsonConvert = new JsonConvert();\n          const formObjectList = jsonConvert.deserializeObject(response, FormObjectList);\n          this.dataListSubscription = null;\n          resolve(formObjectList);\n        }\n        else {\n          reject();\n        }\n      });\n    });\n\n  }\n\n  /**\n   * Get form object from x1\n   *\n   * @param formId\n   * @param currentPage\n   * @param pageSize\n   * @param searchText\n   * @returns\n   */\n  getFormObjects(formId: number, currentPage: number, pageSize: number, searchText?: string,orderedArray?: Array<string>){\n    const formData = new FormData();\n    localStorage.setItem('formId', formId.toString());\n    console.log(formId);\n    const fo_info = { 'afid': formId, 'currentPage': currentPage+1, 'pagesize': pageSize, 'keyword': searchText ? searchText : '', 'selected_afoid': null, 'from_date': '', 'to_date': '' ,'sort_order':orderedArray};\n    formData.append('fo_info', JSON.stringify(fo_info));\n    const jsonConvert: JsonConvert = new JsonConvert();\n    const getAssetFormObjects = (): Promise<FormObjectList> => new Promise((resolve, reject) => {\n        this.dataListSubscription = this._httpClient.post(this._commonLibConfigurationService.axonatorX1Url + 'getassetFormObject/', formData).subscribe((response: any) => {\n          const formObjectList = jsonConvert.deserializeObject(response, FormObjectList);\n          this.dataListSubscription = null;\n          resolve(formObjectList);\n        }, reject);\n      });\n    if (this.dataListSubscription) {\n      this.dataListSubscription.unsubscribe();\n      return getAssetFormObjects();\n    }\n    else {\n      return getAssetFormObjects();\n    }\n  }\n\n  /**\n   * Function to call getExcelExportedReport API\n   *\n   * @param formId\n   * @param currentPage\n   * @param pageSize\n   * @param filters\n   * @param searchText\n   * @param exportFields\n   * @param userEmail\n   * @returns\n   */\n  exportData(formId: number, currentPage: number, pageSize: number,filters: Array<AxFilter>, searchText?: string, exportFields?: Array<any>,userEmail?: string): Promise<any>{\n    const validFilters = this._filterService.getValidFilter(filters);\n    const dataListFilterDto = this._convertToOldService.createDataListFilterDto(validFilters, null, null, formId);\n    const fo_info = { 'afid': formId.toString(), 'currentPage': currentPage+1, 'pagesize': pageSize, 'keyword': searchText, 'selected_afoid': '', 'from_date': '', 'to_date': '' };\n    const formData = new FormData();\n    // const exportFields=['Textbox_2'];\n    formData.append('afid', formId.toString());\n    formData.append('keyword','' );\n    formData.append('from_date','' );\n    formData.append('to_date', '');\n    formData.append('export_fields', JSON.stringify(exportFields));\n    formData.append('export_type', 'regular');\n    formData.append('export_recipient_email',userEmail);\n\n    formData.append('searchQueryTree', JSON.stringify(dataListFilterDto.searchQueryTree));\n\n    formData.append('fo_info', JSON.stringify(fo_info));\n    return new Promise((resolve, reject) => {\n\n      this._httpClient.post(this._commonLibConfigurationService.axonatorX1Url + 'getExcelExportedReport/', formData).subscribe((response: any) => {\n        if (response) {\n          resolve(response);\n        }\n        else {\n          reject();\n        }\n      });\n    });\n\n  }\n\n  // this function is to remove hexcodes of coloured choise list filters\n  private removeHexCodes(data: any): any {\n    if (!data?.searchQueryTree) return data;\n    data.searchQueryTree = this.traverseNodes(data.searchQueryTree);\n    return data;\n  }\n  \n  private traverseNodes(node: any): any {\n    if (Array.isArray(node)) {\n        return node.map(child => this.traverseNodes(child));\n    }\n    if (typeof node === 'object' && node) {\n        const result = { ...node };\n        if (result.expression) {\n            if (result.expression.type === 'fixed_list') {\n                ['value', 'values'].forEach(prop => {\n                    if (Array.isArray(result.expression[prop])) {\n                        result.expression[prop] = result.expression[prop].map((item: string) => {\n                            if (item.includes(':')) {\n                                const [value] = item.split(':');\n                                return value;\n                            }\n                            return item;\n                        });\n                    }\n                });\n            }\n        }\n        if (result.nodes) {\n            result.nodes = this.traverseNodes(result.nodes);\n        }\n        return result;\n    }\n    return node;\n  }\n  }\n","<ng-container *ngIf=\"!GlobalGhostLoaderEnabled\">\n   <ng-container *ngIf=\"showGhostLoader\">\n        <div class=\"object-list-component-table w-full h-full page-background\">\n            <div class=\"mx-auto form-object-list-container relative h-full sm:px-6 px-4\">\n                <div class=\"align-middle relative table-container-height\">\n                    <app-ghost-loader\n                        class=\"table-container outline-none\"\n                        [elementType]=\"GhostLoaderType.ListViewLoader\"\n                    ></app-ghost-loader>\n                    <app-ghost-loader\n                        [elementType]=\"GhostLoaderType.PaginationViewLoader\"\n                    ></app-ghost-loader>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n\n\n    <ng-container *ngIf=\"!showGhostLoader\">\n        <div class=\"object-list-component-table w-full h-full page-background\">\n\n            <!-- Page header\n            <div class=\"sticky top-0 data-list-header\">\n\n                <div class=\"flex items-center justify-between mx-auto h-12 bg-white form-object-title-container\">\n                    <div class=\"mx-auto inner-form-object-title-container flex items-center justify-between\">\n                    <h2 class=\"leading-tight m-0 form-object-title axo-font\"  [matTooltip]=\"formObjectList.formNameSingular\" matTooltipClass=\"data-list-title-tooltip-custom-class\">{{formObjectList.formNameSingular}}</h2>\n                    <div class=\"flex items-center gap-4\">\n                        <button class=\"primary-btn axo-font\" (click)=\"addNewRecord()\"> Add New Record</button>\n                    </div>\n                    </div>\n\n                </div>\n\n                <div class=\"mx-auto flex justify-between items-center px-6 flex-wrap md:flex-nowrap data-list-filter-wrapper\">\n                    <button (click)=\"getFormObjects()\" class=\"link-btn axo-font refresh-btn\">Refresh Data</button>\n                </div>\n\n            </div> -->\n\n            <div class=\"mx-auto form-object-list-container relative h-full sm:px-6 px-4\">\n                <div class=\"align-middle relative table-container-height\">\n                  <div *ngIf=\"!isAccountStatusActive\" class=\"loading-overlay rounded-lg\">\n                    <div class=\"loading-text\">Trial expired</div>\n                    <div class=\"loading-text\">To continue viewing data please subscribe to a plan first.</div><br>\n                    <button class=\"upgrade-btn btn\" (click)=\"navigateToBilling()\">Upgrade</button>\n                  </div>\n                    <div\n                        class=\"rounded-lg pb-px table-container customscroll w-full relative\"\n                        [ngClass]=\"{ 'mobile-view-height': showSearch }\"\n                    >\n                    <table class=\"rounded-lg divide-y divide-gray-200 data-list-table w-full\">\n                        <!--Object list table-->\n                        <thead class=\"sticky top-0 h-12\" [ngClass]=\"{'no-data-border': listViewData.length === 0}\">\n                          <!--Object list table head-->\n                          <tr *ngIf=\"listView?.columns?.length > 0\">\n                            <!--Checkbox column-->\n                            <th scope=\"col\" class=\"px-3 py-3 text-left data-table-header cursor-pointer\">\n                              <input type=\"checkbox\" (change)=\"selectAllRows($event.target.checked)\">\n                            </th>\n                            <th scope=\"col\" class=\"px-3 py-3 text-left data-table-header cursor-pointer\" (click)=\"sort($event,column.widget)\"\n                              *ngFor=\"let column of listView.columns;\">\n                              <span [matTooltip]=\"column.widget?.prompt\"  class=\"flex justify-between gap-4\">{{column.widget?.prompt}}\n                                  <div class=\"sorting-arrow\" *ngIf='orderMap.get(column.widget?.identifier); else showSortOnFilter'>\n                                      <span class=\"order-sequence axo-font\" >{{orderedArray.indexOf(column.widget?.identifier)+1}}</span>\n                                      <div class=\"flex flex-col\">\n                                        <div class=\"sort-arrow-up cursor-pointer\" [ngClass]=\"{'arrow-active': orderMap.get(column.widget?.identifier)===sortOrder.ascending}\">&#x25B2;</div>\n                                        <div class=\"sort-arrow-down cursor-pointer\" [ngClass]=\"{'arrow-active': orderMap.get(column.widget?.identifier)===sortOrder.descending}\">&#x25BC;</div>\n                                      </div>\n                                    </div>\n                                    <ng-template #showSortOnFilter>\n                                      <div class=\"sorting-arrow\">\n                                      <span class=\"order-sequence axo-font opacity-0 invisible\" >{{orderedArray.indexOf(column.widget?.identifier)+1}}</span>\n                                        <div class=\"flex flex-col\">\n                                          <div class=\"sort-arrow-up display-hover\">&#x25B2;</div>\n                                          <div class=\"sort-arrow-down display-hover\">&#x25BC;</div>\n                                        </div>\n                                      </div>\n                                    </ng-template>\n                              </span>\n                              <!-- <table *ngIf=\"column.widget.type === 'subform-widget'\">\n                                <tr>\n                                  <th scope=\"col\" class=\"text-sm px-3 py-3 text-left uppercase whitespace-nowrap\"\n                                    *ngFor=\"let markup of column.widget.markup;\"> {{markup.prompt}} </th>\n                                </tr>\n                              </table> -->\n                            </th>\n                            <th scope=\"col\" class=\"px-3 py-3  data-table-header action-column\">Actions</th>\n                            <th *ngIf=\"appManifest?.enable_data_validity\" scope=\"col\" class=\"px-3 py-3 text-left data-table-header\">Status</th>\n\n                          </tr>\n\n                        </thead>\n                        <!--Object list body-->\n                        <tbody class=\"bg-white\" *ngIf=\"listViewData.length > 0\" >\n                          <ng-container *ngFor=\"let formObject of listViewData; let i= index\">\n                              <!-- <tr (click)=\"showDetailView(formObject)\" [ngClass]=\"{data: !formObject?.isValid}\"> -->\n                                <tr [ngClass]=\"{data: !formObject?.isValid}\" (click)=\"showDetailView(formObject)\">\n                                  <!--Checkbox cell-->\n                                  <td class=\"px-3\" (click)=\"$event.stopPropagation()\">\n                                    <input type=\"checkbox\" [(ngModel)]=\"selectedRows[i]\" (change)=\"toggleRowSelection($event.target.checked, i)\">\n                                  </td>\n                              <td class=\"px-3 h-14 line-height-14 text-left data-table-item cursor-pointer\"\n                                *ngFor=\"let widget of formObject.widgets; let widgetIndex = index\" style=\"max-width: fit-content !important;\">\n                                <!-- Value cell -->\n                                <ng-container *ngIf=\"widget?.value\">\n                                  <form-object-widget-value [form]=\"formObject\" [axonatorX1Url]=\"axonatorX1Url\" [baseUrl]=\"baseUrl\"\n                                    [widget]=\"widget\" [widgetProperties]=\"listView.columns[widgetIndex]?.widget\"  class=\"flex items-center h-full min-h-full\">\n                                  </form-object-widget-value>\n                                </ng-container>\n\n                                <ng-container *ngIf=\"!widget?.value &&\n                                column?.widget?.type !== widgetType.staticMedia &&\n                                column?.widget?.type !== widgetType.toggle\">\n                                  <span class=\"flex justify-start items-center\">-</span>\n                                </ng-container>\n\n                              </td>\n\n                              <!-- Actions button -->\n                              <td class=\"px-3 h-14 line-height-14 data-table-item action-column\">\n                                <div class=\"flex items-center gap-3\">\n                                  <ng-container *ngIf=\"form.ft === formTypes.asset && !form.hideEditButton\">\n                                    <div class=\"icon-btn\" (click)=\"editData(formObject,$event)\" matTooltip=\"Edit\">\n                                    <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-4 text-gray-500\" fill=\"none\"\n                                        viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                                        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"\n                                          d=\"M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z\" />\n                                      </svg>\n                                    </div>\n                                  </ng-container>\n                                  <!-- <div class=\"icon-btn\" (click)=\"showDetailView(formObject)\" matTooltip=\"View\">\n                                    <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"h-7 w-5 text-gray-500\" viewBox=\"0 0 24 24\"\n                                      fill=\"#64748b\">\n                                      <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n                                      <path\n                                        d=\"M12 6c3.79 0 7.17 2.13 8.82 5.5C19.17 14.87 15.79 17 12 17s-7.17-2.13-8.82-5.5C4.83 8.13 8.21 6 12 6m0-2C7 4 2.73 7.11 1 11.5 2.73 15.89 7 19 12 19s9.27-3.11 11-7.5C21.27 7.11 17 4 12 4zm0 5c1.38 0 2.5 1.12 2.5 2.5S13.38 14 12 14s-2.5-1.12-2.5-2.5S10.62 9 12 9m0-2c-2.48 0-4.5 2.02-4.5 4.5S9.52 16 12 16s4.5-2.02 4.5-4.5S14.48 7 12 7z\" />\n                                    </svg>\n                                  </div> -->\n                                </div>\n                              </td>\n                              <td *ngIf=\"appManifest?.enable_data_validity\" class=\"px-3\">\n                                  <mat-slide-toggle [color]=\"primary\" [checked]=\"formObject.isValid\" class=\"p-0\"\n                                    (change)=\"enableToggle(formObject,$event)\" (click)=\"$event.stopPropagation();\">\n                                  </mat-slide-toggle>\n                              </td>\n                            </tr>\n                          </ng-container>\n                        </tbody>\n                        <!-- Show no data found msg -->\n                        <tbody class=\"border-0 absolute no-data-body\" *ngIf=\"listViewData.length === 0 && !showLoader\">\n                          <tr class=\"border-0 hover:bg-transparent text-xl no-record-found cursor-default\">\n                            <td class=\"whitespace-nowrap\">No Data Found</td>\n                          </tr>\n                        </tbody>\n\n                      </table>\n                    </div>\n                    <mat-paginator\n                        (page)=\"handlePageEvent($event)\"\n                        [length]=\"totalFormObjects\"\n                        [pageSize]=\"pageSize\"\n                        [pageIndex]=\"pageIndex\"\n                        [pageSizeOptions]=\"pageSizeOptions\"\n                        [disabled]=\"showLoader\"\n                        aria-label=\"Select page\"\n                        class=\"absolute bottom-0 right-0\"\n                    >\n                    </mat-paginator>\n                </div>\n            </div>\n        </div>\n    </ng-container>\n</ng-container>\n","import { SubForm } from './../../forms/page/widgets/sub-form';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport _ from 'lodash';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { CommonLibConfigurationService } from '../../common-lib-configuration.service';\nimport { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { ScreenType } from '../../enlighten-lib/filters/condition-type';\nimport { AxForm } from '../../forms/ax-form';\nimport { DataList } from '../../forms/page/data-list/data-list';\nimport { DataListColumn } from '../../forms/page/data-list/data-list-column';\nimport { Widget } from '../../forms/page/widgets/widget';\nimport { FormType, SortingOrder, WidgetSubType, WidgetType } from '../../forms/page/common/widget-enums';\nimport { FormObjectViewService } from '../form-object-view/form-object-view.service';\nimport { FormObjectListService } from './form-object-list.service';\nimport { Router } from '@angular/router';\nimport { DataViewService } from '../../data-view-lib/data-view.service';\nimport { GhostLoaderType } from '../../ghost-loader/ghost-loader.component';\nimport { UserDataService } from '../../core/user/user-data.service';\nimport { DataViewFilter } from '../../data-view-lib/data-view/data-view-filter';\n\n\n@Component({\n  selector: 'form-object-list',\n  templateUrl: './form-object-list.component.html',\n  styleUrls: ['./form-object-list.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectListComponent implements OnInit, OnDestroy {\n  //<-------- Inputs --------------->\n  @Input() listView: DataList;\n  @Input() screenType: ScreenType;\n  @Input() form: AxForm;\n  @Input() searchText: string = '';\n  @Input() enbledCaching: boolean = false;\n  @Input() filters: Array<AxFilter>;\n  @Input() applyFilterEmitter: EventEmitter<any> = new EventEmitter<any>();\n  @Input() resetFilterEmitter: EventEmitter<any> = new EventEmitter<any>();\n  @Input() clearFilterEmitter: EventEmitter<any> = new EventEmitter<any>();\n  @Input() refreshDataEmitter: EventEmitter<any> = new EventEmitter<any>();\n  @Input() exportDataEmitter: EventEmitter<any> = new EventEmitter<any>();\n  @Input() appManifest: any;\n  @Input() GlobalGhostLoaderEnabled: boolean = false;\n//   @Input() showGhostLoader: boolean;\n\n\n  //<-------- Outputs --------------->\n  @Output() exportDataListEvent = new EventEmitter<any>();\n  @Output() showDataDetailView = new EventEmitter<any>();\n  @Output() addNewRecordEvent = new EventEmitter<any>();\n  @Output() editFormObjectEvent = new EventEmitter<any>();\n  @Output() updateFormObjectStatus = new EventEmitter<any>();\n  @Output() ChildLoaded = new EventEmitter<any>();\n\n  //<-------------- Component attributes ---------------->\n  showLoader: boolean = false;\n  showGhostLoader: boolean = false;\n\n  baseUrl: string;\n  axonatorX1Url: string;\n  pageIndex: number = 0;\n  pageSize: number = 10;\n  totalFormObjects = 0;\n  pageSizeOptions = [10,25,50,100,200];\n  orderedArray=[];\n  arrayForApi=[];\n  temporyfilters: (AxFilter | DataViewFilter)[] = [];\n\n\n  // We use this widget map for widget properties this map don't have widget value.\n  widgetMap: Map<string, Widget> = new Map<string, Widget>();\n  orderMap: Map<string,string> = new Map<string,string>();\n\n  GhostLoaderType = GhostLoaderType;\n\n  listViewData: Array<AxForm> = [];\n  listViewDataArray: any[] = []; // Your data array\n  selectedRows: boolean[] = [];\n  selectedFormObjectIds: string[] = [];\n  selectedFormObjectTitle: string[] = [];\n  selectAllRows(isSelected: boolean) {\n    if (isSelected) {\n      this.selectedFormObjectIds = this.listViewData.map(formObject => formObject.id);\n      this.selectedFormObjectTitle = this.listViewData.map(formObject => formObject.title);\n      this.selectedRows = this.listViewData.map(() => isSelected);\n    } else {\n      this.selectedRows = this.listViewData.map(() => isSelected);\n      this.selectedFormObjectIds = [];\n      this.selectedFormObjectTitle = [];\n    }\n    console.log(this.selectedFormObjectIds);\n    console.log(this.selectedFormObjectTitle);\n    localStorage.setItem('formObjectIds', JSON.stringify(this.selectedFormObjectIds));\n    localStorage.setItem('formObjectTitles', JSON.stringify(this.selectedFormObjectTitle));\n\n  }\n\n  toggleRowSelection(isSelected: boolean, index: number) {\n    if (isSelected) {\n      this.selectedFormObjectIds.push(this.listViewData[index].id);\n      this.selectedFormObjectTitle.push(this.listViewData[index].title);\n\n    } else {\n      const selectedIndex = this.selectedFormObjectIds.indexOf(this.listViewData[index].id);\n      const selectedTitle = this.selectedFormObjectTitle.indexOf(this.listViewData[index].title);\n      if (selectedIndex !== -1) {\n        this.selectedFormObjectIds.splice(selectedIndex, 1);\n      }\n      if (selectedTitle !== -1) {\n        this.selectedFormObjectTitle.splice(selectedIndex, 1);\n      }\n    }\n    console.log(this.selectedFormObjectIds);\n    console.log(this.selectedFormObjectTitle);\n    localStorage.setItem('formObjectIds', JSON.stringify(this.selectedFormObjectIds));\n    localStorage.setItem('formObjectTitles', JSON.stringify(this.selectedFormObjectTitle));\n  }\n  // @Input() formObjectList: FormObjectList;\n  // @Input() dataModel: DataModel;\n  // @Input() axonatorX1Url: string;\n  // @Input() appVersionId: number;\n  // @Input() formObjects: Array<AxForm>;\n\n\n  // @Input() appVersionId: number;\n  // @Input() appId: number;\n\n\n\n\n  // @Output() filterChangeEmit = new EventEmitter<any>();\n  // @Output() resetFilterEvent = new EventEmitter<any>();\n  // @Output() applyFilterEmit = new EventEmitter<any>();\n  // @Output() pageChangeEvent = new EventEmitter<any>();\n\n  // @ViewChild('paginator') paginator: MatPaginator;\n\n  // Widget map list\n  // formObjectsMap: Array<Map<string, any>> = [];\n//   showSearch: string = '';\n  // formId: string;\n  showSearch: boolean = false;\n  widgetType: any = WidgetType;\n  pagesize: number;\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  isAccountStatusActive: boolean;\n\n\n  constructor(\n    private _formObjectViewService: FormObjectViewService,\n    private _formObjectListService: FormObjectListService,\n    private _commonLibConfigurationService: CommonLibConfigurationService,\n    private _router: Router,\n    private _dataViewService: DataViewService,\n    private _userDataService: UserDataService,\n    ) {\n  }\n\n  get formTypes(): typeof FormType {\n    return FormType;\n  }\n  // get for sorting order\n  get sortOrder(): typeof SortingOrder {\n    return SortingOrder;\n  }\n\n  ngOnInit(): void {\n    localStorage.setItem('selectedForm', JSON.stringify(this.form));\n    this.baseUrl = this._commonLibConfigurationService.axonatorX1Url;\n    this.axonatorX1Url = this._commonLibConfigurationService.axonatorX1Url;\n    this.subscribers();\n    // this._userDataService.isAccountStatusActive$.subscribe((response) => {\n    //   this.isAccountStatusActive = response;\n    // });\n    this.isAccountStatusActive = JSON.parse(localStorage.getItem('isAccountStatusActive') || 'false');\n    /** get width of filter buttons wrraper */\n    const element = document.getElementById('dataviewheaderwrapper');\n    const height = element?.clientHeight+'px';\n    /**Set width of css variable */\n    if(height){\n      document.documentElement.style.setProperty('--headerheight', height);\n    }\n    // After getting listView columns, find date/time column and set initial sort\n    this.initializeDefaultSort();\n  }\n\n  private initializeDefaultSort() {\n    // Find the first datetime column\n    const dateColumn = this.listView.columns.find(column => \n      column.widget?.type === WidgetType.dateTime\n    );\n\n    if (dateColumn?.widget) {\n      // Set default descending sort\n      const identifier = dateColumn.widget.identifier;\n      this.orderMap.set(identifier, SortingOrder.descending);\n      this.orderedArray = [identifier];\n      this.arrayForApi = [this.getFormattedString(identifier, dateColumn.widget.subType)];\n      \n      // Get initially sorted data\n      this.getFormObjects();\n    }\n  }\n\n  /**\n   * On Change life cycle hook Get call on input change\n   *\n   * @param changes\n   */\n   ngOnChanges(changes: SimpleChanges): void {\n    if (changes.listView && (changes.listView.previousValue != changes.listView.currentValue) || changes.searchText && (changes.searchText.currentValue != changes.searchText.previousValue)) {\n        if(!changes.GlobalGhostLoaderEnabled || !this.GlobalGhostLoaderEnabled){\n            this.showGhostLoader = true;\n        }\n        this.listViewData = [];\n        this.initializeFormObjectList();\n    }\n    if (changes.form && changes.form.currentValue && changes.form.previousValue && changes.form.currentValue.formId != changes.form.previousValue.formId ) {\n      this.showSearch = false;\n      this.searchText = '';\n      this.orderedArray = [];\n      this.arrayForApi = [];\n      this.orderMap.clear();\n    }\n    setTimeout(() => {\n      /** get width of filter buttons wrraper */\n      const height = document.getElementById('dataviewheaderwrapper')?.clientHeight+'px';\n      /**Set width of css variable */\n      if(height){\n        document.documentElement.style.setProperty('--headerheight', height);\n      }\n      \n    });\n  }\n\n  /**\n   * Initilize list view\n   */\n  initializeFormObjectList(): void {\n    // Set Default Page Index and Page Size\n    this.pageIndex = 0;\n    this.pageSize = 10;\n    //createWidgetMap\n    this.createWidgetMap(this.form.widgets);\n\n    //get list view structure\n    this.getListViewDetails();\n\n    // this.formObjectsMap = [];\n    // this.formObjectList.pageIndex = 0;\n    // if (this.formObjectList.currentPage === 1 && this.paginator) {\n    //   this.paginator.pageIndex = 0;\n    // }\n\n    // Created widget map for each formObject\n    // this.formObjects.forEach((formObject: AxForm) => {\n    //   const formObjectMap = new Map<string, any>();\n    //   formObject.widgets.forEach((widget: any) => {\n    //     formObjectMap.set(widget.identifier, widget);\n    //   });\n    //   this.formObjectsMap.push(formObjectMap);\n    // });\n  }\n\n  /**\n   * Set Page size options by columns length\n   */\n  setPageSizeOptions(): void{\n    if(this.listView.columns.length > 50 && this.listView.columns.length < 100){\n        this.pageSizeOptions = this.pageSizeOptions.slice(0,4);\n    }else if(this.listView.columns.length > 100){\n        this.pageSizeOptions = this.pageSizeOptions.slice(0,3);\n    }\n  }\n\n  /**\n   * All subscriber should be implemented here.\n   */\n  subscribers(): void{\n    /**\n     * This will get called on apply filter button clicked.\n     */\n    this.applyFilterEmitter\n    ?.pipe(takeUntil(this._unsubscribeAll))\n    .subscribe(()=>{\n      this.showGhostLoader = true;\n      this.pageIndex = 0;\n      this.pageSize = 10;\n      this.getFormObjects();\n    });\n\n    /**\n     * This will get called on reset filter button clicked.\n     */\n    this.resetFilterEmitter\n    ?.pipe(takeUntil(this._unsubscribeAll))\n    .subscribe(()=>{\n      this.showGhostLoader = true;\n      this.pageIndex = 0;\n      this.pageSize = 10;\n      this.getFormObjects();\n    });\n\n    this.clearFilterEmitter\n    ?.pipe(takeUntil(this._unsubscribeAll))\n    .subscribe(()=>{\n      this.showGhostLoader = true;\n      this.pageIndex = 0;\n      this.pageSize = 10;\n      this.getFormObjects();\n    });\n\n    this.refreshDataEmitter\n    ?.pipe(takeUntil(this._unsubscribeAll))\n    .subscribe(()=>{\n      this.showGhostLoader = true;\n      this.pageIndex = 0;\n      this.pageSize = 10;\n      this.getFormObjects();\n    });\n\n    /**\n     * This will get called when send excel report button clicked on data list\n     */\n    this.exportDataEmitter\n    ?.pipe(takeUntil(this._unsubscribeAll))\n    .subscribe((userEmail: string)=>{\n      const exportFields: Array<any>=[];\n      this.listView.columns.forEach((widget) => {\n          exportFields.push(widget.identifier);\n      });\n      // This will call excel export function\n      this._formObjectListService.exportData(this.form.formId,this.pageIndex,this.pageSize,this.filters,this.searchText,exportFields,userEmail).then((response)=>{\n      });\n    });\n  }\n\n  /**\n   * Created widget Map that will be use to get widget by identifier.\n   */\n  createWidgetMap(widgets: Array<Widget>): void {\n    widgets.forEach((widget) => {\n        this.widgetMap.set(widget.identifier, widget);\n        if(widget.type === WidgetType.subForm){\n            const subFormWidget = widget as SubForm;\n            this.createWidgetMap(subFormWidget.markup);\n        }\n    });\n  }\n\n  /**\n   * Get List View structure\n   */\n  getListViewDetails(): void{\n    this.showLoader = true;\n    // This check added for data list builder If list is newly created .\n    if (this.listView.id !== 0) {\n      this._formObjectListService.getDataList(this.listView.id).then((response) => {\n        const listViewDetails = new DataList(response);\n        this.listView.columns = this.mapWidegtWithColumn(listViewDetails.columns);\n        this.listView.dataDetail = listViewDetails.dataDetail;\n        this.getFormObjects();\n        //Set Page size options\n        this.setPageSizeOptions();\n      });\n    }else{\n        this.getFormObjects();\n        //Set Page size options\n        this.setPageSizeOptions();\n    }\n  }\n\n  /**\n   * Map widget with column\n   *\n   * @param columns\n   * @returns\n   */\n  mapWidegtWithColumn(columns: Array<DataListColumn>): Array<DataListColumn> {\n    columns.forEach((column) => {\n      column.widget = this.widgetMap.get(column.identifier);\n    });\n    return columns;\n  }\n\n  /**\n   * Show detail View\n   *\n   * @param formObject\n   */\n  showDetailView(formObject: AxForm): void {\n    const dataObject = { formObject: formObject, dataDetailId: this.listView.dataDetail.id };\n    this._formObjectViewService.setFormObjectWithDataDetailId(formObject, this.listView.dataDetail.id);\n    this.showDataDetailView.emit(dataObject);\n  }\n\n  /**\n   * Get Form Object\n   */\n  getFormObjects(): void{\n    const formData = new FormData();\n    // localStorage.setItem('formId', formId.toString());\n    // console.log(formId);\n    this.showLoader = true;\n    this._formObjectListService.getFormObjectList(this.form.formId,this.pageIndex,this.pageSize,this.filters,this.searchText,this.arrayForApi).then((response)=>{\n      this.totalFormObjects = response.totalFormObjects;\n      this.buildListViewData(response.formObjects);\n    });\n  }\n\n  /**\n   * Build List view data accordingly to column order\n   *\n   * @param formObjects\n   */\n  buildListViewData(formObjects: Array<AxForm>): void{\n    this.listViewData = [];\n    formObjects.forEach((formObject) =>{\n      const _formObject = new AxForm(formObject);\n      _formObject.widgets = [];\n      this.listView.columns.forEach((column) =>{\n       const widget = this.getDataWidget(column.identifier,formObject);\n       _formObject.widgets.push(widget);\n      });\n      this.listViewData.push(_formObject);\n    });\n    this.showLoader = false;\n    this.showGhostLoader = false;\n\n\n\n    if(this.GlobalGhostLoaderEnabled){\n        this.ChildLoaded.emit();\n    }\n\n\n    setTimeout(() => {\n        /** get width of filter buttons wrraper */\n        let height = document.getElementById('dataviewheaderwrapper')?.clientHeight+\"px\";\n        /**Set width of css variable */\n        if(height){\n          document.documentElement.style.setProperty('--headerheight', height);\n        }   \n    });\n  }\n\n  /**\n   * This will find and return widget by identifier.if widget not found return null\n   *\n   * @param identifier\n   * @param formObject\n   * @returns\n   */\n  getDataWidget(identifier: string,formObject: AxForm): Widget{\n    return formObject.widgets.find(widget => widget.identifier == identifier);\n  }\n\n  /**\n   * Handled Pagination events\n   *\n   * @param event\n   */\n  handlePageEvent(event: PageEvent): void {\n    this.showGhostLoader = true;\n    this.pageSize = event.pageSize;\n    this.pageIndex = event.pageIndex;\n    this.getFormObjects();\n    // const formData = new FormData();\n    // const fo_info = { 'afid': this.form.formId, 'currentPage': event.pageIndex + 1, 'pagesize': event.pageSize, 'keyword': '', 'selected_afoid': null, 'from_date': '', 'to_date': '' };\n    // formData.append('fo_info', JSON.stringify(fo_info));\n    // formData.append('appVersionId', this.appVersionId.toString());\n    // this._formObjectViewService.setFormDataForPaginator(formData);\n    // this.formObjectList.currentPage = event.pageIndex + 1;\n    // this.formObjectList.pageSize = event.pageSize;\n    // this.pageChangeEvent.emit();\n  }\n\n  /**\n   * Export Data List\n   */\n  exportDataList(): void {\n    this.exportDataListEvent.emit();\n  }\n\n  // showSearchBox(): void {\n  //   document.getElementById('field-search').focus();\n  //   this.showSearch = !this.showSearch;\n  // }\n\n  // clear(): void {\n  //   if (_.isEmpty(this.searchText)) {\n  //     this.showSearch = !this.showSearch;\n  //   }\n  //   this.searchText = '';\n  //   this.getDataList();\n  // }\n\n  // getDataList(): void {\n  //   this.pageChangeEvent.emit(this.searchText);\n  // }\n\n  // addNewRecord(): void {\n  //   this.addNewRecordEvent.emit();\n  // }\n\n  /**\n   * Enabled and\n   *\n   * @param formObject\n   * @param event\n   */\n  enableToggle(formObject: AxForm, event: MatSlideToggleChange): void {\n    formObject.isValid = event.checked;\n    this.updateFormObjectStatus.emit(formObject);\n  }\n  /**\n   * This function returns widget from formObjectsMap by widget identifier.\n   *\n   * @param index\n   * @param column\n   * @returns\n   */\n  // getWidget(index: number, column: any): any {\n  //   const formObjectMap = this.formObjectsMap[index];\n  //   const widget = formObjectMap?.get(column.widget.identifier);\n  //   const widgetValue = widget?.value;\n  //   column.widget.values = widget?.values;\n  //   if (widget && widgetValue) {\n  //     column.widget.value = widgetValue;\n  //   }\n  //   else {\n  //     column.widget.value = null;\n\n  //   };\n  //   return column.widget;\n  // }\n\n  /**\n   * This function returns widget from formObjectsMap by widget identifier.\n   *\n   * @param index\n   * @param column\n   * @returns\n   */\n  // getWidgetValue(index: number, column: any): boolean {\n  //   const columnWidget = this.getWidget(index, column);\n  //   return columnWidget.value != null ? true : false;\n  // }\n\n  /**\n   * checks whether the widget exists\n   * and than checks whether value exists or not.\n   *\n   * @param index\n   * @param column\n   * @returns\n   */\n  // checkWidgetAndWidgetValue(index: number, column: any):boolean{\n  //   if(this.getWidget(index,column) && this.getWidgetValue(index,column) || this.getWidgetValue(index,column)==false){\n  //     const columnWidget = this.getWidget(index, column);\n  //     if(columnWidget.type==\"yes_no-widget\" || (columnWidget.value!=null && columnWidget.value != \"\" )){\n  //       return true;\n  //     }\n  //     return false;\n  //   }\n  // }\n\n  /**\n   * Edit form object\n   *\n   * @param AxForm\n   * @param MouseEvent\n   */\n  editData(formObject: AxForm, event: MouseEvent): void {\n    event.stopPropagation();\n    this.editFormObjectEvent.emit(formObject);\n\n  }\n\n  /**\n   *  unsubscribe all subsctiber on destroy life cycle hook\n   */\n  ngOnDestroy(): void {\n    // Unsubscribe from all subscriptions\n    this._unsubscribeAll.next();\n    this._unsubscribeAll.complete();\n  }\n\n\n  // filterChangedEvent(): void {\n  //   this.filterChangeEmit.emit();\n  // }\n\n  /*\n  Emits the resetFilter event for resetting the filter on Reset button\n  */\n  // resetFilter(filter: DataListFilterDto): void {\n  //   // this.resetFilterEvent.emit();\n  //   this.getFormObjects();\n  // }\n\n  /*\n  Emits the event for Applying filters on Apply button\n  */\n  // applyFilterEvent(): void {\n  //   this.applyFilterEmit.emit();\n  // }\n\n  /**\n   * this function will call when clicked on column header\n   *\n   * @param event\n   * @param widget\n   */\n  sort(event: KeyboardEvent, widget: Widget): void {\n    const identifier = widget.identifier;\n    this.updateSortingOrder(identifier);\n    if (event.ctrlKey || event.metaKey) {\n      this.multipleSorting(identifier);\n    }\n    else {\n      this.singleColumnSorting(identifier);\n    }\n    if (this.orderMap.has(identifier)) {\n      this.arrayForApi.push(this.getFormattedString(identifier, widget.subType));\n    }\n\n    this.getFormObjects();\n  }\n  getFormattedString(identifier: string, subType: string): string {\n    if (subType === WidgetSubType.referenceList) {\n      return 'field(' + this.form.formId + '_' + identifier + '_name) ' + this.orderMap.get(identifier);\n\n    }\n    return 'field(' + this.form.formId + '_' + identifier + ') ' + this.orderMap.get(identifier);\n\n  }\n  /**\n   * to Add multiple column identifiers in sorting array\n   *\n   * @param identifier\n   */\n  multipleSorting(identifier: string): void {\n    if (this.orderedArray.includes(identifier)) {\n      this.orderedArray.splice(this.orderedArray.indexOf(identifier), 1);\n      this.arrayForApi.splice(this.orderedArray.indexOf(identifier), 1);\n    }\n    this.orderedArray.push(identifier);\n  }\n\n  /**\n   * to sort single column\n   *\n   * @param identifier\n   */\n  singleColumnSorting(identifier: string): void {\n    [...this.orderMap.keys()].forEach((key) => {\n      if (key !== identifier) {\n        this.orderMap.delete(key);\n      }\n    });\n    this.orderedArray = [];\n    this.arrayForApi = [];\n    this.orderedArray.push(identifier);\n  }\n\n  /**\n   * to update sort order according last sortig order\n   *\n   * @param identifier\n   */\n  updateSortingOrder(identifier: string): void {\n\n    if (this.orderMap.get(identifier) === SortingOrder.ascending) {\n      this.orderMap.set(identifier, SortingOrder.descending);\n    }\n    else if (this.orderMap.get(identifier) === SortingOrder.descending) {\n      this.orderedArray.splice(this.orderedArray.indexOf(identifier), 1);\n      this.orderMap.delete(identifier);\n    }\n    else {\n      this.orderMap.set(identifier, SortingOrder.ascending);\n    }\n  }\n\n  navigateToBilling(): void {\n    window.open(this._commonLibConfigurationService.builderUrl + 'paymentinfo/pricing', '_blank');\n\n    this._userDataService.userDetails$.subscribe(userDetails => {\n      // Use userDetails here\n      console.log(userDetails);\n      const user = {\n        uname: userDetails.uname, // User's full name\n        receiver_name: \"Aarohi\", // Receiver's full name\n        // receiver_email: \"aarohi@axonator.com\", // Receiver's email\n        // receiver_email: environment.internalAlertRecipientIds, // Receiver's email\n        screen: \"Container: Data-Views: Data-List-View\",\n        app: userDetails.accounts[userDetails.lastused_account].name, // App name\n        version: \"v\" + userDetails.uobs.properties.app_version, // App version\n        env: this._commonLibConfigurationService.axonatorX1Url,\n        org_id: userDetails.lastused_account, // Organization ID\n        org_name: userDetails.accounts[userDetails.lastused_account].name, // Organization name\n        modal_type: \"Buy Licenses\"\n      };\n      // Call the EmailService method to send the upgrade email\n      this._userDataService.sendUpgradeEmail(user).then(() => {\n        console.log('Upgrade email sent successfully');\n      }).catch(error => {\n        console.error('Error sending upgrade email:', error);\n        // Handle error as needed\n      });\n\n\n\n\n\n  });\n\n  }\n\n}\n\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[FormObjectValueHost]'\n})\nexport class FormObjectValueDirective {\n\n  constructor(public viewContainerRef: ViewContainerRef) { }\n\n}\n","<div *ngIf=\"widgetValue\"  class=\"geo-fences-container\">\n  {{widgetValue.inside ? \"Inside\" : \"Outside\"}}\n</div>\n\n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ApplyGeoFence } from '../../../../forms/page/widgets/apply-geofences';\n\n@Component({\n  selector: 'lib-formobject-apply-geo-fence-value',\n  templateUrl: './formobject-apply-geo-fence-value.component.html',\n  styleUrls: ['./formobject-apply-geo-fence-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectApplyGeoFenceValueComponent implements OnInit {\n  @Input() widget: ApplyGeoFence;\n  widgetValue : any ;\n\n\n\nngOnInit(): void{\n  if(this.widget.value){\n  this.widgetValue = this.widget.getWidgetValue();\n  }\n}\n\n\n}\n","<div *ngIf=\"widgetValue !== null && widgetValue !== undefined\" >\n<audio controls controlsList=\"nodownload noplaybackrate\">\n    <source [src]=\"baseUrl + widgetValue\" type=\"audio/ogg\" controlsList=\"nodownload\">\n</audio>\n</div>","import { Component, Input, OnInit } from '@angular/core';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport _ from 'lodash';\nimport { AxAudio } from '../../../../forms/page/widgets/ax-audio';\n\n@Component({\n  selector: 'formobject-audio-value',\n  templateUrl: './formobject-audio-value.component.html',\n  styleUrls: ['./formobject-audio-value.component.scss']\n})\nexport class FormObjectAudioValueComponent implements OnInit {\n  @Input() widget: AxAudio;\n  @Input() baseUrl: string;\n  widgetValue: any;\n  constructor() { }\n\n  ngOnInit(): void {\n    if(this.widget.values && ! _.isEmpty(this.widget.values[0]?.file) ){\n      this.widgetValue = AxoUtils.removeSlashFromImageUrl(this.widget.values[0]?.file);\n    }\n    \n  }\n\n}\n","<ng-container *ngIf=\"widget.value\" >\n  {{widget.value}}\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AutoNumber } from '../../../../forms/page/widgets/auto-number';\n\n@Component({\n  selector: 'app-formobject-auto-number-value',\n  templateUrl: './formobject-auto-number-value.component.html',\n  styleUrls: ['./formobject-auto-number-value.component.scss']\n})\nexport class FormObjectAutoNumberValueComponent implements OnInit {\n  @Input() widget: AutoNumber;\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","import { JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Constants } from '../forms/page/common/constants';\n\n\nexport class AxoMap {\n\n    @JsonProperty(Constants.lat ,Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    latitude: number;\n    \n    @JsonProperty(Constants.long ,Number,PropertyConvertingMode.IGNORE_NULLABLE)\n    longitude: number;\n    \n    constructor(field?: AxoMap) {\n        if(field){\n            this.axoMap(field);\n        }\n        else{\n            this.newAxoMap();\n        }\n    }\n    /**\n     * create new AxoMap\n     */\n    newAxoMap(): void {\n        this.latitude = 0;\n        this.longitude = 0;\n    }\n\n    /**\n     * set value to AxoMap\n     * @param field \n     */\n    axoMap(field): void {\n        this.latitude = field.latitude;\n        this.longitude = field.longitude;\n    }\n}\n","<agm-map [fitBounds]=\"true\">\n    <ng-container *ngFor=\"let location of locations\">\n        <agm-marker \n            [agmFitBounds]=\"true\" \n            [latitude]=\"location.latitude\" \n            [longitude]=\"location.longitude\" \n        >\n    </agm-marker>\n    </ng-container>\n</agm-map>\n","import { Component, Input, OnInit, ViewEncapsulation } from \"@angular/core\";\nimport { AxoMap } from \"./axo-map\";\n\n@Component({\n    selector: 'axo-map',\n    templateUrl: './axo-map.component.html',\n    styleUrls: ['./axo-map.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\n/**\n * this component is used for creating a map with markers\n * using latitude and longitude\n */\nexport class AxoMapComponent implements OnInit {\n    @Input() locations: Array<AxoMap> = [];\n    ngOnInit(): void {}\n}\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\nimport { AxoMap } from '../axo-map/axo-map';\n\n@Component({\n  selector: 'map-dialog',\n  templateUrl: './map-dialog.component.html',\n  styleUrls: ['./map-dialog.component.scss'],\n  encapsulation : ViewEncapsulation.None\n})\nexport class MapDialogComponent  {\n  //list of locations\n  locations: Array<AxoMap>;\n\n\n  constructor(public dialogRef: MatDialogRef<MapDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any) {\n      this.locations = data.locations;      \n  }\n\n  ngOnInit(): void { \n  }\n  \n  \n  /**\n   * Close image Map dialog \n   */\n  closeDialog(): void {\n    this.dialogRef.close(false);\n  }\n\n}\n","<div class=\"location-container relative min-w-full max-w-full min-h-full max-h-full\">\n    <button mat-icon-button class=\"close-button\" (click)=\"closeDialog()\">\n        <mat-icon class=\"close-icon\" color=\"warn\">close</mat-icon>\n    </button>\n    <div mat-dialog-content class=\"location-body\">\n        <axo-map [locations]=\"locations\"></axo-map>\n    </div>\n</div>\n","<div class=\"flex items-center gap-1\">\n    <!-- If location is enabled icon for triggering map-dialog get visible-->\n    <div class=\"icon-container\" *ngIf=\"widget.subType == WidgetSubType.scan_with_location && widgetProperties.captureLocation && showMap\">\n        <div class=\"flex items-center location-btn-icon rounded-md m-0\" (click)=\"showLocationView($event); $event.stopPropagation();\">\n            <mat-icon [svgIcon]=\"'axo_location_red'\" ></mat-icon>\n        </div>\n    </div>\n    <div [matTooltip]=\"widgetValue\" class=\"data-list-value axo-font\">\n        {{widgetValue}}\n    </div>\n</div>\n","import { Widget } from '../../../../../lib/forms/page/widgets/widget';\nimport { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AxoMap } from '../../../../axo-map/axo-map';\nimport { MapDialogComponent } from '../../../../map-dialog/map-dialog.component';\nimport { BarCode } from '../../../../forms/page/widgets/bar-code';\nimport { WidgetSubType } from '../../../../../lib/forms/page/common/widget-enums';\n\n@Component({\n  selector: 'formobject-bar-code-value',\n  templateUrl: './formobject-bar-code-value.component.html',\n  styleUrls: ['./formobject-bar-code-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectBarCodeValueComponent implements OnInit {\n  @Input() widget: BarCode;\n  @Input() widgetProperties: BarCode;\n  widgetValue: string = '';\n  dialog: MatDialog;\n  locations =  new Array<AxoMap>();\n  // variable for showing the map.\n  showMap: boolean = true;\n\n  constructor(private _injector: Injector) { }\n  ngOnInit() {\n    this.widgetValue = this.widget.getWidgetValue();\n    if(this.widget.subType == WidgetSubType.scan_with_location){\n      let value = JSON.parse(this.widgetValue);\n      this.widgetValue = value[0].data\n      let latitude = value[0]?.location?.lat;\n      let longitude = value[0]?.location?.long;\n      //checks the lat and long value and set showMap value.\n      if((latitude == 0 && longitude==0) || !latitude || !longitude){\n        this.showMap = false;\n      }\n      else{\n        let axoMap = new AxoMap();\n        axoMap.latitude = latitude;\n        axoMap.longitude = longitude;\n        this.locations.push(axoMap);\n        this.showMap = true;\n      }\n    }\n  }\n\n  /**\n   * Open location dialog\n   */\n  showLocationView(event): void {\n    this.dialog = this._injector.get(MatDialog);\n    this.dialog.open(MapDialogComponent, {\n      maxWidth: '100vw',\n      maxHeight: '100vh',\n      height: '100%',\n      width: '100%',\n      panelClass: 'location-box-container',\n      data: {\n        locations : this.locations\n      },\n    });\n  }\n\n\n  /**\n   * enum of widget subType\n   */\n  public get WidgetSubType(): typeof WidgetSubType {\n    return WidgetSubType;\n  }\n}\n","<div *ngIf=\"widgetValue !== null && widgetValue?.length!==0 && widgetValue !== undefined\">\n    <mat-card class=\"customscroll\">\n        <div class=\"row flex gap-3 justify-start items-center child-record\">\n            \n            <div class=\"flex gap-4 justify-start items-center\">\n                <div class=\"col-4\">\n                    <img class=\"thumbnail rounded\" alt=\"...\" [src]=\"baseUrl +  choiceRecordImageValue\" />\n                </div>\n                <div class=\"col-6\">\n                    <div class=\"form-child-record-title\">{{widgetValue[0].title}}</div>\n                    <div class=\"form-child-record-subtitle\">{{widgetValue[0].subTitle}}</div>\n                </div>\n            </div>\n            <div *ngIf=\"widgetValue.length > 1\" class=\"flex justify-end align-center\">\n                \n                <span class=\"child-record-counter\"> +{{widgetValue.length-1}}</span>\n            </div>\n        </div>\n    </mat-card>\n</div>\n<ng-container *ngIf=\"!widget.value || widget.value.length <= 0\" >\n    <div class=\"flex items-center justify-start\">-</div>\n</ng-container>","import { Component, Input, OnInit } from '@angular/core';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport _ from 'lodash';\nimport { ChildRecord } from '../../../../forms/page/widgets/child-record';\n\n@Component({\n  selector: 'app-formobject-child-records-value',\n  templateUrl: './formobject-child-records-value.component.html',\n  styleUrls: ['./formobject-child-records-value.component.scss']\n})\nexport class FormObjectChildRecordsValueComponent implements OnInit {\n  @Input() widget: ChildRecord;\n  @Input() baseUrl: string;\n  choiceRecordImageValue: any;\n  widgetValue: any;\n  constructor() { }\n\n  ngOnInit() {\n    this.widgetValue = this.widget.getWidgetValue();\n    if (this.widgetValue && !_.isEmpty(this.widgetValue)&& this.widgetValue.length && !_.isEmpty(this.widgetValue[0].picture)) {\n      this.choiceRecordImageValue = AxoUtils.removeSlashFromImageUrl(this.widgetValue[0].picture);\n    }\n    if(this.choiceRecordImageValue === undefined){\n      this.choiceRecordImageValue = 'images/media/default_icons/thumb_no-image-found.png';\n    }\n  }\n\n}\n","<!-- Reference and API List Value -->\n<mat-card\n  *ngIf=\"(this.widget.subType === 'reference_list' || this.widget.subType === 'api_list') && widgetValue !== null && widgetValue?.length!==0 && widgetValue !== undefined\" [ngClass]=\"{'reference-list-class': this.widget.subType === 'reference_list', 'multi-reference-list-class': widgetValue.length > 1}\">\n  <div class=\"row flex gap-3 justify-start items-center choice-list\">\n    <div class=\"flex gap-4 items-center\">\n      <div class=\"reference_list-icon\">\n        <img class=\"thumbnail\" alt=\"...\" [src]=\"baseUrl +  choiceListValue\">\n      </div>\n      <div class=\"reference_list-text\">\n        <div class=\"choice-list-title axo-font ellipsis\" [matTooltip]=\"widgetValue[0].formObjectTitle\">{{widgetValue[0].formObjectTitle}}</div>\n        <div class=\"choice-list-sub-title axo-font ellipsis\" [matTooltip]=\"widgetValue[0].formObjectSubTitle\">{{widgetValue[0].formObjectSubTitle}}</div>\n      </div>\n    </div>\n    <div *ngIf=\"widgetValue.length > 1\" class=\"flex justify-end align-center\">\n      <span class=\"choice-list-counter\">+{{widgetValue.length-1}}</span>\n    </div>\n  </div>\n</mat-card>\n<!-- Image Choice List Value-->\n<mat-card\n  *ngIf=\" this.widget.subType === 'img_fixed_list' && widgetValue !== null && widgetValue?.length!==0 && widgetValue !== undefined\" [ngClass]=\"{'imgFixed-list-class': this.widget.subType === 'img_fixed_list'}\">\n  <div class=\"row flex gap-3 justify-start items-center choice-list\">\n    <div class=\"flex gap-4 items-center\">\n      <div class=\"imageList-img\">\n        <img class=\"thumbnail\" alt=\"...\" [src]=\"baseUrl +  choiceListValue\">\n      </div>\n      <div class=\"imageList-text\">\n        <div class=\"choice-list-title ellipsis axo-font\"  [matTooltip]=\"choiceListImgLabel\">{{choiceListImgLabel}}</div>\n      </div>\n    </div>\n    <div *ngIf=\"widgetValue.length > 1\" class=\"flex justify-end align-center\">\n      <span class=\"choice-list-counter\">+{{widgetValue.length-1}}</span>\n    </div>\n  </div>\n</mat-card>\n\n<!-- Fixed Choice list Value-->\n<div *ngIf=\"this.widget.subType === 'fixed_list' && widgetValue !== null && widgetValue?.length !== 0 && widgetValue !== undefined\" \n  class=\"choiceList-container\" \n  [ngClass]=\"{'fixed-list-class': this.widget.subType === 'fixed_list'}\">\n  <mat-list role=\"list\">\n    <mat-list-item *ngFor=\"let item of widgetValue; let i = index\" role=\"listitem\" class=\"axo-font\">\n      <span [ngStyle]=\"{\n        'color': extractLabelAndHexCode(item).hexCode ? getContrastColor(extractLabelAndHexCode(item).hexCode) : '#000000',\n          'background-color': extractLabelAndHexCode(item).hexCode || '#F0F0F0',\n          'border': '1.25px solid ' + (extractLabelAndHexCode(item).hexCode || '#D3D3D3') \n        }\" class=\"choice-list-item\">\n        {{ extractLabelAndHexCode(item).label }}\n      </span>\n      <span *ngIf=\"i !== widgetValue.length - 1\">,</span>&nbsp;\n    </mat-list-item>\n  </mat-list>\n</div>\n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport { WidgetSubType } from '../../../../forms/page/common/widget-enums';\nimport _ from 'lodash';\nimport { ChoiceList } from '../../../../forms/page/widgets/choicelist';\n\n@Component({\n  selector: 'app-formobject-choicelist-value',\n  templateUrl: './formobject-choicelist-value.component.html',\n  styleUrls: ['./formobject-choicelist-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class FormObjectChoiceListValueComponent implements OnInit {\n  @Input() widget: ChoiceList;\n  @Input() baseUrl: string;\n  @Input() widgetProperties: ChoiceList;\n  widgetValue: any;\n  choiceListValue: any;\n  choiceListImgLabel:string = \"\";\n\n  constructor(\n  ) { }\n\n  ngOnInit() {\n\n    this.widgetValue = this.widget.getWidgetValue();\n    if (this.widget.subType === WidgetSubType.referenceList && this.widgetValue && this.widgetValue[0]?.picture ) {\n      // This is just a temporary fix for the time being due to the list view picture not getting displayed for records submitted through iOS.\n      if(this.widgetValue[0].picture.includes('thumb_i')){\n        this.widgetValue[0].picture = AxoUtils.removeSlashFromImageUrl('images/media/default_icons/thumb_no-image-found.png');\n      }\n      else{\n        this.choiceListValue = AxoUtils.removeSlashFromImageUrl(this.widgetValue[0].picture);\n      }\n    }\n    else if (this.widget.subType == WidgetSubType.imageFixedList) {\n    // Set Selected Image\n    //  this.setSelectedImage(this.widgetValue[0]);\n    }\n    if(this.choiceListValue === undefined){\n      this.choiceListValue = 'images/media/default_icons/thumb_no-image-found.png';\n    }\n\n    // Parse the choices string from widgetProperties\n    const choicesArray = this.widgetProperties.choices.split(',').map(choice => choice.trim());\n\n    // Create a map for quicker lookup (label -> full choice with hex code)\n    const choicesMap = new Map(choicesArray.map(choice => {\n      const { label, hexCode } = this.extractLabelAndHexCode(choice);\n      return [label, hexCode ? `${label}:${hexCode}` : label]; // Use label:hexCode format if hexCode exists\n    }));\n\n    // Replace each widgetValue with the corresponding choice (if available)\n    if(this.widget.subType === WidgetSubType.fixedList){\n      this.widgetValue = this.widgetValue.map(value => {\n        const mappedChoice = choicesMap.get(value.trim());\n        return mappedChoice || value; // Replace if found, else keep original\n      });\n    }\n\n  }\n\n  extractLabelAndHexCode(choiceLabel: string) {\n    const parts = choiceLabel.split(':');\n    const label = parts[0].trim();\n    const hexCode = parts[1]?.match(/^#([A-Fa-f0-9]{6})$/) ? parts[1] : null;\n    return { label, hexCode };\n  }\n\n  getContrastColor(hexCode: string): string {\n    // Remove the hash if present\n    const hex = hexCode.replace('#', '');\n    \n    // Convert hex to RGB \n    const r = parseInt(hex.slice(0, 2), 16);\n    const g = parseInt(hex.slice(2, 4), 16);\n    const b = parseInt(hex.slice(4, 6), 16);\n    \n    const brightness = (0.299 * r + 0.587 * g + 0.114 * b);\n    \n    // If brightness is high, return black, otherwise white\n    return brightness > 128 ? '#000000' : '#FFFFFF';\n  }\n  \n\n  /**\n   * Set Image and Label of image choice-list.\n   * @param value\n   */\n  // setSelectedImage(value): void{\n  //   let choice = this.widgetProperties.choices.find(choice=> choice.value == value)\n  //   this.choiceListValue = AxoUtils.removeSlashFromImageUrl(choice.img);\n  //   this.choiceListImgLabel = choice.label;\n  // }\n\n}\n","<ng-container *ngIf=\"widget.value\">\n    <span>{{widget.value}}\n    </span>    \n    <span *ngIf=\"widget.unit\" class=\"pl-1\">{{widget.unit}}</span>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Counter } from '../../../../forms/page/widgets/counter';\n\n\n@Component({\n  selector: 'app-formobject-counter-value',\n  templateUrl: './formobject-counter-value.component.html',\n  styleUrls: ['./formobject-counter-value.component.scss']\n})\nexport class FormObjectCounterValueComponent implements OnInit {\n@Input() widget: Counter;\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<ng-container *ngIf=\"widgetValue\" >{{this.widgetValue}}</ng-container>","import { Component, Input, OnInit } from '@angular/core';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport { DateTime } from '../../../../forms/page/widgets/datetime';\n\n@Component({\n  selector: 'app-formobject-date-time-value',\n  templateUrl: './formobject-date-time-value.component.html',\n  styleUrls: ['./formobject-date-time-value.component.scss']\n})\nexport class FormObjectDateTimeValueComponent implements OnInit {\n  widgetValue: any;\n  @Input() widget: DateTime;\n  @Input() widgetProperties: DateTime;\n  constructor() { }\n\n  ngOnInit() {\n    this.widgetValue = this.widget.value;\n    this.changeValueToDateRange();\n\n  }\n  changeValueToDateRange(): void {\n    if (this.widgetValue != null && ! _.isEmpty(this.widgetValue)) {\n      if (this.widget.subType === 'date_range') {\n        this.widgetValue = AxoUtils.formatDateToCustomDateFormat(this.widgetValue.from,'MMMM D, YYYY') + ' to ' +  AxoUtils.formatDateToCustomDateFormat(this.widgetValue.to,'MMMM D, YYYY');\n      }\n      else if(this.widget.subType === 'time'){\n        this.widgetValue = this.widgetProperties && this.widgetProperties.dateFormat !== ''? moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString(),'h:mm a').toLocaleString())).format(AxoUtils.checkFormat(this.widgetProperties.dateFormat)) :  moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString(),'h:mm a').toLocaleString())).format('hh:mm A') ;\n      }\n      else if(this.widget.subType === 'date'){\n        this.widgetValue = this.widgetProperties && this.widgetProperties.dateFormat !== ''? moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString()).toLocaleString())).format(AxoUtils.checkFormat(this.widgetProperties.dateFormat)):moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString()).toLocaleString())).format('MMMM DD YYYY');\n      }\n      else {\n        this.widgetValue = this.widgetProperties && this.widgetProperties.dateFormat !== ''? moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString()).toLocaleString())).format(AxoUtils.checkFormat(this.widgetProperties.dateFormat)):AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString()).toLocaleString());\n      }\n    }\n  }\n\n}\n","<ng-container  *ngIf=\"widgetValue\">\n   <ng-container [ngSwitch]=\"extension\">\n    <mat-icon (click)=\"downloadDocument()\"  *ngSwitchCase = documentType.pdf class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_pdf1'\">\n    </mat-icon>\n    \n    <mat-icon  (click)=\"downloadDocument()\" *ngSwitchCase=documentType.ppt class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_ppt'\">\n    </mat-icon>\n    \n    <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase = documentType.pptx class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_pptx'\">\n    </mat-icon>\n    \n    <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.document class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_doc'\">\n    </mat-icon>\n    \n    <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.txt class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_txt'\">\n    </mat-icon>\n    \n    <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.xls class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_xls'\">\n    </mat-icon>\n    \n    <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase= documentType.xlsx class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_xlsx'\">\n    </mat-icon>\n    \n    <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.docx class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_docx'\">\n    </mat-icon>\n    \n    <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase= documentType.html class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_html'\">\n    </mat-icon>\n\n    <mat-icon (click)=\"downloadDocument()\" *ngSwitchDefault class=\"full-width h-5 w-4\" [svgIcon]=\"'axo_file'\">\n    </mat-icon>\n</ng-container>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { DocumentExtensionType } from '../../../../forms/page/common/widget-enums';\nimport _ from 'lodash';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport { AxDocument } from '../../../../forms/page/widgets/ax-document';\n\n@Component({\n  selector: 'app-formobject-document-value',\n  templateUrl: './formobject-document-value.component.html',\n  styleUrls: ['./formobject-document-value.component.scss']\n})\nexport class FormObjectDocumentValueComponent implements OnInit {\n@Input() widget: AxDocument;\n@Input() baseUrl: string;\nwidgetValue : any;\nextension : any;\ndocumentType : any = Object.assign({},DocumentExtensionType);\n\n  constructor() { }\n\n  ngOnInit() {\n    if(this.widget.values && ! _.isEmpty(this.widget.values[0]?.path) ){\n      this.widgetValue = this.widget.values[0];\n      this.extension = this.widget.values[0].extension;\n      this.widgetValue.path = AxoUtils.removeSlashFromImageUrl(this.widget.values[0]?.path);\n    }else if (this.widget.value && ! _.isEmpty(this.widget.value[0]?.name) ){\n      this.widgetValue = this.widget.value[0];\n      this.extension = this.widget.value[0].extension;\n      this.widgetValue.name = AxoUtils.removeSlashFromImageUrl(this.widget.value[0]?.name);\n      this.extension = AxoUtils.getDocumentExtension(this.widgetValue.name);\n      this.widgetValue.path = '/images/media/app_data/' + this.widgetValue.name;\n    }\n  }\n\n  downloadDocument(){\n    window.open(this.baseUrl + this.widgetValue.path);\n  }\n}\n","<ng-container *ngIf=\"widget.value\">\n  {{widget.value}}\n  <span *ngIf=\"widgetProperties.unit\" class=\"pl-1\" >{{widgetProperties.unit}}</span>\n</ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Formula } from '../../../../forms/page/widgets/formula';\n\n@Component({\n  selector: 'app-formobject-formula-value',\n  templateUrl: './formobject-formula-value.component.html',\n  styleUrls: ['./formobject-formula-value.component.scss']\n})\nexport class FormObjectFormulaValueComponent implements OnInit {\n@Input() widget: Formula;\n@Input() widgetProperties: Formula;\n\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<div class=\"popup-container image-map-view-container\">\n    <h1>Image location</h1>\n    <button class=\"close-icon\" (click)=\"closeDialog()\"></button>\n    <div class=\"image-map-body\">\n        <agm-map [zoom]=\"zoom\" [fitBounds]=\"true\">\n            <ng-container *ngFor=\"let agmOption of agmMangerOption;let indexOfagm=index;\"\n            [ngSwitch]=\"agmOption.type\">\n                <!-----------Markers shapes content-->\n                <ng-conatiner *ngSwitchCase=\"'marker'\"> \n                    <ng-conatiner *ngFor=\"let pathsOfMarker of agmOption.path\">\n                        <agm-marker \n                            [agmFitBounds]=\"true\" \n                            [latitude]=\"pathsOfMarker.lat\" \n                            [longitude]=\"pathsOfMarker.lng\" \n                            (markerClick)=\"openSnazzyInfoWindow(indexOfagm)\">\n                            <agm-snazzy-info-window \n                                *ngIf=\"agmOption.note\"\n                                [panOnOpen]=\"true\" \n                                [latitude]=\"pathsOfMarker.lat\" \n                                [longitude]=\"pathsOfMarker.lng\"  \n                                [maxWidth]=\"400\" \n                                [maxHeight]=\"400\"\n                                [closeWhenOthersOpen]=\"true\" \n                                [showCloseButton]=\"true\" \n                                [isOpen]=\"agmOption.isOpen\">\n                                <ng-template>\n                                    <div>{{agmOption.note}}</div>\n                                </ng-template>\n                            </agm-snazzy-info-window>\n                        </agm-marker>\n                    </ng-conatiner>\n                </ng-conatiner>\n                <!-----------Polygon shapes content-->\n                <ng-container *ngSwitchCase=\"'polygon'\">\n                    <agm-polygon \n                        [paths]=\"agmOption.path\" \n                        fillColor=\"#8e8e8e\" \n                        fillOpacity=\".35\" \n                        strokeColor=\"#32a1d0\"\n                        (polyClick)=\"openSnazzyInfoWindow(indexOfagm)\">\n                        <agm-snazzy-info-window \n                            *ngIf=\"agmOption.note\"\n                            [panOnOpen]=\"true\" \n                            [latitude]=\"agmOption.path[0].lat\" \n                            [longitude]=\"agmOption.path[0].lng\"  \n                            [closeWhenOthersOpen]=\"true\"\n                            [closeOnMapClick]=\"true\" \n                            [showCloseButton]=\"true\" \n                            [isOpen]=\"agmOption.isOpen\">\n                            <ng-template>\n                                <div>{{agmOption.note}}</div>\n                            </ng-template>\n                        </agm-snazzy-info-window>\n                    </agm-polygon>\n                </ng-container>\n                <!-----------Polyline shapes content-->\n                <ng-conatiner *ngSwitchCase=\"'polyline'\">\n                    <agm-polyline (lineClick)=\"openSnazzyInfoWindow(indexOfagm)\">\n                        <ng-container *ngFor=\"let polylinePath of agmOption.path\">\n                            <agm-polyline-point [latitude]=\"polylinePath.lat\" [longitude]=\"polylinePath.lng\">\n                            </agm-polyline-point>\n                        </ng-container>\n                        <agm-snazzy-info-window \n                            *ngIf=\"agmOption.note\"\n                            [panOnOpen]=\"true\" \n                            [latitude]=\"agmOption.path[0].lat\" \n                            [longitude]=\"agmOption.path[0].lng\"  \n                            [closeWhenOthersOpen]=\"true\"\n                            [closeOnMapClick]=\"true\" \n                            [showCloseButton]=\"true\" \n                            [isOpen]=\"agmOption.isOpen\">\n                            <ng-template>\n                                <div>{{agmOption.note}}</div>\n                            </ng-template>\n                        </agm-snazzy-info-window>\n                    </agm-polyline>\n                </ng-conatiner>\n                <!-----------Circle shapes content-->\n                <ng-conatiner *ngSwitchCase=\"'circle'\">\n                    <ng-container *ngFor=\"let circlePath of agmOption.path\">\n                        <agm-circle \n                        [latitude]=\"circlePath.lat\" \n                        [longitude]=\"circlePath.lng\"\n                        [radius]=\"radius\"\n                        [fillColor]=\"'red'\"\n                        [circleDraggable]=\"false\"\n                        [editable]=\"false\">\n                        </agm-circle>\n                    </ng-container>\n                </ng-conatiner>\n            </ng-container>\n        </agm-map>\n    </div>\n</div>\n","import { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\nimport { Widget } from '../../../../../forms/page/widgets/widget';\nimport { GeoFence } from '../../../../../forms/page/widgets/geofence';\n\n@Component({\n  selector: 'lib-image-map-view',\n  templateUrl: './image-map-view.component.html',\n  styleUrls: ['./image-map-view.component.scss', '../../../../../../styles/styles.scss'],\n  encapsulation : ViewEncapsulation.None\n})\nexport class ImageMapViewComponent  {\n  // Google Map latitude\n  latitude: number = 0;\n\n  // Google Map longitude\n  longitude: number = 0;\n\n  // Google Map zoom level\n  zoom: number = 12;\n\n  // Google Map radius\n  radius?: number;\n\n  // Common object create for agm shapes value\n  agmMangerOption= [];\n\n  // gps and geo-fence widget\n  widget: Widget;\n\n  // widget properties\n  widgetProperties: any;\n\n  // gps and geo-fence widget\n  widgetValue: Array<any>;\n\n  constructor(public dialogRef: MatDialogRef<ImageMapViewComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: any) {\n      this.widget = data.widget;\n      this.widgetValue = data.widgetValue;\n      this.widgetProperties = data.widgetProperties;\n  }\n\n  ngOnInit(): void {\n    // get gps widget value from to gps class\n    if (this.widgetValue && this.widgetValue.length) {\n        this.setWidgetShapesValue();\n    }\n  }\n  /**\n   * Set widget latitude and longitude to agm drwaing\n   */\n  setWidgetShapesValue(): void{\n    if(this.widget instanceof GeoFence){\n      this.widgetValue.forEach((pathOfShapes) => {\n        const path = pathOfShapes.centerLocationValue;\n        const pathLatLong = [{lng: path.longitude, lat:path.latitude }];\n        this.agmMangerOption.push({type:pathOfShapes.type, note:pathOfShapes.note, path: pathLatLong, isOpen: false});\n        this.agmMangerOption.push({type:'circle', note:pathOfShapes.note, path: pathLatLong, isOpen: false});\n        this.latitude = path.latitude;\n        this.longitude = path.longitude;\n      });\n      this.radius = this.widgetProperties.radius;\n      this.zoom = this.widgetProperties.mapZoomLevel ? parseInt(this.widgetProperties.mapZoomLevel): 15;\n    }else{\n      this.widgetValue.forEach((pathOfShapes) => {\n        const polygonPath = [];\n        pathOfShapes.value.forEach((path: any) => {\n          const pathLatLong = {lng: path.longitude, lat:path.latitude };\n          polygonPath.push(pathLatLong);\n        });\n        this.agmMangerOption.push({type:pathOfShapes.type, note:pathOfShapes.note, path: polygonPath, isOpen: false});\n      });\n      this.latitude = this.widgetValue[0].value[0].latitude;\n      this.longitude = this.widgetValue[0].value[0].longitude;\n      this.zoom = parseInt(this.widgetProperties.mapZoomLevel?this.widgetProperties.mapZoomLevel:\"15\");\n    }\n  }\n  /**\n   * Open shapes note message in tooltip\n   * @param indexOfagm\n   */\n  openSnazzyInfoWindow(indexOfagm: number): void {\n    this.agmMangerOption[indexOfagm].isOpen = !this.agmMangerOption[indexOfagm].isOpen\n    this.agmMangerOption.forEach((agmValue, agmIndex) =>{\n      if(agmIndex === indexOfagm){\n        this.latitude = agmValue.path[0].lat;\n        this.longitude = agmValue.path[0].lng;\n        agmValue.isOpen = true;\n      }else{\n        agmValue.isOpen = false;\n      }\n    });\n  }\n\n  /**\n   * Close image Map dialog\n   */\n  closeDialog(): void {\n    this.dialogRef.close(false);\n  }\n\n}\n","<div *ngIf=\"widget.value !== null && widget.value?.length!==0 &&  widget.value !== undefined \" class=\"geo-fences-container\">\n  <img class=\"mapImage rounded\"  [src]=\"url\" alt=\"\" (click)=\"showImageMapView(imageWidget); $event.stopPropagation();\">\n</div>\n\n\n","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { GeoFence } from '../../../../forms/page/widgets/geofence';\nimport { ImageMapViewComponent } from '../../../form-object-view/form-object-widgets/image-widget-view/image-map-view/image-map-view.component';\n\n@Component({\n  selector: 'lib-formobject-geo-fence-value',\n  templateUrl: './formobject-geo-fence-value.component.html',\n  styleUrls: ['./formobject-geo-fence-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectGeoFenceValueComponent implements OnInit {\n\n@Input() widget: GeoFence;\nlatitude: number;\nlongitude: number;\nurl: string;\nwidgetValue: any;\ndialog: MatDialog;\nconstructor(private _injector: Injector) { }\n\nngOnInit(): void{\n  this.widgetValue = this.widget.getWidgetValue();\n  if(this.widget.value !== null && this.widget.value.length){\n    this.latitude = this.widget.value[0].centerLocationValue.latitude;\n    this.longitude = this.widget.value[0].centerLocationValue.longitude;\n    this.url = `https://maps.googleapis.com/maps/api/staticmap?markers=color:red|${this.latitude},${this.longitude} &center=${this.latitude},${this.longitude}&zoom=10&size=175x100&scale=2&key=AIzaSyBuCjQh5y-9beQUKgRpOvycjbq8AvrybBI`;\n  }\n}\n\n/**\n   * Open Image map location dialog\n   */\n showImageMapView(): void {\n  this.dialog = this._injector.get(MatDialog);\n  this.dialog.open(ImageMapViewComponent, {\n    maxWidth: '100vw',\n    maxHeight: '100vh',\n    height: '100%',\n    width: '100%',\n    panelClass: 'image-map-box-container',\n    data: {\n      widget: this.widget,\n      widgetValue: this.widgetValue,\n    },\n  });\n}\n\n}\n","<div *ngIf=\"widget.value !== null && widget.value?.length!==0 &&  widget.value !== undefined \" class=\"gps-container\">\n    <img   (click)=\"showImageMapView($event); $event.stopPropagation();\" class=\"mapImage rounded\"   [src]=\"url\" alt=\"\">\n</div>\n","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { GPS } from '../../../../forms/page/widgets/gps';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FormObjectWidgetMatDialogComponent } from '../formobject-widget-mat-dialog/formobject-widget-mat-dialog.component';\nimport { ImageMapViewComponent } from '../../../form-object-view/form-object-widgets/image-widget-view/image-map-view/image-map-view.component';\nimport { GPSWidgetValue } from '../../../../forms/page/widgets/widget-value/gps-widget-value';\n\n@Component({\n  selector: 'app-formobject-gps-value',\n  templateUrl: './formobject-gps-value.component.html',\n  styleUrls: ['./formobject-gps-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectGpsValueComponent implements OnInit {\n@Input() widget: GPS;\n@Input() widgetProperties: GPS;\nlatitude: number;\nlongitude: number;\nurl: string;\ndialog: MatDialog;\nwidgetValue: Array<GPSWidgetValue>;\n\nconstructor(private _injector: Injector) { }\n\nngOnInit(): void{\n  this.widgetValue = this.widget.getWidgetValue();\n  if(this.widget.value !== null && this.widget.value.length){\n    this.latitude = this.widget.value[0].value[0].latitude;\n    this.longitude = this.widget.value[0].value[0].longitude;\n    this.url = `https://maps.googleapis.com/maps/api/staticmap?markers=color:red|${this.latitude},${this.longitude} &center=${this.latitude},${this.longitude}&zoom=10&size=175x100&scale=2&key=AIzaSyBuCjQh5y-9beQUKgRpOvycjbq8AvrybBI`;\n  }\n\n}\n/**\n   * Open Image map location dialog\n   */\n showImageMapView(): void {\n  this.dialog = this._injector.get(MatDialog);\n  this.dialog.open(ImageMapViewComponent, {\n    maxWidth: '100vw',\n    maxHeight: '100vh',\n    height: '100%',\n    width: '100%',\n    panelClass: 'image-map-box-container',\n    data: {\n      widget: this.widget,\n      widgetValue: this.widgetValue,\n      widgetProperties: this.widgetProperties\n    },\n  });\n}\n\n\n}\n","<div mat-dialog-content class=\"light-box-container popup-container flex h-full flex-col sm:flex-row relative\">\n<div class=\"mat-left-container\">\n    <canvas id=\"annotationsCanvas\" (click)=\"onCanvasClick($event)\" #canvas class=\"relative z-10\" [ngClass]=\"{'opacity-50': !imageLoaded}\">\n\n    </canvas>\n  <button *ngIf=\"!disablePreviousButton && imageLoaded\" (click)=\"showPreviousImage()\" [disabled]=\"!imageLoaded\"><mat-icon class=\"lightbox-image-left-arrow\" [svgIcon]=\"'axo_left_arrow'\" ></mat-icon></button>\n  <button *ngIf=\"!disableNextButton  && imageLoaded\" (click)=\"showNextImage()\"  [disabled]=\"!imageLoaded\"><mat-icon class=\"lightbox-image-right-arrow\" [svgIcon]=\"'axo_right_arrow'\" ></mat-icon></button>\n  <div class=\"lightbox-image-zoom-in-out\">\n    <mat-icon *ngIf=\"isImageWithAnnotations\" (click)=\"showImageWithoutAnnotations()\" [svgIcon]=\"showImage ?'axo_anotation_show':'axo_anotation_hide'\" class=\"cursor-pointer eye-icon z-20\"></mat-icon>\n    <mat-icon (click)=\"expandCanvas()\" [svgIcon]=\"isCanvasExpanded ?'axo_img_compress':'axo_fullscreen'\" class=\"cursor-pointer z-20\" [ngClass]=\"{'expand': isCanvasExpanded}\"></mat-icon>\n    <mat-icon (click)=\"imageZoomIn()\" [svgIcon]=\"'axo_zoom_in'\" class=\"cursor-pointer z-20\"></mat-icon>\n    <mat-icon  (click)=\"imageZoomOut()\"[svgIcon]=\"'axo_zoom_out'\" class=\"cursor-pointer z-20\"></mat-icon>\n  </div>\n  <div class=\"\n      spinner-border\n      animate-spin\n      loaders\n    \" role=\"status\" *ngIf=\"!imageLoaded\" [ngClass]=\"{'z-50': !imageLoaded}\">\n      <span class=\"visually-hidden\">Loading...</span>\n    </div>\n</div>\n\n  <div class=\"mat-right-container sm:relative customscroll pl-5\">\n    <button class=\"close-icon\" (click)=\"closeDialog()\"></button>\n    <div class=\"\">\n      <h1 class=\"\">Comments</h1>\n    </div>\n    <div class=\"sm:hidden flex justify-between sticky top-0 z-10 bg-white\">\n      <h1 class=\"py-4 bg-white commments\">Comments</h1>\n      <div class=\"block relative\">\n        <mat-icon id=\"close-icon\" (click)=\"closeDialog()\" class=\"absolute\">close</mat-icon>  \n      </div>\n    \n    </div>\n    <div class=\"comment-box axo-font text-sm\" *ngIf=\"annotation?.annotations.length\">\n      <div  class=\"comment-box-container flex gap-4 pb-4\" *ngFor=\"let item of annotation?.annotations; let i= index\">\n        <div class=\"image-lightbox-index-wrapper\">\n          <div class=\"image-lightbox-index\" [ngStyle]=\"{'background-color': item.color ,'border': (isAnnotationSelected && i === selectedAnnotationIndex && previouslySelectedAnnotationId === selectedAnnotationIndex) ?'1px solid #0000FF':''}\" (click)=\"selectAnnotation(i)\">{{i+1}}</div>\n        </div>\n        <mat-card class=\"w-full customscroll\"  [ngStyle]=\"{'border': (isAnnotationSelected && i === selectedAnnotationIndex && previouslySelectedAnnotationId === selectedAnnotationIndex) ?'1px solid #0000FF':''}\" (click)=\"selectAnnotation(i)\">{{item.notes}}</mat-card>  \n      </div>\n    </div>\n    <div class=\"comment-box\" *ngIf=\"annotation?.annotations.length === 0 || annotation?.annotations === null\">No comments available\n      \n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, HostListener, Inject, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AxoUtils } from '../../../../../axo-utils/axo-utils';\nimport { AnnotationValue } from '../image-annotation-data-dto';\n\n@Component({\n  selector: 'lib-image-widget-lightbox-view',\n  templateUrl: './image-widget-lightbox-view.component.html',\n  styleUrls: ['./image-widget-lightbox-view.component.scss', '../../../../../../styles/styles.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ImageWidgetLightboxViewComponent implements OnInit {\n  annotationValueData: Array<AnnotationValue>;\n  canvas: HTMLCanvasElement;\n  selectedImageId: number;\n  disableNextButton: boolean = false;\n  disablePreviousButton: boolean = false;\n  isAnnotationSelected: boolean = false;\n  annotation: AnnotationValue;\n  ctx;\n  selectedAnnotationIndex: number;\n  currentAnnotationNumber: number;\n  showImage: boolean = true;\n  annotationsImageOriginal: any;\n  scale: number = 0.2;\n  scaleMultiplier: number = 0.8;\n  startDragOffset = { x: 0, y: 0 };\n  mouseDown = false;\n  translatePos: any = {\n    x: 0,\n    y: 0\n  };\n  mousePosition: any;\n  dialog: MatDialog;\n  isCanvasExpanded: boolean = false;\n  ratio: number;\n  centerShift_x: number;\n  centerShift_y: number;\n  isImageWithAnnotations: boolean = false;\n  previouslySelectedAnnotationId : number;\n  @Output() expandCanvasDialog = new EventEmitter<any>();\n\n  imageLoaded: boolean;\n\n  constructor(public dialogRef: MatDialogRef<ImageWidgetLightboxViewComponent>,\n    @Inject(MAT_DIALOG_DATA) public annotationData: any\n  ) { }\n\n\n  ngOnInit() {\n    this.annotationValueData = this.annotationData.viewres.field.value;\n    this.selectedImageId = this.annotationData.selectedImageId;\n    this.annotation = this.annotationValueData.find((annotation, index) => {\n      return index === this.selectedImageId;\n    });\n    this.disablePreviousButton = this.selectedImageId === 0 ? true : false;\n    this.disableNextButton = this.selectedImageId === (this.annotationValueData.length - 1 )? true : false;\n    this.canvas = document.getElementById(\"annotationsCanvas\") as HTMLCanvasElement;\n    this.canvas.style.width = '100%';\n    this.canvas.style.height = '100%';\n    this.canvas.width = this.canvas.offsetWidth;\n    this.canvas.height = this.canvas.offsetHeight;\n    this.ctx = this.canvas.getContext('2d');\n    this.setImageForAnnotation(true);\n\n\n    // add event listeners to handle screen drag\n    this.canvas.addEventListener(\"mousedown\", (evt) => {\n      this.mouseDown = true;\n      this.startDragOffset.x = evt.clientX - this.translatePos.x;\n      this.startDragOffset.y = evt.clientY - this.translatePos.y;\n    });\n\n    this.canvas.addEventListener(\"mouseup\", (evt) => {\n      this.mouseDown = false;\n    });\n\n    this.canvas.addEventListener(\"mouseover\", (evt) => {\n      this.mouseDown = false;\n    });\n\n    this.canvas.addEventListener(\"mouseout\", (evt) => {\n      this.mouseDown = false;\n    });\n\n    this.canvas.addEventListener(\"mousemove\", (evt) => {\n      if (this.mouseDown) {\n        this.translatePos.x = evt.clientX - this.startDragOffset.x;\n        this.translatePos.y = evt.clientY - this.startDragOffset.y;\n        this.renderImageOnCanvas(this.annotation, false);\n      }\n    });\n\n  }\n\n  @HostListener('window:mousewheel', ['$event'])\n  click(event): void {\n    var delta = event.wheelDelta ? event.wheelDelta / 40 : event.detail ? -event.detail : 0;\n    if (delta) this.zoomImage(delta);\n  }\n\n  zoomImage(delta) {\n    if (delta == 1) {\n      return;\n    }\n    if (delta > 0) {\n      this.scale /= this.scaleMultiplier;\n    } else {\n      this.scale *= this.scaleMultiplier;\n    }\n    this.renderImageOnCanvas(this.annotation, false);\n  }\n\n  setImageForAnnotation(isFirstTimeRender) {\n    this.annotation = this.annotationValueData.find((annotation, index) => {\n      return index === this.selectedImageId;\n    });\n    this.isImageWithAnnotations = this.annotation?.annotations?.length ? true : false;\n    if (this.annotation != undefined) {\n      this.annotation.image = AxoUtils.removeSlashFromImageUrl(this.annotation.image);\n      if (!this.isAnnotationSelected) {\n        this.drawImage(this.annotation, isFirstTimeRender);\n      } else if (this.annotation?.annotations?.length) {\n        var selectedAnnotation = this.annotation.annotations.find((annotation, index) => {\n          return index === this.selectedAnnotationIndex;\n        });\n        this.currentAnnotationNumber = this.selectedAnnotationIndex;\n        this.drawAnnotation(selectedAnnotation, false);\n      }\n    }\n\n  }\n\n  showPreviousImage() {\n    if (this.selectedImageId >= 0) {\n      this.isAnnotationSelected = false;\n      if (this.selectedImageId > 0) {\n        this.selectedImageId = this.selectedImageId - 1;\n        this.disablePreviousButton = this.selectedImageId === 0 ? true : false;\n        this.disableNextButton = false;\n        this.setImageForAnnotation(true);\n      } else {\n        this.disablePreviousButton = this.selectedImageId === 0 ? true : false;\n\n      }\n    }\n  }\n\n  showNextImage() {\n    if (this.selectedImageId < this.annotationValueData.length) {\n      this.isAnnotationSelected = false;\n      this.selectedImageId = this.selectedImageId + 1;\n      this.disableNextButton = this.selectedImageId === (this.annotationValueData.length - 1) ? true : false;\n      this.disablePreviousButton = false;\n      this.setImageForAnnotation(true);\n    }\n  }\n\n  drawImage(annotation: AnnotationValue, isFirstTimeRender) {\n    if (annotation) {\n      this.imageLoaded = false;\n      this.annotationsImageOriginal = new Image();\n      this.annotationsImageOriginal.src = this.annotationData.baseUrl + annotation.image;\n      this.annotationsImageOriginal.onload = () => {\n        this.imageLoaded = true;\n        this.scale = Math.min(this.canvas.width / this.annotationsImageOriginal.width, this.canvas.height / this.annotationsImageOriginal.height);\n        this.renderImageOnCanvas(annotation, isFirstTimeRender);\n      }\n    }\n  }\n\n  renderImageOnCanvas(annotation, isFirstTimeRender) {\n    if (isFirstTimeRender) {\n      this.ctx.restore();\n      this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n      this.ctx.save();\n      var ctxCanvas = this.ctx.canvas;\n      var hRatio = ctxCanvas.width / this.annotationsImageOriginal.naturalWidth;\n      var vRatio = ctxCanvas.height / this.annotationsImageOriginal.naturalHeight;\n      var ratio = Math.min(hRatio, vRatio);\n      var centerShift_x = (ctxCanvas.width - this.annotationsImageOriginal.naturalWidth * ratio) / 2;\n      var centerShift_y = (ctxCanvas.height - this.annotationsImageOriginal.naturalHeight * ratio) / 2;\n      this.ctx.drawImage(this.annotationsImageOriginal, 0, 0, this.annotationsImageOriginal.naturalWidth, this.annotationsImageOriginal.naturalHeight, centerShift_x, centerShift_y, this.annotationsImageOriginal.naturalWidth * ratio, this.annotationsImageOriginal.naturalHeight * ratio);\n      this.translatePos = { x: centerShift_x, y: centerShift_y };\n      this.ctx.translate(this.translatePos.x, this.translatePos.y);\n      this.ctx.scale(this.scale, this.scale);\n    } else {\n      //let rect = this.canvas.getBoundingClientRect();\n      //if(rect.left >= this.translatePos.x && rect.top >= this.translatePos.y) {\n        this.ctx.restore();\n        this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n        this.ctx.save();\n        this.ctx.translate(this.translatePos.x, this.translatePos.y);\n        this.ctx.scale(this.scale, this.scale);\n        this.ctx.drawImage(this.annotationsImageOriginal, 0, 0, this.annotationsImageOriginal.width, this.annotationsImageOriginal.height);\n      //}\n\n      \n    }\n    if (this.showImage && annotation?.annotations.length) {\n      annotation.annotations.forEach((annotation, index) => {\n        this.currentAnnotationNumber = index;\n        this.drawAnnotation(annotation, false);\n      });\n    }\n\n\n  }\n\n  closeDialog(): void {\n    this.dialogRef.close(false);\n  }\n\n  drawAnnotation(annotationData, isHighlighted): void {\n    if (this.showImage && annotationData !== undefined) {\n      this.ctx.beginPath();\n      var centerX;\n      var centerY;\n      annotationData.path.forEach((pathValue) => {\n        if (pathValue.type == \"m\") {\n          var starting_point = [];\n          starting_point = pathValue.points.split(',');\n          this.ctx.moveTo(starting_point[0], starting_point[1]);\n        } else {\n          if (pathValue.type == \"q\") {\n            var points = [];\n            points = pathValue.points.split(',');\n            if (!centerX && !centerY) {\n              centerX = points[0];\n              centerY = points[1];\n            }\n            this.ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n          }\n        }\n      });\n      centerX = centerX + 15;\n      centerY = centerY - 15;\n      isHighlighted = this.previouslySelectedAnnotationId === this.currentAnnotationNumber ? false: isHighlighted;\n      var randomColor = isHighlighted ? \"blue\" : annotationData.color != null ? annotationData.color : this.getRandomColor();\n      annotationData.color = randomColor === \"blue\" ? annotationData.color : randomColor;\n      this.previouslySelectedAnnotationId = isHighlighted?this.currentAnnotationNumber:this.previouslySelectedAnnotationId;\n      this.ctx.strokeStyle = randomColor;\n      this.ctx.lineWidth = 5;\n      this.ctx.stroke();\n      this.ctx.closePath();\n      this.ctx.beginPath();\n      this.ctx.arc(centerX, centerY, 7, 0, 2 * Math.PI);\n      this.ctx.fillStyle = randomColor;\n      this.ctx.fill();\n      this.ctx.closePath();\n      this.ctx.beginPath();\n      this.ctx.textAlign = \"center\";\n      this.ctx.textBaseline = \"middle\";\n      this.ctx.fillStyle = 'white';\n      this.ctx.fontSize = '12px Arial';\n      this.ctx.fillText(this.currentAnnotationNumber + 1, centerX, centerY)\n      this.ctx.stroke();\n      this.ctx.closePath();\n    }\n  }\n\n  showImageWithoutAnnotations(): void {\n    this.showImage = !this.showImage;\n    this.drawImage(this.annotation, false);\n  }\n\n  selectAnnotation(selectedIndex) {\n    if (this.selectedImageId >= 0) {\n      this.annotation = this.annotationValueData.find((annotation, index) => {\n        return index === this.selectedImageId;\n      });\n      this.annotation.annotations.forEach((annotation, index) => {\n        this.selectedAnnotationIndex = selectedIndex;\n        this.currentAnnotationNumber = index;\n        this.isAnnotationSelected = true;\n        if (index === this.selectedAnnotationIndex && this.annotation.annotations.length) {\n          this.isAnnotationSelected = true;\n          var isHighlighted = this.previouslySelectedAnnotationId ===this.currentAnnotationNumber ? false:true;\n          this.previouslySelectedAnnotationId = this.previouslySelectedAnnotationId ===this.currentAnnotationNumber ? null:this.previouslySelectedAnnotationId;\n          \n          this.drawAnnotation(annotation, isHighlighted);\n        }\n       else if (this.annotation.annotations.length) {\n          this.drawAnnotation(annotation, false);\n        }\n      });\n    }\n  }\n\n  onCanvasClick(event) {\n    this.isAnnotationSelected = false;\n    let rect = this.canvas.getBoundingClientRect();\n    this.mousePosition = {\n      x: event.pageX - rect.left,\n      y: event.pageY - rect.top\n    }\n    this.getSelectedComment();\n  }\n\n  getSelectedComment() {\n    this.annotation.annotations.forEach((annotation, index) => {\n      var frame = annotation.frame.split(\",\");\n      var parsedFrame = [];\n      for (var i in frame) {\n        parsedFrame[i] = parseFloat(frame[i]) * this.scale;\n      }\n      let selectedPt = {\n        x: this.mousePosition.x - this.translatePos.x,\n        y: this.mousePosition.y - this.translatePos.y\n      };\n      this.currentAnnotationNumber = index;\n      if (selectedPt.x > parsedFrame[0] && selectedPt.x < parsedFrame[2] && selectedPt.y > parsedFrame[1] && selectedPt.y < parsedFrame[3]) {\n        this.isAnnotationSelected = true;\n        this.selectedAnnotationIndex = index;\n        var isHighlighted = this.previouslySelectedAnnotationId === this.currentAnnotationNumber ? false:true;\n        this.previouslySelectedAnnotationId = this.previouslySelectedAnnotationId ===this.currentAnnotationNumber ? null:this.previouslySelectedAnnotationId;\n        this.drawAnnotation(annotation, isHighlighted);\n      } else {\n        this.previouslySelectedAnnotationId = this.previouslySelectedAnnotationId ===this.currentAnnotationNumber ? null:this.previouslySelectedAnnotationId;\n        this.drawAnnotation(annotation, false)\n      };\n    }\n    );\n  }\n\n\n  /**\n    * Generate random color except blue and white\n    */\n  getRandomColor() {\n    var letters = '0123456789ABCDEF';\n    var color = '#';\n    for (var i = 0; i < 6; i++) {\n      color += letters[Math.floor(Math.random() * 16)];\n    }\n    if (color === \"#0000FF\" || color === \"#FFFFFF\") {\n      this.getRandomColor();\n    }\n    return color;\n  }\n\n\n  /**\n     *   Zoom in image canvas on click event\n  */\n  imageZoomIn() {\n    this.scale /= this.scaleMultiplier;\n    this.renderImageOnCanvas(this.annotation, false);\n  }\n\n  /**\n     *   Zoom out image canvas on click event\n  */\n  imageZoomOut() {\n    this.scale *= this.scaleMultiplier;\n    this.renderImageOnCanvas(this.annotation, false);\n  }\n\n\n  /**\n    *  Expand image canvas on click\n */\n  expandCanvas() {\n    this.isCanvasExpanded = !this.isCanvasExpanded;\n    if (this.isCanvasExpanded) {\n      this.dialogRef.updateSize('100vw', '100vh');\n    } else {\n      this.dialogRef.updateSize('80vw', '80vh');\n    }\n  }\n\n\n}\n","import { Constants } from '../../../../forms/page/common/constants';\nimport { JsonObject, JsonProperty, PropertyConvertingMode } from 'json2typescript';\nimport { Widget } from '../../../../forms/page/widgets/widget';\n\n@JsonObject('path')\nexport class Path {\n    @JsonProperty(Constants.type, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    type: string = null;\n\n    @JsonProperty(Constants.Points, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    points: string = null;\n\n    constructor(value?: Path) {\n        if (value) {\n            this.createValue(value);\n        }\n        else {\n            this.createNewValue();\n        }\n    }\n\n    // Function to create new text value\n    createNewValue(): void {\n        this.type = '';\n        this.points = null;\n\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?: Path): void {\n        this.type = value.type;\n        this.points = value.points;\n\n    }\n\n\n}\n\n@JsonObject('annotations')\nexport class AnnotationData {\n    @JsonProperty(Constants.Path, [Path], PropertyConvertingMode.IGNORE_NULLABLE)\n    path: Array<Path> = null;\n\n    @JsonProperty(Constants.Notes, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    notes: string = null;\n\n    @JsonProperty(Constants.Frame, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    frame: string = null;\n\n    color : string = null;\n\n    constructor(value?: AnnotationData) {\n        if (value) {\n            this.createValue(value);\n        }\n        else {\n            this.createNewValue();\n        }\n    }\n\n    // Function to create new text value\n    createNewValue(): void {\n        this.path = [];\n        this.notes = null;\n        this.frame = null;\n        this.color = null;\n\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?: AnnotationData): void {\n        this.path = value.path;\n        this.notes = value.notes;\n        this.frame = value.frame;\n        this.color = value.color;\n    }\n\n}\n\n@JsonObject('value')\nexport class AnnotationValue {\n    @JsonProperty(Constants.id, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    id: string = null;\n\n    @JsonProperty(Constants.name, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    name: string = null;\n\n    @JsonProperty(Constants.image, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    image: string = null;\n\n    @JsonProperty(Constants.MediaType, Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    mediaType: number = null;\n\n    @JsonProperty(Constants.long, Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    longitude: number = null;\n\n    @JsonProperty(Constants.lat, Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    latitude: number = null;\n\n    @JsonProperty(Constants.thumbnail, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    thumbnail: string = null;\n\n    @JsonProperty(Constants.annotationsLength, Number, PropertyConvertingMode.IGNORE_NULLABLE)\n    annotationsLength: number = null;\n\n    @JsonProperty(Constants.annotations, [AnnotationData], PropertyConvertingMode.IGNORE_NULLABLE)\n    annotations: Array<AnnotationData> = null;\n\n    constructor(value?: AnnotationValue) {\n        if (value) {\n            this.createValue(value);\n        }\n        else {\n            this.createNewValue();\n        }\n    }\n\n    // Function to create new text value\n    createNewValue(): void {\n        this.id = '';\n        this.name = null;\n        this.image = null;\n        this.longitude = null;\n        this.latitude = null;\n        this.thumbnail = null;\n        this.annotationsLength = null;\n        this.annotations = null;\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?: AnnotationValue): void {\n        this.id = value.id;\n        this.name = value.name;\n        this.image = value.image;\n        this.longitude = value.longitude;\n        this.latitude = value.latitude;\n        this.thumbnail = value.thumbnail;\n        this.annotationsLength = value.annotationsLength;\n        this.annotations = value.annotations;\n    }\n\n}\n\n@JsonObject('Field')\nexport class Field {\n    @JsonProperty(Constants.prompt, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    prompt: string = null;\n\n    @JsonProperty(Constants.allowPublicUrl, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    allowPublicUrl: string = null;\n\n    @JsonProperty(Constants.value, AnnotationValue, PropertyConvertingMode.IGNORE_NULLABLE)\n    value: string = null;\n\n    @JsonProperty(Constants.PublicImageUrls, [String], PropertyConvertingMode.IGNORE_NULLABLE)\n    publicImageUrls: Array<string> = null;\n\n    @JsonProperty(Constants.identifier, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    identifier: string = null;\n\n    @JsonProperty(Constants.type, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    type: string = null;\n\n    @JsonProperty(Constants.subType, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    subType: string = null;\n\n    constructor(value?: Field) {\n        if (value) {\n            this.createValue(value);\n        }\n        else {\n            this.createNewValue();\n        }\n    }\n\n    // Function to create new text value\n    createNewValue(): void {\n        this.prompt = '';\n        this.allowPublicUrl = null;\n        this.value = null;\n        this.publicImageUrls = null;\n        this.identifier = null;\n        this.type = null;\n        this.subType = null;\n\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?: Field): void {\n        this.prompt = value.prompt;\n        this.allowPublicUrl = value.allowPublicUrl;\n        this.value = value.value;\n        this.publicImageUrls = value.publicImageUrls;\n        this.identifier = value.identifier;\n        this.type = value.type;\n        this.subType = value.subType;\n    }\n\n}\n\n@JsonObject('ViewResponse')\nexport class ViewResponse {\n\n    @JsonProperty(Constants.Status, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    status: string = null;\n\n\n    @JsonProperty(Constants.Field, Field, PropertyConvertingMode.IGNORE_NULLABLE)\n    field: Field = null;\n\n\n    constructor(value?: ViewResponse) {\n        if (value) {\n            this.createValue(value);\n        }\n        else {\n            this.createNewValue();\n        }\n    }\n\n    // Function to create new text value\n    createNewValue(): void {\n        this.status = '';\n        this.field = null;\n\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?: ViewResponse): void {\n        this.status = value.status;\n        this.field = value.field;\n    }\n\n\n\n}\n\nexport class ImageAnnotationDataDto {\n\n    @JsonProperty(Constants.Status, String, PropertyConvertingMode.IGNORE_NULLABLE)\n    status: string = null;\n\n\n    @JsonProperty(Constants.Status, ViewResponse, PropertyConvertingMode.IGNORE_NULLABLE)\n    viewResponse: ViewResponse = null;\n\n    baseUrl: string = null;\n\n    widget : Widget = null;\n\n    widgetProperties : Widget = null;\n\n    selectedImageId : number = null;\n\n\n\n    constructor(value?: ImageAnnotationDataDto) {\n        if (value) {\n            this.createValue(value);\n        }\n        else {\n            this.createNewValue();\n        }\n    }\n\n    // Function to create new text value\n    createNewValue(): void {\n        this.baseUrl = '';\n        this.viewResponse = null;\n        this.widget = null;\n        this.selectedImageId = null;\n        this.widgetProperties = null;\n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?: ImageAnnotationDataDto): void {\n        this.baseUrl = value.baseUrl;\n        this.viewResponse = value.viewResponse;\n        this.widget = value.widget;\n        this.selectedImageId = value.selectedImageId;\n        this.widgetProperties = value.widgetProperties;\n    }\n}\n\n\n","  <div  *ngIf=\"widgetValue !== null && widgetValue?.length!==0 && widgetValue !== undefined\" (click)=\"showAnnotationData($event,widget.identifier,0)\" class=\"justify-start items-center flex gap-4 imageContainer\">\n    <div class=\"image-container\">\n      <img class=\"thumbnail rounded\"  [src]=\"baseUrl + imageValue\" alt=\"\">\n    </div>\n    <div class=\"count-of-image\" *ngIf=\"widgetValue && (widgetValue.length > 1)\"><div class=\"count \">+{{ widgetValue && (widgetValue.length - 1) }}</div></div>\n  </div> ","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport { ImageWidgetValue } from '../../../../forms/page/widgets/widget-value/image-widget-value';\nimport { AxImage } from '../../../../forms/page/widgets/ax-image';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ImageWidgetLightboxViewComponent } from '../../../form-object-view/form-object-widgets/image-widget-view/image-widget-lightbox-view/image-widget-lightbox-view.component';\nimport { ImageAnnotationDataDto } from '../../../form-object-view/form-object-widgets/image-widget-view/image-annotation-data-dto';\nimport { FormObjectViewService } from '../../../form-object-view/form-object-view.service';\nimport { AxForm } from '../../../../forms/ax-form';\nimport _ from 'lodash';\n\n@Component({\n  selector: 'formobject-image-value',\n  templateUrl: './formobject-image-value.component.html',\n  styleUrls: ['./formobject-image-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectImageValueComponent implements OnInit {\n @Input() widget: AxImage;\n @Input() widgetProperties: AxImage;\n @Input() baseUrl: string;\n @Input() axonatorX1Url: string;\n @Input() form: AxForm;\n @Input() trackingFormObjectId: string = '';\n dialog: MatDialog;\n imageValue: string;\n annotationData: ImageAnnotationDataDto;\n widgetValue: Array<ImageWidgetValue>;\n  constructor( private _injector: Injector,\n    private _formObjectViewService: FormObjectViewService) { }\n\n  ngOnInit(): void{\n    this.widgetValue = this.widget.getWidgetValue();\n    if(this.widgetValue &&  this.widgetValue.length && this.widgetValue[0].thumbnail ){\n      this.imageValue = AxoUtils.removeSlashFromImageUrl( this.widgetValue[0].thumbnail);\n    }\n    else if(this.widgetValue && this.widgetValue.length && !this.widgetValue[0].thumbnail){\n        this.imageValue = \"images/media/app_data/thumb_\"+this.widgetValue[0].name;\n    }\n    if(this.imageValue === undefined){\n      this.imageValue = 'images/media/default_icons/thumb_no-image-found.png';\n    }\n  }\n\n\n  /**\n   * Get Image Annotation Data using widget identifier\n   */\n\n  showAnnotationData(event: Event, imgIdentifier, index): void{\n    event.stopImmediatePropagation();\n    if(this.imageValue !== undefined){\n    const formData = new FormData();\n    this.annotationData = new ImageAnnotationDataDto();\n    this.annotationData.baseUrl = this.baseUrl;\n    this.annotationData.widget = this.widget;\n    this.annotationData.selectedImageId = index;\n    if(!this.form.id || this.form.id == ''){\n        formData.append('foid', this.trackingFormObjectId);\n    }\n    else{\n        formData.append('foid', this.form.id);\n    }\n    formData.append('img_identifier', imgIdentifier);\n    this._formObjectViewService.getImageFieldWithAnnotations(formData, this.axonatorX1Url).then((data) => {\n      data.baseUrl = this.annotationData.baseUrl;\n      data.selectedImageId = this.annotationData.selectedImageId;\n      this.annotationData = data;\n      this.showImageViewWithAnnotation();\n    });\n  }\n}\n\n\n  /**\n   * Open Image view  dialog\n   */\n  showImageViewWithAnnotation(): void {\n    this.dialog = this._injector.get(MatDialog);\n    this.dialog.open(ImageWidgetLightboxViewComponent, {\n      height: '80vh',\n      width: '80vw',\n      maxWidth:'100vw',\n      panelClass: 'imagelightbox-container',\n      data: this.annotationData\n    });\n  }\n\n\n\n}\n","<p *ngIf=\"widgetValue\">\n  {{widgetValue}}\n</p>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Language } from '../../../../forms/page/widgets/languages';\n\n@Component({\n  selector: 'app-formobject-languages-value',\n  templateUrl: './formobject-languages-value.component.html',\n  styleUrls: ['./formobject-languages-value.component.scss']\n})\nexport class FormObjectLanguagesValueComponent implements OnInit {\n@Input() widget: Language;\nwidgetValue: any;\n  constructor() { }\n\n  ngOnInit() {\n    this.ChangeValueToLanguageName();\n  }\n\n  ChangeValueToLanguageName(){\n    if(this.widget.value){\n      this.widgetValue = ((typeof this.widget.value )=== \"object\") ? this.widget.value[\"name\"] :  this.widget.value[0].name;\n    }\n  }\n  \n\n}\n","<div class=\"flex items-center gap-1\">\n    <!-- If location is enabled icon for triggering map-dialog get visible-->\n    <div class=\"icon-container\" *ngIf=\"widget.subType == WidgetSubType.scan_with_location && widgetProperties.captureLocation && showMap\">\n        <div class=\"flex items-center location-btn-icon rounded-md m-0\" (click)=\"showLocationView($event); $event.stopPropagation();\">\n            <mat-icon [svgIcon]=\"'axo_location_red'\" ></mat-icon>\n        </div>\n    </div>\n    <div [matTooltip]=\"widgetValue\" class=\"data-list-value axo-font\">\n        {{widgetValue}}\n    </div>\n\n</div>\n","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AxoMap } from '../../../../axo-map/axo-map';\nimport { MapDialogComponent } from '../../../../map-dialog/map-dialog.component';\nimport { QrCode } from '../../../../forms/page/widgets/qr-code';\nimport { WidgetSubType } from '../../../../../lib/forms/page/common/widget-enums';\n\n\n@Component({\n  selector: 'app-formobject-qr-code-value',\n  templateUrl: './formobject-qr-code-value.component.html',\n  styleUrls: ['./formobject-qr-code-value.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class FormObjectQrCodeValueComponent implements OnInit {\n  @Input() widget: QrCode;\n  @Input() widgetProperties: QrCode;\n  widgetValue: string = '';\n  dialog: MatDialog;\n  locations =  new Array<AxoMap>();\n  // variable for showing the map.\n  showMap: boolean = true;\n\n  constructor(private _injector: Injector) { }\n\n  ngOnInit() {\n    this.widgetValue = this.widget.getWidgetValue();\n    if(this.widget.subType == WidgetSubType.scan_with_location){\n      let value = JSON.parse(this.widgetValue);\n      this.widgetValue = value[0].data\n      let latitude = value[0]?.location?.lat;\n      let longitude = value[0]?.location?.long;\n      //checks the lat and long value and set showMap value.\n      if((latitude == 0 && longitude==0) || !latitude || !longitude){\n        this.showMap = false;\n      }\n      else{\n        let axoMap = new AxoMap();\n        axoMap.latitude = latitude;\n        axoMap.longitude = longitude;\n        this.locations.push(axoMap);\n        this.showMap = true;\n      }\n    }\n  }\n\n  /**\n   * Open location dialog\n   */\n  showLocationView(event): void {\n    this.dialog = this._injector.get(MatDialog);\n    this.dialog.open(MapDialogComponent, {\n      maxWidth: '100vw',\n      maxHeight: '100vh',\n      height: '100%',\n      width: '100%',\n      panelClass: 'location-box-container',\n      data: {\n        locations : this.locations\n      },\n    });\n  }\n\n\n  /**\n   * enum of widget subType\n   */\n  public get WidgetSubType(): typeof WidgetSubType {\n    return WidgetSubType;\n  }\n\n}\n","<div mat-dialog-content class=\"light-box-container h-full relative customscroll p-5\">\n  <mat-icon id=\"close-icon\" (click)=\"closeDialog()\" class=\"absolute top-0 right-0 text-lg\">close</mat-icon>\n  <ng-container *ngIf=\"widget.type === 'staticmedia-widget'\">\n    <div [innerHTML]=\"widget.staticMedia\"></div>\n  </ng-container>\n  <ng-container *ngIf=\"widget.widget.type === 'videocapture-widget'\">\n      <video autoplay=\"false\" loop=\"\" preload=\"none\" controls=\"\" class=\"w-full h-full\">\n          <source type=\"video/mp4\" [src]=\"widget.baseUrl + widget.widgetValue\">\n        </video>\n  </ng-container>\n  <ng-container *ngIf=\"widget.widget.type === 'wetsignaturecapture-widget'\">\n  <div class=\"capture-data-container text-center\" >\n    <img [src]=\"widget.baseUrl + widget.widgetValue\" class=\"max-w-full capture-image h-16 rounded\" alt=\"...\" />\n  </div>\n  </ng-container>\n  <ng-container *ngIf=\"widget.widget.type==='capturegpslocation-widget'\"  class=\"gps-container\">\n    <lib-gps-widget-view [widget]=\"widget.widget\" class=\"h-full\"></lib-gps-widget-view>\n</ng-container>\n</div>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n  selector: 'lib-formobject-widget-mat-dialog',\n  templateUrl: './formobject-widget-mat-dialog.component.html',\n  styleUrls: ['./formobject-widget-mat-dialog.component.scss']\n\n})\nexport class FormObjectWidgetMatDialogComponent implements OnInit {\n  widget: any;\n  constructor(public dialogRef: MatDialogRef<FormObjectWidgetMatDialogComponent>,\n    @Inject(MAT_DIALOG_DATA) public widgetData: any) {\n\n  }\n\n  ngOnInit(): void {\n    this.widget = this.widgetData;\n  }\n\n  closeDialog(): void {\n    this.dialogRef.close(false);\n  }\n}\n","<div *ngIf=\"widgetValue !== null && widgetValue?.length!==0 && widgetValue !== undefined\" class=\"signature-container\">\n  <img class=\"signature-image rounded\"  [src]=\"baseUrl + widgetValue\" (click)=\"showSignaturePopUp($event)\" alt=\"\">\n</div>\n","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport _ from 'lodash';\nimport { Signature } from '../../../../forms/page/widgets/signature';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FormObjectWidgetMatDialogComponent } from '../formobject-widget-mat-dialog/formobject-widget-mat-dialog.component';\n\n@Component({\n  selector: 'lib-formobject-signature-value',\n  templateUrl: './formobject-signature-value.component.html',\n  styleUrls: ['./formobject-signature-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectSignatureValueComponent implements OnInit {\n  @Input() widget: Signature;\n  @Input() baseUrl: string;\n  dialog: MatDialog;\n  signatureValue: string;\n  widgetValue: any;\n  constructor(private _injector: Injector) { }\n\n  ngOnInit(): void {\n    if(this.widget.values && ! _.isEmpty(this.widget.values[0]?.file) ){\n      this.widgetValue = AxoUtils.removeSlashFromImageUrl(this.widget.values[0]?.file);\n    }\n  }\n\n  showSignaturePopUp(event: Event){\n    event.stopPropagation();\n    if(this.widgetValue !== null){\n      this.dialog = this._injector.get(MatDialog);\n      this.dialog.open(FormObjectWidgetMatDialogComponent, {\n        height: '80vh',\n        width: '80vw',\n        maxWidth:'100vw',\n        panelClass: 'static-media-box-container',\n        data: {  widget: this.widget,\n          baseUrl: this.baseUrl,\n          widgetValue: this.widgetValue}\n      });\n    }\n  }\n\n}\n","<p>\n  <mat-icon *ngIf=\"this.widget.staticMedia\" (click)=\"showStaticMedia($event);\" class=\"add-text\" svgIcon=\"axo_static_media\"></mat-icon> \n</p>\n\n<div *ngIf=\"staticMedia === null\">\n  <span class=\"flex justify-start\">-</span>\n</div>","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport _ from 'lodash';\nimport { StaticMedia } from '../../../../forms/page/widgets/static-media';\nimport { FormObjectWidgetMatDialogComponent } from '../formobject-widget-mat-dialog/formobject-widget-mat-dialog.component';\n\n@Component({\n  selector: 'app-formobject-static-media-value',\n  templateUrl: './formobject-static-media-value.component.html',\n  styleUrls: ['./formobject-static-media-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectStaticMediaValueComponent implements OnInit {\n@Input() widget: StaticMedia;\ndialog: MatDialog;\nstaticMedia: string = null;\n\n  constructor(private _injector: Injector) { }\n\n  ngOnInit() {\n    this.staticMedia = this.widget.staticMedia !== null && !_.isEmpty(this.widget.staticMedia)?this.widget.staticMedia :null;\n  }\n\n  showStaticMedia(event: Event): void{\n    event.stopImmediatePropagation();\n    if(this.staticMedia !== null){\n      this.dialog = this._injector.get(MatDialog);\n      this.dialog.open(FormObjectWidgetMatDialogComponent, {\n        height: '80vh',\n        width: '80vw',\n        maxWidth:'100vw',\n        panelClass: 'static-media-box-container',\n        data: this.widget\n      });\n    }\n  }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StopWatch } from '../../../../forms/page/widgets/stopwatch';\n\n@Component({\n  selector: 'app-formobject-stop-watch-value',\n  templateUrl: './formobject-stop-watch-value.component.html',\n  styleUrls: ['./formobject-stop-watch-value.component.scss']\n})\nexport class FormObjectStopWatchValueComponent implements OnInit {\n@Input() widget: StopWatch;\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<p>\n  {{widget.value}}\n</p>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Widget } from '../../../../forms/page/widgets/widget';\n\n@Component({\n  selector: 'app-formobject-sub-form-value',\n  templateUrl: './formobject-sub-form-value.component.html',\n  styleUrls: ['./formobject-sub-form-value.component.scss']\n})\nexport class FormObjectSubFormValueComponent implements OnInit {\n@Input() widget: Widget;\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<p>\n\n</p>\n","<div class=\"textBox-container\">\n    <span [matTooltip]=\"widgetValue\">{{widgetValue}}</span>\n    <span class=\"pl-1\" *ngIf=\"widget.value && (widget.subType==='numeric' || widget.subType==='decimal') && widgetProperties.unit \">{{widgetProperties.unit}}</span>\n</div>","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { TextBoxInputType } from '../../../../forms/page/common/widget-enums';\nimport { TextBox } from '../../../../forms/page/widgets/textbox';\n\n\n@Component({\n  selector: 'formobject-textbox-value',\n  templateUrl: './formobject-textbox-value.component.html',\n  styleUrls: ['./formobject-textbox-value.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class FormObjectTextBoxValueComponent implements OnInit {\n  @Input() widget: TextBox;\n  @Input() widgetProperties: TextBox;\n  widgetValue : string;\n  constructor() { }\n\n  ngOnInit() {\n    this.widgetValue = this.widget.value.toString();\n    if(this.widgetProperties.inputType == TextBoxInputType.email && this.widgetProperties.allowMultipleEmails){\n      this.widgetValue = (this.widget.value.toString().split(',').join(', ')).trim();\n    }\n  }\n\n}\n","<p *ngIf=\"widgetValue\">\n  {{widgetValue}}\n</p>\n","import { Component, Input, OnInit } from '@angular/core';\nimport _ from 'lodash';\nimport { AxoUtils } from '../../../../../lib/axo-utils/axo-utils';\nimport { TimeStamp } from '../../../../forms/page/widgets/timestamp';\n\n\n@Component({\n  selector: 'app-formobject-time-stamp-value',\n  templateUrl: './formobject-time-stamp-value.component.html',\n  styleUrls: ['./formobject-time-stamp-value.component.scss']\n})\nexport class FormObjectTimeStampValueComponent implements OnInit {\n  @Input() widget: TimeStamp;\n  @Input() widgetProperties: TimeStamp;\n\n  widgetValue: string;\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.widgetValue = this.widget.value;\n    this.checkFormatAndChangeValue();\n  }\n\n  /**\n   * checks the format of the value and change the value as per dateformat\n   */\n  checkFormatAndChangeValue(): void{\n    if (this.widgetValue != null && ! _.isEmpty(this.widgetValue))\n    {\n        if(this.widgetProperties && this.widgetProperties.displayDateFormat && this.widgetProperties.displayDateFormat !== ''){\n            this.widgetValue = AxoUtils.formatDateToCustomDateFormat(this.widget.value,this.widgetProperties.displayDateFormat);\n        }\n        else{\n            this.widgetValue = this.widget.value;\n        }\n    }\n  }\n}\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Toggle } from '../../../../forms/page/widgets/toggle';\n\n@Component({\n  selector: 'app-formobject-toggle-value',\n  templateUrl: './formobject-toggle-value.component.html',\n  styleUrls: ['./formobject-toggle-value.component.scss']\n})\nexport class FormObjectToggleValueComponent implements OnInit {\n@Input() widget: Toggle;\nwidgetValue : any;\n  constructor() { }\n\n  ngOnInit() {\n    this.widgetValue = this.widget.value === true ? \"Yes\":\"No\";\n  }\n\n}\n","<p>\n  {{widgetValue}}\n</p>\n","<span class=\"data-list-value axo-font\" *ngIf=\"widget.value\" [matTooltip]=\"widget.value\">{{widget.value}}</span>","import { Component, Input, OnInit } from '@angular/core';\nimport { UniqueId } from '../../../../forms/page/widgets/unique-id';\n\n@Component({\n  selector: 'app-formobject-unique-id-value',\n  templateUrl: './formobject-unique-id-value.component.html',\n  styleUrls: ['./formobject-unique-id-value.component.scss']\n})\nexport class FormObjectUniqueIdValueComponent implements OnInit {\n@Input() widget: UniqueId;\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<ng-container *ngIf=\"widget.value\" >\n  <div class=\"data-detail-info\">\n      <div class=\"data-detail-text text-sm\"> {{isVerified}}</div> \n  </div>\n\n<ng-container *ngIf=\"!widgetValue\" >\n    <span class=\"flex justify-start\">-</span>\n  </ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { VerificationWidgetValue } from '../../../../forms/page/widgets/widget-value/verification-widget-value';\nimport { Verification } from '../../../../forms/page/widgets/verification';\nimport { ActionType } from '../../../../forms/page/common/widget-enums';\n\n@Component({\n  selector: 'app-formobject-verification-value',\n  templateUrl: './formobject-verification-value.component.html',\n  styleUrls: ['./formobject-verification-value.component.scss']\n})\nexport class FormObjectVerificationValueComponent implements OnInit {\n   /*\n* widget object\n*/\n@Input() widget: Verification;\nwidgetValue: VerificationWidgetValue;\nisVerified : string;\n\nconstructor() { }\n\nngOnInit(): void {\n  this.SetVerificationValue();\n}\nSetVerificationValue() {\n  if (this.widget.value) {\n    this.widgetValue = this.widget.getWidgetValue();\n    if(this.widgetValue){\n     if(this.widget.actionType === ActionType.register){\n      this.isVerified = this.widgetValue.found ? \"User Registered\": \"User Not Registered\";\n     }else if(this.widget.actionType === ActionType.verify){\n      this.isVerified = this.widgetValue.found ? \"Verified\": \"Not Verified\";\n     }\n    }\n  }\n\n}\n\n}\n","<div *ngIf=\"widgetValue !== null && widgetValue?.length !== 0 && widgetValue !== undefined\" class=\"video-container\">\n<!-- <a href=\"{{baseUrl + widgetValue}}\" target=\"_blank\"> -->\n<mat-icon [svgIcon]=\"'axo_video_list'\" class=\"w-7 h-7\" (click)=\"showVideoPopUp($event)\"></mat-icon>\n<!-- </a> -->\n</div>\n","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport _ from 'lodash';\nimport { Video } from '../../../../forms/page/widgets/video';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FormObjectWidgetMatDialogComponent } from '../formobject-widget-mat-dialog/formobject-widget-mat-dialog.component';\n\n@Component({\n  selector: 'lib-formobject-video-value',\n  templateUrl: './formobject-video-value.component.html',\n  styleUrls: ['./formobject-video-value.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectVideoValueComponent implements OnInit {\n  @Input() widget: Video;\n  @Input() baseUrl: string;\n  widgetValue: any;\n  dialog: MatDialog;\n  constructor(private _injector: Injector) { }\n\n  ngOnInit(): void {\n    if (this.widget.values && !_.isEmpty(this.widget.values[0]?.file)) {\n      this.widgetValue = AxoUtils.removeSlashFromImageUrl(this.widget.values[0]?.file);\n    }\n    else if(this.widget.value){\n        this.widgetValue =  \"images/media/app_data/\"+this.widget.value;\n    }\n  }\n\n  showVideoPopUp(event: Event): void {\n    event.stopImmediatePropagation();\n    if (this.widgetValue !== null) {\n      this.dialog = this._injector.get(MatDialog);\n      this.dialog.open(FormObjectWidgetMatDialogComponent, {\n        height: '80vh',\n        width: '80vw',\n        maxWidth: '100vw',\n        panelClass: 'video-pop-up-box',\n        data: {\n          widget: this.widget,\n          baseUrl: this.baseUrl,\n          widgetValue: this.widgetValue\n        }\n\n      });\n    }\n  }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Link } from '../../../../forms/page/widgets/link';\n\n@Component({\n  selector: 'app-formobject-web-link-value',\n  templateUrl: './formobject-web-link-value.component.html',\n  styleUrls: ['./formobject-web-link-value.component.scss']\n})\nexport class FormObjectWebLinkValueComponent implements OnInit {\n@Input() widget: Link;\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<span class=\"link-containr \">\n<a href=\"{{widget.value}}\" class=\"link-container\" target=\"_blank\" rel=\"noopener noreferrer\">{{widget.value}}</a>\n</span>","import { WidgetType } from '../../../forms/page/common/widget-enums';\nimport { FormObjectApplyGeoFenceValueComponent } from './formobject-apply-geo-fence-value/formobject-apply-geo-fence-value.component';\nimport { FormObjectAudioValueComponent } from './formobject-audio-value/formobject-audio-value.component';\nimport { FormObjectAutoNumberValueComponent } from './formobject-auto-number-value/formobject-auto-number-value.component';\nimport { FormObjectBarCodeValueComponent } from './formobject-bar-code-value/formobject-bar-code-value.component';\nimport { FormObjectChildRecordsValueComponent } from './formobject-child-records-value/formobject-child-records-value.component';\nimport { FormObjectChoiceListValueComponent } from './formobject-choicelist-value/formobject-choicelist-value.component';\nimport { FormObjectCounterValueComponent } from './formobject-counter-value/formobject-counter-value.component';\nimport { FormObjectDateTimeValueComponent } from './formobject-date-time-value/formobject-date-time-value.component';\nimport { FormObjectDocumentValueComponent } from './formobject-document-value/formobject-document-value.component';\nimport { FormObjectFormulaValueComponent } from './formobject-formula-value/formobject-formula-value.component';\nimport { FormObjectGeoFenceValueComponent } from './formobject-geo-fence-value/formobject-geo-fence-value.component';\nimport { FormObjectGpsValueComponent } from './formobject-gps-value/formobject-gps-value.component';\nimport { FormObjectGroupHeaderValueComponent } from './formobject-group-header-value/formobject-group-header-value.component';\nimport { FormObjectImageValueComponent } from './formobject-image-value/formobject-image-value.component';\nimport { FormObjectLanguagesValueComponent } from './formobject-languages-value/formobject-languages-value.component';\nimport { FormObjectPaymentValueComponent } from './formobject-payment-value/formobject-payment-value.component';\nimport { FormObjectQrCodeValueComponent } from './formobject-qr-code-value/formobject-qr-code-value.component';\nimport { FormObjectSignatureValueComponent } from './formobject-signature-value/formobject-signature-value.component';\nimport { FormObjectStaticMediaValueComponent } from './formobject-static-media-value/formobject-static-media-value.component';\nimport { FormObjectStopWatchValueComponent } from './formobject-stop-watch-value/formobject-stop-watch-value.component';\nimport { FormObjectSubFormValueComponent } from './formobject-sub-form-value/formobject-sub-form-value.component';\nimport { FormObjectTextBoxValueComponent } from './formobject-textbox-value/formobject-textbox-value.component';\nimport { FormObjectTimeStampValueComponent } from './formobject-time-stamp-value/formobject-time-stamp-value.component';\nimport { FormObjectToggleValueComponent } from './formobject-toggle-value/formobject-toggle-value.component';\nimport { FormObjectUniqueIdValueComponent } from './formobject-unique-id-value/formobject-unique-id-value.component';\nimport { FormObjectVerificationValueComponent } from './formobject-verification-value/formobject-verification-value.component';\nimport { FormObjectVideoValueComponent } from './formobject-video-value/formobject-video-value.component';\nimport { FormObjectWebLinkValueComponent } from './formobject-web-link-value/formobject-web-link-value.component';\n\nexport class FormObjectValueHandler{\n    public static getWidgetValueComponent(type: string): any {\n        switch(type){\n            case WidgetType.textBox:\n                return FormObjectTextBoxValueComponent;\n            case WidgetType.audio:\n                return FormObjectAudioValueComponent;\n            case WidgetType.barCodeScanner:\n                return FormObjectBarCodeValueComponent;\n            case WidgetType.imageCapture:\n                return FormObjectImageValueComponent;\n            case WidgetType.childRecords:\n                return FormObjectChildRecordsValueComponent;\n            case WidgetType.captureGpsLocation :\n                return FormObjectGpsValueComponent;\n            case WidgetType.dateTime:\n                return FormObjectDateTimeValueComponent;\n            case  WidgetType.autoNumber:\n                return FormObjectAutoNumberValueComponent;\n            case WidgetType.counter:\n                return FormObjectCounterValueComponent;\n            case WidgetType.document:\n                return FormObjectDocumentValueComponent;\n            case WidgetType.formula:\n                return FormObjectFormulaValueComponent;\n            case WidgetType.geoFence:\n                return FormObjectGeoFenceValueComponent;\n            case WidgetType.applyGeoFence:\n                return FormObjectApplyGeoFenceValueComponent;\n            // case WidgetType.groupHeader:\n            //     return FormObjectGroupHeaderValueComponent;\n            case WidgetType.language:\n                return FormObjectLanguagesValueComponent;\n             //case WidgetType.payment:\n            //     return FormObjectPaymentValueComponent;\n            case WidgetType.qrCodeScanner:\n                return FormObjectQrCodeValueComponent;\n            case WidgetType.signature:\n                return FormObjectSignatureValueComponent;\n            case WidgetType.staticMedia:\n                return FormObjectStaticMediaValueComponent;\n            case WidgetType.stopWatch:\n                return FormObjectStopWatchValueComponent;\n            case WidgetType.subForm:\n                return FormObjectSubFormValueComponent;\n            case WidgetType.toggle:\n                return FormObjectToggleValueComponent;\n            case WidgetType.uniqueId:\n                return FormObjectUniqueIdValueComponent;\n            case WidgetType.verification:\n                return FormObjectVerificationValueComponent;\n            case WidgetType.video:\n                return FormObjectVideoValueComponent;\n            case WidgetType.hyperLink:\n                return FormObjectWebLinkValueComponent;\n            case WidgetType.timeStamp:\n                return FormObjectTimeStampValueComponent;\n            case WidgetType.choiceList:\n                return FormObjectChoiceListValueComponent;\n            case WidgetType.signature:\n                return FormObjectSignatureValueComponent;\n            default:\n                return FormObjectTextBoxValueComponent;\n        }\n    }\n}\n","import { Component, ComponentFactoryResolver, Input, OnChanges, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { Widget } from '../../../forms/page/widgets/widget';\nimport { FormObjectValueDirective } from './form-object-value.directive';\nimport { FormObjectValueHandler } from './form-object-value-handler';\nimport { AxForm } from '../../../forms/ax-form';\n\n@Component({\n  selector: 'form-object-widget-value',\n  templateUrl: './form-object-widget-value.component.html',\n  styleUrls: ['./form-object-widget-value.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class FormObjectWidgetValueComponent implements OnChanges, OnInit,OnDestroy  {\n  @Input() widget: Widget;\n  @Input() form: AxForm;\n  @Input() baseUrl :string;\n  @Input() axonatorX1Url : string;\n  @Input() widgetProperties: Widget;\n  @Input() trackingFormObjectId: string = null;\n\n  componentRef : any;\n\n  @ViewChild(FormObjectValueDirective,{static:true}) formsHost!: FormObjectValueDirective;\n  constructor(private componentFactoryResolver: ComponentFactoryResolver) { }\n  ngOnInit(): void {\n  const componentFactory = this.componentFactoryResolver.resolveComponentFactory(FormObjectValueHandler.getWidgetValueComponent(this.widget.type));\n  const viewContainerRef = this.formsHost.viewContainerRef;\n   viewContainerRef.clear();\n    this.componentRef = viewContainerRef.createComponent<any>(componentFactory);\n    this.componentRef.instance.widget = this.widget;\n    this.componentRef.instance.widgetProperties = this.widgetProperties;\n    this.componentRef.instance.baseUrl = this.baseUrl;\n    this.componentRef.instance.form = this.form;\n    this.componentRef.instance.axonatorX1Url = this.axonatorX1Url;\n    this.componentRef.instance.trackingFormObjectId = this.trackingFormObjectId;\n  }\n\n\n\nngOnDestroy(): void\n{\n  this.componentRef.destroy();\n}\n  ngOnChanges() {\n\n   }\n  }\n","<ng-template FormObjectValueHost ></ng-template>","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { AxExpression } from '../../../enlighten-lib/ax-expression/ax-expression';\nimport { Attribute } from '../../../enlighten-lib/data-model/attribute';\nimport { ChoiceList } from '../../../forms/page/widgets/choicelist';\nimport { SearchNode } from '../../../enlighten-lib/filters/search-node';\nimport { AxNumber } from '../../../enlighten-lib/fields/types/ax-number';\nimport { AxText } from '../../../enlighten-lib/fields/types/ax-text';\nimport { Widget } from '../../../forms/page/widgets/widget';\nimport { MatSelectChange } from '@angular/material/select';\nimport { IEnlightenType } from '../../../enlighten-lib/fields/types/ienlighten-type';\nimport { DateTime } from '../../../enlighten-lib/fields/types/datetime';\nimport { AxDate } from '../../../enlighten-lib/fields/types/ax-date';\nimport { AxTime } from '../../../enlighten-lib/fields/types/ax-time';\nimport { AxFilter } from '../../../enlighten-lib/filters/ax-filter';\nimport { ConditionType, FilterType, ScopeType, } from '../../../../public-api';\n\n@Injectable()\nexport class FormObjectListFilterService {\n  /**\n   * Constructor\n   */\n  constructor(\n    private _httpClient: HttpClient\n  ) { }\n\n  /**\n   * Add new filter functionality\n   *\n   * @param appVersion\n   * @param event\n   * @param filters\n   * @param scopeType\n   * @param x\n   * @returns  filter array\n   */\n  addBasicFilterToDataList(appVersion: number, event: MatSelectChange | any, filters: Array<AxFilter>, scopeType: number, x: number,fixedSeries: Array<string>) {\n    const widget = event.option.value;\n    const expression = new AxExpression();\n    const attribute = new Attribute();\n    if (widget instanceof ChoiceList) {\n      attribute.formId = Number(widget.referenceForm);\n    }\n    attribute.widgetType = widget.type;\n    attribute.widgetSubType = widget.subType;\n    attribute.name = widget.identifier;\n    expression.field = attribute;\n    expression.field.label = widget.prompt;\n    expression.field.fixedSeries = fixedSeries;\n    const searchNode = new SearchNode();\n    if (widget.subType === 'numeric') {\n      expression.field.enlightenType = new AxNumber();\n    }\n    else {\n      expression.field.enlightenType.matIcon = new AxText().matIcon;\n    }\n    if (widget.type === 'datepicker-widget') {\n      expression.field.enlightenType = this.setEnlightenType(widget);\n    }\n    searchNode.expression = expression;\n    searchNode.type = ConditionType.condition;\n    const axFilter = new AxFilter();\n    axFilter.type = FilterType.basic;\n    axFilter.appVersionId = appVersion;\n    axFilter.scope = ScopeType.global;\n    axFilter.searchNodes.push(searchNode);\n    axFilter.type = FilterType.basic;\n    if (event.option.selected) {\n      filters.push(axFilter);\n    } else {\n      {\n        filters.forEach((filter, index) => {\n          if (filter.searchNodes[0].expression.field.name === widget.identifier) {\n            filters[index].isDeleted = true;\n            filters[index].searchNodes[0].expression.value.isSearchable = false;\n          }\n        });\n      }\n    }\n    return filters;\n  }\n  /**\n   * To set expression field Enlighten Type\n   *\n   * @param attributeData\n   *\n   */\n  setEnlightenType(attributeData: Widget): IEnlightenType {\n    switch (attributeData.subType) {\n      case 'datetime':\n        return new DateTime();\n      case 'date':\n        return new AxDate();\n      case 'time':\n        return new AxTime();\n      case 'timestamp':\n        return new DateTime();\n      default:\n        return new DateTime();\n\n    }\n  }\n}\n","<div class=\"sticky data-list-filter w-full\">\n  <div class=\"table-heading w-full\">\n        <!--filter-->\n        <div class=\"flex items-center gap-4 mx-auto w-full\">\n          <div class=\"add-icon-btn\">\n             <button class=\"light-blue-btn axo-font\" [matMenuTriggerFor]=\"filtersMenu\">+ Add Filter</button>\n              <mat-menu #filtersMenu=\"matMenu\" yPosition=\"below\" class=\"filter-field-list\">\n                <div (click)=\"$event.stopPropagation();\">\n                  <div class=\"group flex items-center justify-center mb-3\" [ngClass]=\"{'justify-between px-2.5': !showSearchBox}\">\n                      <span *ngIf=\"showField\" class=\"text-f font-medium\">Fields</span>\n\n                      <div class=\"flex items-center search-field\" [ngClass]=\"{'global-border px-2.5' : showSearchBox}\">\n                        <button (click)=\"showFilterDiv()\"> <mat-icon [ngClass]=\"{'search-icon' : showSearchBox}\" class=\"mt-2 text-xs search-icons\" [svgIcon]=\"'heroicons_solid:search'\"></mat-icon></button>\n\n                        <input id=\"global-field-search\"  (keydown)=\"$event.stopPropagation();\"  autocomplete=\"off\" placeholder=\"Search...\" [(ngModel)]=\"searchedTerm\" matInput class=\"search-bar chart-title\"  [style.width]=\"!showSearchBox ? '0' : '100%'\" />\n                        <mat-icon (click)=\"clear()\" *ngIf=\"showSearchBox\" class=\"clear_icon cursor-pointer text-base\">clear</mat-icon>\n                      </div>\n                  </div>\n                  <ng-container *ngIf=\"categories.length\">\n                      <div [ngClass]=\"{'field-container' : showSearchBox}\"*ngIf=\"(categories | search: searchedTerm)?.length\" >\n                          <label class=\"px-2.5\" *ngIf=\"(categories | search: searchedTerm)?.length\">Category</label>\n                      <mat-selection-list #category>\n                          <mat-list-option checkboxPosition=\"after\"  *ngFor=\"let category of categories| search: searchedTerm;let i=index \" [value]='category' [(selected)]=\"category.isSelected\" color=\"primary\">\n                              <span class=\"list-field\"  [matTooltip]=\"category.name\"> {{category.name}}</span>\n                          </mat-list-option>\n                      </mat-selection-list>\n                      </div>\n                  </ng-container>\n                  <div class=\"fields-div\">\n                      <label class=\"px-2.5\">{{form.name}}</label>\n                      <mat-selection-list (selectionChange)=\"addBasicFilterToDataList($event)\">\n                          <mat-list-option checkboxPosition=\"after\"  *ngFor=\"let widget of form.widgets| search: searchedTerm\" [value]='widget' [selected]=\"this.selectedWidget.indexOf(widget.identifier) !== -1\" color=\"primary\">\n                              <span class=\"list-field\" [matTooltip]=\"widget.prompt\" ><mat-icon class=\"svg-icon mr-2 align-middle\" [svgIcon]=\"widget.widgetIcon\"></mat-icon> {{widget.prompt}}</span>\n                          </mat-list-option>\n                      </mat-selection-list>\n                </div>\n              </div>\n            </mat-menu>\n          </div>\n          <filters\n          class=\"data-list-filter-container\"\n          [filters]=\"filters\"\n          [commonFilterArray]=\"commonFilterArray\"\n          [screenType]=\"screenType\"\n          [categories]='categories'\n          [scopeType]=\"scopeType\"\n          (filterChangeEmit)= \"filterChangedEvent()\"\n          (resetFilterEmit)=\"filterResetEvent()\"\n          (deleteFilterEmit)=\"deleteFilterEmit($event)\"\n          (clearFilterEmit)=\"clearFilterEmit($event)\"\n          (applyFilterEmit)=\"applyFilterEvent()\"\n          [appVersionId]=\"appVersionId\"\n          [appId]=\"appId\"\n          >\n          </filters>\n        </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation, SimpleChanges, OnChanges } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { AxExpression } from '../../../enlighten-lib/ax-expression/ax-expression';\nimport { AxForm } from '../../../forms/ax-form';\nimport { DataModel } from '../../../enlighten-lib/data-model/data-model';\nimport { AxFilter } from '../../../enlighten-lib/filters/ax-filter';\nimport { FilterSourceElementType } from '../../../enlighten-lib/filters/chart-filter-type';\nimport { FilterCategory } from '../../../enlighten-lib/filters/filter-category';\nimport { IChartComponent } from '../../../enlighten-lib/report/graphical-report/ichart-component';\nimport { FormObjectListFilterService } from './form-object-list-filter.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { DataListFilterDto } from '../../../common-dto/dataListFilter-dto';\nimport { Subject } from 'rxjs';\nimport { ElementService } from '../../../enlighten-lib/report/element.service';\nimport { ScopeType, ScreenType } from '../../../enlighten-lib/filters/condition-type';\nimport { CommonService } from '../../../../lib/common.service';\nimport { Widget } from '../../../../lib/forms/page/widgets/widget';\nimport { UnhandledWIdgetsInFilters, UnhandledWIdgetSubTypesInFilters } from '../../../enlighten-lib/filters/static-widget';\nimport { WidgetSubType } from '../../../../lib/forms/page/common/widget-enums';\n@Component({\n  selector: 'lib-form-object-list-filter',\n  templateUrl: './form-object-list-filter.component.html',\n  styleUrls: ['./form-object-list-filter.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectListFilterComponent implements OnInit,OnChanges {\n  @Input() dataModel: DataModel;\n  @Input() form: AxForm;\n  @Input() filters: Array<AxFilter>;\n  @Input() categories: Array<FilterCategory>;\n  @Input() isEditable: boolean;\n  @Input() appVersionId: number;\n  @Output() dirtyFlowCheckEvent = new EventEmitter<any>();\n  @Output() filterChangeEmit = new EventEmitter<any>();\n  @Output() resetFilterEmit = new EventEmitter<any>();\n  @Output() applyFilterEmit = new EventEmitter<any>();\n  @Input() chartRef: IChartComponent;\n  @Input() appId: number;\n  @Input() filterSourceElementType: FilterSourceElementType;\n  screenType: ScreenType = ScreenType.dataList;\n  scopeType = 2;\n  showSearchBox: boolean = false;\n  showField: boolean = true;\n  titleValue: string = '';\n  searchedTerm;\n  showApplyFilterEvent: boolean = true;\n  formId: string;\n  selectedWidget: Array<string> = [];\n  commonFilterArray: Array<any>=[];\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  constructor(private _formObjectListFilterService: FormObjectListFilterService, private _route: ActivatedRoute,\n    private _elementService: ElementService,\n    private activatedRoute: ActivatedRoute,\n    private _commonService: CommonService,\n  ) { }\n\n\n  ngOnInit(): void {\n    this.activatedRoute.paramMap.subscribe((params) => {\n      if (this.screenType === ScreenType.dataList) {\n        this.formId = params.get('formId');\n      }\n    });\n\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.form) {\n      this.form=this.createAttributesObject(this.form);\n      this.commonFilterArray=[];\n      this.getAllFilters();\n      this.selectedWidget=[];\n    }\n  }\n\n  showFilterDiv(): void {\n    this.showSearchBox = !this.showSearchBox;\n    this.showField = !this.showField;\n    document.getElementById('global-field-search').focus();\n  }\n\n  clear(): void {\n    this.titleValue = null;\n    this.showSearchBox = !this.showSearchBox;\n    this.showField = !this.showField;\n    this.searchedTerm = null;\n  }\n  /**\n   * Add new filter functionality\n   *\n   * @param event\n   */\n  addBasicFilterToDataList(event: MatSelectionListChange): void {\n    const widget = event.option.value;\n    this.selectedWidget.push(widget.identifier);\n    this.showApplyFilterEvent = !this.showApplyFilterEvent;\n    const fixedSeries = [];\n    if(widget.subType == WidgetSubType.fixedList){\n      widget.choices?.forEach((choice) => {\n        fixedSeries.push(choice.value);\n      });\n    }\n    this.filters = this._formObjectListFilterService.addBasicFilterToDataList(\n      this.appVersionId,\n      event,\n      this.filters,\n      ScopeType.global,\n      this.filters.length,\n      fixedSeries\n    );\n    this.getAllFilters();\n  }\n\n   //this function is used to push filters and category into a commonArray\n\n   getAllFilters(): void {\n    this.filters.forEach((filter) => {\n        // filter.generalFilterType = 1;\n        if(!this.commonFilterArray.includes(filter))\n        {\n            this.commonFilterArray.push(filter);\n        }\n    });\n\n    this.commonFilterArray.sort((a,b)=> (a.gridProperties.x > b.gridProperties.x) ? 1 : ((b.gridProperties.x > a.gridProperties.x) ? -1 : 0));\n}\n\n  filterChangedEvent(): void {\n    this.filterChangeEmit.emit();\n  }\n\n  /**\n   * Resets all the filters\n   */\n\n  filterResetEvent(): void {\n    const dataListFilterDto = new DataListFilterDto();\n    dataListFilterDto.app_id = this.appId;\n    dataListFilterDto.form_id = this.formId;\n    dataListFilterDto.appVersion = this.appVersionId;\n    this.resetFilterEmit.emit(dataListFilterDto);\n  }\n\n  /**\n   * Deletes the single filter\n   *\n   * @param index\n   */\n  deleteFilterEmit(index): void {\n    const identifier = this.filters[index];\n    this.selectedWidget.splice(this.selectedWidget.indexOf(identifier.searchNodes[0].expression.field.name), 1);\n  }\n\n  /**\n   * Clears the single filter\n   *\n   * @param index\n   */\n  clearFilterEmit(index): void {\n    this.filters[index].searchNodes[0].expression.value =\n      new AxExpression().getExpressionValueObject(\n        this.filters[index].searchNodes[0].expression.value.subType\n      );\n    this.filters[index].searchNodes[0].expression.value.isSearchable = false;\n    this._commonService.isReportFilterApply = true;\n    this.filterChangedEvent();\n  }\n\n  /**\n   * Emits the event for applying filter on Apply button\n   */\n  applyFilterEvent(): void {\n    this.applyFilterEmit.emit();\n  }\n\n\n\n  /**\n   * Create Attribute object\n   *\n   * @param attributes\n   * @returns attribute array\n   */\n   createAttributesObject(form: AxForm): AxForm{\n      const attributeArray=[];\n      form.widgets.forEach((_widget: Widget) => {\n      if(!UnhandledWIdgetsInFilters.includes(_widget.type) && !UnhandledWIdgetSubTypesInFilters.includes(_widget.subType)){\n        attributeArray.push(_widget);\n      }\n\n    });\n    form.widgets=[];\n    form.widgets=attributeArray;\n    return form;\n  }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Widget } from '../../../../forms/page/widgets/widget';\n\n@Component({\n  selector: 'app-formobject-group-header-value',\n  templateUrl: './formobject-group-header-value.component.html',\n  styleUrls: ['./formobject-group-header-value.component.scss']\n})\nexport class FormObjectGroupHeaderValueComponent implements OnInit {\n@Input() widget: Widget;\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<p>\n  formobject-group-header-value works!\n</p>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Payment } from '../../../../forms/page/widgets/payment';\n\n@Component({\n  selector: 'app-formobject-payment-value',\n  templateUrl: './formobject-payment-value.component.html',\n  styleUrls: ['./formobject-payment-value.component.scss']\n})\nexport class FormObjectPaymentValueComponent implements OnInit {\n  @Input() widget: Payment;\n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<p>\n  formobject-payment-value works!\n</p>\n","<ng-container *ngIf=\"showGhostLoader\">\n    <app-ghost-loader [elementType]=\"GhostLoaderType.SubHeaderLoader\" class=\"h-12\"></app-ghost-loader>\n    <app-ghost-loader [elementType]=\"GhostLoaderType.DataDetailLoader\"></app-ghost-loader>\n</ng-container>\n<ng-container *ngIf=\"!showGhostLoader\"> \n    <div class=\"form-object-view w-full border-box\">\n        <div class=\"subheader w-full flex justify-between items-center sm:flex hidden\"\n            *ngIf=\"showHeader && !taskDetailsMap\">\n            <div class=\"text-3xl\">\n                {{dataDetailView.formObject.name}}\n            </div>\n            <div class=\"mr-3 px-3 py-1 rounded-2xl text-white text-base bg-blue font-medium cursor-pointer\"\n                (click)=\"redirectToTasks(dataDetailView.formObject.name)\">History\n            </div>\n        </div>\n        <!-- form object view heading start-->\n        <div class=\"flex items-center\" *ngIf=\"dataDetailView?.formObject?.title\">\n            <div class=\"flex items-center justify-between mx-auto h-12 w-full bg-white form-object-view-heading\">\n                <h2 class=\"leading-tight pl-10\">{{dataDetailView?.formObject?.title}}</h2>\n            </div>\n        </div>\n        <div class=\"sm:px-10 px-3 mt-8 mb-4 data-detail-content\">\n            <!-- here we will rendering the page fields dynamically using component factory resolver -->\n        <div *ngFor=\"let section of dataDetailView?.sections\">\n            <div *ngIf=\"section.type === sectionType.section\" class=\"border-box\">\n\n            <!-- checks the screen type is task view or not  -->\n            <ng-container *ngIf=\"ScreenType == screenType.TaskDetailView && taskDetailsMap\">\n                <!-- checks the section is a meta section or not -->\n                <ng-container *ngIf=\"section.sectionChildType == SectionChildType.meta\">\n                    <!-- meta section rendering -->\n                    <app-meta-section [taskDetailsMap]=\"taskDetailsMap\" [section]=\"section\"></app-meta-section>\n\n                        <!-- task description -->\n                        <div class=\"task-list-discription-title\">{{taskDetailsMap[\"{_Description_}\"]?taskDetailsMap[\"{_Description_}\"][0]:''}}</div>\n                        <!-- does not display details of form if the task is todo or delivered -->\n                        <ng-container *ngIf=\"taskStatus == TaskStatus.todo || taskStatus == TaskStatus.overdue\">\n                            <div class=\"task-status-message\" >This task is in progress</div>\n                        </ng-container>\n                    </ng-container>\n\n                    <!-- widget section rendering in task detail view-->\n                    <!-- display details of form if the task is done -->\n                    <ng-container *ngIf=\"dataDetailView && section.sectionChildType == SectionChildType.widgetSection && taskStatus == TaskStatus.done\">\n                        <app-section-view  [section]=\"section\" [formObjectId] = \"dataDetailView?.formObject?.id\" [baseUrl] =\"baseUrl\" [axonatorX1Url] =\"axonatorX1Url\"></app-section-view>\n                    </ng-container>\n                </ng-container>\n\n\n                <!-- widget section rendering in data detail view.-->\n                <ng-container *ngIf=\"ScreenType != screenType.TaskDetailView\">\n                    <app-section-view  [section]=\"section\" [formObjectId] = \"dataDetailView.formObject.id\" [baseUrl] =\"baseUrl\" [axonatorX1Url] =\"axonatorX1Url\"></app-section-view>\n                </ng-container>\n            </div>\n        </div>\n        </div>\n    </div>\n</ng-container>\n","import { TaskStatus } from './../../data-view-lib/data-view/task';\nimport { ScreenType } from './../../enlighten-lib/filters/condition-type';\nimport { CdkDropList } from '@angular/cdk/drag-drop';\nimport { Component, Input, OnInit,  ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AxForm } from '../../forms/ax-form';\nimport { SectionChildType, SectionType } from '../../forms/page/common/widget-enums';\nimport { DataDetailViewDto } from './data-detail-view-dto';\nimport { GhostLoaderType } from '../../ghost-loader/ghost-loader.component';\n\n@Component({\n    selector: 'lib-form-object-view',\n    templateUrl: './form-object-view.component.html',\n    styleUrls: ['./form-object-view.component.scss'],\n    encapsulation: ViewEncapsulation.None\n})\nexport class FormObjectViewComponent implements OnInit {\n    @Input() form: Array<AxForm>;\n    @Input() dataDetailView: DataDetailViewDto;\n    @Input() baseUrl: string;\n    @Input() axonatorX1Url: string;\n    @Input() showHeader:boolean = true;\n    @Input() ScreenType:ScreenType = null;\n    @Input() taskDetailsMap : {};\n    @Input() taskStatus: TaskStatus;\n    @Input() showGhostLoader: boolean;\n\n    public target: CdkDropList;\n    public targetIndex: number;\n    public sourceIndex: number;\n    sectionType: any=Object.assign({},SectionType);\n    GhostLoaderType = GhostLoaderType;\n\n    /*\n     * Subject object which helps unsubscribe all the subscribed objects in the component\n     */\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n    constructor() {\n    }\n    /**\n     * On init\n     */\n    ngOnInit(): void {\n        this.showGhostLoader = false;\n    }\n\n\n\n    /**\n     * SectionChildType enum\n     */\n    public get SectionChildType(): typeof SectionChildType {\n        return SectionChildType;\n    }\n\n    /**\n     * ScreenType enum\n     */\n    public get screenType(): typeof ScreenType {\n        return ScreenType;\n    }\n\n    /**\n     * Task Status enum\n     */\n    public get TaskStatus(): typeof TaskStatus {\n        return TaskStatus;\n    }\n\n    //AXE-I6556\n    //formId and fornObjectId is set in url and redirected to Task View\n    public redirectToTasks(name:string): void{\n        let leftMenuItems = JSON.parse(localStorage.getItem(\"leftMenuItems\")) || [];\n        let currentUrl = window.location.href;\n\n        let urlParts = currentUrl.split('/');\n        let foid = urlParts[urlParts.length - 1];\n\n        let formIdMatch = currentUrl.match(/forms\\/(\\d+)/);\n        let formId = formIdMatch ? formIdMatch[1] : '';\n\n        let parts = currentUrl.split('forms');\n        let baseUrl = parts[0];\n\n        leftMenuItems.forEach(item => {\n            if (item.subType === \"TaskView\") {\n                let appendUrl = baseUrl + item.link + \"?foid=\" + foid +\"&fid=\" + formId;\n                window.location.href = appendUrl;\n            }\n        });\n    }\n }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CodeEditorComponent } from './code-editor.component';\nimport { AceEditorModule } from 'ng2-ace-editor';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n\n\n@NgModule({\n  declarations: [\n    CodeEditorComponent\n  ],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    AceEditorModule // We are using ace editor lib. this module is wrapper for this lib\n  ],\n  exports:[\n    CodeEditorComponent\n  ]\n})\nexport class CodeEditorModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ConfirmationModalComponent } from './comfirmation-modal/confirmation-modal.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ConditionalFormattingComponent } from './conditional-formatting/conditional-formatting/conditional-formatting.component';\nimport { AceEditorModule } from 'ng2-ace-editor';\nimport { CodeEditorModule } from '../code-editor/code-editor.module';\nimport { MatIconModule } from '@angular/material/icon';\n\n@NgModule({\n    declarations: [ConfirmationModalComponent, ConditionalFormattingComponent],\n    imports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule,\n        MatButtonModule,\n        CodeEditorModule,\n        AceEditorModule,\n        MatIconModule\n    ],\n    exports: [\n        CommonModule,\n        FormsModule,\n        ReactiveFormsModule\n    ]\n})\nexport class SharedModule\n{\n}\n","<ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n    <div class=\"data-detail-infoc capture-container\">\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_applygeofence\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\" class=\"pl-2\">{{widget.prompt}}<span class=\"colon\"> :</span></span>\n        </div>\n        <span class=\"flex justify-start data-detail-text\">{{widgetValue.inside ? \"Inside\" : \"Outside\"}}</span>\n      </div>\n</ng-container>\n<ng-template #isWidgetValueEmpty>\n    <div class=\"data-detail-infoc capture-container\">\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_applygeofence\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\" class=\"pl-2 text-sm\">{{widget.prompt}}<span class=\"colon\"> :</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n      </div>\n</ng-template>","import { Component, Input, OnInit } from '@angular/core';\nimport { ApplyGeoFence } from '../../../../forms/page/widgets/apply-geofences';\n\n@Component({\n  selector: 'lib-apply-geo-fence-widget-view',\n  templateUrl: './apply-geo-fence-widget-view.component.html',\n  styleUrls: ['./apply-geo-fence-widget-view.component.scss']\n})\nexport class ApplyGeoFenceWidgetViewComponent implements OnInit {\n\n  @Input() widget: ApplyGeoFence;\n  widgetValue : any ;\n  ngOnInit(): void{\n    this.widgetValue = this.widget.getWidgetValue();\n  }\n}\n","\n<!-- <div class=\"audio-data-detail\" *ngIf=\"widget.value\">\n  <div class=\"data-detail-title flex text-sm\" >\n    <span  *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n  </div>  \n  <div class=\"audio-container text-center\"> \n    <audio controls controlsList=\"nodownload noplaybackrate\">\n      <source [src]=\"baseUrl + widgetValue\" type=\"audio/ogg\">\n  </audio>       \n  </div>\n</div>\n<ng-container *ngIf=\"!widget.value\" >\n  <span class=\"flex justify-start\">-</span>\n</ng-container> -->\n\n<div class=\"data-detail-info items-center audio-data-detail\">\n  <ng-container *ngIf=\"widget.value else isWidgetValueEmpty\" >\n    <div class=\"data-detail-title flex text-sm\" >\n      <mat-icon class=\"add-text\" svgIcon=\"axo_audio\"></mat-icon> \n      <span  *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n    </div>  \n    <div class=\"audio-container text-center\"> \n      <audio controls controlsList=\"nodownload noplaybackrate\">\n        <source [src]=\"baseUrl + '/images/media/app_data/' + widgetValue\" type=\"audio/ogg\">\n    </audio>       \n    </div>\n  </ng-container>\n  <ng-template #isWidgetValueEmpty>\n      <div class=\"data-detail-title flex text-sm\">\n          <mat-icon class=\"add-text\" svgIcon=\"axo_audio\"></mat-icon> \n          <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n      <span class=\"flex justify-start\">-</span>\n\n  </ng-template>\n</div>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport _ from 'lodash';\nimport { AxAudio } from '../../../../forms/page/widgets/ax-audio';\n\n@Component({\n  selector: 'lib-audio-widget-view',\n  templateUrl: './audio-widget-view.component.html',\n  styleUrls: ['./audio-widget-view.component.scss']\n})\nexport class AudioWidgetViewComponent implements OnInit {\n       /*\n  * widget object\n  */\n  @Input() widget: AxAudio;\n  @Input()baseUrl: string;\n  widgetValue: string = '';\n\n  constructor() { }\n\n  ngOnInit(): void {\n    if(this.widget.value  ){\n      this.widgetValue = AxoUtils.removeSlashFromImageUrl(this.widget.value);\n    }\n  }\n\n}\n","<div class=\"column1\">\n    <div class=\"data-detail-info\" *ngIf=\"widget.value\">\n        <div class=\"data-detail-title\"><mat-icon class=\"add-text\" svgIcon=\"axo_autoNumber\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n         </div>\n         <div class=\"data-detail-text text-sm\"> {{widget.value}}</div>\n      </div>\n      <ng-container *ngIf=\"!widget.value\" >\n        <span class=\"flex justify-start\">-</span>\n     </ng-container>\n  </div>\n \n","import { Component, Input, OnInit } from '@angular/core';\nimport { AutoNumber } from '../../../../forms/page/widgets/auto-number';\n\n@Component({\n    selector: 'lib-auto-number-widget-view',\n    templateUrl: './auto-number-widget-view.component.html',\n    styleUrls: ['./auto-number-widget-view.component.scss']\n})\nexport class AutoNumberWidgetViewComponent implements OnInit {\n    /*\n     * widget object\n     */\n    @Input() widget: AutoNumber;\n\n    //widgetValue: TextValue;\n\n    constructor() {}\n\n    ngOnInit(): void {\n        //this.widgetValue = widget.value;\n        ////this.widgetValue = this.widget.value as string;\n    }\n}\n"," <div class=\"data-detail-info\">\n  <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n      <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_barcode\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n      <div class=\"data-detail-text text-sm\"> {{widgetValue}}</div> \n  </ng-container>\n  <ng-template #isWidgetValueEmpty>\n      <div class=\"data-detail-title flex text-sm\">\n          <mat-icon class=\"add-text\" svgIcon=\"axo_barcode\"></mat-icon> \n          <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n      <span class=\"flex justify-start\">-</span>\n  </ng-template>\n  <!-- If location is enabled icon for triggering map-dialog get visible-->\n    <div class=\"icon-container\">\n        <div *ngIf=\"widget.subType === WidgetSubTypes.scan_with_location && widget.captureLocation && showMap\" class=\"flex items-center location-btn-icon rounded-md\" (click)=\"showLocationView($event); $event.stopPropagation();\">\n            <mat-icon [svgIcon]=\"'axo_location_red'\" ></mat-icon>\n        </div>       \n    </div>\n</div>\n\n\n","import { Component, Injector, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MapDialogComponent } from '../../../../../lib/map-dialog/map-dialog.component';\nimport { WidgetSubType } from '../../../../../lib/forms/page/common/widget-enums';\nimport { AxoMap } from '../../../../axo-map/axo-map';\nimport { BarCode } from '../../../../forms/page/widgets/bar-code';\n@Component({\n  selector: 'lib-bar-code-widget-view',\n  templateUrl: './bar-code-widget-view.component.html',\n  styleUrls: ['./bar-code-widget-view.component.scss']\n})\nexport class BarCodeWidgetViewComponent implements OnInit {\n\n  /*\n  * widget object\n  */\n  @Input() widget: BarCode;\n  @Input() widgetProperties: BarCode;\n  widgetValue: string = '';\n  locations = new Array<AxoMap>();\n  showMap: boolean = true;\n  dialog: MatDialog;\n\n\n  constructor(private _injector: Injector) {}\n  /**\n   * enum of widget subType\n   */\n   public get WidgetSubTypes(): typeof WidgetSubType {\n    return WidgetSubType;\n  }\n  ngOnInit() {\n    this.widgetValue = this.widget.getWidgetValue();\n    if(this.widget.subType == WidgetSubType.scan_with_location){\n      const value = JSON.parse(this.widgetValue);\n      this.widgetValue = value[0].data;\n      const latitude = value[0]?.location?.lat;\n      const longitude = value[0]?.location?.long;\n      //checks the lat and long value and set showMap value.\n      if((latitude == 0 && longitude==0) || !latitude || !longitude){\n        this.showMap = false;\n      }\n      else{\n        const axoMap = new AxoMap();\n        axoMap.latitude = latitude;\n        axoMap.longitude = longitude;\n        this.locations.push(axoMap);\n        this.showMap = true;\n      }\n    }\n\n  }\n\n  /**\n   * Open location dialog\n   */\n   showLocationView(event): void {\n    this.dialog = this._injector.get(MatDialog);\n    this.dialog.open(MapDialogComponent, {\n      maxWidth: '100vw',\n      maxHeight: '100vh',\n      height: '100%',\n      width: '100%',\n      panelClass: 'location-box-container',\n      data: {\n        locations : this.locations\n      },\n    });\n  }\n  /**\n   * enum of widget subType\n   */\n  public get WidgetSubType(): typeof WidgetSubType {\n    return WidgetSubType;\n  }\n\n}\n","// Detail View Type\nexport enum DetailViewType {\n    FormObjectView = 'form_object_view',\n    SectionView = 'section_view',\n    SectionField=\"section_field\"\n}\n    ","<div  *ngIf=\"section.showPrompt\" class=\"child-record-title flex items-center text-sm\" [ngSwitch]=\"widget.subType\">\n    <div class=\"flex items-start\"> <mat-icon class=\"add-text\" svgIcon=\"axo_child_records\"></mat-icon></div>\n    <div>{{widget.prompt}}</div>\n</div>  \n\n<div *ngFor=\"let child of widget?.value\">    \n    <div class=\"accordion child-record\" (click)=\"$event.stopPropagation()\">\n        <div class=\"accordion-item bg-white border border-gray-200\">\n            <div class=\"accordion-header mb-0 sm:py-4 sm:pl-10 sm:pr-2 p-4\" id=\"accordionHeading\" data-bs-toggle=\"collapse\" (click)=\"toggleAccordion(accordionToggle,child.Id,section.childSectionId)\" [attr.data-bs-target]=\"'#'+section.widget.identifier+'_'+child.Id+'_'+section.childSectionId\">\n              <div class=\"data-detail-info\">\n                <div class=\"children-title text-sm\" >\n                    \n                    <mat-icon class=\"add-text child-record-icon\" svgIcon=\"axo_child_records\"></mat-icon> \n                    <span class=\"child-recordTitle\">{{child.title}}</span>        \n                    <p class=\"child-record-subtitle m-0\">{{child.subTitle}}</p>\n                </div>\n            </div>\n            <mat-spinner *ngIf=\"childRecordsInProgress[section.widget.identifier+'_'+child.Id]\" class=\"expand-button\" [diameter]=\"15\"></mat-spinner>\n            <button #accordionToggle [id] =\"section.widget.identifier+'_'+child.Id\"   (click)=\"toggleAccordion(accordionToggle,child.Id,section.childSectionId)\" class=\"expand-button\" type=\"button\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#'+section.widget.identifier+'_'+child.Id+'_'+section.childSectionId\" aria-expanded=\"false\"\n               [attr.aria-controls]=\"section.widget.identifier+'_'+child.Id+'_'+section.childSectionId\">\n                <img *ngIf=\"!expandedChildRecords[section.widget.identifier+'_'+child.Id] && !childRecordsInProgress[section.widget.identifier+'_'+child.Id]\" class=\"child-expand-icon\" alt=\"\" src=\"assets/icons/axo/expand_icon.svg\">\n                <img *ngIf=\"expandedChildRecords[section.widget.identifier+'_'+child.Id]\" class=\"child-expand-icon\" alt=\"\" src=\"assets/icons/axo/collapse_icon.svg\">\n\n            </button>\n            <img *ngIf=\"expandedChildRecords[section.widget.identifier+'_'+child.Id]\" class=\"child-expanded-icon\" alt=\"\" src=\"assets/icons/axo/expanded_arrow.svg\">\n            </div>\n            <div #accordionBody [id]=\"section.widget.identifier+'_'+child.Id+'_'+section.childSectionId\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordionHeading\">\n            <div class=\"accordion-body\" *ngIf=\"childRecordsDetailView[child.Id]\" >\n                <dynamic-data-view [dataDetailView]=\"childRecordsDetailView[child.Id]\"\n                [baseUrl]=\"baseUrl\" \n                [viewType]=\"detailViewType.FormObjectView\"\n                [axonatorX1Url] =\"axonatorX1Url\"></dynamic-data-view>\n            </div>\n            </div>\n        </div>\n    </div>\n</div>\n<ng-container *ngIf=\"!widget.value || widget.value.length <= 0\" >\n    <div class=\"flex items-center gap-3\">\n        <mat-icon class=\"add-text child-record-icon\" svgIcon=\"axo_child_records\"></mat-icon> \n        <span class=\"flex justify-start\">-</span>\n    </div>\n</ng-container>\n\n\n","import { Component, ElementRef, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { SectionField } from '../../../../forms/page/data-detail-view/section-field';\nimport { DataDetailViewDto } from '../../data-detail-view-dto';\nimport { FormObjectViewService } from '../../form-object-view.service';\nimport { ChildRecord } from '../../../../forms/page/widgets/child-record';\nimport { DetailViewType } from '../../../../forms/page/common/detail-view-enums';\n\n@Component({\n  selector: 'lib-child-records-widget-view',\n  templateUrl: './child-records-widget-view.component.html',\n  styleUrls: ['./child-records-widget-view.component.scss'],\n  encapsulation : ViewEncapsulation.None\n})\nexport class ChildRecordsWidgetViewComponent implements OnInit {\n  childRecordsDetailView: Map<string,DataDetailViewDto> = new Map<string,DataDetailViewDto>();\n  expandedChildRecords: Map<string,boolean> = new Map<string,boolean>();\n  childRecordsInProgress: Map<string,boolean> = new Map<string,boolean>();\n  isExpanded: boolean;\n\n  /*\n  * widget object\n  */\n    @Input() widget: ChildRecord;\n    section: SectionField;\n    @Input() axonatorX1Url: string;\n    detailViewType: any=Object.assign({},DetailViewType);\n\n  constructor(       \n    private _formObjectViewService: FormObjectViewService,\n    ) { }\n\n  ngOnInit(): void {\n    this.section.showPrompt = this.section.showPrompt;\n  }\n\n  toggleAccordion(accordionToggle: HTMLElement, formobjectId: string, childSectionId: number): void{\n    \n    if(!(formobjectId in this.childRecordsDetailView)){\n      this.childRecordsInProgress[accordionToggle.id] = true;\n      this._formObjectViewService.createDataDetailView(childSectionId,formobjectId,Number(this.widget.childFormId),this.axonatorX1Url).then((dataDetailSection)=>{\n        this.childRecordsDetailView[formobjectId] = dataDetailSection;\n        this.expandedChildRecords[accordionToggle.id] = accordionToggle.ariaExpanded == 'true';\n        this.childRecordsInProgress[accordionToggle.id] = false;\n      })\n    }\n    else\n      this.expandedChildRecords[accordionToggle.id] = accordionToggle.ariaExpanded == 'true';\n  }\n}\n","\n\n    \n      \n    <div *ngIf=\"widget.subType == widgetSubType.referenceList\" [ngClass]=\"{'referenceList':widget.subType == widgetSubType.referenceList}\">\n\n      <div *ngFor=\"let choice of widget?.value\">    \n        <div class=\"accordion\">\n          <div class=\"accordion-item bg-white border border-gray-200 relative\" (click)=\"toggleAccordion(accordionToggle,choice.formObjectId,section.childSectionId)\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#'+section.widget.identifier+'_'+choice.formObjectId+'_'+section.childSectionId\">\n              <div class=\"accordion-header mb-0 sm:px-10 p-3\" id=\"accordionHeading\">\n                  <div class=\"flex gap-2 items-center justify-start\">\n                    <div class=\"col-4\">\n                      <img class=\"thumbnail h-10 w-10\" alt=\"...\" [src]=\"baseUrl +  removeSlashFromImageUrl(choice.picture)\" />\n                    </div>\n                    <div class=\"col-6 flex items-start justify-start align-middle gap-y-1.5 flex-col\">\n                      <p class=\"choice-list-title m-0\">{{choice.formObjectTitle}}</p>\n                      <p class=\"choice-list-subtitle m-0\">{{choice.formObjectSubTitle}}</p>\n                    </div>\n                  </div>\n              <mat-spinner *ngIf=\"choiceRecordsInProgress[section.widget.identifier+'_'+choice.formObjectId]\" class=\"expand-button\" [diameter]=\"15\"></mat-spinner>\n              <button #accordionToggle [id]=\"section.widget.identifier+'_'+choice.formObjectId\" (click)=\"toggleAccordion(accordionToggle,choice.formObjectId,section.childSectionId)\" class=\"expand-button\" type=\"button\" data-bs-toggle=\"collapse\" [attr.data-bs-target]=\"'#'+section.widget.identifier+'_'+choice.formObjectId+'_'+section.childSectionId\" aria-expanded=\"false\"\n                 [attr.aria-controls]=\"section.widget.identifier+'_'+choice.formObjectId+'_'+section.childSectionId\">\n                  <img *ngIf=\"!expandedChoiceRecords[section.widget.identifier+'_'+choice.formObjectId] && !choiceRecordsInProgress[section.widget.identifier+'_'+choice.formObjectId]\" class=\"child-expande-icon sm:w-4 w-3\" alt=\"\" src=\"assets/icons/axo/expand_icon.svg\">\n                  <img *ngIf=\"expandedChoiceRecords[section.widget.identifier+'_'+choice.formObjectId]\" class=\"child-expand-icon sm:w-4 w-3\" alt=\"\" src=\"assets/icons/axo/collapse_icon.svg\">\n              </button>\n              <img *ngIf=\"expandedChoiceRecords[section.widget.identifier+'_'+choice.formObjectId]\" class=\"child-expanded-icon sm:w-4 w-3\" alt=\"\" src=\"assets/icons/axo/expanded_arrow.svg\">\n              </div>\n              <div #accordionBody [id]=\"section.widget.identifier+'_'+choice.formObjectId+'_'+section.childSectionId\" class=\"accordion-collapse collapse\" aria-labelledby=\"accordionHeading\">\n                <div class=\"accordion-body sm:p-3 py-3\"   *ngIf=\"choiceListDetailView[choice.formObjectId]\" >\n                    <dynamic-data-view [dataDetailView]=\"choiceListDetailView[choice.formObjectId]\"\n                    [baseUrl]=\"baseUrl\" \n                    [viewType]=\"detailViewType.FormObjectView\"\n                    [axonatorX1Url] =\"axonatorX1Url\"></dynamic-data-view>\n                </div>\n                </div>\n          </div>\n      </div>\n        </div>\n    </div>\n\n    <div class=\"data-detail-info\">\n      <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n          <div class=\"data-detail-title flex text-sm\" *ngIf=\"widget.subType == widgetSubType.fixedList || widget.subType == widgetSubType.imageFixedList\">\n              <mat-icon class=\"add-text\" svgIcon=\"axo_choice_list\"></mat-icon> \n              <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n              <div class=\"choice-list-view-container\">\n                <mat-list *ngFor=\"let item of widget.value;let i =index\" role=\"list\">\n                  <mat-list-item title=\"{{item}}\" role=\"listitem\">{{item }}<span *ngIf=\"i !== widget.value.length-1\">,</span>&nbsp;</mat-list-item>\n                </mat-list>\n              </div>\n          </div>\n          \n      </ng-container>\n      <ng-template #isWidgetValueEmpty>\n          <div class=\"data-detail-title flex text-sm\">\n              <mat-icon class=\"add-text\" svgIcon=\"axo_choice_list\"></mat-icon> \n              <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n          </div>\n          <span class=\"flex justify-start\">-</span>\n  \n      </ng-template>\n  </div>\n\n\n    <div *ngIf=\"widget.subType == widgetSubType.apiList\">\n\n\n    </div>\n \n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ChoiceList } from '../../../../forms/page/widgets/choicelist';\nimport { SectionField } from '../../../../forms/page/data-detail-view/section-field';\nimport { DataDetailViewDto } from '../../data-detail-view-dto';\nimport { FormObjectViewService } from '../../form-object-view.service';\nimport { WidgetSubType } from '../../../../forms/page/common/widget-enums';\nimport { DetailViewType } from '../../../../forms/page/common/detail-view-enums';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\n\n@Component({\n  selector: 'lib-choice-list-widget-view',\n  templateUrl: './choice-list-widget-view.component.html',\n  styleUrls: ['./choice-list-widget-view.component.scss'],\n  encapsulation : ViewEncapsulation.None\n})\nexport class ChoiceListWidgetViewComponent implements OnInit {\n  @Input() widget: ChoiceList;\n  @Input() baseUrl: string;\n  @Input() axonatorX1Url: string;\n\n\n  detailViewType: any=Object.assign({},DetailViewType);\n  widgetValue: any;\n  section: SectionField;\n  widgetSubType: any=Object.assign({},WidgetSubType);\n  choiceListDetailView: Map<string,DataDetailViewDto> = new Map<string,DataDetailViewDto>();\n  expandedChoiceRecords: Map<string,boolean> = new Map<string,boolean>();\n  choiceRecordsInProgress: Map<string,boolean> = new Map<string,boolean>();\n  constructor(       \n    private _formObjectViewService: FormObjectViewService,\n   ) { }\n  ngOnInit() {\n    this.widgetValue = this.widget.getWidgetValue();\n    this.section.showPrompt = this.section.showPrompt;\n  }\n  removeSlashFromImageUrl(url):string{\n    return AxoUtils.removeSlashFromImageUrl(url);\n  }\n  \n  toggleAccordion(accordionToggle: HTMLElement, formobjectId: string, childSectionId: number): void{\n    if(!(formobjectId in this.choiceListDetailView)){\n      this.choiceRecordsInProgress[accordionToggle.id] = true;\n      this._formObjectViewService.createDataDetailView(childSectionId,formobjectId,Number(this.widget.referenceForm),this.axonatorX1Url).then((dataDetailSection)=>{\n        this.choiceListDetailView[formobjectId] = dataDetailSection;\n        this.expandedChoiceRecords[accordionToggle.id] = accordionToggle.ariaExpanded == 'true';\n        this.choiceRecordsInProgress[accordionToggle.id] = false;\n      })\n    }\n    else\n      this.expandedChoiceRecords[accordionToggle.id] = accordionToggle.ariaExpanded == 'true';\n\n  }\n}\n","<div class=\"data-detail-info\" *ngIf=\"widget.value ;else isWidgetValueEmpty\">\n    <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_counter\"></mat-icon>  <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span></div>\n    <div class=\"data-detail-text text-sm\"> {{widget.value}}\n        <span class=\"pl-1\" *ngIf=\" widget.unit\">{{widget.unit}}</span>\n    </div>\n    \n  \n</div>\n<ng-template #isWidgetValueEmpty>\n    <div class=\"flex gap-4 items-center\">\n        <div class=\"data-detail-title flex text-sm m-0\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_document\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n    </div>\n    \n\n</ng-template>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Counter } from '../../../../forms/page/widgets/counter';\n\n@Component({\n  selector: 'lib-counter-widget-view',\n  templateUrl: './counter-widget-view.component.html',\n  styleUrls: ['./counter-widget-view.component.scss']\n})\nexport class CounterWidgetViewComponent implements OnInit {\n\n      /*\n  * widget object\n  */\n  @Input() widget: Counter;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n"," <div class=\"data-detail-info\">\n  <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n    <div  class=\"data-detail-title flex text-sm\" [ngSwitch]=\"widget.subType\">\n      <span *ngSwitchCase=\"'date'\" class=\"date-icon\"><mat-icon class=\"add-text\" svgIcon=\"axo_date\"></mat-icon> </span>\n      <span *ngSwitchCase=\"'both'\" class=\"date-icon\"> <mat-icon class=\"add-text\" svgIcon=\"axo_datetime\"></mat-icon></span>\n      <span *ngSwitchCase=\"'time'\" class=\"date-icon\"> <mat-icon class=\"add-text\" svgIcon=\"axo_time\"></mat-icon></span>\n      <span *ngSwitchCase=\"'date_range'\" class=\"date-icon\"><mat-icon class=\"add-text\" svgIcon=\"axo_datetime\"></mat-icon> </span>\n      <span *ngSwitchDefault class=\"date-icon\"><mat-icon class=\"add-text\" svgIcon=\"axo_datetime\"></mat-icon></span>\n      <span *ngIf=\"section.showPrompt\" class=\"date-icon\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n    </div>  \n     <div class=\"data-detail-text text-sm\"> {{widgetValue}}</div>\n  </ng-container>\n  <ng-template #isWidgetValueEmpty>\n      <div class=\"data-detail-title flex text-sm\" [ngSwitch]=\"widget.subType\">\n        <span *ngSwitchCase=\"'date'\" class=\"date-icon\"><mat-icon class=\"add-text\" svgIcon=\"axo_date\"></mat-icon> </span>\n        <span *ngSwitchCase=\"'both'\" class=\"date-icon\"> <mat-icon class=\"add-text\" svgIcon=\"axo_datetime\"></mat-icon></span>\n        <span *ngSwitchCase=\"'time'\" class=\"date-icon\"> <mat-icon class=\"add-text\" svgIcon=\"axo_time\"></mat-icon></span>\n        <span *ngSwitchCase=\"'date_range'\"><mat-icon class=\"add-text\" svgIcon=\"axo_datetime\"></mat-icon> </span>\n        <span *ngSwitchDefault class=\"date-icon\"><mat-icon class=\"add-text\" svgIcon=\"axo_datetime\"></mat-icon></span>\n        <span *ngIf=\"section.showPrompt\" class=\"date-icon\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>  \n      <span class=\"flex justify-start\">-</span>\n\n  </ng-template>\n</div>\n\n\n ","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport moment from 'moment';\nimport { AxoUtils } from '../../../../../lib/axo-utils/axo-utils';\nimport { DateTime } from '../../../../forms/page/widgets/datetime';\n\n@Component({\n  selector: 'lib-date-time-widget-view',\n  templateUrl: './date-time-widget-view.component.html',\n  styleUrls: ['./date-time-widget-view.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class DateTimeWidgetViewComponent implements OnInit {\n\n\n  /*\n* widget object\n*/\n  @Input() widget: DateTime;\n  widgetValue: any;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.widgetValue = this.widget.value;\n    this.changeValueToDateRange();\n  }\n\n  changeValueToDateRange(): void {\n    if (this.widgetValue) {\n      if (this.widget.subType === 'date_range') {\n        this.widgetValue = AxoUtils.formatDateToCustomDateFormat(this.widgetValue.from,'MMMM D, YYYY') + ' to ' +  AxoUtils.formatDateToCustomDateFormat(this.widgetValue.to,'MMMM D, YYYY');\n      }\n      else if(this.widget.subType === 'time'){\n        this.widgetValue = moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString(),'h:mm a').toLocaleString())).format('hh:mm A');\n      }\n      else if(this.widget.subType === 'date'){\n        this.widgetValue = this.widget.dateFormat && this.widget.dateFormat !== ''? moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString()).toLocaleString())).format(AxoUtils.checkFormat(this.widget.dateFormat)):moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString()).toLocaleString())).format(\"MMMM DD YYYY\");\n      }\n      else {\n        this.widgetValue = this.widget.dateFormat && this.widget.dateFormat !== ''? moment(AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString()).toLocaleString())).format(AxoUtils.checkFormat(this.widget.dateFormat)):AxoUtils.formatDateFromUTCToLocal(moment(this.widget.value.toString()).toLocaleString());\n      }\n    }\n\n  }\n\n\n}\n","<div class=\"data-detail-info\" *ngIf=\"widgetValue;\">\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_document\"></mat-icon>\n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n\n        <ng-container [ngSwitch]=\"extension\">\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.pdf class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_pdf1'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.ppt class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_ppt'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.pptx class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_pptx'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.document\n                class=\"full-width h-5 w-4 cursor-pointer\" [svgIcon]=\"'axo_doc'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.txt class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_txt'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.xls class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_xls'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.xlsx class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_xlsx'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.docx class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_docx'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchCase=documentType.html class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_html'\">\n            </mat-icon>\n\n            <mat-icon (click)=\"downloadDocument()\" *ngSwitchDefault class=\"full-width h-5 w-4 cursor-pointer\"\n                [svgIcon]=\"'axo_file'\">\n            </mat-icon>\n        </ng-container>\n</div>\n\n\n    <div class=\"flex gap-3\" *ngIf=\"widgetValue === undefined\">\n        <div class=\"data-detail-title flex m-0\">\n            <mat-icon class=\"doc-icon\" svgIcon=\"axo_document\"></mat-icon>\n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <span class=\"flex justify-start items-center\">-</span>\n    </div>\n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AxDocument } from '../../../../forms/page/widgets/ax-document';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport _ from 'lodash';\nimport { DocumentExtensionType } from '../../../../forms/page/common/widget-enums';\n\n@Component({\n  selector: 'lib-document-widget-view',\n  templateUrl: './document-widget-view.component.html',\n  styleUrls: ['./document-widget-view.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class DocumentWidgetViewComponent implements OnInit {\n\n  /*\n * widget object\n */\n  @Input() widget: AxDocument;\n\n  @Input() baseUrl: string;\n\n  documentType: any = Object.assign({}, DocumentExtensionType);\n  widgetValue: any;\n  extension:any;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    if(this.widget.values && ! _.isEmpty(this.widget.values[0]?.path) ){\n      this.widgetValue = this.widget.values[0];\n      this.extension = this.widget.values[0].extension;\n      this.widgetValue.path = AxoUtils.removeSlashFromImageUrl(this.widget.values[0]?.path);\n    }else if (this.widget.value && ! _.isEmpty(this.widget.value[0]?.name) ){\n      this.widgetValue = this.widget.value[0];\n      this.widgetValue.name = AxoUtils.removeSlashFromImageUrl(this.widget.value[0]?.name);\n      this.extension = AxoUtils.getDocumentExtension(this.widgetValue.name);\n      this.widgetValue.path = '/images/media/app_data/' + this.widgetValue.name;\n    }\n  }\n\n  downloadDocument(){\n    window.open(this.baseUrl + this.widgetValue.path);\n  }\n\n}\n","<ng-container *ngIf=\"widget.value\" >\n<div class=\"data-detail-info\">\n    <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_formula\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n    </div>\n    <div class=\"data-detail-text text-sm\" > {{widget.value}}\n        <span class=\"pl-1\" *ngIf=\" widget.unit && widget.value != '-'\">{{widget.unit}}</span>\n    </div> \n</div>\n</ng-container>\n<ng-container *ngIf=\"!widget.value\" >\n    <span class=\"flex justify-start\">-</span>\n </ng-container>","import { Component, Input, OnInit } from '@angular/core';\nimport { Formula } from '../../../../forms/page/widgets/formula';\n\n@Component({\n  selector: 'lib-formula-widget-view',\n  templateUrl: './formula-widget-view.component.html',\n  styleUrls: ['./formula-widget-view.component.scss']\n})\nexport class FormulaWidgetViewComponent implements OnInit {\n\n  /*\n  * widget object\n  */\n  @Input() widget: Formula;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n    <div class=\"gps-fence-container\" *ngIf=\"widget.value\">\n        <agm-map [latitude]=\"latitude\" [longitude]=\"longitude\" [zoom]=\"zoom\">\n            <agm-marker [latitude]=\"latitude\" [longitude]=\"longitude\" [markerDraggable]=\"false\"></agm-marker>\n            <agm-circle [latitude]=\"latitude\" [longitude]=\"longitude\"\n                [radius]=\"radius\"\n                [fillColor]=\"'red'\"\n                [circleDraggable]=\"false\"\n                [editable]=\"false\">\n            </agm-circle>\n        </agm-map>\n    </div>\n</ng-container>\n<ng-template #isWidgetValueEmpty>\n    <div class=\"data-detail-infoc capture-container\">\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_geofence\"></mat-icon>\n            <span *ngIf=\"section.showPrompt\" class=\"pl-2 text-sm\">{{widgetProperties.prompt}}<span class=\"colon\"> :</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n      </div>\n</ng-template>\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { GeoFence } from '../../../../forms/page/widgets/geofence';\n\n@Component({\n  selector: 'lib-geo-fence-widget-view',\n  templateUrl: './geo-fence-widget-view.component.html',\n  styleUrls: ['./geo-fence-widget-view.component.scss'],\n  encapsulation : ViewEncapsulation.None\n})\nexport class GeoFenceWidgetViewComponent implements OnInit {\n   @Input() widget: GeoFence;\n   @Input() widgetProperties: any;\n  // Google map latitude number\n  latitude: number;\n  // Google map longitude number\n  longitude: number;\n  // Google map zoom level\n  zoom: number = 15;\n  // Google map radius  value\n  radius: number;\n  ngOnInit(): void {\n    // get gps widget value from to gps class \n    if(this.widget.value !== null && this.widget.value.length){\n      this.latitude = this.widget.value[0].centerLocationValue.latitude;\n      this.longitude = this.widget.value[0].centerLocationValue.longitude;\n      this.radius =  this.widgetProperties.widget.radius;\n    }\n  }\n\n}\n","<!--- gps value  content-->\n<ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n    <div class=\"gps-container\" *ngIf=\"widget.value\">\n        <agm-map [zoom]=\"zoom\" [scrollwheel]=\"false\"  [fitBounds]=\"true\" [restriction]=\"restriction\" [minZoom]=\"2\">\n            <ng-container *ngFor=\"let agmOption of agmMangerOption;let indexOfagm=index;\"\n            [ngSwitch]=\"agmOption.type\">\n                <!-----------Markers shapes content-->\n                <ng-conatiner *ngSwitchCase=\"'marker'\">\n                    <ng-conatiner *ngFor=\"let pathsOfMarker of agmOption.path\">\n                        <agm-marker\n                            [agmFitBounds]=\"true\"\n                            [latitude]=\"pathsOfMarker.lat\"\n                            [longitude]=\"pathsOfMarker.lng\"\n                            (markerClick)=\"clickedMarker(infowindow)\">\n                            <agm-info-window #infowindow>\n                                <strong>\n                                    {{agmOption.note}}\n                                </strong>\n                            </agm-info-window>\n                        </agm-marker>\n                    </ng-conatiner>\n                </ng-conatiner>\n                <!-----------Polygon shapes content-->\n                <ng-container *ngSwitchCase=\"'polygon'\">\n                    <agm-polygon\n                        [paths]=\"agmOption.path\"\n                        fillColor=\"#8e8e8e\"\n                        fillOpacity=\".35\"\n                        strokeColor=\"#32a1d0\"\n                        (polyClick)=\"openSnazzyInfoWindow(indexOfagm)\">\n                        <agm-snazzy-info-window\n                            *ngIf=\"agmOption.note\"\n                            [panOnOpen]=\"true\"\n                            [latitude]=\"agmOption.path[0].lat\"\n                            [longitude]=\"agmOption.path[0].lng\"\n                            [closeWhenOthersOpen]=\"true\"\n                            [closeOnMapClick]=\"true\"\n                            [showCloseButton]=\"true\"\n                            [isOpen]=\"agmOption.isOpen\">\n                            <ng-template>\n                                <div>{{agmOption.note}}</div>\n                            </ng-template>\n                        </agm-snazzy-info-window>\n                    </agm-polygon>\n                </ng-container>\n                <!-----------Polyline shapes content-->\n                <ng-conatiner *ngSwitchCase=\"'polyline'\">\n                    <agm-polyline (lineClick)=\"openSnazzyInfoWindow(indexOfagm)\">\n                        <ng-container *ngFor=\"let polylinePath of agmOption.path\">\n                            <agm-polyline-point [latitude]=\"polylinePath.lat\" [longitude]=\"polylinePath.lng\">\n                            </agm-polyline-point>\n                        </ng-container>\n                        <agm-snazzy-info-window\n                            *ngIf=\"agmOption.note\"\n                            [panOnOpen]=\"true\"\n                            [latitude]=\"agmOption.path[0].lat\"\n                            [longitude]=\"agmOption.path[0].lng\"\n                            [closeWhenOthersOpen]=\"true\"\n                            [closeOnMapClick]=\"true\"\n                            [showCloseButton]=\"true\"\n                            [isOpen]=\"agmOption.isOpen\">\n                            <ng-template>\n                                <div>{{agmOption.note}}</div>\n                            </ng-template>\n                        </agm-snazzy-info-window>\n                    </agm-polyline>\n                </ng-conatiner>\n            </ng-container>\n        </agm-map>\n    </div>\n</ng-container>\n<!--- gps value empty content-->\n<ng-template #isWidgetValueEmpty>\n    <div class=\"data-detail-infoc capture-container\">\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_location\"></mat-icon>\n            <span *ngIf=\"section.showPrompt\" class=\"pl-2 text-sm\">{{widget.prompt}}<span class=\"colon\"> :</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n    </div>\n</ng-template>\n","\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { GPSWidgetValue } from '../../../../forms/page/widgets/widget-value/gps-widget-value';\nimport { GPS } from '../../../../forms/page/widgets/gps';\nimport { MapRestriction } from '@agm/core/services/google-maps-types';\ndeclare const google: any;\n@Component({\n  selector: 'lib-gps-widget-view',\n  templateUrl: './gps-widget-view.component.html',\n  styleUrls: ['./gps-widget-view.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class GpsWidgetViewComponent implements OnInit {\n  //input widget\n  @Input() widget: GPS;\n  // Google map latitude number\n  latitude: number;\n  // Google map longitude number\n  longitude: number;\n  // Google map zoom level\n  zoom: number;\n  // widget value of gps\n  widgetValue: Array<GPSWidgetValue>;\n  // Gps Polyline object\n  polylineOptions = [];\n  // Gps polygon object\n  polygonOptions = [];\n  // Gps Point  object\n  markerOptions = [];\n  // Common object create for agm shapes value\n  agmMangerOption = [];\n\n  previous: any;\n\n  restriction :  MapRestriction = {\n    latLngBounds: {\n      north: 85,\n      south: -85,\n      east: 179.99,\n      west: -179.99,\n    },\n  };\n  ngOnInit(): void {\n    // get gps widget value from to gps class\n    this.widgetValue = this.widget.getWidgetValue();\n    if (this.widgetValue && this.widgetValue.length) {\n      this.latitude = this.widget.value[0].value[0].latitude;\n      this.longitude = this.widget.value[0].value[0].longitude;\n      const zoomLevel = parseInt(this.widget.mapZoomLevel);\n      this.zoom = zoomLevel?zoomLevel:22;\n      this.setWidgetShapesValue();\n    }\n  }\n  /**\n   * Set widget latitude and longitude to agm drwaing\n   */\n  setWidgetShapesValue(): void {\n    this.widgetValue.forEach((pathOfShapes) => {\n      const polygonPath = [];\n      pathOfShapes.value.forEach((path: any) => {\n        const pathLatLong = { lng: path.longitude, lat: path.latitude };\n        polygonPath.push(pathLatLong);\n      });\n      this.agmMangerOption.push({ type: pathOfShapes.type, note: pathOfShapes.note, path: polygonPath, isOpen: false });\n    });\n  }\n  /**\n   * open marker tooltip\n   *\n   * @param infowindow\n   */\n  clickedMarker(infowindow) {\n    if (this.previous) {\n      this.previous.close();\n    }\n    this.previous = infowindow;\n  }\n\n  /**\n   * Open shapes note message in tooltip\n   *\n   * @param indexOfagm\n   */\n  openSnazzyInfoWindow(indexOfagm: number): void {\n    this.agmMangerOption[indexOfagm].isOpen = !this.agmMangerOption[indexOfagm].isOpen;\n    this.agmMangerOption.forEach((agmValue, agmIndex) => {\n      if (agmIndex === indexOfagm) {\n        this.latitude = agmValue.path[0].lat;\n        this.longitude = agmValue.path[0].lng;\n        agmValue.isOpen = true;\n      } else {\n        agmValue.isOpen = false;\n      }\n    });\n  }\n  \n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { GroupHeader } from '../../../../forms/page/widgets/group-header';\n\n@Component({\n  selector: 'lib-group-header-widget-view',\n  templateUrl: './group-header-widget-view.component.html',\n  styleUrls: ['./group-header-widget-view.component.scss']\n})\nexport class GroupHeaderWidgetViewComponent implements OnInit {\n\n    /*\n  * widget object\n  */\n    @Input() widget: GroupHeader;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n  <div class=\"data-detail-title flex text-sm m-0\" *ngIf=\"section.showPrompt\">\n    <mat-icon class=\"add-text\" svgIcon=\"axo_image\"></mat-icon> \n    <span>{{widget.prompt}}<span class=\"colon\"> :</span></span>\n</div>\n<div class=\"w-full customscroll capture-container py-2 pr-2\" *ngIf=\"widgetValue.length>0\">\n  <div class=\"data-detail\" *ngFor=\"let imageWidget of widgetValue; let i=index\">\n    <div class=\"capture-data-container relative text-center rounded\">\n      <img [src]=\"baseUrl + imageWidget.thumbnail\" class=\"capture-image\" alt=\"...\" />\n      <div class=\"image-overlay\">\n        <a *ngIf=\"widgetValue.longitude !== null && widgetValue.latitude !==null\"  target=\"_blank\">  \n        <mat-icon svgIcon=\"axo_location_outline\" (click)=\"showImageMapView(imageWidget)\" ></mat-icon>\n        </a>\n        <a target=\"_blank\"> \n         <mat-icon svgIcon=\"axo_eye_outline\" (click)=\"showAnnotationImage(widget.identifier,i)\"></mat-icon>\n        </a>\n      </div>\n    </div>\n    </div></div>\n  </ng-container>\n  <ng-template #isWidgetValueEmpty>\n    <div class=\"data-detail-info capture-container\">\n      <mat-icon class=\"add-text\" svgIcon=\"axo_image\"></mat-icon> \n      <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      <span class=\"flex justify-start\">-</span>\n    </div>\n  </ng-template>\n      \n  \n      \n\n\n  \n","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AxImage } from '../../../../forms/page/widgets/ax-image';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport _ from 'lodash';\nimport { FormObjectViewService } from '../../form-object-view.service';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ImageWidgetLightboxViewComponent } from './image-widget-lightbox-view/image-widget-lightbox-view.component';\nimport { ImageAnnotationDataDto } from './image-annotation-data-dto';\nimport { ImageMapViewComponent } from './image-map-view/image-map-view.component';\nimport { ImageWidgetValue } from '../../../../forms/page/widgets/widget-value/image-widget-value';\nimport { ActivatedRoute, ParamMap } from '@angular/router';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n\n@Component({\n  selector: 'lib-image-widget-view',\n  templateUrl: './image-widget-view.component.html',\n  styleUrls: ['./image-widget-view.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class ImageWidgetViewComponent implements OnInit {\n  @Input() widget: AxImage;\n  @Input() widgetProperties: AxImage;\n  @Input() baseUrl: string;\n  @Input() axonatorX1Url: string;\n  @Input() formObjectId: string;\n  dialog: MatDialog;\n\n  widgetValue: Array<ImageWidgetValue>;\n  annotationData: ImageAnnotationDataDto;\n  showAnnotationView: boolean;\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  constructor(private _formObjectViewService: FormObjectViewService,\n    private _injector: Injector, private _route: ActivatedRoute) { }\n\n  ngOnInit(): void {\n    this.widgetValue = this.widget.getWidgetValue();\n    if (this.widgetValue && this.widgetValue.length > 0) {\n      this.widgetValue = this.widgetValue.map((imageValue) => {\n        imageValue.thumbnail = AxoUtils.removeSlashFromImageUrl(imageValue.thumbnail);\n        return imageValue;\n      });\n    }\n  }\n\n /**\n   * Get Image Annotation Data using widget identifier\n   */\n  showAnnotationImage(imgIdentifier, index): void {\n    const formData = new FormData();\n    this.annotationData = new ImageAnnotationDataDto();\n    this.annotationData.baseUrl = this.baseUrl;\n    this.annotationData.widget = this.widget;\n    this.annotationData.widgetProperties = this.widgetProperties;\n    this.annotationData.selectedImageId = index;\n    formData.append('foid', this.formObjectId);\n    formData.append('img_identifier', imgIdentifier);\n    this._formObjectViewService.getImageFieldWithAnnotations(formData, this.axonatorX1Url).then((data) => {\n      data.baseUrl = this.annotationData.baseUrl;\n      data.selectedImageId = this.annotationData.selectedImageId;\n      this.annotationData = data;\n      this.showAnnotationView = true;\n      this.showImageViewWithAnnotation();\n    });\n  }\n\n\n  /**\n   * Open Image view  dialog\n   */\n  showImageViewWithAnnotation(): void {\n    this.dialog = this._injector.get(MatDialog);\n    this.dialog.open(ImageWidgetLightboxViewComponent, {\n      height: '80vh',\n      width: '80vw',\n      maxWidth:'100vw',\n      panelClass: 'imagelightbox-container',\n      data: this.annotationData\n    })\n  }\n\n  /**\n   * Open Image map location dialog\n   */\n  showImageMapView(imageWidget: ImageWidgetValue): void {\n    this.dialog = this._injector.get(MatDialog);\n    this.dialog.open(ImageMapViewComponent, {\n      maxWidth: '100vw',\n      maxHeight: '100vh',\n      height: '100%',\n      width: '100%',\n      panelClass: 'image-map-box-container',\n      data: {\n        latitude: imageWidget.latitude,\n        longitude: imageWidget.longitude,\n        zoom: 12\n      },\n    });\n  }\n\n  ngOnDestroy(): void\n  {\n      // Unsubscribe from all subscriptions\n      this._unsubscribeAll.next();\n      this._unsubscribeAll.complete();\n  }\n\n}\n","\n<ng-container *ngIf=\"widget.value\" >\n  <div class=\"data-detail-info\">\n      <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_text\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n      <div class=\"data-detail-text text-sm\"> {{widgetValue}}</div> \n  </div>\n\n<ng-container *ngIf=\"!widgetValue\" >\n    <span class=\"flex justify-start\">-</span>\n  </ng-container>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Language } from '../../../../forms/page/widgets/languages';\n\n@Component({\n  selector: 'lib-language-widget-view',\n  templateUrl: './language-widget-view.component.html',\n  styleUrls: ['./language-widget-view.component.scss']\n})\nexport class LanguageWidgetViewComponent implements OnInit {\n\n   /*\n  * widget object\n  */\n   @Input() widget: Language;\n   widgetValue : string;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.ChangeValueToLanguageName();\n  }\n  ChangeValueToLanguageName(){\n    if(this.widget.value){\n      this.widgetValue =  ((typeof this.widget.value )=== \"object\") ? this.widget.value[\"name\"] :  this.widget.value[0].name;\n    }\n    \n  }\n  \n\n}\n","\n  <div class=\"data-detail-info\">\n    <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n      <div class=\"data-detail-title flex text-sm\"   ><mat-icon class=\"add-text\" svgIcon=\"axo_qrcode\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n      <div class=\"data-detail-text text-sm\"> {{widgetValue}}</div> \n         \n    </ng-container>\n    <ng-template #isWidgetValueEmpty>\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_qrcode\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n    </ng-template>\n      <!-- If location is enabled icon for triggering map-dialog get visible-->\n      <div class=\"icon-container\">\n        <div *ngIf=\"widget.subType === WidgetSubType.scan_with_location && widget.captureLocation && showMap\" class=\"flex items-center location-btn-icon rounded-md\" (click)=\"showLocationView($event); $event.stopPropagation();\">\n            <mat-icon [svgIcon]=\"'axo_location_red'\" ></mat-icon>\n        </div>       \n    </div>\n  </div>\n<!-- If location is enabled map with marker get visible-->\n  <!-- <div *ngIf=\"widget.subType == 'scan_with_location' && widget.captureLocation && showMap\" class=\"location-container items-center rounded-md  mt-4\">\n    <axo-map [locations]=\"locations\"></axo-map>\n  </div> -->\n  \n  ","import { Component, Injector, Input, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { WidgetSubType } from '../../../../../lib/forms/page/common/widget-enums';\nimport { AxoMap } from '../../../../axo-map/axo-map';\nimport { QrCode } from '../../../../forms/page/widgets/qr-code';\nimport { MapDialogComponent } from '../../../../../lib/map-dialog/map-dialog.component';\n\n@Component({\n  selector: 'lib-qr-code-widget-view',\n  templateUrl: './qr-code-widget-view.component.html',\n  styleUrls: ['./qr-code-widget-view.component.scss']\n})\nexport class QrCodeWidgetViewComponent implements OnInit {\n\n/*\n  * widget object\n  */\n  @Input() widget: QrCode;\n  dialog: MatDialog;\n\n\n  widgetValue: string = '';\n  locations = new Array<AxoMap>();\n  showMap: boolean = false;\n  constructor(private _injector: Injector) { }\n\n  ngOnInit(): void {\n    this.widgetValue = this.widget.getWidgetValue();\n    if(this.widget.subType == WidgetSubType.scan_with_location){\n      const value = JSON.parse(this.widgetValue);\n      this.widgetValue = value[0].data;\n      const latitude = value[0]?.location?.lat;\n      const longitude = value[0]?.location?.long;\n      //checks the lat and long value and set showMap value.\n      if((latitude == 0 && longitude==0) || !latitude || !longitude){\n        this.showMap = false;\n      }\n      else{\n        const axoMap = new AxoMap();\n        axoMap.latitude = latitude;\n        axoMap.longitude = longitude;\n        this.locations.push(axoMap);\n        this.showMap = true;\n      }\n\n    }\n  }\n  /**\n   * Open location dialog\n   */\n   showLocationView(event): void {\n    this.dialog = this._injector.get(MatDialog);\n    this.dialog.open(MapDialogComponent, {\n      maxWidth: '100vw',\n      maxHeight: '100vh',\n      height: '100%',\n      width: '100%',\n      panelClass: 'location-box-container',\n      data: {\n        locations : this.locations\n      },\n    });\n  }\n\n  /**\n   * enum of widget subType\n   */\n  public get WidgetSubType(): typeof WidgetSubType {\n    return WidgetSubType;\n  }\n}\n","\n    <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n    <div class=\"data-detail-info\" fxLayoutAlign=\"end start\">\n      <div class=\"flex justify-between w-full gap-4\">\n        <div class=\"flex gap-4\">\n        <mat-icon class=\"add-text\" svgIcon=\"axo_signature\"></mat-icon> \n        <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n          <div class=\"capture-data-container text-center\" >\n            <img [src]=\"baseUrl + '/images/media/app_data/' +widgetValue\" class=\"capture-image rounded\" alt=\"...\" />\n          </div>\n      </div>\n  </div>\n\n</ng-container>\n            \n      \n<ng-template #isWidgetValueEmpty>\n  <div class=\"data-detail-title m-0\">\n      <mat-icon class=\"add-text\" svgIcon=\"axo_signature\"></mat-icon> \n      <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      <span class=\"flex justify-start\">-</span>\n  </div>\n</ng-template>","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport _ from 'lodash';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport { Signature } from '../../../../forms/page/widgets/signature';\n\n@Component({\n  selector: 'lib-signature-widget-view',\n  templateUrl: './signature-widget-view.component.html',\n  styleUrls: ['./signature-widget-view.component.scss'],\n  encapsulation : ViewEncapsulation.None\n})\nexport class SignatureWidgetViewComponent implements OnInit {\n  @Input() widget: Signature;\n  @Input() baseUrl: string;\n  signatureValue: string;\n  widgetValue: any = null;\n   constructor() { }\n\n   ngOnInit(): void{\n    if(this.widget.value ){\n      this.widgetValue = AxoUtils.removeSlashFromImageUrl(this.widget.value);\n    }\n   }\n\n}\n","<div class=\"data-detail-info\" *ngIf=\"widget.staticMedia\">\n    <div class=\"data-detail-title flex text-sm\">\n        <mat-icon class=\"add-text\" svgIcon=\"axo_static_media\"></mat-icon> <span\n            *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        <div [innerHTML]=\"widget.staticMedia\" class=\"static-media-content\"></div>\n    </div>\n\n    <ng-template *ngIf=\"!widget.staticMedia\">\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_static_media\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n    </ng-template>","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Section } from '../../../../forms/page/data-detail-view/section';\nimport { StaticMedia } from '../../../../forms/page/widgets/static-media';\n\n@Component({\n  selector: 'lib-static-media-widget-view',\n  templateUrl: './static-media-widget-view.component.html',\n  styleUrls: ['./static-media-widget-view.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class StaticMediaWidgetViewComponent implements OnInit {\n\n     /*\n  * widget object\n  */\n     @Input() widget: StaticMedia;\n     section: Section;\n     staticMedia : any;\n\n     constructor() { }\n   \n     ngOnInit(): void {\n       if(this.widget.staticMedia){\n        this.staticMedia = this.widget.staticMedia;\n       }\n     }\n\n}\n","\n  <div class=\"data-detail-info\">\n    <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n        <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_time\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <div class=\"data-detail-text text-sm\"> {{widget.value}}</div> \n    </ng-container>\n    <ng-template #isWidgetValueEmpty>\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_time\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n    </ng-template>\n</div>\n\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StopWatch } from '../../../../forms/page/widgets/stopwatch';\n\n@Component({\n  selector: 'lib-stop-watch-widget-view',\n  templateUrl: './stop-watch-widget-view.component.html',\n  styleUrls: ['./stop-watch-widget-view.component.scss']\n})\nexport class StopWatchWidgetViewComponent implements OnInit {\n\n      /*\n  * widget object\n  */\n      @Input() widget: StopWatch;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<mat-card [ngClass]=\"{ 'border-1 ': section.showBorder}\" fxLayout=\"row wrap\"  fxLayoutAlign=\"start center\" fxFlex=\"100\" class=\"flex-row-gap overflow-hidden\">\n    <ng-container *ngFor=\"let sectionField of section?.sections\">\n      <ng-container *ngIf=\"sectionField.type === sectionType.sectionField\"   class=\"border-box\">\n        <dynamic-data-view      [viewType]=\"detailViewType.SectionField\" [fxFlex.gt-md]=\"sectionField.colSpan\" [fxFlex.lt-md]=\"100\" [sectionField]= \"sectionField\" [baseUrl] =\"baseUrl\" [formObjectId] = \"formObjectId\" [axonatorX1Url] =\"axonatorX1Url\" class=\"flex-width\" ></dynamic-data-view>\n      </ng-container>\n      <ng-container  *ngIf=\"sectionField.type === sectionType.section\"   class=\"border-box\">\n        <dynamic-data-view [viewType]=\"detailViewType.Section\"  [section]= \"sectionField\" fxFlex=\"100\" [baseUrl] =\"baseUrl\" [axonatorX1Url] =\"axonatorX1Url\" [formObjectId] = \"formObjectId\"  class=\"flex-width\"></dynamic-data-view>\n      </ng-container>\n    </ng-container>\n</mat-card>\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Section} from '../../../forms/page/data-detail-view/section';\nimport { SectionType } from '../../../forms/page/common/widget-enums';\nimport { DetailViewType } from '../../../forms/page/common/detail-view-enums';\n\n@Component({\n  selector: 'app-section',\n  templateUrl: './section.component.html',\n  styleUrls: ['./section.component.scss'],\n  encapsulation : ViewEncapsulation.None\n})\nexport class SectionComponent implements OnInit {\n\n  @Input() section: Section;\n  @Input() baseUrl : string;\n  @Input() formObjectId : string;\n  sectionType: any=Object.assign({},SectionType);\n  detailViewType: any=Object.assign({},DetailViewType);\n\n  @Input() axonatorX1Url : string;\n  constructor() { }\n\n  ngOnInit() {\n    this.section.isCollapsible = this.section.isCollapsible;\n  }\n\n  showBorder(){\n    this.section.showPrompt = !this.section?.showPrompt;\n    this.section.showBorder = !this.section?.showBorder;\n  }\n\n}\n","<div *ngIf=\"!section.isCollapsible\"  >\n    <div class=\"data-detail-info\">\n        <div class=\"sub-form-title flex items-center text-sm gap-4 mb-4\"><mat-icon class=\"add-text\" svgIcon=\"axo_subform\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}</span>\n    </div>\n</div>\n<app-section   [section]=\"section\" [baseUrl] =\"baseUrl\" [axonatorX1Url] =\"axonatorX1Url\" [formObjectId]=\"formObjectId\" ></app-section>\n</div>\n\n<mat-accordion *ngIf=\"section.isCollapsible\" >\n    <mat-expansion-panel  class=\"border-1\" id=\"mat-expansion-panel\" [expanded]=\"panelOpenState\">\n    <mat-expansion-panel-header (click)=\"panelOpenState = !panelOpenState\" >\n        <mat-panel-title>\n            <div class=\"data-detail-info\">\n                <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_subform\"></mat-icon> {{widget.prompt}}</div>\n            </div>\n        </mat-panel-title>\n    </mat-expansion-panel-header>\n    <app-section  [section]=\"section\"  [baseUrl] =\"baseUrl\" [axonatorX1Url] =\"axonatorX1Url\" [formObjectId]=\"formObjectId\"></app-section>\n    </mat-expansion-panel>\n<mat-accordion>\n\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Section } from '../../../../forms/page/data-detail-view/section';\nimport { SectionType } from '../../../../forms/page/common/widget-enums';\nimport { SubForm } from '../../../../forms/page/widgets/sub-form';\nimport { DetailViewType } from '../../../../forms/page/common/detail-view-enums';\n@Component({\n  selector: 'lib-sub-form-widget-view',\n  templateUrl: './sub-form-widget-view.component.html',\n  styleUrls: ['./sub-form-widget-view.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class SubFormWidgetViewComponent implements OnInit {\n\n      /*\n  * widget object\n  */\n  @Input() widget: SubForm;\n  section: Section;\n  sectionType: any=Object.assign({},SectionType);\n\n  detailViewType: any=Object.assign({},DetailViewType);\n  panelOpenState: boolean = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.section.isCollapsible = this.section.isCollapsible;\n    this.section.sections = this.section.sections;\n  }\n  toggleAccordion(accordionToggle: HTMLElement): void{\n    this.section.isCollapsible  = accordionToggle.ariaExpanded === 'true';\n  }\n}\n","\n    <div class=\"data-detail-info\">\n        <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n            <div class=\"data-detail-title flex text-sm\">\n                <ng-container [ngSwitch]=\"widget.inputType\">\n                    <mat-icon  *ngSwitchCase=inputType.text class=\"add-text\" svgIcon=\"axo_text\"></mat-icon>\n                    <mat-icon  *ngSwitchCase=inputType.number class=\"add-text\" svgIcon=\"axo_number\"></mat-icon>  \n                    <mat-icon  *ngSwitchCase=inputType.decimal class=\"add-text\" svgIcon=\"axo_decimal\"></mat-icon>\n                    <mat-icon  *ngSwitchCase=inputType.email class=\"add-text\" svgIcon=\"axo_email\"></mat-icon>  \n                    <mat-icon  *ngSwitchCase=inputType.address class=\"add-text\" svgIcon=\"axo_address\"></mat-icon>\n                    <mat-icon  *ngSwitchCase=inputType.phone class=\"add-text\" svgIcon=\"axo_phone\"></mat-icon>  \n                    <mat-icon *ngSwitchDefault class=\"add-text\" svgIcon=\"axo_text\"></mat-icon> \n                </ng-container><span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n            </div>\n            <div class=\"data-detail-text text-sm\"> {{widgetValue}}\n                <span class=\"pl-1\" *ngIf=\" (widget.subType==='numeric' || widget.subType==='decimal') && widget.unit\">{{widget.unit}}</span>\n            </div>\n            \n        </ng-container>\n        <ng-template #isWidgetValueEmpty>\n            <div class=\"data-detail-title flex text-sm\">\n                <mat-icon class=\"add-text\" svgIcon=\"axo_text\"></mat-icon> \n                <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n            </div>\n            <span class=\"flex justify-start\">-</span>\n\n        </ng-template>\n    </div>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TextBox } from '../../../../forms/page/widgets/textbox';\nimport { Section } from '../../../../forms/page/data-detail-view/section';\nimport { TextBoxInputType } from '../../../../forms/page/common/widget-enums';\n\n@Component({\n  selector: 'lib-text-box-widget-view',\n  templateUrl: './text-box-widget-view.component.html',\n  styleUrls: ['./text-box-widget-view.component.scss']\n})\nexport class TextBoxWidgetViewComponent implements OnInit {\n    /*\n  * widget object\n  */\n  @Input() widget: TextBox;\n  section: Section;\n  inputType: any = Object.assign({}, TextBoxInputType);\n  constructor() { }\n  widgetValue : string;\n\n  ngOnInit(): void {\n    this.widgetValue = this.widget.value.toString();\n    if(this.widget.inputType == TextBoxInputType.email && this.widget.allowMultipleEmails){\n      this.widgetValue = (this.widget.value.toString().split(',').join(', ')).trim();\n    }\n  }\n\n  \n}\n","\n  <div class=\"data-detail-info\">\n    <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n      <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_datetime\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n      <div class=\"data-detail-text text-sm\" > {{widgetValue}}</div>\n    </ng-container>\n    <ng-template #isWidgetValueEmpty>\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_datetime\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n\n    </ng-template>\n</div>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { TimeStamp } from '../../../../forms/page/widgets/timestamp';\nimport { Section } from '../../../../forms/page/data-detail-view/section';\nimport { AxoUtils } from '../../../../../lib/axo-utils/axo-utils';\n\n@Component({\n  selector: 'lib-time-stamp-widget-view',\n  templateUrl: './time-stamp-widget-view.component.html',\n  styleUrls: ['./time-stamp-widget-view.component.scss']\n})\nexport class TimeStampWidgetViewComponent implements OnInit {\n\n\n       /*\n  * widget object\n  */\n  @Input() widget: TimeStamp;\n  @Input() widgetProperties: TimeStamp;\n  section: Section;\n  widgetValue: string;\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.widgetValue = this.widget.value;\n    this.CheckFormatAndChangeValue();\n  }\n  CheckFormatAndChangeValue()\n  {\n    if(this.widget.displayDateFormat != \"\"){\n      this.widgetValue = AxoUtils.formatDateToCustomDateFormat(this.widget.value,this.widgetProperties.displayDateFormat);\n    }\n    else{\n      this.widgetValue = this.widget.value;\n    }\n  }\n\n}\n","\n<div class=\"data-detail-info\">\n    <ng-container *ngIf=\"widget.value != null; else isWidgetValueEmpty\" >\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_toggle_button\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <div class=\"data-detail-text text-sm\"> {{widgetValue}}</div> \n    </ng-container>\n    <ng-template #isWidgetValueEmpty>\n        <div class=\"data-detail-title flex text-sm\">\n            <mat-icon class=\"add-text\" svgIcon=\"axo_toggle_button\"></mat-icon> \n            <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <span class=\"flex justify-start\">-</span>\n\n    </ng-template>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Toggle } from '../../../../forms/page/widgets/toggle';\n\n@Component({\n  selector: 'lib-toggle-widget-view',\n  templateUrl: './toggle-widget-view.component.html',\n  styleUrls: ['./toggle-widget-view.component.scss']\n})\nexport class ToggleWidgetViewComponent implements OnInit {\n\n\n    /*\n  * widget object\n  */\n    @Input() widget: Toggle;\n    widgetValue : any;\n  constructor() { }\n\n  ngOnInit(): void {\n    this.widgetValue = this.widget.value === true ? \"Yes\":\"No\";\n  }\n\n}\n","<div class=\"data-detail-info\">\n  <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n      <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_uniqueId\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n      <div class=\"data-detail-text text-sm\"> {{widget.value}}</div> \n  </ng-container>\n  <ng-template #isWidgetValueEmpty>\n    <div class=\"data-detail-title flex text-sm\">\n        <mat-icon class=\"add-text\" svgIcon=\"axo_uniqueId\"></mat-icon> \n        <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n    </div>\n    <span class=\"flex justify-start\">-</span>\n  </ng-template>\n</div>\n    \n","import { Component, Input, OnInit } from '@angular/core';\nimport { UniqueId } from '../../../../forms/page/widgets/unique-id';\n\n@Component({\n  selector: 'lib-unique-id-widget-view',\n  templateUrl: './unique-id-widget-view.component.html',\n  styleUrls: ['./unique-id-widget-view.component.scss']\n})\nexport class UniqueIdWidgetViewComponent implements OnInit {\n    /*\n  * widget object\n  */\n    @Input() widget: UniqueId;\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<ng-container *ngIf=\"widget.value\" >\n    <div class=\"data-detail-info\">\n        <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_text\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n        </div>\n        <div class=\"data-detail-text text-sm\"> {{isVerified}}</div> \n    </div>\n  \n  <ng-container *ngIf=\"!widgetValue\" >\n      <span class=\"flex justify-start\">-</span>\n    </ng-container>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { VerificationWidgetValue } from '../../../../forms/page/widgets/widget-value/verification-widget-value';\nimport { ActionType } from '../../../../forms/page/common/widget-enums';\nimport { Verification } from '../../../../forms/page/widgets/verification';\n\n@Component({\n  selector: 'lib-verification-widget-view',\n  templateUrl: './verification-widget-view.component.html',\n  styleUrls: ['./verification-widget-view.component.scss']\n})\nexport class VerificationWidgetViewComponent implements OnInit {\n  /*\n* widget object\n*/\n  @Input() widget: Verification;\n  widgetValue: VerificationWidgetValue;\n  isVerified : string;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.SetVerificationValue();\n  }\n  SetVerificationValue() {\n    if (this.widget.value) {\n      this.widgetValue = this.widget.getWidgetValue();\n      if(this.widgetValue){\n       if(this.widget.actionType === ActionType.register){\n        this.isVerified = this.widgetValue.found ? \"User Registered\": \"User Not Registered\";\n       }else if(this.widget.actionType === ActionType.verify){\n        this.isVerified = this.widgetValue.found ? \"Verified\": \"Not Verified\";\n       }\n      }\n    }\n\n  }\n}\n","<div class=\"data-detail-info video-detail\">\n  <ng-container *ngIf=\"widgetValue else isWidgetValueEmpty\">\n    <div class=\"video-container text-center flex gap-4\">\n      <!-- <video autoplay=\"false\" loop=\"\" preload=\"none\" controls=\"\" width=\"640\" height=\"480\">\n              <source type=\"video/mp4\" [src]=\"baseUrl + '/images/media/app_data/'+ widgetValue\">\n            </video> -->\n      <div class=\"data-detail-title flex text-sm\">\n        <mat-icon svgIcon=\"axo_video\"></mat-icon>\n        <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n      </div>\n      <span class=\"flex justify-start\">\n        <mat-icon [svgIcon]=\"'axo_video_list'\" class=\"w-7 h-7 cursor-pointer\" (click)=\"showVideoPopUp()\"></mat-icon>\n      </span>\n\n    </div>\n  </ng-container>\n  <ng-template #isWidgetValueEmpty>\n    <div class=\"data-detail-title flex\">\n      <mat-icon class=\"add-text\" svgIcon=\"axo_video\"></mat-icon>\n      <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n    </div>\n    <span class=\"flex justify-start\">-</span>\n\n  </ng-template>\n</div>","import { Component, Injector, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { AxoUtils } from '../../../../axo-utils/axo-utils';\nimport _ from 'lodash';\nimport { Video } from '../../../../forms/page/widgets/video';\nimport { MatDialog } from '@angular/material/dialog';\nimport { FormObjectWidgetMatDialogComponent } from '../../../form-object-list/formObjectWidgetValue/formobject-widget-mat-dialog/formobject-widget-mat-dialog.component';\n\n@Component({\n  selector: 'lib-video-widget-view',\n  templateUrl: './video-widget-view.component.html',\n  styleUrls: ['./video-widget-view.component.scss'],\n  encapsulation : ViewEncapsulation.None\n})\nexport class VideoWidgetViewComponent implements OnInit {\n  @Input() widget: Video;\n  @Input()baseUrl: string;\n  widgetValue: any;\n  dialog: MatDialog;\n  constructor(private _injector: Injector) { }\n\n  ngOnInit(): void {\n    if(this.widget.value.length){\n      this.widgetValue = AxoUtils.removeSlashFromImageUrl(this.widget.value);\n    }\n  }\n\n  showVideoPopUp(): void {\n    if (this.widgetValue !== null) {\n      this.dialog = this._injector.get(MatDialog);\n      this.dialog.open(FormObjectWidgetMatDialogComponent, {\n        height: '80vh',\n        width: '80vw',\n        maxWidth: '100vw',\n        panelClass: 'video-pop-up-box',\n        data: {\n          widget: this.widget,\n          baseUrl: this.baseUrl,\n          widgetValue: '/images/media/app_data/'+ this.widgetValue\n        }\n\n      });\n    }\n  }\n}\n","\n      <div class=\"data-detail-info\">\n        <ng-container *ngIf=\"widget.value; else isWidgetValueEmpty\" >\n          <div class=\"data-detail-title flex text-sm\"><mat-icon class=\"add-text\" svgIcon=\"axo_hyperlink\"></mat-icon> <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n          </div>\n          <div class=\"data-detail-text text-sm\">\n              <a href=\"{{widget.value}}\" target=\"_blank\" rel=\"noopener noreferrer\">{{widget.value}}</a>\n          </div>\n        </ng-container>\n        <ng-template #isWidgetValueEmpty>\n            <div class=\"data-detail-title flex text-sm\">\n                <mat-icon class=\"add-text\" svgIcon=\"axo_hyperlink\"></mat-icon> \n                <span *ngIf=\"section.showPrompt\">{{widget.prompt}}<span class=\"colon\">:</span></span>\n            </div>\n            <span class=\"flex justify-start\">-</span>\n\n        </ng-template>\n    </div>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Link } from '../../../../forms/page/widgets/link';\n\n@Component({\n  selector: 'lib-web-link-widget-view',\n  templateUrl: './web-link-widget-view.component.html',\n  styleUrls: ['./web-link-widget-view.component.scss']\n})\nexport class WebLinkWidgetViewComponent implements OnInit {\n\n  /*\n  * widget object\n  */\n  @Input() widget: Link;\n  //widgetValue: TextValue;\n\n  constructor() {}\n\n  ngOnInit(): void {\n     // this.widgetValue = new TextValue();\n      ////this.widgetValue = this.widget.value as string;\n  }\n\n}\n","import { ApplyGeoFenceWidgetViewComponent } from './apply-geo-fence-widget-view/apply-geo-fence-widget-view.component';\nimport { AudioWidgetViewComponent } from './audio-widget-view/audio-widget-view.component';\nimport { AutoNumberWidgetViewComponent } from './auto-number-widget-view/auto-number-widget-view.component';\nimport { BarCodeWidgetViewComponent } from './bar-code-widget-view/bar-code-widget-view.component';\nimport { ChildRecordsWidgetViewComponent } from './child-records-widget-view/child-records-widget-view.component';\nimport { ChoiceListWidgetViewComponent } from './choice-list-widget-view/choice-list-widget-view.component';\nimport { CounterWidgetViewComponent } from './counter-widget-view/counter-widget-view.component';\nimport { DateTimeWidgetViewComponent } from './date-time-widget-view/date-time-widget-view.component';\nimport { DocumentWidgetViewComponent } from './document-widget-view/document-widget-view.component';\nimport { FormulaWidgetViewComponent } from './formula-widget-view/formula-widget-view.component';\nimport { GeoFenceWidgetViewComponent } from './geo-fence-widget-view/geo-fence-widget-view.component';\nimport { GpsWidgetViewComponent } from './gps-widget-view/gps-widget-view.component';\nimport { GroupHeaderWidgetViewComponent } from './group-header-widget-view/group-header-widget-view.component';\nimport { ImageWidgetViewComponent } from './image-widget-view/image-widget-view.component';\nimport { LanguageWidgetViewComponent } from './language-widget-view/language-widget-view.component';\nimport { PaymentWidgetViewComponent } from './payment-widget-view/payment-widget-view.component';\nimport { QrCodeWidgetViewComponent } from './qr-code-widget-view/qr-code-widget-view.component';\nimport { SignatureWidgetViewComponent } from './signature-widget-view/signature-widget-view.component';\nimport { StaticMediaWidgetViewComponent } from './static-media-widget-view/static-media-widget-view.component';\nimport { StopWatchWidgetViewComponent } from './stop-watch-widget-view/stop-watch-widget-view.component';\nimport { SubFormWidgetViewComponent } from './sub-form-widget-view/sub-form-widget-view.component';\nimport { TextBoxWidgetViewComponent } from './text-box-widget-view/text-box-widget-view.component';\nimport { TimeStampWidgetViewComponent } from './time-stamp-widget-view/time-stamp-widget-view.component';\nimport { ToggleWidgetViewComponent } from './toggle-widget-view/toggle-widget-view.component';\nimport { UniqueIdWidgetViewComponent } from './unique-id-widget-view/unique-id-widget-view.component';\nimport { VerificationWidgetViewComponent } from './verification-widget-view/verification-widget-view.component';\nimport { VideoWidgetViewComponent } from './video-widget-view/video-widget-view.component';\nimport { WebLinkWidgetViewComponent } from './web-link-widget-view/web-link-widget-view.component';\nimport { WidgetType } from '../../../forms/page/common/widget-enums';\n\nexport class WidgetViewTypeHandler{\n\n    public static getWidgetComponent(type: string): any {\n        switch(type){\n            case WidgetType.textBox:\n                return TextBoxWidgetViewComponent;\n            case WidgetType.autoNumber:\n                return AutoNumberWidgetViewComponent;\n            case WidgetType.staticMedia:\n                return StaticMediaWidgetViewComponent;\n            case WidgetType.groupHeader:\n                return GroupHeaderWidgetViewComponent;\n            case WidgetType.choiceList:\n                return ChoiceListWidgetViewComponent;\n            case WidgetType.imageCapture:\n                return  ImageWidgetViewComponent;\n            case WidgetType.document:\n                return DocumentWidgetViewComponent;\n            case WidgetType.signature:\n                return SignatureWidgetViewComponent;\n            case WidgetType.captureGpsLocation:\n                return GpsWidgetViewComponent;\n            case WidgetType.dateTime:\n                return DateTimeWidgetViewComponent;\n            case WidgetType.timeStamp:\n                return TimeStampWidgetViewComponent;\n            case WidgetType.toggle:\n                return ToggleWidgetViewComponent;\n            case WidgetType.barCodeScanner:\n                return BarCodeWidgetViewComponent;\n            case WidgetType.qrCodeScanner:\n                return QrCodeWidgetViewComponent;\n            case WidgetType.counter:\n                return CounterWidgetViewComponent;\n            case WidgetType.formula:\n                return FormulaWidgetViewComponent;\n            case WidgetType.uniqueId:\n                return UniqueIdWidgetViewComponent;\n            case WidgetType.audio:\n                return AudioWidgetViewComponent;\n            case WidgetType.video:\n                return VideoWidgetViewComponent;\n            case WidgetType.subForm:\n                return SubFormWidgetViewComponent;\n            case WidgetType.childRecords:\n                return ChildRecordsWidgetViewComponent;\n            case WidgetType.verification:\n                return VerificationWidgetViewComponent;\n            case WidgetType.language:\n                return LanguageWidgetViewComponent;\n            case WidgetType.geoFence:\n                return GeoFenceWidgetViewComponent;\n            case WidgetType.applyGeoFence:\n                return ApplyGeoFenceWidgetViewComponent; \n             //case WidgetType.payment:\n            //     return PaymentWidgetViewComponent;           \n            case WidgetType.stopWatch:\n                return StopWatchWidgetViewComponent; \n            case WidgetType.hyperLink:\n                return WebLinkWidgetViewComponent;                         \n            default:\n                return TextBoxWidgetViewComponent;\n        }\n    }\n}\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[widgetsHost]'\n})\nexport class FormObjectWidgetViewDirective {\n\n  constructor(public viewContainerRef: ViewContainerRef) { }\n\n}\n","import { Component, ComponentFactoryResolver, Input, OnChanges, OnInit,  SimpleChanges, ViewChild } from '@angular/core';\nimport { SectionField } from '../../../forms/page/data-detail-view/section-field';\nimport { WidgetViewTypeHandler } from './form-object-widget-type-handler';\nimport { FormObjectWidgetViewDirective } from './form-object-widgets-view.directive';\n\n@Component({\n  selector: 'app-form-object-widgets-view',\n  templateUrl: './form-object-widgets-view.component.html',\n  styleUrls: ['./form-object-widgets-view.component.scss']\n})\nexport class FormObjectWidgetsViewComponent implements OnInit ,OnChanges{\n\n  /**\n   * This Element Will Host Reference For Directive\n   */\n   @ViewChild(FormObjectWidgetViewDirective,{static:true}) widgetsHost!: FormObjectWidgetViewDirective;\n   /*\n   * Widgets\n   */\n   @Input() baseUrl :string;\n   @Input() section :SectionField;\n   @Input() axonatorX1Url : string;\n   @Input() formObjectId : string;\n   constructor(private componentFactoryResolver: ComponentFactoryResolver) { }\n\n   ngOnInit(): void {\n    /*\n     * Component Factory Resolver for widget\n     */\n    const componentFactory = this.componentFactoryResolver.resolveComponentFactory(WidgetViewTypeHandler.getWidgetComponent(this.section.widget.type));\n    const viewContainerRef = this.widgetsHost.viewContainerRef;\n    viewContainerRef.clear();\n    const componentRef = viewContainerRef.createComponent<any>(componentFactory);\n    componentRef.instance.widget = this.section.widget;\n    componentRef.instance.section = this.section;\n    componentRef.instance.baseUrl = this.baseUrl;\n    componentRef.instance.axonatorX1Url = this.axonatorX1Url;\n    componentRef.instance.formObjectId = this.formObjectId;\n   }\n   /**\n    * On changes\n    *\n    * @param changes\n    */\n   ngOnChanges(changes: SimpleChanges): void {\n\n\n   }\n}\n","<ng-template widgetsHost ></ng-template>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Payment } from '../../../../forms/page/widgets/payment';\n\n@Component({\n  selector: 'lib-payment-widget-view',\n  templateUrl: './payment-widget-view.component.html',\n  styleUrls: ['./payment-widget-view.component.scss']\n})\nexport class PaymentWidgetViewComponent implements OnInit {\n\n     /*\n  * widget object\n  */\n     @Input() widget: Payment;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<p>payment-widget-view works!</p>\n","\n<div *ngIf=\"!section.isCollapsible\" >\n    <div class=\"data-detail\">\n        <div class=\"data-detail-title flex text-sm\" *ngIf=\"section.showPrompt\">\n            <mat-label>{{section.title}}</mat-label>\n        </div>\n    </div>\n    <ng-container *ngIf=\"section.sections.length\">\n        <app-section  [section]=\"section\" [formObjectId] = \"formObjectId\" [baseUrl] =\"baseUrl\" [axonatorX1Url] =\"axonatorX1Url\"></app-section>\n    </ng-container>\n</div>\n<mat-accordion *ngIf=\"section.isCollapsible\">\n    <mat-expansion-panel>\n        <mat-expansion-panel-header>\n            <mat-panel-title>\n\n                <div class=\"data-detail\">\n                    <div class=\"data-detail-title flex text-sm\" *ngIf=\"section.showPrompt\">\n                        <mat-label>{{section.title}}</mat-label>\n                    </div>\n                </div>\n            </mat-panel-title>\n        </mat-expansion-panel-header>\n\n        <app-section [section]=\"section\" [formObjectId] = \"formObjectId\" [baseUrl] =\"baseUrl\" [axonatorX1Url] =\"axonatorX1Url\"></app-section>\n    </mat-expansion-panel>\n<mat-accordion>\n\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Section} from '../../../forms/page/data-detail-view/section';\nimport { SectionType } from '../../../forms/page/common/widget-enums';\nimport { DetailViewType } from '../../../forms/page/common/detail-view-enums';\n\n@Component({\n  selector: 'app-section-view',\n  templateUrl: './section-view.component.html',\n  styleUrls: ['./section-view.component.scss']\n})\nexport class SectionViewComponent implements OnInit {\n\n  @Input() section: Section;\n  @Input() baseUrl : string;\n  @Input() formObjectId : string;\n  sectionType: any=Object.assign({},SectionType);\n  detailViewType: any=Object.assign({},DetailViewType);\n\n  @Input() axonatorX1Url : string;\n  constructor() { }\n\n  ngOnInit() {\n    this.section.isCollapsible = this.section.isCollapsible;\n  }\n\n  showBorder(){\n    this.section.showPrompt = !this.section?.showPrompt;\n    this.section.showBorder = !this.section?.showBorder;\n  }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { SectionField } from '../../../forms/page/data-detail-view/section-field';\n\n\n\n@Component({\n  selector: 'app-section-field',\n  templateUrl: './section-field.component.html',\n  styleUrls: ['./section-field.component.scss']\n})\nexport class SectionFieldComponent implements OnInit {\n  @Input() sectionField: SectionField;\n  @Input() baseUrl : string;\n  @Input() axonatorX1Url : string;\n  @Input() formObjectId : string;\n  \n  constructor() { }\n\n  ngOnInit() {\n  }\n\n}\n","<div class=\"column1\">\n  <app-form-object-widgets-view [section]= \"sectionField\" [formObjectId] = \"formObjectId\" [baseUrl] =\"baseUrl\" [axonatorX1Url] =\"axonatorX1Url\"  ></app-form-object-widgets-view>\n</div>\n\n","import { Directive, ViewContainerRef } from '@angular/core';\n\n@Directive({\n  selector: '[viewHost]'\n})\nexport class DynamicViewDirective {\n\n  constructor(public viewContainerRef: ViewContainerRef) { }\n\n}\n","import { Component, ComponentFactoryResolver, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\nimport { DetailViewType } from '../../../forms/page/common/detail-view-enums';\nimport { SectionField } from '../../../forms/page/data-detail-view/section-field';\nimport { DataDetailViewDto } from '../data-detail-view-dto';\nimport { FormObjectViewComponent } from '../form-object-view.component';\nimport { SectionFieldComponent } from '../section-field/section-field.component';\nimport { SectionViewComponent } from '../section-view/section-view.component';\nimport { DynamicViewDirective } from './dynamic-view.directive';\nimport { Section} from '../../../forms/page/data-detail-view/section';\n\n\n@Component({\n  selector: 'dynamic-data-view',\n  templateUrl: './dynamic-view.component.html',\n  styleUrls: ['./dynamic-view.component.scss']\n})\nexport class DynamicViewComponent implements OnInit ,OnChanges{\n\n  /**\n   * This Element Will Host Reference For Directive\n   */\n   @ViewChild(DynamicViewDirective,{static:true}) viewHost!: DynamicViewDirective;\n   /*\n   * Widgets\n   */\n   @Input() baseUrl :string;\n   @Input() dataDetailView :DataDetailViewDto;\n   @Input() axonatorX1Url : string;\n   @Input() viewType: DetailViewType;\n   @Input() sectionField: SectionField;\n   @Input() section: Section;\n   @Input() formObjectId : string;\n   \n    componentFactory: any;\n   constructor(private componentFactoryResolver: ComponentFactoryResolver) { }\n\n   ngOnInit(): void {\n    /*\n     * Component Factory Resolver for widget\n     */\n    const viewContainerRef = this.viewHost.viewContainerRef;\n    viewContainerRef.clear();\n  \n    switch(this.viewType){\n      case DetailViewType.FormObjectView:\n        this.componentFactory = this.componentFactoryResolver.resolveComponentFactory(FormObjectViewComponent);\n        break;\n      case DetailViewType.SectionField:\n        this.componentFactory = this.componentFactoryResolver.resolveComponentFactory(SectionFieldComponent);\n        break;\n      case DetailViewType.SectionView:\n        this.componentFactory = this.componentFactoryResolver.resolveComponentFactory(SectionViewComponent);\n        break;\n      default:\n        this.componentFactory = this.componentFactoryResolver.resolveComponentFactory(SectionViewComponent);\n        break;\n\n    }\n    \n    const componentRef = viewContainerRef.createComponent<any>(this.componentFactory);\n    componentRef.instance.sectionField = this.sectionField;\n    componentRef.instance.section = this.section;\n    componentRef.instance.dataDetailView = this.dataDetailView;\n    componentRef.instance.baseUrl = this.baseUrl;\n    componentRef.instance.axonatorX1Url = this.axonatorX1Url;\n    componentRef.instance.formObjectId = this.formObjectId;\n    componentRef.instance.showHeader = false;\n    // componentRef.instance.sectionType = this.viewType;\n\n   }\n   /**\n    * On changes\n    *\n    * @param changes\n    */\n   ngOnChanges(changes: SimpleChanges): void {\n\n\n   }\n}\n","<ng-template viewHost ></ng-template>\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { AxoMapComponent } from './axo-map.component';\nimport { AgmCoreModule } from '@agm/core';\n\n\n\n@NgModule({\n  declarations: [\n    AxoMapComponent\n  ],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    AgmCoreModule.forRoot({\n      apiKey:'AIzaSyBuCjQh5y-9beQUKgRpOvycjbq8AvrybBI',\n      libraries: ['places', 'drawing']\n    }),\n  ],\n  exports:[\n    AxoMapComponent\n  ]\n})\nexport class AxoMapModule { }\n","<ng-container *ngIf=\"section.sections.length\">\n    <mat-card [ngClass]=\"{ 'border-1 ': section.showBorder}\" fxLayout=\"row wrap\"  fxLayoutAlign=\"start center\" fxFlex=\"100\" class=\"flex-row-gap customscroll\">\n        <div class=\"task-details-container\">\n            <div class=\"mat-card-wrapper\">\n                <ng-container *ngFor=\"let sectionField of section?.sections\">\n                    <!-- if its a sectionField type section -->\n                    <ng-container *ngIf=\"sectionField.type === sectionType.sectionField\"   class=\"border-box \">\n                            <!--\n                                this condition basically check the colspan and set the width and flex width accordingly (sectionField.colSpan==100?100:sectionField.colSpan==50?49.75:33)\n                                example:\n                                - if colSpan is 100% than width is 100%\n                                - if colSpan is 50% than width is 49.75% . Row will have 2 columns and the column gap can be 0.5%.\n                                - if colSpan is not 100% or 50% than width is 33% . Row will have 3 columns and the column gap can be 0.5%.\n                            -->\n                            <mat-card  fxLayout=\"row wrap\"  fxLayoutAlign=\"start center\" [fxFlex.gt-md]=\"sectionField.colSpan==100?100:sectionField.colSpan==50?49.75:33\"  fxFlex.lt-md=\"100\" class=\"flex-row-gap border-0 m-0\">\n                                <!-- task detail title -->\n                                <div class=\"task-detail-title\">\n                                    {{taskDetailsMap[sectionField.identifier][1]}}\n                                </div>\n                                <!-- task detail value -->\n                                <div class=\"task-detail-value\">\n                                    <!-- return after converting integer status to stringified status -->\n                                    <ng-container *ngIf=\"sectionField.identifier == MetaFieldsIdentifier.status\">\n                                        {{returnStatus(taskDetailsMap[sectionField.identifier][0])}}\n                                    </ng-container>\n\n                                    <!-- returns the date after formatting -->\n                                    <ng-container *ngIf=\"sectionField.identifier == MetaFieldsIdentifier.date\">\n                                        {{returnFormattedDateValue(taskDetailsMap[sectionField.identifier][0])}}\n                                    </ng-container>\n\n                                    <ng-container *ngIf=\"sectionField.identifier != MetaFieldsIdentifier.status && sectionField.identifier != MetaFieldsIdentifier.date\">\n                                        {{taskDetailsMap[sectionField.identifier][0]}}\n                                    </ng-container>\n                                </div>\n                            </mat-card>\n                    </ng-container>\n                </ng-container>\n            </div>\n        </div>\n    </mat-card>\n</ng-container>\n","import { AxoUtils } from './../../../axo-utils/axo-utils';\nimport { TaskStatus } from './../../../data-view-lib/data-view/task';\nimport { SectionType, MetaFieldsIdentifier } from './../../../forms/page/common/widget-enums';\nimport { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Section } from '../../../forms/page/data-detail-view/section';\n\n@Component({\n    selector: 'app-meta-section',\n    templateUrl: './meta-section.component.html',\n    styleUrls: ['./meta-section.component.scss'],\n    encapsulation: ViewEncapsulation.None,\n})\nexport class MetaSectionComponent {\n\n    @Input() section: Section;\n    @Input() taskDetailsMap: Map<string, Array<string>>;\n\n    constructor() { }\n\n    /**\n     * section type enum\n     */\n    public get sectionType(): typeof SectionType {\n        return SectionType;\n    }\n\n    /**\n     * Meta Fields Identifier enum\n     */\n    public get MetaFieldsIdentifier(): typeof MetaFieldsIdentifier {\n        return MetaFieldsIdentifier;\n    }\n\n    /**\n     * return the status\n     * @param status\n     * @returns\n     */\n    returnStatus(status: TaskStatus) : string {\n        switch (status) {\n            case 0:\n                return \"To do\"\n            case 1:\n                return \"Delivered\"\n            case 2:\n                return \"Done\"\n            case 3:\n                return \"Rejected\"\n            case 4:\n                return \"Failed\"\n            case 5:\n                return \"Unassigned\"\n            case 6:\n                return \"Cancelled\"\n            case 8:\n                return \"Overdue\"\n            default:\n                return \"-\";\n        }\n    }\n\n    /**\n     * returns formatted date\n     * @param date\n     * @returns\n     */\n    returnFormattedDateValue(date: string) : string {\n        return AxoUtils.formatDateFromUTCToLocal(date);\n    }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormObjectViewComponent } from './form-object-view.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatTableModule} from '@angular/material/table';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { SharedModule } from '../../shared/shared.module';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { FormObjectWidgetsViewComponent } from './form-object-widgets/form-object-widgets-view.component';\nimport { FormObjectWidgetViewDirective } from './form-object-widgets/form-object-widgets-view.directive';\nimport { ApplyGeoFenceWidgetViewComponent } from './form-object-widgets/apply-geo-fence-widget-view/apply-geo-fence-widget-view.component';\nimport { AudioWidgetViewComponent } from './form-object-widgets/audio-widget-view/audio-widget-view.component';\nimport { AutoNumberWidgetViewComponent } from './form-object-widgets/auto-number-widget-view/auto-number-widget-view.component';\nimport { BarCodeWidgetViewComponent } from './form-object-widgets/bar-code-widget-view/bar-code-widget-view.component';\nimport { ChildRecordsWidgetViewComponent } from './form-object-widgets/child-records-widget-view/child-records-widget-view.component';\nimport { ChoiceListWidgetViewComponent } from './form-object-widgets/choice-list-widget-view/choice-list-widget-view.component';\nimport { CounterWidgetViewComponent } from './form-object-widgets/counter-widget-view/counter-widget-view.component';\nimport { DateTimeWidgetViewComponent } from './form-object-widgets/date-time-widget-view/date-time-widget-view.component';\nimport { DocumentWidgetViewComponent } from './form-object-widgets/document-widget-view/document-widget-view.component';\nimport { FormulaWidgetViewComponent } from './form-object-widgets/formula-widget-view/formula-widget-view.component';\nimport { GeoFenceWidgetViewComponent } from './form-object-widgets/geo-fence-widget-view/geo-fence-widget-view.component';\nimport { GpsWidgetViewComponent } from './form-object-widgets/gps-widget-view/gps-widget-view.component';\nimport { GroupHeaderWidgetViewComponent } from './form-object-widgets/group-header-widget-view/group-header-widget-view.component';\nimport { ImageWidgetViewComponent } from './form-object-widgets/image-widget-view/image-widget-view.component';\nimport { LanguageWidgetViewComponent } from './form-object-widgets/language-widget-view/language-widget-view.component';\nimport { PaymentWidgetViewComponent } from './form-object-widgets/payment-widget-view/payment-widget-view.component';\nimport { QrCodeWidgetViewComponent } from './form-object-widgets/qr-code-widget-view/qr-code-widget-view.component';\nimport { SignatureWidgetViewComponent } from './form-object-widgets/signature-widget-view/signature-widget-view.component';\nimport { StaticMediaWidgetViewComponent } from './form-object-widgets/static-media-widget-view/static-media-widget-view.component';\nimport { StopWatchWidgetViewComponent } from './form-object-widgets/stop-watch-widget-view/stop-watch-widget-view.component';\nimport { SubFormWidgetViewComponent } from './form-object-widgets/sub-form-widget-view/sub-form-widget-view.component';\nimport { TextBoxWidgetViewComponent } from './form-object-widgets/text-box-widget-view/text-box-widget-view.component';\nimport { TimeStampWidgetViewComponent } from './form-object-widgets/time-stamp-widget-view/time-stamp-widget-view.component';\nimport { ToggleWidgetViewComponent } from './form-object-widgets/toggle-widget-view/toggle-widget-view.component';\nimport { UniqueIdWidgetViewComponent } from './form-object-widgets/unique-id-widget-view/unique-id-widget-view.component';\nimport { VerificationWidgetViewComponent } from './form-object-widgets/verification-widget-view/verification-widget-view.component';\nimport { VideoWidgetViewComponent } from './form-object-widgets/video-widget-view/video-widget-view.component';\nimport { WebLinkWidgetViewComponent } from './form-object-widgets/web-link-widget-view/web-link-widget-view.component';\nimport { SectionViewComponent } from './section-view/section-view.component';\nimport {SectionFieldComponent} from './section-field/section-field.component';\nimport { AgmCoreModule } from '@agm/core';\nimport { ImageWidgetLightboxViewComponent } from './form-object-widgets/image-widget-view/image-widget-lightbox-view/image-widget-lightbox-view.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ImageMapViewComponent } from './form-object-widgets/image-widget-view/image-map-view/image-map-view.component';\nimport { DynamicViewDirective } from './dynamic-view/dynamic-view.directive';\nimport { DynamicViewComponent } from './dynamic-view/dynamic-view.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { SectionComponent } from './section/section.component';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport { AgmSnazzyInfoWindowModule } from '@agm/snazzy-info-window';\nimport { AxoMapModule } from '../../axo-map/axo-map.module';\nimport { MetaSectionComponent } from './meta-section/meta-section.component';\nimport { GhostLoaderModule } from '../../ghost-loader/ghost-loader.module';\n\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MatIconModule,\n    MatExpansionModule,\n    MatCardModule,\n    MatTableModule,\n    MatButtonModule,\n    MatDatepickerModule,\n    MatDividerModule,\n    MatFormFieldModule,\n    MatIconModule,\n    MatInputModule,\n    MatMenuModule,\n    MatSelectModule,\n    MatMomentDateModule,\n    SharedModule,\n    ReactiveFormsModule,\n    MatTooltipModule,\n    MatSlideToggleModule,\n    MatGridListModule,\n    MatCardModule,\n    MatSnackBarModule,\n    FlexLayoutModule,\n    MatProgressSpinnerModule,\n    AgmCoreModule.forRoot({\n      apiKey:'AIzaSyBuCjQh5y-9beQUKgRpOvycjbq8AvrybBI',\n      libraries: ['places', 'drawing']\n    }),\n    AgmSnazzyInfoWindowModule,\n    AxoMapModule,\n    GhostLoaderModule\n\n  ],\n  declarations: [\n    DynamicViewComponent,\n    DynamicViewDirective,\n    FormObjectViewComponent,\n    FormObjectWidgetViewDirective,\n    FormObjectWidgetsViewComponent,\n    TextBoxWidgetViewComponent,\n    BarCodeWidgetViewComponent,\n    StaticMediaWidgetViewComponent,\n    AutoNumberWidgetViewComponent,\n    ApplyGeoFenceWidgetViewComponent,\n    AudioWidgetViewComponent,\n    AutoNumberWidgetViewComponent,\n    BarCodeWidgetViewComponent,\n    ChildRecordsWidgetViewComponent,\n    ChoiceListWidgetViewComponent,\n    CounterWidgetViewComponent,\n    DateTimeWidgetViewComponent,\n    DocumentWidgetViewComponent,\n    FormulaWidgetViewComponent,\n    GeoFenceWidgetViewComponent,\n    GpsWidgetViewComponent,\n    GroupHeaderWidgetViewComponent,\n    ImageWidgetViewComponent,\n    LanguageWidgetViewComponent,\n    PaymentWidgetViewComponent,\n    QrCodeWidgetViewComponent,\n    SignatureWidgetViewComponent,\n    StaticMediaWidgetViewComponent,\n    StopWatchWidgetViewComponent,\n    SubFormWidgetViewComponent,\n    TextBoxWidgetViewComponent,\n    TimeStampWidgetViewComponent,\n    ToggleWidgetViewComponent,\n    UniqueIdWidgetViewComponent,\n    VerificationWidgetViewComponent,\n    VideoWidgetViewComponent,\n    WebLinkWidgetViewComponent,\n    SectionViewComponent,\n    SectionFieldComponent,\n    ImageWidgetLightboxViewComponent,\n    ImageMapViewComponent,\n    SectionComponent,\n    MetaSectionComponent\n  ],\nproviders: [MatDialog],\nexports:[\n    FormObjectViewComponent,\n    GpsWidgetViewComponent\n\n],\n})\nexport class FormObjectViewModule { }\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { FormObjectListHeaderComponent } from './form-object-list-header/form-object-list-header.component';\nimport { WidgetsHeaderDirective } from './form-object-list-header/widgets-header.directive';\nimport { TextBoxHeaderComponent } from './form-object-list-header/widgets/text-box-header/text-box-header.component';\nimport { FormObjectListComponent } from './form-object-list.component';\nimport { FormObjectValueDirective } from './formObjectWidgetValue/form-object-value.directive';\nimport { FormObjectWidgetValueComponent } from './formObjectWidgetValue/form-object-widget-value.component';\nimport { FormObjectListFilterComponent } from './form-object-list-filter/form-object-list-filter.component';\nimport { FormObjectTextBoxValueComponent } from './formObjectWidgetValue/formobject-textbox-value/formobject-textbox-value.component';\nimport { FormObjectAudioValueComponent } from './formObjectWidgetValue/formobject-audio-value/formobject-audio-value.component';\nimport { FormObjectBarCodeValueComponent } from './formObjectWidgetValue/formobject-bar-code-value/formobject-bar-code-value.component';\nimport { FormObjectListService } from './form-object-list.service';\nimport { MultiSelectFilterService } from '../../filters/multi-select-filter/multi-select-filter.service';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FormObjectVideoValueComponent } from './formObjectWidgetValue/formobject-video-value/formobject-video-value.component';\nimport { FiltersModule } from '../../filters/filters.module';\nimport { FormObjectChoiceListValueComponent } from './formObjectWidgetValue/formobject-choicelist-value/formobject-choicelist-value.component';\nimport { FormObjectChildRecordsValueComponent } from './formObjectWidgetValue/formobject-child-records-value/formobject-child-records-value.component';\nimport { FormObjectWebLinkValueComponent } from './formObjectWidgetValue/formobject-web-link-value/formobject-web-link-value.component';\nimport { FormObjectVerificationValueComponent } from './formObjectWidgetValue/formobject-verification-value/formobject-verification-value.component';\nimport { FormObjectUniqueIdValueComponent } from './formObjectWidgetValue/formobject-unique-id-value/formobject-unique-id-value.component';\nimport { FormObjectToggleValueComponent } from './formObjectWidgetValue/formobject-toggle-value/formobject-toggle-value.component';\nimport { FormObjectTimeStampValueComponent } from './formObjectWidgetValue/formobject-time-stamp-value/formobject-time-stamp-value.component';\nimport { FormObjectImageValueComponent } from './formObjectWidgetValue/formobject-image-value/formobject-image-value.component';\nimport { FormObjectApplyGeoFenceValueComponent } from './formObjectWidgetValue/formobject-apply-geo-fence-value/formobject-apply-geo-fence-value.component';\nimport { FormObjectSubFormValueComponent } from './formObjectWidgetValue/formobject-sub-form-value/formobject-sub-form-value.component';\nimport { FormObjectAutoNumberValueComponent } from './formObjectWidgetValue/formobject-auto-number-value/formobject-auto-number-value.component';\nimport { FormObjectCounterValueComponent } from './formObjectWidgetValue/formobject-counter-value/formobject-counter-value.component';\nimport { FormObjectDateTimeValueComponent } from './formObjectWidgetValue/formobject-date-time-value/formobject-date-time-value.component';\nimport { FormObjectDocumentValueComponent } from './formObjectWidgetValue/formobject-document-value/formobject-document-value.component';\nimport { FormObjectFormulaValueComponent } from './formObjectWidgetValue/formobject-formula-value/formobject-formula-value.component';\nimport { FormObjectGeoFenceValueComponent } from './formObjectWidgetValue/formobject-geo-fence-value/formobject-geo-fence-value.component';\nimport { FormObjectGpsValueComponent } from './formObjectWidgetValue/formobject-gps-value/formobject-gps-value.component';\nimport { FormObjectGroupHeaderValueComponent } from './formObjectWidgetValue/formobject-group-header-value/formobject-group-header-value.component';\nimport { FormObjectLanguagesValueComponent } from './formObjectWidgetValue/formobject-languages-value/formobject-languages-value.component';\nimport { FormObjectPaymentValueComponent } from './formObjectWidgetValue/formobject-payment-value/formobject-payment-value.component';\nimport { FormObjectQrCodeValueComponent } from './formObjectWidgetValue/formobject-qr-code-value/formobject-qr-code-value.component';\nimport { FormObjectSignatureValueComponent } from './formObjectWidgetValue/formobject-signature-value/formobject-signature-value.component';\nimport { FormObjectStaticMediaValueComponent } from './formObjectWidgetValue/formobject-static-media-value/formobject-static-media-value.component';\nimport { FormObjectStopWatchValueComponent } from './formObjectWidgetValue/formobject-stop-watch-value/formobject-stop-watch-value.component';\nimport {FormsModule} from '@angular/forms';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatListModule} from '@angular/material/list';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { FormObjectWidgetMatDialogComponent } from './formObjectWidgetValue/formobject-widget-mat-dialog/formobject-widget-mat-dialog.component';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { AgmCoreModule } from '@agm/core';\nimport { FormObjectViewModule } from '../form-object-view/form-object-view.module';\nimport { AxoUtilsModule } from '../../axo-utils/axo-utils.module';\nimport { FormObjectListFilterService } from './form-object-list-filter/form-object-list-filter.service';\nimport { ReferenceListFilterService } from '../../filters/reference-list-filter/reference-list-filter.service';\nimport { GhostLoaderModule } from '../../ghost-loader/ghost-loader.module';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MatPaginatorModule,\n    MatIconModule,\n    FiltersModule,\n    FormsModule,\n    MatMenuModule,\n    MatFormFieldModule,\n    MatSelectModule,\n    MatListModule,\n    MatRadioModule,\n    MatCheckboxModule,\n    MatTooltipModule,\n    MatSlideToggleModule,\n    FormObjectViewModule,\n    AxoUtilsModule,\n    AgmCoreModule.forRoot({\n      apiKey:'AIzaSyBuCjQh5y-9beQUKgRpOvycjbq8AvrybBI',\n      libraries: ['places', 'drawing']\n    }),\n    GhostLoaderModule\n  ],\n  declarations: [\n    FormObjectValueDirective,\n    FormObjectTextBoxValueComponent,\n    FormObjectListComponent,\n    FormObjectWidgetValueComponent,\n    FormObjectListHeaderComponent,\n    TextBoxHeaderComponent,\n    WidgetsHeaderDirective,\n    FormObjectListFilterComponent,\n    FormObjectAudioValueComponent,\n    FormObjectBarCodeValueComponent,\n    FormObjectVideoValueComponent,\n    FormObjectChoiceListValueComponent,\n    FormObjectChildRecordsValueComponent,\n    FormObjectWebLinkValueComponent,\n    FormObjectVerificationValueComponent,\n    FormObjectUniqueIdValueComponent,\n    FormObjectToggleValueComponent,\n    FormObjectTimeStampValueComponent,\n    FormObjectImageValueComponent,\n    FormObjectApplyGeoFenceValueComponent,\n    FormObjectSubFormValueComponent,\n    FormObjectAutoNumberValueComponent,\n    FormObjectCounterValueComponent,\n    FormObjectDateTimeValueComponent,\n    FormObjectDocumentValueComponent,\n    FormObjectFormulaValueComponent,\n    FormObjectGeoFenceValueComponent,\n    FormObjectGpsValueComponent,\n    FormObjectGroupHeaderValueComponent,\n    FormObjectLanguagesValueComponent,\n    FormObjectPaymentValueComponent,\n    FormObjectQrCodeValueComponent,\n    FormObjectSignatureValueComponent,\n    FormObjectStaticMediaValueComponent,\n    FormObjectStopWatchValueComponent,\n    FormObjectWidgetMatDialogComponent,\n\n  ],\n  exports:[\n    FormObjectListComponent,\n    FormObjectWidgetValueComponent\n  ],\n  providers:[\n    FormObjectListService,\n    MultiSelectFilterService,\n    FormObjectListFilterService,\n    ReferenceListFilterService,\n  ]\n})\nexport class FormObjectListModule { }\n","\n<div class=\"hidden md:flex items-center\">\n    <ng-container *ngFor=\"let crumb of breadCrumbs; let i = index; let isFirst = first;\">\n        <ng-container *ngIf=\"(breadCrumbsStyle !== breadCrumbsStyles.SkipCurrent) || (i < breadCrumbs.length-1)\">\n            \n            <div class=\"breadcrumb-container px-1.5\" \n                 (mouseover)=\"crumb.showHoverBox = (isFirst && i === 0)\" \n                 (mouseleave)=\"crumb.showHoverBox = false\">\n                <div class=\"breadcrumb-title-container\" [ngClass]=\"showHoverBox ? '' : 'border-none'\">\n\n                    <button *ngIf=\"isFirst\" class=\"icon-button mb-1 md-body-1\" \n                    [ngClass]=\"{'remove-link-decoration': !crumb.url}\" \n                    mat-icon-button \n                    (click)=\"onBreadCrumbChange(crumb, i)\">\n                <a *ngIf=\"crumb.onErrorIcon\" class=\"app-icon-link\" \n                   (click)=\"navigateToHome(crumb.appVersionId)\">\n                    <img alt=\"\" #icon class=\"app-icon w-30\" \n                         [src]=\"baseUrl + crumbIcon\" \n                         (error)=\"onIconError($event, crumb.onErrorIcon)\">\n                </a>\n            </button>\n\n                    <a *ngIf=\"!crumb.isEditable\" class=\"ml-1 mr-1 nav-active crumb-title\"\n                       [ngClass]=\"{'remove-link-decoration': !crumb.url, 'first-crumb': isFirst && i === 0}\"\n                       (click)=\"onBreadCrumbChange(crumb, i); isFirst ? navigateToHome(appVersionId) : null\">\n                        {{ crumb.title }} \n                        <span *ngIf=\"isFirst && i === 0 && appMinorVersion && avs === 'P'\" \n                              class=\"version-text\">\n                            v{{ appMinorVersion }}\n                        </span>\n                    </a>\n     \n\n    \n        <!-- Code to display the title of the report in the breadcrumbs section  -->\n        <!-- <a *ngIf=\"crumb.isEditable\" class=\"ml-1 mr-1 nav-active crumb-title editable-crumb\"\n           [ngClass]=\"{'remove-link-decoration': !crumb.url, 'first-crumb': isFirst && i === 0}\"\n           (click)=\"onBreadCrumbChange(crumb, i)\">\n            {{ crumb.title }}\n        </a> -->\n\n        <div class=\"nav-active editable-title\" *ngIf=\"crumb.isEditable\">\n            <input type=\"text\" #crumbTitle\n                   (input)=\"onCrumbTitleChange(crumbTitle.value, crumb.guid)\"  \n                   matInput [value]=\"crumb.title\"\n                   class=\"px-2 py-1 rounded-md analytical-report-name\"\n                   placeholder=\"Report Name\"\n                   matTooltip=\"Click to Rename\"\n                   (keyup.enter)=\"onRenameKeyEnter($event)\"\n                   >\n        </div>\n    </div>\n\n\n                <mat-icon *ngIf=\"((breadCrumbsStyle !== breadCrumbsStyles.SkipCurrent) && (i < breadCrumbs.length-1)) || (i < breadCrumbs.length-2)\" svgIcon=\"heroicons_outline:chevron-right\" class=\"crumb-chevron\"></mat-icon>\n                <div class=\"hover-box\" *ngIf=\"crumb.showHoverBox && showHoverBox\">\n                    <!-- Content for hover box goes here -->\n                    <div>\n                        <label class=\"control-label-hover\">\n                            <mat-icon svgIcon=\"axo_app_owner\" class=\"hover-icons\"></mat-icon>\n                            <p class=\"hover-heading\">App Owner</p>\n                        </label>\n                        <p class=\"hover-content\">\n                            <span class=\"ml-2\">{{ selectedAppOwnerName }}</span>\n                        </p>\n                    </div>\n                    <div>\n                        <label class=\"control-label-hover\">\n                            <mat-icon svgIcon=\"axo_published\" class=\"hover-icons\"></mat-icon>\n                            <p class=\"hover-heading\">Publish Status</p>\n                        </label>\n                        <p class=\"hover-content\">\n                            <span class=\"ml-2\">{{ publishStatus }}</span>\n                        </p>\n                    </div>\n                    <div class=\"clickable-div\" (click)=\"navigateToUsersList()\">\n                        <label class=\"control-label-hover clickable-div\">\n                            <mat-icon svgIcon=\"axo_users\" class=\"hover-icons\"></mat-icon>\n                                <p class=\"hover-heading\">Users</p>\n                        </label>\n                        <p class=\"hover-content\">\n                            <span class=\"ml-2 underline\">{{ appUsersNo }}</span>\n                        </p>\n                    </div>\n                    <div>\n                        <label class=\"control-label-hover\">\n                          <mat-icon svgIcon=\"axo_submission\" class=\"hover-icons\"></mat-icon>\n                          <p class=\"hover-heading\">Submissions</p>\n                        </label>\n                        <p class=\"hover-content\">\n                          <span class=\"ml-2 underline\">{{ formObjectSum }}</span> <!-- Display sum of form object counts -->\n                        </p>\n                      </div>\n                    <div>\n                        <button class=\"hover-btn\" (click)=\"goToAppSettings()\">\n                            <mat-icon svgIcon=\"axo_setting\"></mat-icon>\n                            <p>App Settings</p>\n                        </button>\n                    </div>\n                </div>\n            </div>\n        </ng-container>\n    </ng-container>\n</div>\n<div class=\"flex md:hidden items-center\">\n    <a *ngIf=\"breadCrumbs.length > 0\" class=\"ml-1 mr-1 nav-active crumb-title\" >{{currentBreadCrumbTitle}}</a>\n</div>\n\n<!-- <router-outlet></router-outlet> -->\n","import { Component, ElementRef, Input, OnInit, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { BreadCrumb, BreadCrumbsService } from './bread-crumbs.service';\nimport { ScreenType } from '../enlighten-lib/filters/condition-type';\nimport { BreadCrumbsStyle } from '../enlighten-lib/enums/bread-crumbs-style';\nimport { takeUntil, take, switchMap, catchError, map } from 'rxjs/operators';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Observable, Subject, throwError, Subscription } from 'rxjs';\nimport { FlattenService } from '../flatten-module/flatten.service';\nimport { CommonLibConfigurationService } from '../common-lib-configuration.service';\nimport { CommonService } from '../common.service';\n// import { AndromedaService } from 'app/layout/layouts/vertical/andromeda/andromeda.service';\n\n@Component({\n  selector: 'lib-bread-crumbs',\n  templateUrl: './bread-crumbs.component.html',\n  styleUrls: ['./bread-crumbs.component.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class BreadCrumbsComponent implements OnInit, OnDestroy {\n\n  @Input() showHoverBox:boolean = false;\n\n  breadCrumbs: Array<BreadCrumb> = [];\n  baseUrl: string = this.commonLibConfig.x1MediaUrl; //need config\n  breadCrumbsStyle: BreadCrumbsStyle;\n  currentBreadCrumbTitle: string = '';\n  selectedAppOwnerName: string = '';\n  selectedAppOwner: any[] = [];\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n  axonatorX1Url: string;\n  publishStatus: string;\n  isPublished: string;\n  appUsersNo: number;\n  appVersionId: number;\n  crumbIcon: string;\n  displayedVersion: string;\n  avs: string;\n  appName: string = '';\n  private appNameSubscription: Subscription;\n  currentAppVersionId: string;\n\n  constructor(\n    private _breadCrumbsService: BreadCrumbsService,\n    private _router: Router,\n    private _flattenService: FlattenService,\n    private commonLibConfig: CommonLibConfigurationService,\n    private elRef: ElementRef,\n    private _commonService: CommonService,\n    private _activatedRoute: ActivatedRoute,\n    // private _andromedaService: AndromedaService,\n  ) { }\n\n  public get screenTypes(): typeof ScreenType {\n    return ScreenType;\n  }\n\n  public get breadCrumbsStyles(): typeof BreadCrumbsStyle {\n    return BreadCrumbsStyle;\n  }\n\n  navigateToHome(appVersionId: number): void {\n    this._router.navigateByUrl(`apps/${appVersionId}/home`);\n  }\n\n  navigateToUsersList(): void {\n    this._router.navigate(['/apps/' + this.appVersionId + '/users']);\n  }\n\n  goToAppSettings() {\n    this._router.navigate(['/apps/' + this.appVersionId + '/app-settings']);\n  }\n\n  ngAfterViewInit() {\n    const breadcrumbContainer = this.elRef.nativeElement.querySelector('.breadcrumb-container');\n\n    breadcrumbContainer.addEventListener('mouseover', () => {\n      breadcrumbContainer.classList.add('hover');\n    });\n\n    breadcrumbContainer.addEventListener('mouseleave', () => {\n      breadcrumbContainer.classList.remove('hover');\n    });\n  }\n  private fetchVersionList(): Observable<void> {\n    return this._flattenService.flatten$.pipe(\n      take(1),\n      switchMap((flatten) => {\n        if (flatten?.appId !== undefined && flatten?.version !== undefined) {\n          const { appId, version } = flatten;\n          return this._commonService.getVersionList(appId, version).pipe(\n            map((result) => {\n              if (result?.v?.versionslist?.length > 0) {\n                const latestVersion = result.v.versionslist\n                  .reduce((max, curr) => (curr.appminorversion > max.appminorversion ? curr : max), result.v.versionslist[0]);\n                \n                this._commonService.setAppMinorVersion(latestVersion.appminorversion); // Update the service with the latest version\n              } else {\n                console.warn('No versions found or result is not in expected format.');\n              }\n            }),\n            catchError((error) => {\n              console.error('Error fetching version list:', error);\n              return throwError(() => new Error('Failed to fetch version list'));\n            })\n          );\n        } else {\n          console.warn('Flatten object or its properties are undefined');\n          return throwError(() => new Error('Flatten object or its properties are undefined'));\n        }\n      })\n    );\n  }\n  \n  private fetchInitialAppStatus(): Observable<void> {\n    return this._flattenService.flatten$\n      .pipe(\n        take(1),\n        switchMap(flatten =>\n          this._commonService.fetchAppDetails(flatten.appVersionId, this.commonLibConfig.axonatorX1Url).pipe(\n            map(appDetails => {\n              this.avs = appDetails.data.details.avs;\n            }),\n            catchError((error) => {\n              return throwError(error);\n            })\n          )\n        )\n      );\n  }\n  appMinorVersion: string;\n\n  ngOnInit(): void {\n    // const url = window.location.href;\n    //   this.currentAppVersionId = url.split(\"/\")[4];\n    this._commonService.appMinorVersion$.subscribe\n    (version => {\n      this.appMinorVersion = version;\n     \n    });\n    this._activatedRoute.params.subscribe(params => {\n      this.appVersionId = params.appVersionId;\n  \n      this._flattenService.getFlattenData(this.appVersionId).pipe(\n        switchMap(() => {\n          return this.fetchVersionList();\n        }),\n        switchMap(() => {\n          return this.fetchInitialAppStatus();\n        }),\n        switchMap(() => {\n          return this._flattenService.flatten$.pipe(\n            take(1),\n            switchMap((flatten) => {\n              if (flatten && flatten.appId !== undefined && flatten.version !== undefined) {\n                const { appId, version } = flatten;\n                return this._commonService.getApplist(appId, version).pipe(\n                  catchError((error) => {\n                    return throwError(error);\n                  })\n                );\n              } else {\n                return throwError('Flatten object or its properties are undefined');\n              }\n            })\n          );\n        }),\n        switchMap((responseData) => {\n          this.publishStatus = responseData.data.avs === \"P\" ? \"Published\" : \"Unpublished\";\n          this.crumbIcon = responseData.data.ic;\n  \n          return this._flattenService.flatten$.pipe(\n            take(1),\n            switchMap((flatten) => {\n              if (flatten && flatten.appId !== undefined && flatten.version !== undefined) {\n                const { appId, version } = flatten;\n                return this._commonService.getAppUsers(appId, version).pipe(\n                  catchError((error) => {\n                    return throwError(error);\n                  })\n                );\n              } else {\n                return throwError('Flatten object or its properties are undefined');\n              }\n            })\n          );\n        }),\n        takeUntil(this._unsubscribeAll)\n      ).subscribe(\n        (userData) => {\n          this.appUsersNo = userData.appuser.AppUser.appusers.length;\n          this.selectedAppOwner = userData.appuser.AppUser.appusers;\n          const appOwner = this.selectedAppOwner.find(user => user.isOwner === 'true');\n          if (appOwner) {\n            this.selectedAppOwnerName = `${appOwner.first_name} ${appOwner.last_name}`;\n          }\n        },\n        (error) => {\n        }\n      );\n  \n      this.subscribers();\n\n      // Subscribe to app name changes\n      this.appNameSubscription = this._commonService.appName$.subscribe(\n        (newAppName: string) => {\n          this.appName = newAppName;\n          this.updateAppNameInBreadcrumbs();\n        }\n      );\n    });\n  }\n\n  ngOnDestroy(): void {\n    if (this.appNameSubscription) {\n      this.appNameSubscription.unsubscribe();\n    }\n  }\n\n  private updateAppNameInBreadcrumbs(): void {\n    if (this.breadCrumbs.length > 0 && this.appName) {\n      this.breadCrumbs[0].title = this.appName;\n      this._breadCrumbsService.update();\n    }\n  }\n\n  subscribers(): void {\n    this._breadCrumbsService.onBreadCrumbsChanged\n      .subscribe(response => {\n        if (response) {\n          this.setBreadCrumbs(response);\n        }\n      });\n\n    this._breadCrumbsService.breadCrumbStyleChanged\n      .subscribe(breadCrumbStyle => {\n        this.breadCrumbsStyle = breadCrumbStyle;\n      });\n  }\n\n  setBreadCrumbs(crumbs: Array<BreadCrumb>) {\n    this.breadCrumbs = Object.assign([], crumbs);\n    if (this.breadCrumbs.length > 0) {\n      this.currentBreadCrumbTitle = this.breadCrumbs[this.breadCrumbs.length - 1].title;\n      if (this.appName) {\n        this.breadCrumbs[0].title = this.appName;\n      }\n    }\n  }\n\n  onBreadCrumbChange(crumb: any, index: number): void {\n    if (crumb.url && (crumb.url !== this._router.url)) {\n      this._router.navigate([crumb.url]);\n      this._breadCrumbsService.changeCurrentBreadCrumb(index);\n    }\n  }\n\n  onCrumbTitleChange(title: string, id: string): void {\n    const crumbIndex = this.breadCrumbs.findIndex(b => b.guid === id);\n    if (crumbIndex !== -1) {\n      this.breadCrumbs[crumbIndex].title = title;\n      this._breadCrumbsService.changeTitle(title, id);\n      \n      if (crumbIndex === 0) {\n        this.currentBreadCrumbTitle = title;\n      }\n    }\n  }\n\n  onIconError(event: Event, onErrorIcon: string) {\n    event.target['src'] = onErrorIcon;\n  }\n\n  onRenameKeyEnter(event: KeyboardEvent){\n    (event.target as HTMLElement).blur();\n  }\n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadCrumbsComponent } from './bread-crumbs.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n\n@NgModule({\n  declarations: [BreadCrumbsComponent],\n  imports: [\n    CommonModule,\n    MatIconModule,\n    MatTooltipModule,\n    RouterModule,\n  ],\n  exports: [\n    BreadCrumbsComponent,\n    RouterModule\n  ]\n})\nexport class BreadCrumbsModule { }\n","/**** Import should have relative path in common lib ****/\nimport { Component, HostListener, Input, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { ScreenType } from '../enlighten-lib/filters/condition-type';\nimport { TabularReport } from '../enlighten-lib/report/tabular-report/tabular-report';\nimport { DrillPageState, DrillThroughService } from './drill-through.service';\nimport { EnlightenReportType } from '../enlighten-lib/report/ireport';\n\n@Component({\n  selector: 'drill-through',\n  templateUrl: './drill-through.component.html',\n  styleUrls: ['./drill-through.component.scss'],\n  encapsulation: ViewEncapsulation.None\n\n})\nexport class DrillThroughComponent implements OnInit, OnDestroy {\n  @Input() drillThroughParentType: ScreenType;\n  @Input() appVersionId: number;\n  page: any;\n  tabularReport: TabularReport;\n  reportId: number;\n  filter: AxFilter;\n  reportType: EnlightenReportType;\n  hasNextPage: boolean;\n  /*\n  * Subject object which helps unsubscribe all the subscribed objects in the component\n  */\n  private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  /**\n   * Constructor\n   * Inject all required services here.\n   */\n  constructor(\n    private _drillThroughService: DrillThroughService,\n    private _router: Router\n    ) { }\n\n  public get screenTypes(): typeof ScreenType {\n    return ScreenType;\n  }\n\n  public get enlightenReportTypes(): typeof EnlightenReportType {\n    return EnlightenReportType;\n  }\n\n  @HostListener('window:beforeunload',['$event'])\n  beforeUnload(event: BeforeUnloadEvent): void {\n    this._drillThroughService.saveStates();\n  }\n\n  /**\n   * OnInit life cycle hook ..\n   */\n  ngOnInit(): void {\n    this.setDrillThrough();\n    this.subscribers();\n\n  }\n\n  ngOnDestroy(): void{\n    this._drillThroughService.destroy();\n  }\n\n  /**\n   * Subscribers should be written here.\n   */\n  subscribers(): void{\n    this._drillThroughService.onPageChanged\n      .pipe(takeUntil(this._unsubscribeAll))\n      .subscribe((event) => {\n        if(event)\n          {\n            this.setDrillThrough();\n          }\n      });\n    this._router.events\n      .pipe(filter((rs): rs is NavigationEnd => rs instanceof NavigationEnd))\n      .subscribe((event: NavigationEnd) => {\n        if(event.id === 1 && event.url === event.urlAfterRedirects){\n          this._drillThroughService.restoreStates();\n        }\n      });\n  }\n\n  /**\n   * Set drill through initial data\n   */\n  setDrillThrough(): void{\n    const drillPageState: DrillPageState = this._drillThroughService.GetCurrentDrillThroughState();\n    if(this.enlightenReportTypes[drillPageState.page.elements[0].type] === this.enlightenReportTypes.tabular){\n      this.reportType = this.enlightenReportTypes[drillPageState.page.elements[0].type];\n    } else {\n      this.reportType = this.enlightenReportTypes.graphical;\n    }\n    this.page = drillPageState.page;\n    this.filter = drillPageState.filter;\n    this._drillThroughService.setBreadCrumbs();\n    this.hasNextPage = this._drillThroughService.hasNextPage();\n  }\n\n  /**\n   * called on click of next arrow on drill through page\n   */\n  nextPage(): void{\n    const drillPageState: DrillPageState = this._drillThroughService.PageNext();\n    if(drillPageState)\n      {this._router.navigate([this._drillThroughService.getParentData().url +'/drill-through/' + drillPageState.page.id]);}\n  }\n\n  /**\n   * called on click of next arrow on drill through page\n   */\n  previousPage(): void {\n    const drillPageState: DrillPageState = this._drillThroughService.PageBack();\n    if(drillPageState)\n      {this._router.navigate([this._drillThroughService.getParentData().url +'/drill-through/' + drillPageState.page.id]);}\n    else\n      {this._router.navigate([this._drillThroughService.getParentData().url]);}\n  }\n\n}\n","<div [ngClass]=\"{'graphical-drill-parent': reportType === enlightenReportTypes.graphical, 'h-full': reportType === enlightenReportTypes.tabular}\">\n    <ng-container [ngSwitch]=\"reportType\">\n        <graphical-report\n            *ngSwitchCase=\"enlightenReportTypes.graphical\"\n            class=\"report-page graphical-report-page customscroll\"\n            [page]=\"page\"\n            [drillThroughFilterInput]=\"filter\"\n            [screenType]=\"screenTypes.drillThrough\"\n            (nextPageClicked)=\"nextPage()\"\n            (previousPageClicked)=\"previousPage()\"\n            [drillThroughParentType]=\"drillThroughParentType\"\n            [hasNextPage]=\"hasNextPage\"\n            [appVersionId]=\"appVersionId\">\n        </graphical-report>\n        <tabular-report\n            *ngSwitchCase=\"enlightenReportTypes.tabular\"\n            class=\"report-page tabular-report-page h-full\"\n            [page]=\"page\"\n            [drillThroughFilterInput]=\"filter\"\n            [screenType]=\"screenTypes.drillThrough\"\n            (nextPageClicked)=\"nextPage()\"\n            (previousPageClicked)=\"previousPage()\"\n            [drillThroughParentType]=\"drillThroughParentType\"\n            [hasNextPage]=\"hasNextPage\"\n            [appVersionId]=\"appVersionId\">\n        </tabular-report>\n    </ng-container>\n</div>\n\t\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrillThroughComponent } from './drill-through.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { EnlightenLibModule } from '../enlighten-lib/enlighten-lib.module';\n\n\n\n@NgModule({\n  declarations: [\n    DrillThroughComponent\n  ],\n  imports: [\n    CommonModule,\n    MatIconModule,\n    EnlightenLibModule\n  ],\n  exports:[DrillThroughComponent]\n})\nexport class DrillThroughModule { }\n","<div class=\"sticky top-0 data-list-header\" [ngClass]=\"{'mt-3' : dataViews.taskViews.length > 0 || dataViews.mapViews.length  > 0 || dataViews.boardViews.length > 0 || (dataViews.listViews.length > 0 && screenType === ScreenType.dataView)}\">\n  <div class=\"flex items-center justify-between\">\n    <!-- Title header -->\n    <div class=\"data-view-header-contianer\" *ngIf=\"dataViews.listViews.length > 1|| dataViews.taskViews.length > 1 || dataViews.mapViews.length  > 0 || dataViews.boardViews.length > 0 || screenType === ScreenType.dataViewBuilder\">\n      <div class=\"data-view-dropdown-wrapper\">\n        <!-- <div class=\"data-view-title axo-font\" [ngClass]=\"{'task-view-title' : selectedViewType === ViewType.TaskView}\" [matTooltip]=\"selectedDataView?.name\">\n          {{selectedDataView?.name}}</div> -->\n          \n        <!-- Task List view Dropdown -->\n        <div class=\"flex items-center cursor-pointer icon-btn w-max\" *ngIf=\"dataViews.taskViews.length > 0 && dataViews.type !== DataViewType.genericTaskView\"\n            [ngClass]=\"{'view-selected':selectedViewType === ViewType.TaskView}\" (click)=\"switchView(ViewType.TaskView)\">\n            <div class=\"flex gap-2 items-center data-view-btn-icon px-2 py-1\"\n                [ngClass]=\"{'border-right':selectedViewType === ViewType.TaskView && dataViews.taskViews.length > 1}\">\n                <mat-icon class=\"search-icon h-4 min-w-4 min-h-4 w-4\" [svgIcon]=\"'axo_list'\" ></mat-icon>\n                <div *ngIf=\"selectedViewType === ViewType.TaskView\" class=\"data-view-title axo-font\" [ngClass]=\"{'task-view-title' : selectedViewType === ViewType.TaskView}\" [matTooltip]=\"selectedDataView?.name\">\n                  {{selectedDataView?.name}}</div>\n            </div>\n            <div class=\"flex items-center data-view-mat-select\" *ngIf=\"dataViews.listViews.length > 1 \">\n                <mat-select #taskViewListDropDown [disableOptionCentering]=\"true\">\n                <mat-option *ngFor=\"let taskView of dataViews.taskViews\" (click)=\"changeDataView(taskView,ViewType.TaskView )\">{{taskView.name}}\n                </mat-option>\n                </mat-select>\n            </div>\n        </div>\n\n        <!-- Data List view Dropdown -->\n        <div class=\"flex items-center cursor-pointer icon-btn w-max\" *ngIf=\"dataViews.taskViews.length === 0 &&(dataViews.listViews.length > 0 || screenType === ScreenType.dataViewBuilder)\"\n          [ngClass]=\"{'view-selected':selectedViewType === ViewType.DataListView}\" (click)=\"switchView(ViewType.DataListView)\">\n          <div class=\"flex gap-2 items-center data-view-btn-icon px-2 py-1\"\n            [ngClass]=\"{'border-right':selectedViewType === ViewType.DataListView && dataViews.listViews.length > 1}\">\n            <mat-icon class=\"search-icon h-4 min-w-4 min-h-4 w-4\" [svgIcon]=\"'axo_list'\" ></mat-icon>\n            <div *ngIf=\"selectedViewType === ViewType.DataListView\" class=\"data-view-title axo-font\" [ngClass]=\"{'task-view-title' : selectedViewType === ViewType.TaskView}\" [matTooltip]=\"selectedDataView?.name\">\n          {{selectedDataView?.name}}</div>\n          </div>\n          <div class=\"flex items-center data-view-mat-select\" *ngIf=\"dataViews.listViews.length > 1 \">\n            <mat-select #listViewListDropDown class=\"data-view-select\" [disableOptionCentering]=\"true\">\n              <mat-option value=\"dataViews.listViews\" *ngFor=\"let listView of dataViews.listViews\" (click)=\"changeDataView(listView,ViewType.DataListView )\">{{listView.name}}\n              </mat-option>\n            </mat-select>\n          </div>\n        </div>\n\n        <!-- Data Map view Dropdown -->\n        <div class=\"flex items-center cursor-pointer icon-btn w-max\" *ngIf=\"dataViews.mapViews.length > 0 || screenType === ScreenType.dataViewBuilder\"\n          [ngClass]=\"{'view-selected':selectedViewType === ViewType.MapView}\" (click)=\"switchView(ViewType.MapView)\">\n          <div class=\"flex gap-2 items-center data-view-btn-icon px-2 py-1\"\n            [ngClass]=\"{'border-right':selectedViewType === ViewType.MapView && dataViews.mapViews.length > 1}\">\n            <mat-icon class=\"search-icon h-4 min-w-4 min-h-4 w-4\" [svgIcon]=\"'axo_location'\" ></mat-icon>\n            <div *ngIf=\"selectedViewType === ViewType.MapView\" class=\"data-view-title axo-font\" [ngClass]=\"{'task-view-title' : selectedViewType === ViewType.TaskView}\" [matTooltip]=\"selectedDataView?.name\">\n              {{selectedDataView?.name}}</div>\n          </div>\n          <div class=\"flex items-center data-view-mat-select\" *ngIf=\"dataViews.mapViews.length > 1\">\n            <mat-select #mapViewListDropDown class=\"data-view-select\" [disableOptionCentering]=\"true\">\n              <mat-option value=\"dataViews.mapViews\" *ngFor=\"let mapView of dataViews.mapViews\" (click)=\"changeDataView(mapView,ViewType.MapView )\">{{mapView.name}}</mat-option>\n            </mat-select>\n          </div>\n        </div>\n\n        <!-- Data Board view Dropdown -->\n        <div class=\"flex items-center cursor-pointer icon-btn w-max\" *ngIf=\"dataViews.boardViews.length > 0 || screenType === ScreenType.dataViewBuilder\"\n          [ngClass]=\"{'view-selected':selectedViewType === ViewType.BoardView}\" (click)=\"switchView(ViewType.BoardView)\">\n          <div class=\"flex gap-2 items-center data-view-btn-icon  px-2 py-1\"\n            [ngClass]=\"{'border-right':selectedViewType === ViewType.BoardView && dataViews.boardViews.length > 1}\">\n            <mat-icon class=\"h-4 min-w-4 min-h-4 w-4\" [svgIcon]=\"'axo_grid'\" ></mat-icon>\n            <div *ngIf=\"selectedViewType === ViewType.BoardView\" class=\"data-view-title axo-font\" [ngClass]=\"{'task-view-title' : selectedViewType === ViewType.TaskView}\" [matTooltip]=\"selectedDataView?.name\">\n              {{selectedDataView?.name}}</div>\n          </div>\n          <div class=\"flex items-center data-view-mat-select\" *ngIf=\"dataViews.boardViews.length > 1\">\n            <mat-select #boardViewListDropDown  class=\"data-view-select\" [disableOptionCentering]=\"true\">\n              <mat-option value=\"dataViews.boardViews\"  *ngFor=\"let boardView of dataViews.boardViews\" (click)=\"changeDataView(boardView,ViewType.BoardView)\">{{boardView.name}}\n              </mat-option>\n            </mat-select>\n          </div>\n\n        </div>\n      </div>\n      <div class=\"searchBox-btton-wrapper\" >\n        <!-- Search Box Start-->\n        <div class=\"items-center flex\" [ngClass]=\"{'search-field-border' : showSearch}\">\n          <button (click)=\"showSearchBox()\" class=\"flex items-center\" [ngClass]=\"{'ml-1' : showSearch}\" *ngIf=\"showSearch\">\n            <mat-icon class=\"data-view-search-icon\"\n              [svgIcon]=\"'heroicons_solid:search'\" [ngClass]=\"{'w-6 min-w-6 h-6 min-h-6' : !showSearch}\"></mat-icon>\n          </button>\n          <input id=\"field-search\" autocomplete=\"off\" placeholder=\"Search...\" matInput class=\"search-bar chart-title\"\n            (keyup)=\"getSearchedData($event.target['value'])\" [style.width]=\"!showSearch ? '0' : '100%'\"/>\n          <mat-icon (click)=\"clear()\" *ngIf=\"showSearch\" class=\"clear_icon text-base cursor-pointer\">clear</mat-icon>\n          <button (click)=\"showSearchBox()\" class=\"flex items-center icon-btn\" *ngIf=\"!showSearch\">\n            <mat-icon class=\"data-view-search-icon\"\n              [svgIcon]=\"'heroicons_solid:search'\" [ngClass]=\"{'w-6 min-w-6 h-6 min-h-6' : !showSearch}\"></mat-icon>\n          </button>\n        </div>\n        <!-- Configure Info Window button for map view and board view -->\n        <button *ngIf=\"selectedDataView && screenType === ScreenType.dataViewBuilder && (selectedViewType === ViewType.BoardView || selectedViewType === ViewType.MapView) && selectedDataView.id\" class=\"primary-btn axo-font\" (click)=\"createCache()\">Configure Info Window</button>\n        <!-- Group by dropdown for Task List -->\n        <div class=\"items-center search-field flex\" *ngIf=\"dataViews.type === DataViewType.genericTaskView\">\n              <mat-select placeholder=\"Group By\" [disableOptionCentering]=\"true\" class=\"task-list-group-selection axo-font\">\n                <mat-option (click)=\"taskGroupBy.emit('')\"  value=\"\" class=\"task-list-group-selection-option axo-font\">None</mat-option>\n                <mat-option (click)=\"taskGroupBy.emit(TaskGroupType.workflowInstance)\" value=\"WorkflowInstance\" class=\"task-list-group-selection-option axo-font\">WorkflowInstance</mat-option>\n                <!-- <mat-option (click)=\"taskGroupBy.emit(TaskGroupType.user) \"value=\"User\" class=\"task-list-group-selection-option axo-font\">User</mat-option> -->\n              </mat-select>\n        </div>\n\n        <button *ngIf=\"screenType === ScreenType.dataViewBuilder && ViewType.TaskView !== selectedViewType\" class=\"primary-btn axo-font\" (click)=\"createNewView.emit(selectedViewType)\"> Create {{selectedViewType}}</button>\n      </div>\n\n    </div>\n  </div>\n    <!--Form Objects Filter component -->\n    <div class=\"data-view-filter-container\">\n    <!-- Dedicated Filters for For Action Task list And Asset list -->\n    <lib-data-view-filters  class=\"w-full\"\n          [screenType]=\"screenType\"\n          [selectedViewType]=\"selectedViewType\"\n          [filters]=\"dataViews.filters\"\n          [appVersionId]=\"appVersionId\"\n          [showAssignToButton]=\"showAssignToButton\"\n          [dataViews]=\"dataViews\"\n          (applyFilterEmit)=\"applyFilter.emit($event)\"\n          (resetFilterEmit)=\"resetFilter.emit($event)\"\n          [form]=\"axForm\"\n          (assign)=\"assign.emit()\"\n          (addNewRecord)=\"addNewRecord.emit()\"\n          (generateQR)=\"generateQR.emit()\"\n          (refreshData)=\"refreshData.emit()\"\n          (exportData)=\"exportData.emit($event)\"\n          [userEmail]=\"userEmail\">\n    </lib-data-view-filters>\n\n    <!-- Generic Filter List -->\n    <!-- This filter will be used in future for generic task list. -->\n    <!-- <axo-filters *ngIf=\"dataViews.type === DataViewType.genericTaskView\" class=\"w-full\"\n        [screenType]=\"screenType\"\n        [selectedViewType]=\"selectedViewType\"\n        [filters]=\"dataViews.filters\"\n        (applyFilterEmit)=\"applyFilter.emit($event)\"\n        (resetFilterEmit)=\"resetFilter.emit($event)\"\n        [form]=\"axForm\"\n        [appVersionId]=\"appVersionId\"\n        (addNewRecord)=\"addNewRecord.emit()\"\n        (refreshData)=\"refreshData.emit()\"\n        (exportData)=\"exportData.emit($event)\"\n        [userEmail]=\"userEmail\">\n    >\n\n    </axo-filters> -->\n    </div>\n\n  </div>\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { DataViewType, TaskGroupTypes, ViewType } from '../data-view/data-view-enums';\nimport { IDataView } from '../data-view/idata-view';\nimport { AxForm } from '../../forms/ax-form';\nimport { DataView } from '../data-view/data-view';\nimport { ScreenType } from '../../enlighten-lib/filters/condition-type';\nimport { DataViewService } from '../data-view.service';\nimport _ from 'lodash';\nimport { MAT_SELECT_CONFIG } from '@angular/material/select';\n\n@Component({\n  selector: 'lib-data-view-header',\n  templateUrl: './data-view-header.component.html',\n  styleUrls: ['./data-view-header.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  providers: [\n    {\n        provide: MAT_SELECT_CONFIG,\n        useValue: { overlayPanelClass: 'data-view-header-overlay-panel' },\n    }\n]\n})\nexport class DataViewHeaderComponent implements OnInit {\n  // <----------- View Child ---------->\n  @ViewChild('taskViewListDropDown') taskViewListDropDown;\n  @ViewChild('listViewListDropDown') listViewListDropDown;\n  @ViewChild('mapViewListDropDown') mapViewListDropDown;\n  @ViewChild('boardViewListDropDown') boardViewListDropDown;\n\n  //< -------  Inputs ---------------->\n  @Input() dataViews: DataView;\n  @Input() axForm: AxForm;\n  @Input() selectedViewType: ViewType;\n  @Input() selectedDataView: IDataView;\n  @Input() screenType: ScreenType;\n  @Input() appVersionId: number;\n  @Input() userEmail: string;\n  @Input() showAssignToButton: boolean;\n  // <-------- Outputs --------------->\n  @Output() switchDataView: EventEmitter<ViewType> = new EventEmitter<ViewType>();\n  @Output() createNewView: EventEmitter<ViewType> = new EventEmitter<ViewType>();\n  @Output() dataViewChanged: EventEmitter<IDataView> = new EventEmitter<IDataView>();\n  @Output() applyFilter = new EventEmitter<any>();\n  @Output() resetFilter = new EventEmitter<any>();\n  @Output() taskGroupBy = new EventEmitter<TaskGroupTypes>();\n  @Output() searchEvent = new EventEmitter<any>();\n  @Output() addNewRecord = new EventEmitter<any>();\n  @Output() generateQR = new EventEmitter<any>();\n  @Output() refreshData = new EventEmitter<any>();\n  @Output() exportData = new EventEmitter<any>();\n  @Output() assign = new EventEmitter<any>();\n\n\n  showSearch: boolean = false;\n  searchText: string = '';\n  constructor(\n    private _dataViewService: DataViewService\n  ) { }\n\n  ngOnInit(): void {\n  }\n\n  /**\n   * Getter for dataViewType\n   */\n   get DataViewType(){\n    return DataViewType;\n  }\n  /**\n   * Getter for ViewType\n   */\n   get ViewType(){\n    return ViewType;\n  }\n\n  /**\n   * Getter for screen type\n   */\n  get ScreenType(){\n    return ScreenType;\n  }\n\n  /**\n   * Getter for task group types\n   */\n  get TaskGroupType(){\n    return TaskGroupTypes;\n  }\n\n  /**\n   * change selected data view\n   *\n   * @param event\n   */\n  changeDataView(boardView: IDataView,selectedViewType: ViewType): void{\n    this.selectedViewType = selectedViewType;\n    this.selectedDataView = boardView;\n    this.dataViewChanged.emit(this.selectedDataView);\n  }\n\n  /**\n   * Switch selected data view\n   *\n   * @param dataViewType\n   */\n  switchView(dataViewType: ViewType): void{\n    // Switch data view only if views are greater than 1 else open dropdown\n    if(\n      (dataViewType === ViewType.BoardView &&  this.dataViews.boardViews.length <= 1) ||\n      (dataViewType === ViewType.DataListView &&  this.dataViews.listViews.length <= 1) ||\n      (dataViewType === ViewType.MapView &&  this.dataViews.mapViews.length <= 1) ||\n      (dataViewType === ViewType.TaskView &&  this.dataViews.taskViews.length <= 1)\n      ){\n      this.switchDataView.emit(dataViewType);\n    }else{\n      switch(dataViewType){\n        case ViewType.DataListView:\n          this.listViewListDropDown.open();\n          break;\n        case ViewType.MapView:\n          this.mapViewListDropDown.open();\n          break;\n        case ViewType.BoardView:\n          this.boardViewListDropDown.open();\n      }\n    }\n\n\n  }\n\n  /**\n   * Create Cache\n   */\n  createCache(): void {\n    if(this.selectedViewType === ViewType.BoardView){\n        this._dataViewService.createBoardViewCache(this.selectedDataView.id).then((response)=>{\n            console.log('Cache Created.');\n        }).catch((error)=>{\n            console.error(error);\n        });\n    }else if(this.selectedViewType === ViewType.MapView){\n        this._dataViewService.createMapViewCache(this.selectedDataView.id).then((response)=>{\n            console.log('Cache Created.');\n        }).catch((error)=>{\n            console.error(error);\n        });\n    }\n  }\n\n  /**\n   * this function is for showing the search box\n   */\n  showSearchBox(): void {\n    this.showSearch = !this.showSearch;\n    document.getElementById('field-search').focus();\n  }\n\n  /**\n   * clear the search box\n   */\n  clear(): void {\n    if (_.isEmpty(this.searchText)) {\n     this.showSearch = !this.showSearch;\n    }\n    this.searchText = '';\n    this.getSearchedData(this.searchText);\n  }\n\n\n  /**\n   *\n   * @param searchValue\n   */\n   getSearchedData(searchValue?: string): void {\n    this.searchText = searchValue;\n    this.searchEvent.emit(this.searchText);\n  }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { MatSelectChange } from '@angular/material/select';\nimport { AxExpression } from '../enlighten-lib/ax-expression/ax-expression';\nimport { ExpressionValueType } from '../enlighten-lib/ax-expression/exp-sub-type';\nimport { Attribute } from '../enlighten-lib/data-model/attribute';\nimport { DataModel } from '../enlighten-lib/data-model/data-model';\nimport { AxDate } from '../enlighten-lib/fields/types/ax-date';\nimport { AxNumber } from '../enlighten-lib/fields/types/ax-number';\nimport { AxText } from '../enlighten-lib/fields/types/ax-text';\nimport { AxTime } from '../enlighten-lib/fields/types/ax-time';\nimport { ChoiceList } from '../enlighten-lib/fields/types/choicelist';\nimport { DateTime } from '../enlighten-lib/fields/types/datetime';\nimport { IEnlightenType } from '../enlighten-lib/fields/types/ienlighten-type';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { ConditionType, FilterType, ScopeType } from '../enlighten-lib/filters/condition-type';\nimport { FilterCategory } from '../enlighten-lib/filters/filter-category';\nimport { SearchNode } from '../enlighten-lib/filters/search-node';\nimport { Widget } from '../forms/page/widgets/widget';\n\n@Injectable()\nexport class AxoFiltersService {\n\n    constructor(\n        private _httpClient: HttpClient,\n    ) { }\n\n\n    /**\n     * Get data model by app version id.\n     * @param appVersionId\n     * @returns\n     */\n    getDataModelByAppVersion(appVersionId:number):Promise<DataModel>{\n        return new Promise((resolve,reject)=>{\n            this._httpClient.post<DataModel>(\"datamodels/byappversionid\",{appVersionId:appVersionId,dataModelType:1}).subscribe((response)=>{\n                resolve(response);\n            },reject)\n        })\n    }\n\n    /**\n   * Add new filter functionality\n   *\n   * @param appVersion\n   * @param event\n   * @param filters\n   * @returns  filter array\n   */\n  addFilter(appVersion: number, event: MatSelectChange | any, filters: Array<AxFilter>, scopeType: number,x: number): AxFilter{\n    let attribute = event.option.value;\n    const expression = new AxExpression();\n    attribute = new Attribute(attribute);\n    expression.field = attribute;\n    const searchNode = new SearchNode();\n    searchNode.expression = expression;\n    searchNode.type = ConditionType.condition;\n    const axFilter = new AxFilter();\n    axFilter.type = FilterType.basic;\n    axFilter.appVersionId = appVersion;\n    axFilter.scope = ScopeType.global;\n    axFilter.searchNodes.push(searchNode);\n    axFilter.type = FilterType.basic;\n    return axFilter;\n  }\n\n  /**\n   * Add new filter category into report and element filter\n   *\n   * @param appVersion\n   * @param event\n   * @param categories\n   * @returns Filter category array\n   */\n  addFilterCategory(appVersion: number, event: MatSelectChange | any, categories: Array<FilterCategory>, x: number): Array<FilterCategory>{\n    const categoryFilter = event.option.value;\n    categoryFilter.appVersionId = appVersion;\n    categoryFilter.gridProperties.x = x;\n    if(event.option._selected){\n      categoryFilter.isDeleted = false;\n      const data = categories.find(category => category.id === categoryFilter.id);\n      if(data === undefined || categories.length === 0){\n        categories.push(categoryFilter);\n      }\n    }else{\n      categories.forEach((categoryField, index) =>{\n        if(categoryField.id === categoryFilter.id){\n          categories[index].isDeleted = true;\n          categories[index].isSearchable = false;\n        }\n      });\n    }\n    return categories;\n  }\n}\n","<div class=\"sticky data-list-filter\">\n    <div class=\"table-heading\">\n        <!--filter-->\n        <div class=\"flex items-center justify-between flex-wrap lg:flex-nowrap\">\n            <div class=\"flex items-center gap-4 mx-auto w-full\">\n                <div class=\"report-filter\" style=\"position: relative\">\n                    <!-- Add filter Button  -->\n                    <button class=\"light-blue-btn axo-font\" mat-icon-button [matMenuTriggerFor]=\"menu\">\n                        + Add Filter\n                    </button>\n\n                    <!-- Close button for closing filter dialog -->\n                    <mat-menu #menu=\"matMenu\" yPosition=\"below\" class=\"filter-field-list\" backdropClass=\"report-filter-menu-backdrop-class\">\n                        <div class=\" sticky top-0 bg-white flex justify-end items-center h-10 z-10\">\n                            <button\n                                class=\"light-btn min-w-8 px-2 py-0 max-h-5 h-5 min-h-5 leading-5 axo-font\" mat-icon-button (click)=\"closeMatMenu()\">\n                                <mat-icon>clear</mat-icon>\n                            </button>\n                        </div>\n                        <!-- Field List  -->\n                        <div (click)=\"$event.stopPropagation()\">\n                            <div class=\"group flex items-center justify-center mb-3\" [ngClass]=\"{ 'justify-between px-2.5': !showSearchBox }\">\n                                <span *ngIf=\"showField\" class=\"text-f font-medium\">\n                                    Fields\n                                </span>\n                                <!-- Search Button -->\n                                <div class=\"flex items-center search-field\" [ngClass]=\"{ 'global-border px-2.5': showSearchBox }\">\n                                    <button (click)=\"showFilterDiv()\">\n                                        <mat-icon\n                                            [ngClass]=\"{ 'search-icon': showSearchBox }\"\n                                            class=\"mt-2 text-xs search-icons\"\n                                            [svgIcon]=\"'heroicons_solid:search'\"\n                                        ></mat-icon>\n                                    </button>\n                                    <!-- Search input box -->\n                                    <input id=\"global-field-search\" (keydown)=\"$event.stopPropagation()\" autocomplete=\"off\" placeholder=\"Search...\" matInput class=\"search-bar chart-title\" [style.width]=\"!showSearchBox ? '0' : '100%'\"/>\n                                    <mat-icon (click)=\"clear()\" *ngIf=\"showSearchBox\" class=\"clear_icon cursor-pointer text-base\" >clear</mat-icon>\n                                </div>\n                            </div>\n                            <mat-accordion>\n                                <!-- Category List -->\n                                <ng-container *ngIf=\"categoryList.length > 0\">\n                                    <!-- Mat Expansion panel -->\n                                    <mat-expansion-panel >\n                                        <div [ngClass]=\"{ 'field-container': showSearchBox }\" *ngIf=\"(categoryList | search: searchedTerm)?.length\">\n                                            <!-- Mat expansion panel header -->\n                                            <mat-expansion-panel-header>\n                                                <label class=\"px-2.5\" *ngIf=\"     (categoryList | search: searchedTerm)?.length \" >\n                                                    Category\n                                                </label>\n                                            </mat-expansion-panel-header>\n                                            <!-- Selection Dropdown -->\n                                            <mat-selection-list #category (selectionChange)=\" getCategoryFilterList($event, i) \">\n                                                <ng-container *ngFor=\"let category of categoryList | search: searchedTerm; let i = index \">\n                                                    <mat-list-option *ngIf=\"!category.isHidden\" checkboxPosition=\"after\" [value]=\"category\" [(selected)]=\"category.isSelected\" color=\"primary\">\n                                                        <span class=\"list-field\" [matTooltip]=\"category.name\">\n                                                            {{ category.name }}\n                                                        </span>\n                                                    </mat-list-option>\n                                                </ng-container>\n                                            </mat-selection-list>\n                                        </div>\n                                    </mat-expansion-panel>\n                                </ng-container>\n\n                                <!-- Entity List  -->\n                                <div class=\"fields-div\">\n                                    <ng-container *ngFor=\"let entity of dataModel?.entities\">\n                                        <ng-container *ngIf=\"!entity.isManyToManyTable\">\n                                            <!-- Mat expansion panel -->\n                                            <mat-expansion-panel >\n                                                <!-- Mat expansion panel header -->\n                                                <mat-expansion-panel-header>\n                                                    <label class=\"px-2.5\" *ngIf=\"(entity.columns | search: searchedTerm)?.length\" >\n                                                        {{ entity.formName }}\n                                                    </label>\n                                                </mat-expansion-panel-header>\n                                                <!-- Mat Selection List -->\n                                                <mat-selection-list #filters *ngIf=\"(entity.columns | search: searchedTerm)?.length > 0 \" (selectionChange)=\"addBasicFilter($event,entity.formId)\">\n                                                    <ng-container *ngFor=\"let column of entity.columns | search: searchedTerm \">\n                                                        <!-- Select list options -->\n                                                        <mat-list-option *ngIf=\"!column.isHidden\" checkboxPosition=\"after\" [value]=\"column\" [(selected)]=\"column.isSelected\" color=\"primary\" >\n                                                            <span class=\"list-field\" [matTooltip]=\"column.label\" >\n                                                                <mat-icon class=\"svg-icon mr-2\" [svgIcon]=\"column.enlightenType .matIcon \"></mat-icon>\n                                                                {{ column.label }}\n                                                            </span>\n                                                        </mat-list-option>\n                                                    </ng-container>\n                                                </mat-selection-list>\n                                            </mat-expansion-panel>\n                                        </ng-container>\n                                    </ng-container>\n                                </div>\n                            </mat-accordion>\n                        </div>\n                    </mat-menu>\n                </div>\n                <!-- Selected Filter List -->\n                <filters\n                    class=\"data-list-filter-container\"\n                    [filters]=\"filters\"\n                    [commonFilterArray]=\"commonFilterArray\"\n                    [screenType]=\"screenType\"\n                    [categories]=\"categories\"\n                    [scopeType]=\"scopeType\"\n                    (applyFilterEmit)=\"applyFilterEmit.emit($event)\"\n                    (resetFilterEmit)=\"resetFilterEmit.emit($event)\"\n                    (deleteFilterEmit)=\"deleteFilter($event)\"\n                >\n                </filters>\n            </div>\n        </div>\n    </div>\n</div>\n","import { ScopeType } from './../enlighten-lib/filters/condition-type';\nimport { Component, OnInit, OnChanges, SimpleChanges, Input, Output, EventEmitter } from '@angular/core';\nimport { AxFilter } from '../enlighten-lib/filters/ax-filter';\nimport { ScreenType } from '../enlighten-lib/filters/condition-type';\nimport { FilterCategory } from '../enlighten-lib/filters/filter-category';\nimport { AxoFiltersService } from './axo-filters.service';\nimport { GeneralFilterType } from '../enlighten-lib/filters/general-filter-type';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { DataModel } from '../enlighten-lib/data-model/data-model';\n\n@Component({\n    selector: 'axo-filters',\n    templateUrl: './axo-filters.component.html',\n    styleUrls: ['./axo-filters.component.scss']\n})\nexport class AxoFiltersComponent implements OnChanges {\n    // <------------ Inputs _----------------------->\n    @Input() filters: Array<AxFilter>;\n    @Input() categories: Array<FilterCategory> = [];\n    @Input() screenType: ScreenType;\n    @Input() appVersionId: number;\n    @Input() dataModel: DataModel;\n    @Input() scopeType: ScopeType = 2;\n\n    // <------------ Outputs ----------------------->\n    @Output() dirtyFlowCheckEvent = new EventEmitter<any>();\n    @Output() applyFilterEmit = new EventEmitter<any>();\n    @Output() resetFilterEmit = new EventEmitter<any>();\n    @Output() clearFilterEmit = new EventEmitter<any>();\n    @Output() sendFilterToDashboard = new EventEmitter<any>();\n    @Output() filterCategorySendOnDashboardEvent = new EventEmitter<any>();\n    // <---------- Component Level Attributes ------>\n    commonFilterArray: Array<any> = [];\n    categoryList: Array<any> = [];\n    showSearchBox: boolean = false;\n    showField: boolean = true;\n    titleValue: string = '';\n    searchedTerm: string = '';;\n    showApplyFilterEvent: boolean = true;\n    formId: string;\n    selectedWidget: Array<string> = [];\n    form: any;\n\n    /**\n     *Constructor\n     */\n    constructor(private _axoFilterService: AxoFiltersService) { }\n\n\n    /**\n     * Ng On changes get called on Input changes\n     *\n     * @param changes\n     */\n    ngOnChanges(changes: SimpleChanges): void {\n        if (changes.appVersionId || changes.dataModel) {\n            this.initializeAxoFilter();\n        }\n    }\n\n    /**\n     * Initialize axo filter\n     */\n    initializeAxoFilter(): void {\n        this.generateCommonFilterList();\n        if (!this.dataModel && this.appVersionId) {\n            this.getDataModel();\n        }\n    }\n\n    /**\n     * Get Data model\n     */\n    getDataModel(): void {\n        this._axoFilterService.getDataModelByAppVersion(this.appVersionId).then((dataModel) => {\n            this.dataModel = new DataModel(dataModel);\n        }).catch((error) => {\n            console.log(error);\n        });\n    }\n\n    /**\n     * Generate common filter list from existing filters and categories.\n     */\n    generateCommonFilterList(): void {\n        //Add filters in the common filters list\n        this.filters.forEach((filter) => {\n            // filter.generalFilterType = GeneralFilterType.filters;\n            if (!this.commonFilterArray.includes(filter)) {\n                this.commonFilterArray.push(filter);\n            }\n        });\n\n        //Add Categories in the common filters list\n        this.categories.forEach((category) => {\n            category.generalFilterType = GeneralFilterType.category;\n            if (!this.commonFilterArray.includes(category)) {\n                this.commonFilterArray.push(category);\n            }\n        });\n\n        // sort the filter by order.\n        this.commonFilterArray.sort((a, b) => (a.gridProperties.x > b.gridProperties.x) ? 1 : ((b.gridProperties.x > a.gridProperties.x) ? -1 : 0));\n    }\n\n    /**\n     * This will get called from filter commonent on filter delete.\n     *\n     * @param index\n     */\n    deleteFilter(index: number): void {\n        const filter = this.commonFilterArray[index];\n        this.removeBasicFilter(filter);\n    }\n\n    /**\n     * Remove filter from filter array if filter is not saved or mark as deleted if it's saved.\n     *\n     * @param filter\n     */\n    removeBasicFilter(filter: AxFilter): void {\n        if (filter.id === 0) {\n            this.filters.splice(this.filters.indexOf(filter), 1);\n            this.commonFilterArray.splice(this.filters.indexOf(filter), 1);\n        } else {\n            filter.isDeleted = false;\n            filter.isSelected = false;\n        }\n    }\n\n\n    /**\n     * This will get called on MatSelection Change\n     * We delete filter if if deselect widget or we create new filter if select widget.\n     *\n     * @param event\n     */\n    addBasicFilter(event: MatSelectionListChange,formId: number): void {\n        // Add new filter\n        if (event.option.selected) {\n            const attribute = event.option.value;\n            attribute.formId = formId;\n            this.selectedWidget.push(attribute.identifier);\n            this.showApplyFilterEvent = !this.showApplyFilterEvent;\n            //created new filter by widget\n            const filter = this._axoFilterService.addFilter(\n                this.appVersionId,\n                event,\n                this.filters,\n                ScopeType.global,\n                this.filters.length\n            );\n            this.filters.push(filter);\n            this.commonFilterArray.push(filter);\n        } else {\n            //remove selected filter\n            this.selectedWidget.slice(this.selectedWidget.indexOf(event.option.value.identifier), 1);\n            const filter = this.getFilterFromList(event.option.value.identifier);\n            this.removeBasicFilter(filter);\n        }\n\n    }\n\n    /**\n     * Get filter by widget identifier.\n     *\n     * @param identifier\n     * @returns\n     */\n    getFilterFromList(identifier: string): AxFilter {\n        for (const filter of this.commonFilterArray) {\n            if (filter.searchNodes[0].expression.field.identifier === identifier) { return filter; };\n        }\n        return null;\n    }\n\n    closeMatMenu(): void {\n\n    }\n\n    showFilterDiv(): void { }\n\n\n\n\n}\n","import { ReactiveFormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AxoFiltersComponent } from './axo-filters.component';\nimport { AxoFiltersService } from './axo-filters.service';\nimport { FiltersModule } from '../filters/filters.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSelectModule } from '@angular/material/select';\nimport { AxoUtilsModule } from '../axo-utils/axo-utils.module';\nimport {MatExpansionModule} from '@angular/material/expansion';\n\n\n\n@NgModule({\n  declarations: [\n    AxoFiltersComponent\n  ],\n  imports: [\n    CommonModule,\n    FiltersModule,\n    MatIconModule,\n    MatMenuModule,\n    MatListModule,\n    AxoUtilsModule,\n    MatSelectModule,\n    MatExpansionModule,\n    ReactiveFormsModule\n  ],\n  exports:[AxoFiltersComponent],\n  providers:[AxoFiltersService]\n})\nexport class AxoFiltersModule { }\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class FormPermissionService {\n    visibleFormsMap = new Map<string, any>();\n    private formList: BehaviorSubject<any[] | null> = new BehaviorSubject(null);\n    private _visibleForms: BehaviorSubject<any | null> = new BehaviorSubject(null);\n    isChildForm: boolean = false;\n    constructor(private _httpClient: HttpClient) { }\n    /**\n     * Getter for visible forms\n     */\n    get visibleForms$(): Observable<any> {\n        return this._visibleForms.asObservable();\n    }\n    /**\n     * Getter for formList\n     */\n    get formsList$(): Observable<any[]> {\n        return this.formList.asObservable();\n      }\n\n\n    /**\n     * setter for formList\n     */\n    set formLists(formList) {\n        this.formList.next(formList);\n    }\n\n\n    /**\n     * Get visible form list  by the app-version id to show only visible forms on container\n     *\n     * @param appVersionId\n     * @returns\n     */\n    getVisibleFormList(appVersionId: string, axonatorX1Url: string): Promise<any> {\n        const formData = new FormData();\n        formData.append('appversion', appVersionId);\n        formData.append('fetch_asset_and_tracking_forms', 'true');\n        formData.append('fetch_child_forms', 'true');\n        return new Promise((resolve, reject) => {\n            this._httpClient.post<any>(axonatorX1Url + 'getAllForms/', formData).subscribe((response: any) => {\n                response.afl.afs.forEach((element) => {\n                    const data = {\n                        formId: element.fid,\n                        type: element.ft,\n                        formName: element.fn,\n                        parentId: element.parent_id,\n                        isChildForm: element.is_child\n                    };\n                    this.visibleFormsMap.set(element.fid.toString(), data);\n                });\n                this._visibleForms.next(response);\n                resolve(response);\n            }, reject);\n        });\n    }\n    /**\n     * To check user has permission to access particular form using formId\n     * This function will return true if user has access otherwise will return false\n     *\n     * @param formId\n     * @returns\n     */\n    hasAccess(formId: string): boolean {\n        if (this.isChildForm) {\n            return this.visibleFormsMap.has(formId) && this.visibleFormsMap.get(formId).isChildForm;\n        }\n        else {\n            return this.visibleFormsMap.has(formId) && !this.visibleFormsMap.get(formId).isChildForm;\n        }\n    }\n    /**\n     * to get visible form list\n     *\n     * @param appVersionId\n     * @param axonatorX1Url\n     * @param asset\n     * @param child\n     * @param tracking\n     * @returns\n     */\n    getForms(appVersionId: string, axonatorX1Url: string, asset: boolean, child: boolean, tracking: boolean): Promise<any> {\n        const formData = new FormData();\n        formData.append('appversion', appVersionId);\n        formData.append('fetch_asset_and_tracking_forms', tracking.toString());\n        formData.append('fetch_child_forms', child.toString());\n        return new Promise((resolve,reject)=>{\n            this._httpClient.post<any>(axonatorX1Url + 'getVisibleAssetForms/', formData).subscribe((response: any) => {\n                this.formLists = response;\n                resolve(true);\n            },reject)\n        })\n    }\n}\n","<div class=\"parameter-mapper-container\">\n  <div class=\"content\">\n    <!-- Left Side Section -->\n    <div class=\"destination\">\n      <div  class=\"flex flex-col w-full gap-2\">\n        <div class=\"data-section\" *ngFor=\"let data of data.controls; let i = index\" [formGroup]=\"data\">\n          <mat-select *ngIf=\"mapType === 'QR'\" class=\"field-select\" [disableOptionCentering]=\"true\"\n            placeholder=\"Select Field\" (selectionChange)=\"onFieldSelected($event, i)\">\n            <mat-option value=\"\" disabled selected>Select a field</mat-option>\n            <mat-option *ngFor=\"let widget of getAvailableWidgets(i)\" [value]=\"widget.identifier\">{{ widget.prompt}}</mat-option>\n          </mat-select>\n          <div *ngIf=\"mapType === 'restapi'\">\n            <div *ngFor=\"let item of getKeys(data);\">\n              <input\n                matInput\n                class=\"key-name-input\"\n                placeholder=\"Key Name\"\n                [value]=\"item\"\n                #keyNameInput\n              >\n            </div>\n          </div>\n          \n          <div class=\"destination-container\">\n            <div contenteditable=\"true\" \n                (input)=\"updateFormControlValue($event, data)\" \n                cdkDropList\n                [id]=\"getDropListId(i)\" \n                [cdkDropListConnectedTo]=\"getConnectedDropLists()\" \n                class=\"destination-list\"\n                (cdkDropListDropped)=\"drop($event, data)\" \n                placeholder=\"form field\">\n                <div contenteditable=\"false\" *ngFor=\"let item of getDroppedItems(data); let j = index\" class=\"dropped-item\">\n                  {{ item }}\n                  <button class=\"delete-btn\"(click)=\"removeDroppedItem(data, j)\">\n                    <img src=\"https://ax-static.s3.us-west-2.amazonaws.com/static/img/doc-designer-assets/removeItem.svg\">\n                  </button>\n                </div>\n            </div>\n          </div>\n          <button class=\"data-section-delete\" (click)=\"removeDataSection(i)\">\n            <img src=\"https://ax-static.s3.us-west-2.amazonaws.com/static/img/doc-designer-assets/axo_delete.svg\" alt=\"\" (click)=\"removeDataSection(i)\">\n          </button>\n        </div>\n        <button type=\"button\" class=\"add-btn\" (click)=\"addDataSection()\">+add field</button>\n        <div class=\"additional-fields m-0\">\n          <!-- Additional fields will be dynamically added here -->\n        </div>\n      </div>\n    </div>\n    <div class=\"vertical-line\"></div>\n    <!-- Right Side Section -->\n    <div *ngIf=\"source && sourceForms && sourceForms[0]!==null && sourceForms.length > 0\" class=\"source\">\n      <h3 class=\"source-heading\">Form Fields</h3>\n      <div *ngFor=\"let form of sourceForms\">\n        <div class=\"source-container\">\n          <div cdkDropList [cdkDropListData]=\"form.widgets\" [cdkDropListConnectedTo]=\"getConnectedDropLists()\"\n            class=\"source-list\">\n            <div class=\"toggle-header\" (click)=\"toggleItemsVisibility(form)\">\n              <span class=\"dropdownarrow\">\n                <svg *ngIf=\"form.isExpanded\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\"\n                  height=\"24\">\n                  <path d=\"M7 14l5-5 5 5z\" />\n                </svg>\n                <svg *ngIf=\"!form.isExpanded\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\"\n                  height=\"24\">\n                  <path d=\"M7 10l5 5 5-5z\" />\n                </svg>\n              </span>\n              <span class=\"header-text\">{{ form.name }}</span>\n            </div>\n            <div *ngIf=\"form.isExpanded\" class=\"source-items\">\n              <div *ngFor=\"let item of form.widgets\" class=\"source-box\" cdkDrag\n                [cdkDragData]=\"{item: item, formId: form.formId, origin: 'source'}\">{{ item.prompt }}</div>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, Renderer2, ViewChildren, QueryList, ElementRef } from '@angular/core';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms';\nimport { FormPermissionService } from '../form-permission.service';\nimport { CommonLibConfigurationService } from '../common-lib-configuration.service';\nimport { CommonService } from '../common.service';\nimport { MatSelectChange } from '@angular/material/select';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AxForm } from '../forms/ax-form';\n\n@Component({\n  selector: 'lib-field-map',\n  templateUrl: './field-map.component.html',\n  styleUrls: ['./field-map.component.scss']\n})\nexport class FieldMapComponent implements OnInit {\n  @Input() appVersionId: number;\n  @Input() filteredWidgets: any[] = [];\n  @Input() mapType: string;\n  @Input() actionFormId: any;\n  @Input() sourceForms: AxForm[] = [];\n  @Input() source:boolean;\n  @Input() fieldMapData: any[] = [];\n  @Output() fieldmap = new EventEmitter<any>();\n\n  @ViewChildren('keyNameInput') keyNameInputs: QueryList<ElementRef>;\n\n  formGroup: FormGroup;\n  forms: any[] = [];\n  done = ['Email', 'First_Name', 'Last_Name', 'meta_header_354022', 'Serial Number', 'Model'];\n  formNames: FormData[];\n\n  constructor(\n    private formBuilder: FormBuilder,\n    private formService: FormPermissionService,\n    private commonLibConfig: CommonLibConfigurationService,\n    private commonService: CommonService,\n    private httpClient: HttpClient,\n    private renderer: Renderer2\n  ) {}\n\n  ngOnInit() {\n    console.log(\"MAPTYPE:\",this.mapType);\n    console.log(\"filtered widgets:\",this.filteredWidgets)\n    this.initializeFormGroup();\n    if(this.mapType === 'restapi'){\n    this.populateFormGroup();\n    this.logMapObject();\n    }\n  }\n\n  private initializeFormGroup() {\n    if(this.mapType === 'restapi'){\n      this.formGroup = this.formBuilder.group({\n        data: this.formBuilder.array([])\n      });\n    }\n    else if(this.mapType === 'QR'){\n      this.formGroup = this.formBuilder.group({\n        data: this.formBuilder.array([this.createDataSection()])\n      });\n    }\n  }\n\n  private populateFormGroup() {\n    this.fieldMapData.forEach(mapping => {\n      const newSection = this.createDataSection();\n      newSection.patchValue({\n        field_id: mapping.destination,\n        value: mapping.source\n      });\n      this.data.push(newSection);\n    });\n  }\n\n  loadFormDetails() {\n    this.forms.forEach((form, index) => {\n      this.commonService.getFormDetails(form.fid)\n        .then(response => {\n          if (response?.fd?.form?.flat_fields) {\n            this.forms[index] = { ...form, flat_fields: response.fd.form.flat_fields };\n          } else {\n            console.warn(`No flat_fields found for form ID ${form.fid}`);\n          }\n        })\n        .catch(error => {\n          console.error('Error fetching form details for form ID', form.fid, ':', error);\n        });\n    });\n  }\n\n  get data(): FormArray {\n    return this.formGroup.get('data') as FormArray;\n  }\n\n  toggleItemsVisibility(form: any): void {\n    form.isExpanded = !form.isExpanded;\n  }\n\n  createDataSection(): FormGroup {\n    return this.formBuilder.group({\n      field_id: ['', Validators.required],\n      value: ['', Validators.required]\n    });\n  }\n\n  addDataSection() {\n    this.data.push(this.createDataSection());\n  }\n\n  removeDataSection(index: number) {\n    this.data.removeAt(index);\n    this.logMapObject();\n  }\n\n  getAvailableWidgets(index: number) {\n    const selectedFields = this.data.controls\n      .filter((control, i) => i !== index)\n      .map(control => control.value.field_id);\n    return this.filteredWidgets.filter(widget => !selectedFields.includes(widget.identifier));\n  }\n\n  onFieldSelected(event: MatSelectChange, index: number) {\n    const selectedValue = event.value;\n    const control = this.data.at(index);\n    control.get('field_id').setValue(`{{${this.actionFormId}.${selectedValue}}}`);\n    this.logMapObject();\n  }\n\n  updateFormControlValue(event: any, control: FormGroup) {\n    const valueControl = control.get('value');\n    const updatedText = event.target.innerText.replace(/\\n/g, '');\n    valueControl.setValue(updatedText);\n    this.logMapObject();\n  }\n\n  drop(event: CdkDragDrop<any[]>, control: FormGroup) {\n    if (control) {\n      const valueControl = control.get('value');\n      let currentValue = valueControl.value || '';\n      const draggedData = event.item.data;\n      const wrappedItem = `{{${draggedData.formId}.${draggedData.item.identifier}}}`;\n      const safePosition = this.findSafeInsertionPoint(currentValue);\n      let newValue = '';\n\n      if (draggedData.origin === 'source') {\n        newValue = safePosition === null ? currentValue + wrappedItem : currentValue.slice(0, safePosition) + wrappedItem + currentValue.slice(safePosition);\n      }\n\n      valueControl.setValue(newValue);\n      this.logMapObject();\n    }\n  }\n\n  private findSafeInsertionPoint(text: string): number | null {\n    const placeholderPattern = /{{\\d+\\.[a-zA-Z0-9_]+}}/g;\n    let lastSafeIndex = 0;\n    let match;\n\n    while ((match = placeholderPattern.exec(text)) !== null) {\n      lastSafeIndex = placeholderPattern.lastIndex;\n    }\n\n    return lastSafeIndex >= text.length ? null : lastSafeIndex;\n  }\n\n  getDroppedItems(control: FormGroup): string[] {\n    const value = control.get('value').value || '';\n    const regex = /{{(\\w+)\\.(\\w+)}}/g;\n    const matches = [];\n    let match;\n\n    while ((match = regex.exec(value)) !== null) {\n      matches.push(match[0]);\n    }\n\n    return matches;\n  }\n\n  getKeys(control: FormGroup): string[] {\n    const value = control.get('field_id').value || '';\n    return [value];\n  }\n\n  removeDroppedItem(control: FormGroup, index: number) {\n    const valueControl = control.get('value');\n    const droppedItems = this.getDroppedItems(control);\n    droppedItems.splice(index, 1);\n    const updatedValue = droppedItems.join('').replace(/\\n/g, '');\n    valueControl.setValue(updatedValue);\n    this.logMapObject();\n  }\n\n  getDropListId(index: number): string {\n    return `destinationList_${index}`;\n  }\n\n  getConnectedDropLists(): string[] {\n    return this.data.controls.map((_, i) => this.getDropListId(i));\n  }\n\n  buildMapObject(): any {\n    // Update all key values before building the map object\n    if (this.mapType === 'restapi' && this.keyNameInputs && this.keyNameInputs.length) {\n      this.keyNameInputs.forEach((input, index) => {\n        const control = this.data.at(index);\n        const updatedValue = input.nativeElement.value;\n        control.get('field_id').setValue(updatedValue, { emitEvent: false });\n      });\n    }\n\n    const map = this.data.controls.map(control => ({\n      source: control.get('value').value,\n      destination: control.get('field_id').value\n    }));\n\n    return {\n      maptype: this.mapType,\n      map: JSON.stringify(map, null, 2),\n      appVersionId: this.appVersionId\n    };\n  }\n\n  getUserDetail(): Observable<any> {\n    return this.httpClient.get<any>(`${this.commonLibConfig.axonatorX1Url}getUserDetails/`);\n  }\n\n  logMapObject() {\n    const fieldMap = this.buildMapObject();\n    console.log(fieldMap);\n    this.fieldmap.emit(fieldMap);\n  }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FieldMapComponent } from './field-map.component'; // Adjust path as necessary\nimport { MatInputModule } from '@angular/material/input';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatSelectModule} from '@angular/material/select';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { FormsModule } from '@angular/forms';\n\n@NgModule({\n  declarations: [FieldMapComponent],\n  imports: [CommonModule,\n    MatIconModule,\n      MatButtonModule,\n      MatMenuModule,\n      MatDividerModule,\n      MatTooltipModule,\n      MatDialogModule,\n      MatFormFieldModule,\n      MatSelectModule,\n      MatInputModule,\n      DragDropModule,\n      FormsModule\n  ],\n  exports: [FieldMapComponent]\n})\nexport class FieldMapModule { }","import { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataViewHeaderComponent } from './data-view-header/data-view-header.component';\nimport { DataViewFiltersComponent } from './data-view-filters/data-view-filters.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatListModule } from '@angular/material/list';\nimport { AxoUtilsModule } from '../axo-utils/axo-utils.module';\nimport { FiltersModule } from '../filters/filters.module';\nimport { DataViewFiltersService } from './data-view-filters/data-view-filters.service';\nimport { MatSelectModule } from '@angular/material/select';\nimport { DataViewService } from './data-view.service';\nimport { AxoFiltersModule } from '../axo-filters/axo-filters.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { GenerateQRComponent } from './data-view-filters/generate-qr/generate-qr.component';\nimport { FieldMapModule } from '../field-map/field-map.module';\n\n\n@NgModule({\n  declarations: [\n    DataViewHeaderComponent,\n    DataViewFiltersComponent,\n    GenerateQRComponent\n  ],\n  imports: [\n    CommonModule,\n    MatIconModule,\n    MatMenuModule,\n    MatListModule,\n    AxoUtilsModule,\n    FiltersModule,\n    MatSelectModule,\n    AxoFiltersModule,\n    ReactiveFormsModule,\n    MatTooltipModule,\n    MatSlideToggleModule,\n    MatRadioModule,\n    MatInputModule,\n    MatPaginatorModule,\n    MatFormFieldModule,\n    FormsModule,\n    FieldMapModule\n\n  ],\n  providers:[\n    DataViewFiltersService,\n    DataViewService\n  ],\n\n  exports:[\n    DataViewHeaderComponent\n  ]\n})\nexport class DataViewLibModule { }\n","import { Injectable } from \"@angular/core\";\n\n@Injectable()\nexport class ConvertToNewService{\n  constructor() {}\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MapDialogComponent } from './map-dialog.component';\nimport { AxoMapModule } from '../axo-map/axo-map.module';\nimport { MatIconModule } from '@angular/material/icon';\n\n\n\n@NgModule({\n  declarations: [\n    MapDialogComponent\n  ],\n  imports: [\n    CommonModule,\n    ReactiveFormsModule,\n    AxoMapModule,\n    MatIconModule\n  ],\n  exports:[\n    MapDialogComponent\n  ]\n})\nexport class MapDialogModule { }\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class AxoStateManagerService {\n\n    private backNavigationUrls:Array<string> = []\n\n    /**\n     * Set back navigation url'\n     * @param url\n     */\n\n    setBackNavigationURL(url: string,clearOld: boolean = false): void{\n        // Clear Old URLs\n        if(clearOld){\n            this.backNavigationUrls = []\n        }\n        this.backNavigationUrls.push(url);\n        localStorage.setItem(\"axoBackNavigationURLs\",JSON.stringify(this.backNavigationUrls));\n    }\n\n    /**\n     * Get Back Navigation URL\n     */\n    getBackNavigationURL(): string{\n        if(this.backNavigationUrls.length === 0)\n        {\n            const stringifyUrls = localStorage.getItem('axoBackNavigationURLs');\n            if(stringifyUrls && stringifyUrls !== ''){\n                this.backNavigationUrls = JSON.parse(stringifyUrls);\n            }\n        }\n        return this.backNavigationUrls.pop();\n    }\n}\n","import { AxoStateManagerService } from './axo-state-manager.service';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n\n\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule\n  ],\n  providers:[\n    AxoStateManagerService\n  ]\n})\nexport class AxoStateManagerModule { }\n","import { AxoSnackBarService } from './axo-snack-bar.service';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { AxoSnackBarComponent } from './axo-snack-bar.component';\n\n\n@NgModule({\n  declarations: [\n      AxoSnackBarComponent\n    ],\n  imports: [\n    CommonModule,\n    MatSnackBarModule\n  ],\n  providers:[\n    AxoSnackBarService\n  ]\n})\nexport class AxoSnackBarModule { }\n","import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'app-loading-dialog',\n  template: `\n    <div class=\"loading-dialog-content\">\n      <div *ngIf=\"data?.loadingMessage; else defaultContent\">{{ data.loadingMessage }}</div>\n      <ng-template #defaultContent>\n      <img src=\"assets/App_Publish.gif\" alt=\"app-publish-animation.gif \" style=\"border-radius:15px\">\n      </ng-template>\n    </div>\n  `,\n  styles: [`\n    .loading-dialog-content {\n      width: fit-content;\n      border-radius:15px !important;\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n      justify-content: center;\n    }\n  `]\n})\nexport class LoadingDialogComponent {\n  @Input() data: { loadingMessage: string } = {\n    loadingMessage: ''\n  };\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, ModuleWithProviders, NgModule } from '@angular/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FuseScrollbarModule } from '../lib/scrollbar/scrollbar.module';\nimport { AxCommonUiLibComponent } from './ax-common-ui-lib.component';\nimport { CoreModule } from './core/core.module';\nimport { EnlightenLibModule } from './enlighten-lib/enlighten-lib.module';\nimport { ElementService } from './enlighten-lib/report/element.service';\nimport { FormObjectListModule } from './form-object/form-object-list/form-object-list.module';\nimport { SharedModule } from './shared/shared.module';\nimport { FormObjectViewModule } from './form-object/form-object-view/form-object-view.module';\nimport { FiltersModule } from './filters/filters.module';\nimport { CommonLibConfigurationService } from './common-lib-configuration.service';\nimport { BreadCrumbsModule } from './bread-crumbs/bread-crumbs.module';\nimport { BreadCrumbsService } from './bread-crumbs/bread-crumbs.service';\nimport { DashboardBuilderService } from './dashboard-lib/dashboard-builder.service';\nimport { DrillThroughModule } from '../lib/drill-through/drill-through.module';\nimport { UserDataService } from './core/user/user-data.service';\nimport { DataViewLibModule } from './data-view-lib/data-view-lib.module';\nimport { ConvertToOldService } from './converters/convert-to-old-service';\nimport { ConvertToNewService } from './converters/convert-to-new-service';\nimport { MapDialogModule } from './map-dialog/map-dialog.module';\nimport { GhostLoaderModule } from './ghost-loader/ghost-loader.module';\nimport { AxoStateManagerModule } from './axo-state-manager/axo-state-manager.module';\nimport { AxoSnackBarModule } from './axo-snack-bar/axo-snack-bar.module';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatListModule } from '@angular/material/list';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { QrdialogComponent } from './qrdialog/qrdialog.component';\nimport { LoadingDialogComponent } from './loading-dialog/loading-dialog.component';\nimport { LoadingAppinstallComponent } from './loading-appinstall/loading-appinstall.component';\nimport { FlattenService } from './flatten-module/flatten.service';\nimport { SuccessDialogComponent } from './success-dialog/success-dialog.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { AppCreateDialogComponentComponent } from './app-create-dialog-component/app-create-dialog-component.component';\nimport { AceEditorModule } from 'ng2-ace-editor';\nimport { CodeEditorModule } from './code-editor/code-editor.module';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\n@NgModule({\n  declarations: [\n    AxCommonUiLibComponent,\n    QrdialogComponent,\n    LoadingDialogComponent,\n    LoadingAppinstallComponent,\n    SuccessDialogComponent,\n    AppCreateDialogComponentComponent,\n    \n    // AdjustFontSize\n  ],\n  imports: [\n    EnlightenLibModule,\n    FiltersModule,\n    SharedModule,\n    MatSelectModule,\n    CoreModule,\n    FuseScrollbarModule,\n    FormObjectListModule,\n    FormObjectViewModule,\n    FuseScrollbarModule,\n    BreadCrumbsModule,\n    DrillThroughModule,\n    MapDialogModule,\n    AxoStateManagerModule,\n    AxoSnackBarModule,\n    GhostLoaderModule,\n    AxoStateManagerModule,\n    MatRadioModule,\n    MatIconModule,\n    MatMenuModule,\n    MatListModule,\n    MatInputModule,\n    MatFormFieldModule,\n    MatTooltipModule,\n    MatDialogModule,\n    DragDropModule,\n    CodeEditorModule,\n    AceEditorModule,\n    \n  ],\n  exports: [\n    FiltersModule,\n    AxCommonUiLibComponent,\n    EnlightenLibModule,\n    FormObjectListModule,\n    FormObjectViewModule,\n    BreadCrumbsModule,\n    DrillThroughModule,\n    DataViewLibModule,\n    MapDialogModule,\n    GhostLoaderModule\n    // AdjustFontSize\n  ],\n  schemas:[CUSTOM_ELEMENTS_SCHEMA],\n  providers: [\n    ElementService,\n    BreadCrumbsService,\n    DashboardBuilderService,\n    UserDataService,\n    ConvertToOldService,\n    FlattenService,\n    ConvertToNewService\n  ]\n})\nexport class AxCommonUiLibModule {\n  static forRoot(configuration): ModuleWithProviders<AxCommonUiLibModule> {\n    return {\n      ngModule: AxCommonUiLibModule,\n      providers: [CommonLibConfigurationService, { provide: 'config', useValue: configuration }]\n    };\n  }\n}\n","import { EntityType } from '../data-model/entity';\nimport { AttributeData } from './attribute-data';\nexport class Entity {\n    name: string;\n    prompt: string;\n    entityName: string;\n    attributes: Array<AttributeData>;\n    entityType: EntityType;\n\n    /**\n     * Constructor\n     *\n     * @param any\n     */\n    constructor(entity?: Entity) {\n        this.name = entity && entity.name || '';\n        this.prompt = entity && entity.prompt || '';\n        this.entityName = entity && entity.name || '';\n        this.attributes = entity.attributes ? entity.attributes : new Array<AttributeData>();\n        this.entityType = entity.entityType ? entity.entityType : EntityType.form;\n    }\n}\n\n","import { Time } from '@angular/common';\nimport { Widget } from './widgets/widget';\nexport class FormPage {\n    identifier: string;\n    widgets: Widget[];\n    timeRestriction: boolean;\n    remainingTime: Time;\n    totalTime: Time;\n    isExpired: boolean;\n\n    constructor(widgets?: Widget[]) {\n        if(FormPage){\n            this.formPage(widgets);\n        }\n        else{\n            this.newFormPage();\n        }\n\n    }\n\n    //function to create new form-page object\n    newFormPage(): void{\n        this.identifier = '';\n        this.widgets = null;\n        this.timeRestriction = false;\n    }\n       /**function to create form-page object with existing values\n    *\n    *@param widgets\n    *@param formGroup\n    *\n    */\n    formPage(widgets): void{\n        this.identifier = 'page_1';\n        this.widgets = widgets;\n        this.timeRestriction = false;\n    }\n\n\n\n\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\nexport const FormConstants = {\n    ID:'fid',\n    NAME : 'fn',\n    PUBLIC_ID: 'public_id',\n    BEHAVIORS :'behaviors',\n    FORM_ICONS : 'fi',\n    CHILDS : 'childs',\n    IS_PUBLIC : 'is_public',\n    SINGLE_RECORD_REPORTS : 'single_record_reports',\n    ALLOW_AD_HOC : 'allow_ad_hoc',\n    FORM_ID:'fid',\n    GENERATE_REPORT_ON_SUBMIT : 'generate_report_on_submit',\n    FORM_SCRIPT : 'form_script',\n    MULTI_LANGUAGE : 'multilanguage',\n    ALLOW_VIEW_OBJECT : 'allow_view_object',\n    TYPE : 'ft',\n    COUNT : 'count',\n    Page :{\n\n    },\n    Widget : {\n        PROMPT : 'prompt',\n        KEY : 'key',\n        SHORT_NAME : 'short_name',\n        SEARCHABLE : 'searchable',\n        COPY_FIELD : 'copy_field',\n        DEAFAULT_TEXT : 'default_text',\n        INPUT_TYPE : 'input_type',\n        INDENT : 'indent',\n        PROMPT_ML : 'prompt_ml',\n        OTHER_MASK : 'other_mask',\n        HELP_TEXT : 'help_text',\n        UNIT : 'unit',\n        FILTER_CONDITIONS : 'filter_conditions_js',\n        CHANGED_FIELD : 'changed_field',\n        MAX_NUMBER : 'max_number',\n        OTP_VERIFICATION_REQUIRED : 'otp_verification_required',\n        VALIDATION_SCRIPT : 'validity_conditions_js',\n        CHOICES_ML : 'choices_ml',\n        REPOPULATE : 'repopulate',\n        MAX_LENGTH : 'max_length',\n        MIN_LENGTH : 'min_length',\n        VALIDITY_DEPENDENTS : 'validity_dependents',\n        DISPLAY_MODE : 'display_mode',\n        PLACEHOLDER : 'place_holder',\n        MAIN_TYPE : 'main_type',\n        TYPE : 'type',\n        ON_VALUE_CHANGE : 'on_value_change',\n        ON_VALUE_EDIT : 'onValueEdit',\n        MAX_DECIMAL : 'max_decimal',\n        WIDGET_LAYOUT : 'widget_layout',\n        FORMULA_DEPENDENTS : 'formula_dependents',\n        PREDEFIND_VALUE : 'default_text',\n        MIN_NUMBER : 'min_number',\n        NEW_VALUE : 'new_value',\n        UNIQUE : 'unique',\n        INVALIDITY_MSG : 'invalidity_msg',\n        SUB_TYPE : 'sub_type',\n        CASE : 'case',\n        HIDDEN : 'hidden',\n        FONT_SIZE : 'font_size',\n        EXPAND_HELP : 'expand_help',\n        SAVE_NUMBER : 'save_number',\n        REQUIRED : 'required',\n        MASK : 'mask',\n        CHOICES : 'choices',\n        TOKEN : 'token',\n        SUBMIT_WITHOUT_VERIFICATION : 'submit_without_verification',\n        CONDITIONS : 'conditions_js',\n        IDENTIFIER : 'identifier',\n        ALLOW_MULTILINE : 'allow_multiline',\n        LOADING_ID : 'loading_id',\n        OLD_VALUE : 'old_value',\n        DATA_SOURCE : 'choices_source',\n        MULTI_SELECT : 'multi_select',\n        IS_EDITABLE : 'display_mode',\n        DATE_PICKER_TYPE : 'date_picker_type',\n        DATE_FORMAT : 'display_date_format',\n        ALLOW_PAST : 'allow_past',\n        ALLOW_FUTURE : 'allow_future',\n        URL : 'url',\n        MARKUP : 'markup',\n        LATITUDE: 'latitude',\n        LONGITUDE: 'longitude',\n        VALUE : 'value'\n    },\n\n\n};\n","import { JsonObject, JsonProperty } from \"json2typescript\";\nimport { Widget } from '../forms/page/widgets/widget';\n\n@JsonObject(\"FormDto\")\nexport class FormDto {\n    @JsonProperty()\n    title: string;\n\n    @JsonProperty()\n    id: string;\n\n    @JsonProperty()\n    ff: Array<Widget>;\n\n\n\n    constructor(formdto) {\n        if(formdto){\n            this.formDto(formdto);\n        }else{\n            this.newformDto();\n        }\n    }\n    /**\n     *Initialize object with  default value.\n     */\n    private newformDto(): void{\n        this.title = '';\n        this.id ='';\n        this.ff = [];\n    }\n\n    /**\n     * Initialize object with  value.\n     *\n     * @param elementsDto\n     */\n    private formDto(formdto): void{\n        this.title = formdto.title;\n        this.id = formdto.id;\n        this.ff = formdto.ff;\n    }\n}\n","import { JsonObject, JsonProperty, PropertyConvertingMode } from \"json2typescript\";\nimport { Constants } from '../common/constants';\nimport { StringToDateTimeConverter } from \"../value-converters/string-to-date-time-converter\";\nimport { AxSection } from \"./ax-section\";\n\n@JsonObject(\"CollectionView\")\nexport class CollectionView extends AxSection{\n    constructor(collectionView?: CollectionView){\n        super(collectionView);\n        if(collectionView){\n            this.createValue(collectionView);\n        }\n        else{\n            this.createNewValue();\n        }\n    }\n\n      // Function to create new text value\n      createNewValue(): void{\n       \n    }\n\n    /**function to create text value with existing value\n    *\n    *@param value\n    *\n    */\n    createValue(value?): void{\n       \n    }\n}\n","import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';\nimport { Page } from '../enlighten-lib/report/graphical-report/page/page';\nimport { DrillThroughService } from './drill-through.service';\nimport { BreadCrumbsService } from '../bread-crumbs/bread-crumbs.service';\nimport { ScreenType } from '../enlighten-lib/filters/condition-type';\n\n@Injectable()\nexport class DrillThroughResolver implements Resolve<any>\n{\n    /**\n     * Constructor\n     */\n    constructor(\n      private _httpClient: HttpClient,\n      private _drillThroughService: DrillThroughService,\n      private _breadCrumbService: BreadCrumbsService\n    )\n    {\n        this._drillThroughService.restoreStates();\n    }\n\n    // -----------------------------------------------------------------------------------------------------\n    // @ Public methods\n    // -----------------------------------------------------------------------------------------------------\n\n    /**\n     * Use this resolver to resolve initial api for the module\n     *\n     * @param route\n     * @param state\n     */\n    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<any>\n    {\n            const pageId = route.params.pageId;\n\n            return new Promise((resolve, reject) => {\n                Promise.all([\n                    this.getPageData(pageId)\n                ]).then((response) => {\n                    this._breadCrumbService.removeScreenBreadCrumbs(ScreenType.reportBuilder);\n                    this._breadCrumbService.removeScreenBreadCrumbs(ScreenType.dashboardBuilder);\n                    this._breadCrumbService.removeScreenBreadCrumbs(ScreenType.containerDashboard);\n                    resolve(response);\n                }).catch((error) => {\n                    reject(error);\n                });\n            });\n    }\n\n    /**\n     * Get page data by page id\n     *\n     * @param pageId\n     * @returns\n     */\n    getPageData(pageId: number): Promise<any> | any {\n        let httpParams: HttpParams = new HttpParams();\n        httpParams = httpParams.append('pageId', pageId.toString());\n        return new Promise((resolve, reject) => {\n            const currentState = this._drillThroughService.GetCurrentDrillThroughState();\n            if(currentState && currentState.isLoaded){\n                const isPageExists: boolean = this._drillThroughService.checkLoadedPageExists(Number(pageId));\n                if(isPageExists)\n                    {this._drillThroughService.onPageChanged.emit('page_changed');}\n                resolve(true);\n            } else {\n                this._httpClient.get<Page>('drillthrough/getdrilledpage', { params: httpParams })\n                    .subscribe((response) => {\n                        this._drillThroughService.GetCurrentDrillThroughState().page = new Page(response);\n                        this._drillThroughService.GetCurrentDrillThroughState().isLoaded = true;\n                        this._drillThroughService.onPageChanged.emit('page_changed');\n                        resolve(response);\n                    },reject);\n            }\n        });\n    }\n}\n","export enum ResponseStatus {\n    failed = 'failed',\n    success = 'success'\n}","import { Font } from \"../../enlighten-lib/report/graphical-report/chart/font\";\nimport { AxoCard } from \"./axo-card\";\n\nexport class BoardColumn {\n    id: number;\n    cards: Array<AxoCard>;\n    isVisible: boolean;\n    nameValue:string;\n    nameStyle:Font\n\n    constructor(boardColumn?: BoardColumn){\n        if(boardColumn){\n            this.boardColumn(boardColumn);\n        }\n        else{\n            this.newInfoWindow();\n        }\n    }\n\n    boardColumn(boardColumn:BoardColumn):void{\n        this.id = boardColumn.id;\n        this.cards = boardColumn.cards;\n        this.nameValue = boardColumn.nameValue;\n        this.nameStyle = boardColumn.nameStyle;\n        this.isVisible = boardColumn.isVisible;\n    }\n    \n    newInfoWindow():void{\n        this.id = 0;\n        this.nameValue = \"Untilted\"\n        this.cards = [];\n        this.isVisible = true;\n    }\n}\n","/**\n * Task's Column value\n *\n * @Class TaskColumnValue\n */\nexport class TaskColumnValue{\n    id: string;\n    identifier: string;\n    label: string;\n    isVisible: boolean;\n    grouped: boolean;\n    nestedColumns: Array<TaskColumnValue> = [];\n    valueSource: ListViewColumnValueSource;\n    value: any;\n    totalCount: number;\n}\n\n/**\n *  Task Column value source.\n *\n * @Class ListViewColumnValueSource\n */\nexport class ListViewColumnValueSource{\n    valueTemplate: string;\n    valueType: TaskColumnValueType;\n}\n\n/**\n *  Task Column value Type.\n *\n * @enum TaskColumnValueType\n */\nexport enum TaskColumnValueType{\n    action= 'Action',\n    dateTime= 'DateTime',\n    property= 'Property',\n    workflows= 'Workflow',\n    user= 'User',\n    widget= 'Widget'\n}\n\nexport enum TasksMetaColumns{\n    view='View',\n    history= 'History',\n    id = 'Id',\n    status = 'Status',\n    workflows = 'Workflows',\n    assignedTo = 'Assigned to',\n    assignedBy = 'Assigned by',\n    action = 'Action'\n}\n","/**\n * We will export all dataview modules and classes from here.\n */\n\nexport * from './data-view/data-view';\nexport * from './data-view/data-view-enums';\nexport * from './data-view/axo-card';\nexport * from './data-view/axo-tag';\nexport * from './data-view/board-column';\nexport * from './data-view/board-view';\nexport * from './data-view/cardConfig';\nexport * from './data-view/conditional-formatting';\nexport * from './data-view/coordinate';\nexport * from './data-view/idata-view';\nexport * from './data-view/info-window';\nexport * from './data-view/location';\nexport * from './data-view/map-view';\nexport * from './data-view/tag-style';\nexport * from './data-view/tagConfig';\nexport * from './data-view-lib.module';\nexport * from './data-view-header/data-view-header.component';\nexport * from './data-view/tag-style';\nexport * from './data-view/data-view-filter';\nexport * from './data-view.service';\nexport * from './data-view/task-view';\nexport * from './data-view/task';\nexport * from './data-view/task-asset-form-object-dto';\nexport * from './data-view/task-column-value';\n\n","/**\n * We will export all AxoMap modules and classes from here.\n */\n\nexport * from './axo-map';\nexport * from './axo-map.module';\nexport * from './axo-map.component'\n\n","/**\n * We will export all map dialog modules and classes from here.\n */\n\nexport * from './map-dialog.module';\nexport * from './map-dialog.component'\n\n","/**\n * We will export all dataview modules and classes from here.\n */\nexport * from './filters.component';\nexport * from './metaColumnTypes';\nexport * from './filters.module';\nexport * from './number-filter/number-filter.component';\nexport * from './multi-select-filter/multi-select-filter.component';\nexport * from './choice-list-filter/choice-list-filter.component';\nexport * from './reference-list-filter/reference-list-filter.component';\nexport * from './calender-filter/calender-filter.component';\nexport * from './time-filter/time-filter.component';\nexport * from './category-filter/category-filter.component';\nexport * from './filters.service';\n","\nimport { EntityBase } from '../../common-utils/entity-base';\nimport { Border } from '../../enlighten-lib/report/graphical-report/chart/border';\nimport { TextStyle } from '../../enlighten-lib/report/graphical-report/chart/text-style';\nimport { ReportProperty } from './report-property';\n/**\n * @class ReportGroup\n * @summary this is group of reports in this we render list of reports.\n */\nexport class ReportGroup extends EntityBase{\n    title:string;\n    titleTemplate:string;\n    titleStyle:TextStyle;\n    icon:string;\n    border:Border;\n    reports:Array<ReportProperty>;\n\n    constructor(reportGroup?: ReportGroup){\n        super();\n        if(reportGroup){\n            this.reportGroup(reportGroup);\n        }else{\n            this.newReportGroup();\n        }\n\n    }\n\n    // Create new Report Group instance with default value.\n    newReportGroup(): void{\n        this.titleStyle = new TextStyle();\n        this.reports = [];\n    }\n\n    // Create Report Group instance with existing value.\n    reportGroup(reportGroup:ReportGroup): void{\n        this.id = reportGroup.id;\n        this.guid = reportGroup.guid;\n        this.title = reportGroup.title;\n        this.titleTemplate = reportGroup.titleTemplate;\n        this.titleStyle = new TextStyle(reportGroup.titleStyle);\n        this.icon = reportGroup.icon;\n        this.border = new Border(this.border);\n        this.reports = reportGroup.reports;\n    }\n\n\n    public static createReportGroups(reportGroups :Array<ReportGroup>): Array<ReportGroup>{\n        const _reportGroups: Array<ReportGroup> = []\n        reportGroups.forEach((reportGroup)=>{\n            _reportGroups.push(new ReportGroup(reportGroup));\n        })\n        return _reportGroups\n    }\n}\n","import { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { ReportContainerType, ReportFileType } from './reports-container-enums';\nimport { EntityBase } from '../../common-utils/entity-base';\n/**\n * @class Report Property\n * @summary Report property hold the details of report for rendering on reports container\n */\nexport class ReportProperty extends EntityBase{\n    name:string;\n    identifier:string;\n    type:ReportContainerType;\n    fileType:ReportFileType\n    handlerName:string;\n    requiredFilter:Array<AxFilter>\n    filterIds:Array<number>\n\n    constructor(reportProperty ?:ReportProperty){\n        super();\n        if(reportProperty){\n\n        }else{\n\n        }\n    }\n\n    //Create New instance with default value\n    newReportProperty(): void{\n\n    }\n\n    // Create instance with existing value.\n    reportProperty(reportProperty ?:ReportProperty): void{\n        this.id = reportProperty.id;\n        this.guid = reportProperty.guid;\n        this.name = reportProperty.name;\n        this.type =  reportProperty.type;\n        this.fileType = reportProperty.fileType;\n        this.handlerName =reportProperty.handlerName;\n        this.requiredFilter = AxFilter.createFilters(reportProperty.requiredFilter);\n        this.filterIds=reportProperty.filterIds\n    }\n\n}\n","import { AxFilter } from '../../enlighten-lib/filters/ax-filter';\nimport { EntityBase } from '../../common-utils/entity-base';\nimport { ReportGroup } from './report-group';\n\n/**\n * @class Reports Container\n * @summary This model used for building and rendering custom report builder\n *\n */\nexport class ReportsContainer extends EntityBase{\n    name: string;\n    reportGroups: Array<ReportGroup>;\n    filters: Array<AxFilter>;\n\n    constructor(reportsContainer?: ReportsContainer){\n        super();\n        if(reportsContainer){\n            this.reportsContainer(reportsContainer);\n        }else{\n            this.newReportsContainer();\n        }\n\n    }\n\n    // Create new  object with default value.\n    newReportsContainer(): void{\n\n    }\n\n    // Create object with existing value.\n    reportsContainer(reportsContainer: ReportsContainer): void{\n        this.id = reportsContainer.id;\n        this.guid = reportsContainer.guid;\n        this.reportGroups = reportsContainer.reportGroups;\n        this.filters = AxFilter.createFilters(reportsContainer.filters);\n\n    }\n}\n","/**\n * @enum for Reports container type.\n * @summary Axo has two type of reports custom report and report.\n */\nexport enum ReportContainerType{\n    report,\n    customReport\n}\n\nexport enum ReportFileType{\n    pdf,\n    xlsx,\n    docx\n}\n","import { ReportsContainer } from './reports-container-models/reports-container';\nimport { HttpClient } from '@angular/common/http';\nimport { CommonLibConfigurationService } from './../common-lib-configuration.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ReportsContainerService {\n\n  constructor(\n    private _commonLibConfigurationService: CommonLibConfigurationService,\n    private _httpClient: HttpClient\n  ) {\n\n  }\n  /**\n   * Get Reports Container\n   *\n   * @param reportContainerId\n   * @returns\n   */\n  getReportsContainer(reportContainerId: number): Promise<ReportsContainer>{\n        return new Promise((resolve,reject)=>{\n            this._httpClient.get('reportscontainers/'+reportContainerId).subscribe(response=>resolve(response as ReportsContainer),reject);\n        });\n  }\n}\n","<div class=\"report-list-row\">\n    <div class=\"report-list-title\">{{reportGroup.title}}</div>\n    <div class=\"reports-container customscroll\">\n        <ng-container *ngFor=\"let report of reportGroup?.reports\">\n            <div class=\"report-box\" (click)=\"exportReportEvent.emit(report)\">\n                <div class=\"report-icon\">\n                    <mat-icon *ngIf=\"report.fileType === filetype.pdf \" svgIcon=\"axo-PDF\" class=\"axo-icon\"></mat-icon>\n                    <mat-icon *ngIf=\"report.fileType === filetype.xlsx \" svgIcon=\"axo_XLS\" class=\"axo-icon\"></mat-icon>\n                </div>\n                <div mat-button  class=\"report-name\" >{{report.name}}</div>\n            </div>\n        </ng-container>\n    </div>\n</div>\n","import { ReportFileType } from './../reports-container-models/reports-container-enums';\nimport { ReportProperty } from '../reports-container-models/report-property';\nimport { ReportGroup } from '../reports-container-models/report-group';\nimport { Component, Input, OnInit, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'lib-report-group',\n  templateUrl: './report-group.component.html',\n  styleUrls: ['./report-group.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class ReportGroupComponent implements OnInit {\n  //<-------------------------< Inputs >---------------------->\n  @Input() reportGroup: ReportGroup;\n  //<---------------------------------------------------------->\n  //<-------------------------< Outputs >---------------------->\n  @Output() exportReportEvent: EventEmitter<ReportProperty> = new EventEmitter<ReportProperty>();\n  //<---------------------------------------------------------->\n  filetype = ReportFileType;\n  //<----------------------< Component Variable >------------------>\n  //<------------------------------------------------------------>\n\n  constructor() { }\n\n  /**\n   * On init life cycle hook\n   */\n  ngOnInit(): void {\n  }\n\n}\n","<div>\n    <!---------<Iterated report groups and render groups    > ---------------------------->\n    <ng-container *ngFor=\"let reportGroup of reportsContainer?.reportGroups\">\n        <div class=\"report-list-wrapper\">\n            <lib-report-group  [reportGroup]=\"reportGroup\" (exportReportEvent)=\"exportReportEvent.emit($event)\"></lib-report-group>\n        </div>\n    </ng-container>\n</div>\n","import { ReportsContainerService } from './reports-container.service';\nimport { ReportGroup } from './reports-container-models/report-group';\nimport { ReportProperty } from './reports-container-models/report-property';\nimport { ReportsContainer } from './reports-container-models/reports-container';\nimport { Component, Input, OnInit, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n  selector: 'lib-reports-container',\n  templateUrl: './reports-container.component.html',\n  styleUrls: ['./reports-container.component.scss'],\n  encapsulation:ViewEncapsulation.None\n})\nexport class ReportsContainerComponent implements OnInit {\n\t//<------------------------ < Inputs >---------------------------->\n  @Input() reportsContainer: ReportsContainer;\n\n\t//<--------------------------------------------------------------->\n\t//<--------------------------< Outputs >-------------------------->\n\t@Output() exportReportEvent: EventEmitter<ReportProperty> = new EventEmitter<ReportProperty>();\n\t// <-------------------------------------------------------------->\n\t//<--------------------------< Component Variables >--------------->\n    private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n  constructor(private _reportsContainerService: ReportsContainerService) { }\n\n  ngOnInit(): void {\n    this.subscriber();\n  }\n\n  subscriber(): void{\n    // This code only for builder. we can test reports container on builder just by uncommenting this lines.\n    // this._reportsContainerService.getReportsContainer(1).then((data)=>{\n    //     this.reportsContainer = new ReportsContainer(data);\n    // });\n  }\n\n}\n","import { ReportsContainerService } from './reports-container.service';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReportsContainerComponent } from './reports-container.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { ReportGroupComponent } from './report-group/report-group.component';\n\n\n\n@NgModule({\n  declarations: [\n    ReportsContainerComponent,\n    ReportGroupComponent\n  ],\n  imports: [\n    CommonModule,\n    MatIconModule,\n    MatDialogModule,\n    MatFormFieldModule,\n    MatInputModule\n  ],\n  providers: [\n    ReportsContainerService\n  ],\n  exports : [\n    ReportsContainerComponent\n  ]\n\n})\nexport class ReportsContainerModule { }\n","/*\n * Public API Surface of ax-common-ui-lib\n */\n\nexport * from './lib/ax-common-ui-lib.service';\nexport * from './lib/ax-common-ui-lib.component';\nexport * from './lib/ax-common-ui-lib.module';\nexport * from './lib/enlighten-lib/fields/entity';\nexport * from './lib/enlighten-lib/enlighten-lib.module';\nexport * from './lib/enlighten-lib/report/graphical-report/bar-chart/bar-chart.component';\nexport * from './lib/enlighten-lib/report/graphical-report/card-chart/card-chart.component';\nexport * from './lib/enlighten-lib/report/graphical-report/line-chart/line-chart.component';\nexport * from './lib/enlighten-lib/report/graphical-report/pie-chart/pie-chart.component';\nexport * from './lib/enlighten-lib/report/graphical-report/line-column-chart/line-column-chart.component';\nexport * from './lib/dashboard-lib/dashboard';\nexport * from './lib/dashboard-lib/dashboard-control.service';\nexport * from './lib/dashboard-lib/dashboard-builder.service';\nexport * from './lib/field-list-lib/fields-list.service';\nexport * from './lib/dashboard-lib/dashboard-lib.module';\nexport * from './lib/drill-through/drill-through.module';\nexport * from './lib/drill-through/drill-through.component';\nexport * from './lib/enlighten-lib/report/graphical-report/chart/common-chart.service';\nexport * from './lib/enlighten-lib/utils/utils';\nexport * from './lib/enlighten-lib/report/chart-filter/chart-filter.component';\nexport * from './lib/enlighten-lib/report/tabular-report/tabular/tabular.component';\nexport * from './lib/enlighten-lib/report/report-filter/report-filter.component';\nexport * from './lib/dashboard-lib/dashboard-filter/dashboard-filter.component';\nexport * from './lib/enlighten-lib/report/element.service';\nexport * from './lib/enlighten-lib/report/tabular-report/tabular/column-group-view/column-group-view.component';\nexport * from './lib/enlighten-lib/report/tabular-report/tabular/detail-group-view/detail-group-view.component';\nexport * from './lib/enlighten-lib/report/tabular-report/tabular/row-group-view/row-group-view.component';\nexport * from './lib/enlighten-lib/report/tabular-report/tabular/resize-column-directive';\nexport * from './lib/enlighten-lib/filters/condition-type';\nexport * from './lib/form-object/form-object-list/form-object-list.module';\nexport * from './lib/form-object/form-object-list/form-object-list.component';\nexport * from './lib/forms/page/widgets/ax-image';\nexport * from './lib/forms/iform';\nexport * from './lib/forms/ax-form';\nexport * from './lib/forms/page/form-page';\nexport * from './lib/forms/page/widgets/ax-audio';\nexport * from './lib/forms/page/widgets/choicelist';\nexport * from './lib/forms/page/widgets/counter';\nexport * from './lib/forms/page/widgets/datetime';\nexport * from './lib/forms/page/widgets/ax-document';\nexport * from './lib/forms/page/common/form.constant';\nexport * from './lib/forms/page/common/constants';\nexport * from './lib/forms/page/widgets/gps';\nexport * from './lib/forms/page/widgets/widget-value/gps-widget-value';\nexport * from './lib/forms/page/widgets/widget-value/dateRangeValue';\nexport * from './lib/forms/page/widgets/group-header';\nexport * from './lib/forms/page/widgets/link';\nexport * from './lib/forms/page/widgets/signature';\nexport * from './lib/forms/page/widgets/static-media';\nexport * from './lib/forms/page/widgets/textbox';\nexport * from './lib/forms/page/widgets/toggle';\nexport * from './lib/forms/page/widgets/video';\nexport * from './lib/forms/page/widgets/widget';\nexport * from './lib/forms/page/widgets/geofence';\nexport * from './lib/forms/page/widgets/payment';\nexport * from './lib/forms/page/widgets/verification';\nexport * from './lib/forms/page/widgets/auto-number';\nexport * from './lib/forms/page/widgets/bar-code';\nexport * from './lib/forms/page/widgets/child-record';\nexport * from './lib/forms/page/widgets/qr-code';\nexport * from './lib/forms/page/widgets/formula';\nexport * from './lib/forms/page/widgets/languages';\nexport * from './lib/forms/page/widgets/stopwatch';\nexport * from './lib/forms/page/widgets/sub-form';\nexport * from './lib/common-dto/form-dto';\nexport * from './lib/common-utils/iFlatten';\nexport * from './lib/form-object/form-object-view/form-object-view.module';\nexport * from './lib/form-object/form-object-view/form-object-view.component';\nexport * from './lib/form-object/form-object-list/formObjectWidgetValue/form-object-widget-value.component';\nexport * from './lib/scrollbar/public-api';\nexport * from './lib/form-object/form-object-list/form-object-list';\nexport * from './lib/forms/page/value-converters/widget-deserializer';\nexport * from './lib/forms/page/data-list/data-list-column';\nexport * from './lib/forms/page/data-list/data-list';\nexport * from './lib/forms/page/common/widget-enums';\nexport * from './lib/forms/page/data-detail-view/data-details';\nexport * from './lib/forms/page/data-detail-view/section';\nexport * from './lib/forms/page/data-detail-view/ax-section';\nexport * from './lib/forms/page/data-detail-view/collection-view';\nexport * from './lib/forms/page/data-detail-view/section-field';\nexport * from './lib/form-object/form-object-view/data-detail-view-dto';\nexport * from './lib/form-object/form-object-view/form-object-view.service';\nexport * from './lib/app-list/app-list.component';\nexport * from './lib/app-list/app-list-dto';\nexport * from './lib/app-list/organization-list-dto';\nexport * from './lib/filters/date-time-filter/date-time-filter.component';\nexport * from './lib/enlighten-lib/report/graphical-report/graphical-report.component';\nexport * from './lib/enlighten-lib/report/graphical-report/graphical-report.directive';\nexport * from './lib/enlighten-lib/report/tabular-report/tabular-report.component';\nexport * from './lib/forms/page/widgets/script-condition';\nexport * from './lib/bread-crumbs/bread-crumbs.component';\nexport * from './lib/bread-crumbs/bread-crumbs.module';\nexport * from './lib/bread-crumbs/bread-crumbs.service';\nexport * from './lib/drill-through/drill-through.resolver';\nexport * from './lib/forms/page/widgets/widget-value/choice-list-options';\nexport * from './lib/enlighten-lib/enums/bread-crumbs-style';\nexport * from './lib/form-object/form-object-view/form-object-widgets/gps-widget-view/gps-widget-view.component';\nexport * from './lib/axo-utils/axo-utils';\nexport * from './lib/axo-utils/data-source-types';\nexport * from './lib/forms/page/widgets/widget-value/child-record-value';\nexport * from './lib/core/user/user-data.service';\nexport * from './lib/common-lib-configuration.service';\nexport * from './lib/forms/page/widgets/widget-value/reference-list-object-value';\nexport * from './lib/forms/page/common/widget-value-handler';\nexport * from './lib/forms/page/common/axo-response-status';\nexport * from './lib/common.service';\nexport * from './lib/common-dto/dataListFilter-dto';\nexport * from './lib/enlighten-lib/filters/dataListSeachQueryTree';\nexport * from './lib/enlighten-lib/filters/dataList-searchNode';\nexport * from './lib/enlighten-lib/filters/dataListFilterExpression';\nexport * from './lib/enlighten-lib/filters/dataListFilterOperator';\nexport * from './lib/enlighten-lib/enums/operator-text-enum';\nexport * from './lib/common-dto/elements-dto';\nexport * from './lib/enlighten-lib/filters/ax-filter';\nexport * from './lib/converters/convert-to-new-service';\nexport * from './lib/converters/convert-to-old-service';\nexport * from './lib/form-permission.service';\n// Ax Expression Models exports\nexport * from './lib/enlighten-lib/ax-expression/public-api';\n\n// Export Data-views modules and classes.\nexport * from './lib/data-view-lib/public-api';  // This will be export all module and classes of data view\n\nexport * from './lib/axo-map/public-api'; // This will export all the module and classes of AxoMap\nexport * from './lib/map-dialog/public-api'; // This will export all the module and classes of Map dialog\n// Filter Modules exports\nexport * from './lib/ghost-loader/public-api';\nexport * from './lib/form-object/public-api';//This will export image annotation data and image light box component\nexport * from './lib/filters/public-api';// Filter Modules exports\nexport * from './lib/core/user/axo-user';\nexport * from './lib/axo-state-manager/public-api'; // Exported State Manager From Common Lib\nexport * from './lib/axo-snack-bar/public-api';  // Exported Axo Snack Bar\nexport * from './lib/axo-search-bar/public.api'; // Exported Axo Search Bar\nexport * from './lib/axo-utils/public-api'; // exported axo utils\n// Report Container exports\nexport * from './lib/reports-container/public-api'; // exported report container module.\nexport * from './lib/code-editor/public-api';// exported code editors module.\nexport * from './lib/headfoot.module';\nexport * from './lib/common-header/common-header.component';\nexport * from './lib/common-footer/common-footer.component';\nexport * from './lib/qrdialog/qrdialog.component';\nexport * from './lib/data-view-lib/data-view-filters/generate-qr/generate-qr.component';\nexport * from './lib/services/logging.service';\nexport * from './lib/stripe.service';\nexport * from './lib/subscribedPlanName.service';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","AxAudio","AxDocument","AxImage","ChoiceList","DateTime","Toggle","Video","i2.CommonLibConfigurationService","i1.CommonFilterService","_c1","_c2","i1.UserService","IPropertyType","ConditionalFormatting","_c0","Entity","i3","i4.LoggingService","ColumnEntity","i2.UserDataService","i3.MyAppListService","i2.CommonService","i6","i2.ReportBuilderMasterService","i3.CommonService","i4.AxoSnackBarService","i5.SubscribedPlanName","i1.BreadCrumbsService","i4.DashboardListService","i1.MetaColumnFilterBuilderService","_c3","_c4","_c5","i1.FieldsListService","i3.SendToDashboardService","i4.ElementService","i5.CommonService","i6.DrillThroughService","i7.DashboardBuilderService","i8","i9.FiltersService","_c6","_c7","_c8","_c9","ChartAggregate","i6.DashboardBuilderService","i7.FiltersService","_c10","i2.SendToDashboardService","i3.ReportBuilderMasterService","i7.DrillThroughService","i1.ReportBuilderMasterService","i4","i2.ReportControlService","i3.BreadCrumbsService","i4.CommonService","i1.CommonService","i3.ElementService","i1.PropertiesService","i2.WidgetsService","i3.FormBuilderMasterService","i4.WidgetDropListComponent","i1.WidgetsService","i3.PropertiesService","i4.FormBuilderMasterService","i5.ClipboardService","i6.CustomStorage","i7.AxoSnackBarService","i8.SubscribedPlanName","i7.CommonService","i5.WidgetDropListComponent","i2.FormsListService","i3.CustomStorage","i4.CommonLibConfigurationService","i5.FormBuilderMasterMapperService","i3.ClipboardService","i6.AxoSnackBarService","i2.DataViewFiltersService","i3.DataViewService","i5.FiltersService","i6.UserDataService","i7","i6.CommonLibConfigurationService","i6.CommonService","i9.SubscribedPlanName","i10.StripeService","i1.UserFilterService","i2.CommonFilterService","i1.CategoryFilterService","i1.MultiSelectFilterService","i3.FiltersService","i4.CommonFilterService","i5.DataViewFiltersComponent","i2.ElementService","i1.ReportFilterService","i3.FieldsListService","i5.CategoryService","i6.MultiSelectFilterService","i4.DataModelTreeComponent","i5.FiltersComponent","i2.ReportFilterService","i4.CategoryService","i5.TabularReportService","i7.UserDataService","i8.DashboardBuilderService","i9.DrillThroughService","i10","i1.ElementService","i2.FieldsListService","i3.TabularReportService","i5.ElementService","i4.DashboardBuilderService","i2.MyAppListService","i3.CommonLibConfigurationService","i2.UserService","i1.AuthService","i4.MyAppListService","i5","i8.FlattenService","i9","i11.LoggingService","i12.CommonService","i13.DataViewFiltersService","i14.SubscribedPlanName","i15.StripeService","i5.AxoSnackBarService","i7.FlattenService","i8.LoggingService","i3.GhostLoaderComponent","i5.ReportFilterComponent","i11","i12","i13","i14","i15.CommonFooterComponent","i16","i17","i18.FiltersComponent","i19.SearchPipe","i3.ConvertToOldService","i4.FiltersService","i1.FormObjectViewService","i2.FormObjectListService","i5.DataViewService","i1.FormObjectListFilterService","i11.FiltersComponent","i12.SearchPipe","i13.GpsWidgetViewComponent","i3.FlattenService","i1.DrillThroughService","i1.DataViewService","i1.AxoFiltersService","i6.FiltersComponent","i7.SearchPipe","i2.FormPermissionService","i14.FieldMapComponent","i2.DrillThroughService","i1.CommonLibConfigurationService","i1.ReportsContainerService"],"mappings":"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"}