@wavemaker-ai/app-ng-runtime 1.0.0-rc.322 → 1.0.0-rc.324
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/base/bundles/index.umd.js +6 -0
- package/components/base/fesm2022/index.mjs +6 -0
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/index.d.ts +1 -0
- package/components/data/pagination/bundles/index.umd.js +3 -0
- package/components/data/pagination/fesm2022/index.mjs +3 -0
- package/components/data/pagination/fesm2022/index.mjs.map +1 -1
- package/components/input/dataset-aware-form/bundles/index.umd.js +1 -1
- package/components/input/dataset-aware-form/fesm2022/index.mjs +1 -1
- package/components/input/dataset-aware-form/fesm2022/index.mjs.map +1 -1
- package/core/fesm2022/index.mjs.map +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/runtime/base/bundles/index.umd.js +7 -4
- package/runtime/base/fesm2022/index.mjs +7 -4
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/transpiler/bundles/index.umd.js +3 -0
- package/transpiler/fesm2022/index.mjs +3 -0
- package/transpiler/fesm2022/index.mjs.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/dataset-aware-form/src/dataset-aware-form.component.ts","../../../../../projects/components/widgets/input/dataset-aware-form/src/index.ts"],"sourcesContent":["import {Attribute, Inject, Injectable, Injector, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {$appDigest, AppDefaults, debounce, isDefined, isEqualWithFields, noop, toBoolean} from '@wm/core';\nimport { ALLFIELDS, convertDataToObject, DataSetItem, extractDataAsArray, getOrderedDataset, getUniqObjsByDataField, handleHeaderClick, toggleAllHeaders, transformFormData, transformDataWithKeys, groupData, ToDatePipe, IWidgetConfig, WidgetConfig } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';\nimport {debounce as _debounce, find, isArray, isEmpty, isEqual, isNull, isObject, toString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class DatasetAwareFormComponent extends BaseFormCustomComponent implements OnInit, OnDestroy {\n public dataset: any;\n public datafield: string;\n public displayfield: string;\n public displaylabel: string;\n public displayimagesrc: string;\n public displayexpression: string;\n public usekeys: boolean;\n public orderby: string;\n public multiple: boolean;\n public readonly: boolean;\n public content: string;\n public collapsible: boolean;\n public datePipe;\n\n public handleHeaderClick: ($event) => void;\n private toggleAllHeaders: void;\n public appDefaults;\n\n public binddisplayexpression: string;\n public binddisplayimagesrc: string;\n public binddisplaylabel: string;\n\n public displayValue: Array<string> | string;\n\n public datasetItems: DataSetItem[] = [];\n public acceptsArray = false; // set to true if proxyModel on widget accepts array type.\n protected dataset$ = new Subject();\n protected datavalue$ = new Subject();\n\n protected match: string;\n protected dateformat: string;\n public groupedData: any[];\n\n protected _modelByKey: any;\n public _modelByValue: any;\n public _defaultQueryInvoked: boolean; // for search/chips if datavalue is obtained from the default n/w call then set to true and do not update the modelByKeys.\n\n // this field contains the initial datavalue which needs to be processed once the dataset is available\n public toBeProcessedDatavalue: any;\n private readonly _debouncedInitDatasetItems: Function | null = null;\n protected allowempty = true;\n public compareby: any;\n\n private cancelLocaleChangeSubscription;\n\n public get modelByKey() {\n return this._modelByKey;\n }\n\n // triggers on ngModel change. This function extracts the datavalue value.\n public set modelByKey(val: any) {\n this.selectByKey(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(this._modelByValue);\n }\n\n // @ts-ignore\n public get datavalue() {\n return this._modelByValue;\n }\n\n // triggers on setting the datavalue. This function extracts the model value.\n // @ts-ignore\n public set datavalue(val: any) {\n if (this.multiple) {\n val = extractDataAsArray(val);\n }\n this._modelByValue = val;\n\n this.selectByValue(val);\n\n // changes on the datavalue can be subscribed using listenToDatavalue\n this.datavalue$.next(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(val, undefined, true);\n }\n\n protected constructor(inj: Injector, @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n @Attribute('groupby') public groupby?: string, initPromise?: Promise<any>) {\n super(inj, config, explicitContext, initPromise);\n this.datePipe = this.inj.get(ToDatePipe);\n this.appDefaults = this.inj.get(AppDefaults);\n this.binddisplayexpression = this.nativeElement.getAttribute('displayexpression.bind');\n this.binddisplayimagesrc = this.nativeElement.getAttribute('displayimagesrc.bind');\n this.binddisplaylabel = this.nativeElement.getAttribute('displaylabel.bind');\n\n this._debouncedInitDatasetItems = debounce(() => {\n this.initDatasetItems();\n $appDigest();\n }, 150);\n this.handleHeaderClick = noop;\n\n this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe(\"locale-changed\", () => {\n if (this._debouncedInitDatasetItems) {\n this._debouncedInitDatasetItems();\n }\n });\n }\n\n /**\n * This function sets the _datavalue value from the model and sets the selected flag when item is found.\n * Here model is the value obtained from ngModel.\n * @param keys represent the model.\n */\n protected selectByKey(keys) {\n this.resetDatasetItems();\n\n if (!this.datasetItems.length) {\n return;\n }\n\n if (this.multiple && !isArray(keys)) {\n keys = [keys];\n }\n\n // Set the _modelByKey to the modified keys.\n this._modelByKey = keys;\n\n if (this.multiple) {\n this._modelByValue = [];\n keys.forEach(key => {\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(key);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = [...this._modelByValue, itemByKey.value];\n }\n });\n } else {\n this._modelByValue = '';\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(keys);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = itemByKey.value;\n }\n }\n this.initDisplayValues();\n }\n\n /**\n * This function sets the _model value from the datavalue (selectedvalues) and sets the selected flag when item is found.\n * datavalue is the default value or a value representing the displayField (for suppose: object in case of ALLFIELDS).\n * If acceptsArray is true, the model always accepts an array.\n * For example, select always accepts model as array whether multiple select is true or false.\n * @param values represent the datavalue.\n */\n protected selectByValue(values: Array<any> | any) {\n this.resetDatasetItems();\n\n // if datavalue is not defined or empty then set the model as undefined.\n if (!isDefined(values) || values === '' || isNull(values) || (values instanceof Array && !values.length)) {\n this._modelByKey = undefined;\n // do not return when allowempty is set to true.\n if (!this.allowempty || !isDefined(values)) {\n return;\n }\n }\n\n if (this.acceptsArray && !isArray(values)) {\n values = this.allowempty ? [values] : extractDataAsArray(values);\n }\n\n // preserve the datavalue if datasetItems are empty.\n if (!this.datasetItems.length && isDefined(values)) {\n this.toBeProcessedDatavalue = values;\n return;\n }\n\n const filterField = this.datafield === ALLFIELDS ? 'dataObject' : 'key';\n\n if (isArray(values)) {\n this._modelByKey = [];\n values.forEach(val => {\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], val, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, val) : (toString(item.value)).toLowerCase() === (toString(val)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey.push(itemByValue.key);\n }\n });\n } else {\n this._modelByKey = undefined;\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], values, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, values) : (toString(item.value)).toLowerCase() === (toString(values)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey = itemByValue.key;\n }\n }\n // delaying the datavalue update as the widgets in liveform are having datavalue as undefined and not the default provided value\n // because datavalue is updated later when new dataset is available.\n this._debounceDatavalueUpdation(values);\n }\n\n protected readonly _debounceDatavalueUpdation = _debounce((values) => {\n // if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.\n if (!isDefined(this._modelByKey) || (isArray(this._modelByKey) && !this._modelByKey.length)) {\n this.toBeProcessedDatavalue = values;\n this._modelByValue = '';\n } else if (isDefined(this.toBeProcessedDatavalue)) {\n // obtain the first array value when multiple is set to false.\n // set the modelByValue only when undefined.\n if (!isDefined(this._modelByValue)) {\n this._modelByValue = (!this.multiple && isArray(this.toBeProcessedDatavalue)) ? this.toBeProcessedDatavalue[0] : this.toBeProcessedDatavalue;\n }\n this.toBeProcessedDatavalue = undefined;\n }\n\n this.initDisplayValues();\n }, 150);\n\n // Updates the displayValue property.\n protected initDisplayValues() {\n const displayValues = [];\n this.datasetItems.forEach(item => {\n if (item.selected) {\n displayValues.push(item.label);\n }\n });\n\n this.displayValue = this.multiple ? displayValues : displayValues[0] || '';\n if(this.viewParent.containerWidget && this.viewParent.containerWidget._isCustom)\n this.viewParent.containerWidget.displayValue = this.displayValue.length ? this.displayValue : '';\n }\n\n // This function parses the dataset and extracts the displayOptions from parsed dataset.\n protected initDatasetItems() {\n if (!this.dataset || isEmpty(this.dataset)) {\n this.datasetItems = [];\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n return;\n }\n\n // convert any dataset to the object format.\n const orderedDataset = getOrderedDataset(convertDataToObject(this.dataset), this.orderby);\n\n if (this.usekeys) {\n this.datasetItems = transformDataWithKeys(orderedDataset);\n } else {\n const displayOptions = transformFormData(this.viewParent, orderedDataset, this.datafield, {\n displayField: this.displayfield || this.displaylabel,\n displayExpr: this.displayexpression,\n bindDisplayExpr: this.binddisplayexpression || this.binddisplaylabel,\n bindDisplayImgSrc: this.binddisplayimagesrc,\n displayImgSrc: this.displayimagesrc\n });\n // get the unique objects out of the extracted data. Notify change in datasetItems using [...datasetItems] notation\n this.datasetItems = [...getUniqObjsByDataField(displayOptions, this.datafield, this.displayfield || this.displaylabel, toBoolean(this.allowempty))];\n }\n\n this.postDatasetItemsInit();\n }\n\n // Once the datasetItems are ready, set the proxyModel by using datavalue.\n protected postDatasetItemsInit() {\n if (this.datasetItems.length && !this._defaultQueryInvoked) {\n // Use the latest of toBeProcessedDatavalue, datavalue.\n // IMPORTANT: lodash isEmpty treats 0/false as \"empty\", which breaks default values that legitimately evaluate to 0/false.\n // Only fall back to datavalue when toBeProcessedDatavalue is actually undefined/null.\n const _datavalue = isDefined(this.toBeProcessedDatavalue) ? this.toBeProcessedDatavalue : this.datavalue;\n this.selectByValue(_datavalue);\n }\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n }\n\n // Reset the selected flag on datasetItems to false.\n protected resetDatasetItems() {\n this.datasetItems.forEach(item => item.selected = false);\n }\n\n protected setTemplate(partialName) {\n this.content = partialName;\n if (this.viewParent && this.viewParent.prefabName) {\n this['prefabName'] = this.viewParent.prefabName;\n }\n }\n\n\n private getGroupedData() {\n return this.datasetItems.length ? groupData(this, convertDataToObject(this.datasetItems), this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, 'dataObject', this.appDefaults) : [];\n }\n\n private datasetSubscription() {\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.groupedData = this.getGroupedData();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n }\n\n protected setGroupData() {\n this.datasetSubscription();\n // If groupby is set, get the groupedData from the datasetItems.\n this.groupedData = this.getGroupedData();\n }\n\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n super.onPropertyChange(key, nv, ov);\n switch (key) {\n case 'dataset':\n case 'datafield':\n case 'displayfield':\n case 'displaylabel':\n case 'displayexpression':\n case 'orderby':\n case 'usekeys':\n if (this._debouncedInitDatasetItems) {\n this._debouncedInitDatasetItems();\n }\n break;\n case 'required':\n case 'datavalue':\n this._onChange(this.datavalue);\n break;\n case 'groupby':\n case 'match':\n if (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips') {\n this.setGroupData();\n }\n break;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.groupby && (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips')) {\n this.setGroupData();\n }\n // adding the handler for header click and toggle headers.\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n }\n\n ngOnDestroy() {\n if(this.cancelLocaleChangeSubscription) {\n this.cancelLocaleChangeSubscription();\n }\n\n // MEMORY LEAK FIX: Complete and clear Subject observables\n if (this.dataset$) {\n this.dataset$.complete();\n }\n if (this.datavalue$) {\n this.datavalue$.complete();\n }\n\n // MEMORY LEAK FIX: Clear datasetItems array\n this.datasetItems = [];\n\n // MEMORY LEAK FIX: Clear grouped data\n if (this.groupedData) {\n this.groupedData = [];\n }\n\n // MEMORY LEAK FIX: Clear model references\n this._modelByKey = null;\n this._modelByValue = null;\n this.toBeProcessedDatavalue = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_debounce","debounce"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/dataset-aware-form/src/dataset-aware-form.component.ts","../../../../../projects/components/widgets/input/dataset-aware-form/src/index.ts"],"sourcesContent":["import {Attribute, Inject, Injectable, Injector, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {Subject} from 'rxjs';\nimport {$appDigest, AppDefaults, debounce, isDefined, isEqualWithFields, noop, toBoolean} from '@wm/core';\nimport { ALLFIELDS, convertDataToObject, DataSetItem, extractDataAsArray, getOrderedDataset, getUniqObjsByDataField, handleHeaderClick, toggleAllHeaders, transformFormData, transformDataWithKeys, groupData, ToDatePipe, IWidgetConfig, WidgetConfig } from '@wm/components/base';\nimport { BaseFormCustomComponent } from '@wm/components/input/base-form-custom';\nimport {debounce as _debounce, find, isArray, isEmpty, isEqual, isNull, isObject, toString} from \"lodash-es\";\n\n@Injectable()\nexport abstract class DatasetAwareFormComponent extends BaseFormCustomComponent implements OnInit, OnDestroy {\n public dataset: any;\n public datafield: string;\n public displayfield: string;\n public displaylabel: string;\n public displayimagesrc: string;\n public displayexpression: string;\n public usekeys: boolean;\n public orderby: string;\n public multiple: boolean;\n public readonly: boolean;\n public content: string;\n public collapsible: boolean;\n public datePipe;\n\n public handleHeaderClick: ($event) => void;\n private toggleAllHeaders: void;\n public appDefaults;\n\n public binddisplayexpression: string;\n public binddisplayimagesrc: string;\n public binddisplaylabel: string;\n\n public displayValue: Array<string> | string;\n\n public datasetItems: DataSetItem[] = [];\n public acceptsArray = false; // set to true if proxyModel on widget accepts array type.\n protected dataset$ = new Subject();\n protected datavalue$ = new Subject();\n\n protected match: string;\n protected dateformat: string;\n public groupedData: any[];\n\n protected _modelByKey: any;\n public _modelByValue: any;\n public _defaultQueryInvoked: boolean; // for search/chips if datavalue is obtained from the default n/w call then set to true and do not update the modelByKeys.\n\n // this field contains the initial datavalue which needs to be processed once the dataset is available\n public toBeProcessedDatavalue: any;\n private readonly _debouncedInitDatasetItems: Function | null = null;\n protected allowempty = true;\n public compareby: any;\n\n private cancelLocaleChangeSubscription;\n\n public get modelByKey() {\n return this._modelByKey;\n }\n\n // triggers on ngModel change. This function extracts the datavalue value.\n public set modelByKey(val: any) {\n this.selectByKey(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(this._modelByValue);\n }\n\n // @ts-ignore\n public get datavalue() {\n return this._modelByValue;\n }\n\n // triggers on setting the datavalue. This function extracts the model value.\n // @ts-ignore\n public set datavalue(val: any) {\n if (this.multiple) {\n val = extractDataAsArray(val);\n }\n this._modelByValue = val;\n\n this.selectByValue(val);\n\n // changes on the datavalue can be subscribed using listenToDatavalue\n this.datavalue$.next(val);\n\n // invoke on datavalue change.\n this.invokeOnChange(val, undefined, true);\n }\n\n protected constructor(inj: Injector, @Inject(WidgetConfig) config: IWidgetConfig,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any,\n @Attribute('groupby') public groupby?: string, initPromise?: Promise<any>) {\n super(inj, config, explicitContext, initPromise);\n this.datePipe = this.inj.get(ToDatePipe);\n this.appDefaults = this.inj.get(AppDefaults);\n this.binddisplayexpression = this.nativeElement.getAttribute('displayexpression.bind');\n this.binddisplayimagesrc = this.nativeElement.getAttribute('displayimagesrc.bind');\n this.binddisplaylabel = this.nativeElement.getAttribute('displaylabel.bind');\n\n this._debouncedInitDatasetItems = debounce(() => {\n this.initDatasetItems();\n $appDigest(true);\n }, 150);\n this.handleHeaderClick = noop;\n\n this.cancelLocaleChangeSubscription = this.getAppInstance().subscribe(\"locale-changed\", () => {\n if (this._debouncedInitDatasetItems) {\n this._debouncedInitDatasetItems();\n }\n });\n }\n\n /**\n * This function sets the _datavalue value from the model and sets the selected flag when item is found.\n * Here model is the value obtained from ngModel.\n * @param keys represent the model.\n */\n protected selectByKey(keys) {\n this.resetDatasetItems();\n\n if (!this.datasetItems.length) {\n return;\n }\n\n if (this.multiple && !isArray(keys)) {\n keys = [keys];\n }\n\n // Set the _modelByKey to the modified keys.\n this._modelByKey = keys;\n\n if (this.multiple) {\n this._modelByValue = [];\n keys.forEach(key => {\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(key);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = [...this._modelByValue, itemByKey.value];\n }\n });\n } else {\n this._modelByValue = '';\n const itemByKey = find(this.datasetItems, item => {\n // not triple equal, as the instance type can be different.\n // only value comparison should be done.\n return toString(item.key) === toString(keys);\n });\n if (itemByKey) {\n itemByKey.selected = true;\n this._modelByValue = itemByKey.value;\n }\n }\n this.initDisplayValues();\n }\n\n /**\n * This function sets the _model value from the datavalue (selectedvalues) and sets the selected flag when item is found.\n * datavalue is the default value or a value representing the displayField (for suppose: object in case of ALLFIELDS).\n * If acceptsArray is true, the model always accepts an array.\n * For example, select always accepts model as array whether multiple select is true or false.\n * @param values represent the datavalue.\n */\n protected selectByValue(values: Array<any> | any) {\n this.resetDatasetItems();\n\n // if datavalue is not defined or empty then set the model as undefined.\n if (!isDefined(values) || values === '' || isNull(values) || (values instanceof Array && !values.length)) {\n this._modelByKey = undefined;\n // do not return when allowempty is set to true.\n if (!this.allowempty || !isDefined(values)) {\n return;\n }\n }\n\n if (this.acceptsArray && !isArray(values)) {\n values = this.allowempty ? [values] : extractDataAsArray(values);\n }\n\n // preserve the datavalue if datasetItems are empty.\n if (!this.datasetItems.length && isDefined(values)) {\n this.toBeProcessedDatavalue = values;\n return;\n }\n\n const filterField = this.datafield === ALLFIELDS ? 'dataObject' : 'key';\n\n if (isArray(values)) {\n this._modelByKey = [];\n values.forEach(val => {\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], val, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, val) : (toString(item.value)).toLowerCase() === (toString(val)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey.push(itemByValue.key);\n }\n });\n } else {\n this._modelByKey = undefined;\n const itemByValue = find(this.datasetItems, item => {\n if (filterField === 'dataObject') {\n if (this.compareby && this.compareby.length) {\n return isEqualWithFields(item[filterField], values, this.compareby);\n }\n }\n return (isObject(item.value) ? isEqual(item.value, values) : (toString(item.value)).toLowerCase() === (toString(values)).toLowerCase());\n });\n if (itemByValue) {\n itemByValue.selected = true;\n this._modelByKey = itemByValue.key;\n }\n }\n // delaying the datavalue update as the widgets in liveform are having datavalue as undefined and not the default provided value\n // because datavalue is updated later when new dataset is available.\n this._debounceDatavalueUpdation(values);\n }\n\n protected readonly _debounceDatavalueUpdation = _debounce((values) => {\n // if no item is found in datasetItems, wait untill the dataset updates by preserving the datavalue in toBeProcessedDatavalue.\n if (!isDefined(this._modelByKey) || (isArray(this._modelByKey) && !this._modelByKey.length)) {\n this.toBeProcessedDatavalue = values;\n this._modelByValue = '';\n } else if (isDefined(this.toBeProcessedDatavalue)) {\n // obtain the first array value when multiple is set to false.\n // set the modelByValue only when undefined.\n if (!isDefined(this._modelByValue)) {\n this._modelByValue = (!this.multiple && isArray(this.toBeProcessedDatavalue)) ? this.toBeProcessedDatavalue[0] : this.toBeProcessedDatavalue;\n }\n this.toBeProcessedDatavalue = undefined;\n }\n\n this.initDisplayValues();\n }, 150);\n\n // Updates the displayValue property.\n protected initDisplayValues() {\n const displayValues = [];\n this.datasetItems.forEach(item => {\n if (item.selected) {\n displayValues.push(item.label);\n }\n });\n\n this.displayValue = this.multiple ? displayValues : displayValues[0] || '';\n if(this.viewParent.containerWidget && this.viewParent.containerWidget._isCustom)\n this.viewParent.containerWidget.displayValue = this.displayValue.length ? this.displayValue : '';\n }\n\n // This function parses the dataset and extracts the displayOptions from parsed dataset.\n protected initDatasetItems() {\n if (!this.dataset || isEmpty(this.dataset)) {\n this.datasetItems = [];\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n return;\n }\n\n // convert any dataset to the object format.\n const orderedDataset = getOrderedDataset(convertDataToObject(this.dataset), this.orderby);\n\n if (this.usekeys) {\n this.datasetItems = transformDataWithKeys(orderedDataset);\n } else {\n const displayOptions = transformFormData(this.viewParent, orderedDataset, this.datafield, {\n displayField: this.displayfield || this.displaylabel,\n displayExpr: this.displayexpression,\n bindDisplayExpr: this.binddisplayexpression || this.binddisplaylabel,\n bindDisplayImgSrc: this.binddisplayimagesrc,\n displayImgSrc: this.displayimagesrc\n });\n // get the unique objects out of the extracted data. Notify change in datasetItems using [...datasetItems] notation\n this.datasetItems = [...getUniqObjsByDataField(displayOptions, this.datafield, this.displayfield || this.displaylabel, toBoolean(this.allowempty))];\n }\n\n this.postDatasetItemsInit();\n }\n\n // Once the datasetItems are ready, set the proxyModel by using datavalue.\n protected postDatasetItemsInit() {\n if (this.datasetItems.length && !this._defaultQueryInvoked) {\n // Use the latest of toBeProcessedDatavalue, datavalue.\n // IMPORTANT: lodash isEmpty treats 0/false as \"empty\", which breaks default values that legitimately evaluate to 0/false.\n // Only fall back to datavalue when toBeProcessedDatavalue is actually undefined/null.\n const _datavalue = isDefined(this.toBeProcessedDatavalue) ? this.toBeProcessedDatavalue : this.datavalue;\n this.selectByValue(_datavalue);\n }\n // notify the dataset listeners\n this.dataset$.next(this.datasetItems);\n }\n\n // Reset the selected flag on datasetItems to false.\n protected resetDatasetItems() {\n this.datasetItems.forEach(item => item.selected = false);\n }\n\n protected setTemplate(partialName) {\n this.content = partialName;\n if (this.viewParent && this.viewParent.prefabName) {\n this['prefabName'] = this.viewParent.prefabName;\n }\n }\n\n\n private getGroupedData() {\n return this.datasetItems.length ? groupData(this, convertDataToObject(this.datasetItems), this.groupby, this.match, this.orderby, this.dateformat, this.datePipe, 'dataObject', this.appDefaults) : [];\n }\n\n private datasetSubscription() {\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.groupedData = this.getGroupedData();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n }\n\n protected setGroupData() {\n this.datasetSubscription();\n // If groupby is set, get the groupedData from the datasetItems.\n this.groupedData = this.getGroupedData();\n }\n\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n super.onPropertyChange(key, nv, ov);\n switch (key) {\n case 'dataset':\n case 'datafield':\n case 'displayfield':\n case 'displaylabel':\n case 'displayexpression':\n case 'orderby':\n case 'usekeys':\n if (this._debouncedInitDatasetItems) {\n this._debouncedInitDatasetItems();\n }\n break;\n case 'required':\n case 'datavalue':\n this._onChange(this.datavalue);\n break;\n case 'groupby':\n case 'match':\n if (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips') {\n this.setGroupData();\n }\n break;\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n if (this.groupby && (this.widgetType !== 'wm-search' && this.widgetType !== 'wm-chips')) {\n this.setGroupData();\n }\n // adding the handler for header click and toggle headers.\n if (this.groupby && this.collapsible) {\n this.handleHeaderClick = handleHeaderClick;\n this.toggleAllHeaders = toggleAllHeaders.bind(undefined, this);\n }\n }\n\n ngOnDestroy() {\n if(this.cancelLocaleChangeSubscription) {\n this.cancelLocaleChangeSubscription();\n }\n\n // MEMORY LEAK FIX: Complete and clear Subject observables\n if (this.dataset$) {\n this.dataset$.complete();\n }\n if (this.datavalue$) {\n this.datavalue$.complete();\n }\n\n // MEMORY LEAK FIX: Clear datasetItems array\n this.datasetItems = [];\n\n // MEMORY LEAK FIX: Clear grouped data\n if (this.groupedData) {\n this.groupedData = [];\n }\n\n // MEMORY LEAK FIX: Clear model references\n this._modelByKey = null;\n this._modelByValue = null;\n this.toBeProcessedDatavalue = null;\n\n // Call parent ngOnDestroy\n super.ngOnDestroy();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["_debounce","debounce"],"mappings":"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"}
|