@wavemaker/app-ng-runtime 11.11.6-rc.6191 → 11.11.7-rc.6211
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/build-task/bundles/index.umd.js +1 -1
- package/build-task/esm2022/input/default/checkbox/checkbox.build.mjs +2 -2
- package/build-task/fesm2022/index.mjs +1 -1
- package/build-task/fesm2022/index.mjs.map +1 -1
- package/components/base/bundles/index.umd.js +21 -3
- package/components/base/components.module.d.ts +1 -1
- package/components/base/esm2022/components.module.mjs +8 -5
- package/components/base/esm2022/pipes/custom-pipes.mjs +16 -2
- package/components/base/esm2022/public_api.mjs +2 -2
- package/components/base/fesm2022/index.mjs +24 -7
- package/components/base/fesm2022/index.mjs.map +1 -1
- package/components/base/pipes/custom-pipes.d.ts +5 -0
- package/components/base/public_api.d.ts +1 -1
- package/components/basic/default/bundles/index.umd.js +8 -1
- package/components/basic/default/esm2022/label/label.directive.mjs +9 -2
- package/components/basic/default/fesm2022/index.mjs +8 -1
- package/components/basic/default/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/bundles/index.umd.js +19 -4
- package/components/basic/search/esm2022/search.component.mjs +20 -5
- package/components/basic/search/fesm2022/index.mjs +19 -4
- package/components/basic/search/fesm2022/index.mjs.map +1 -1
- package/components/basic/search/search.component.d.ts +1 -0
- package/components/containers/wizard/bundles/index.umd.js +135 -5
- package/components/containers/wizard/esm2022/wizard.component.mjs +137 -7
- package/components/containers/wizard/fesm2022/index.mjs +136 -6
- package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- package/components/containers/wizard/wizard.component.d.ts +7 -0
- package/components/input/chips/bundles/index.umd.js +5 -2
- package/components/input/chips/esm2022/chips.component.mjs +6 -3
- package/components/input/chips/fesm2022/index.mjs +5 -2
- package/components/input/chips/fesm2022/index.mjs.map +1 -1
- package/components/input/default/bundles/index.umd.js +14 -2
- package/components/input/default/esm2022/base-form.component.mjs +15 -3
- package/components/input/default/fesm2022/index.mjs +14 -2
- package/components/input/default/fesm2022/index.mjs.map +1 -1
- package/components/input/epoch/bundles/index.umd.js +15 -4
- package/components/input/epoch/esm2022/base-date-time.component.mjs +16 -5
- package/components/input/epoch/fesm2022/index.mjs +15 -4
- package/components/input/epoch/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 +8 -4
- package/runtime/base/esm2022/services/app.manager.service.mjs +8 -5
- package/runtime/base/esm2022/services/pipe-provider.service.mjs +4 -3
- package/runtime/base/fesm2022/index.mjs +10 -6
- package/runtime/base/fesm2022/index.mjs.map +1 -1
- package/scripts/datatable/datatable.js +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/chips/src/chips.props.ts","../../../../../projects/components/widgets/input/chips/src/chips.component.html","../../../../../projects/components/widgets/input/chips/src/chips.component.ts","../../../../../projects/components/widgets/input/chips/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const chipsProps = new Map(\n [\n ['allowonlyselect', PROP_BOOLEAN],\n ['autofocus', PROP_BOOLEAN],\n ['chipclass', PROP_STRING],\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataoptions', PROP_ANY],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayimagesrc', PROP_STRING],\n ['enablereorder', PROP_BOOLEAN],\n ['groupby', PROP_STRING],\n ['inputposition', {value: 'last', ...PROP_STRING}],\n ['inputwidth', {value: 'default', ...PROP_STRING}],\n ['limit', PROP_NUMBER],\n ['loadingdatamsg', {value: 'Loading items...', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['matchmode', PROP_STRING],\n ['maxsize', PROP_NUMBER],\n ['minchars', {value: 1 , ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navsearchbar', {value: false, ...PROP_BOOLEAN}],\n ['orderby', PROP_STRING],\n ['placeholder', {value: 'Type here..', ...PROP_STRING}],\n ['query', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['searchkey', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showsearchicon', PROP_BOOLEAN],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'search', ...PROP_STRING}],\n ['debouncetime', {value: 250, ...PROP_NUMBER}],\n ['datacompletemsg', { value: 'No more data to load', ...PROP_STRING }],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-chips',\n chipsProps\n );\n registerFormWidget(\n FormWidgetType.CHIPS,\n new Map(chipsProps)\n );\n};\n\n","@for (item of chipsList; track item) {\n <li class=\"chip-item {{chipclass && !bindChipclass ? chipclass : ''}}\"\n [ngClass]=\"{'active': item.active, 'disabled': disabled}\">\n <a href=\"javascript:void(0)\" class=\"app-chip\"\n (click)=\"handleChipClick($event, item)\"\n (keydown.delete)=\"onDelete($event, item, $index)\"\n (keydown.backspace)=\"onBackspace($event, item, $index)\"\n (keydown.arrowleft)=\"onArrowLeft(item, $index)\"\n (keydown.arrowright)=\"onArrowRight(item, $index)\"\n (focus)=\"handleChipFocus($event, item)\"\n (blur)=\"readonly ? 0 : item.active = false\"\n [ngClass]=\"{'no-drag': !enablereorder,'chip-duplicate bg-danger': item.isDuplicate, 'chip-picture': item.imgSrc}\">\n @if (item.imgSrc) {\n <img data-identifier=\"img\" alt=\"Chip Image\" class=\"button-image-icon\" [src]=\"item.imgSrc\"/>\n }\n <span class=\"app-chip-title\" [textContent]=\"item.label\" [title]=\"item.label\"></span>\n @if (!readonly) {\n <button type=\"button\" [attr.aria-label]=\"'Clear ' + item.label\" class=\"btn btn-transparent\"\n (click)=\"removeItem($event, item, $index);\">\n <i class=\"app-icon wi wi-close\"></i>\n </button>\n }\n </a>\n </li>\n}\n<li class=\"app-chip-search\" [ngClass]=\"{'full-width': inputwidth === 'full'}\">\n <div #search wmSearch class=\"app-chip-input\"\n name=\"app-chip-search\"\n submit.event=\"addItem($event, widget)\"\n beforeservicecall.event=\"invokeOnBeforeServiceCall(inputData)\"\n disabled.bind=\"disabled || readonly || saturate\"\n datafield.bind=\"datafield\"\n allowonlyselect.bind=\"allowonlyselect\"\n searchkey.bind=\"searchkey\"\n orderby.bind=\"orderby\"\n placeholder.bind=\"saturate ? maxSizeReached : placeholder\"\n showsearchicon.bind=\"showsearchicon\"\n tabindex.bind=\"tabindex\"\n minchars.bind=\"minchars\"\n debouncetime.bind=\"debouncetime\"\n matchmode.bind=\"matchmode\"\n datacompletemsg.bind = \"datacompletemsg\"\n groupby.bind=\"groupby\"\n match.bind=\"match\"\n dateformat.bind=\"dateformat\"\n (keydown.enter)=\"stopEvent($event)\"\n (keydown.delete)=\"onTextDelete($event)\"\n (keydown.backspace)=\"onInputClear($event)\"\n (keydown.arrowleft)=\"onArrowLeft()\"\n (keydown.arrowright)=\"onArrowRight()\">\n </div>\n</li>\n","import { CommonModule } from '@angular/common';\nimport { WmComponentsModule } from \"@wm/components/base\";\nimport {\n AfterViewInit,\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n $appDigest,\n $unwatch,\n $watch,\n debounce,\n isAppleProduct,\n isDefined,\n toBoolean\n} from '@wm/core';\nimport { ALLFIELDS, configureDnD, DataSetItem, getConditionalClasses, getUniqObjsByDataField, IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input';\nimport { SearchComponent } from '@wm/components/basic/search';\n\nimport { registerProps } from './chips.props';\nimport {\n clone,\n filter,\n find,\n findIndex,\n forEach, isArray,\n isEqual,\n isObject, max, pullAt, reduce,\n slice,\n toString,\n trim\n} from \"lodash-es\";\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-chips',\n hostClass: 'app-chips nav nav-pills list-inline'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, WmComponentsModule, SearchComponent],\n selector: '[wmChips]',\n templateUrl: './chips.component.html',\n providers: [\n provideAs(ChipsComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(ChipsComponent)\n ]\n})\nexport class ChipsComponent extends DatasetAwareFormComponent implements OnInit, AfterViewInit {\n static initializeProps = registerProps();\n public allowonlyselect: boolean;\n public enablereorder: boolean;\n public maxsize: number;\n public inputwidth: any;\n private debouncetime: number;\n\n public chipsList: Array<any> = [];\n private readonly maxSizeReached = 'Max size reached';\n private saturate: boolean;\n private nextItemIndex: number;\n private getTransformedData: (data, itemIndex?) => DataSetItem[];\n private inputposition: string;\n private showsearchicon: boolean;\n\n @ViewChild(SearchComponent, /* TODO: add static flag */ {static: true}) searchComponent: SearchComponent;\n private _datasource: any;\n private _unsubscribeDv = false;\n private searchkey: string;\n private _debounceUpdateQueryModel: any;\n private limit: number;\n private _classExpr: any;\n private minchars: number;\n private matchmode: string;\n\n // getter setter is added to pass the datasource to searchcomponent.\n get datasource () {\n return this._datasource;\n }\n\n set datasource(nv) {\n this._datasource = nv;\n this.searchComponent.datasource = nv;\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n }\n\n constructor(\n inj: Injector,\n @Attribute('displayfield.bind') private bindDisplayField,\n @Attribute('displayexpression.bind') private bindDisplayExpr,\n @Attribute('displayimagesrc.bind') private bindDisplayImgSrc,\n @Attribute('datafield.bind') private bindDataField,\n @Attribute('dataset.bind') private bindDataSet,\n @Attribute('chipclass.bind') private bindChipclass,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n\n // set the showsearchicon as false by default.\n if (!isDefined(this.showsearchicon)) {\n this.showsearchicon = false;\n }\n\n this.multiple = true;\n this.nextItemIndex = 0; // default chip index\n\n this._debounceUpdateQueryModel = debounce((val) => {\n this.updateQueryModel(val).then(() => {\n if (this.bindChipclass) {\n forEach(this.chipsList, (item, index) => {\n this.registerChipItemClass(item, index);\n });\n }\n });\n }, 150);\n\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.searchComponent.dataset = this.dataset;\n // clearing the last results when dataset is reassigned\n (this.searchComponent as any)._lastResult = undefined;\n this.nextItemIndex = this.datasetItems.length;\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe((val: Array<string> | string) => {\n // update queryModel only when parentRef is available.\n if (!this._unsubscribeDv) {\n this.chipsList = [];\n // if the datafield is ALLFILEDS do not fetch the records\n // update the query model with the values we have\n this._debounceUpdateQueryModel(val);\n }\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.searchComponent.multiple = true;\n this.searchComponent.binddisplayimagesrc = this.bindDisplayImgSrc;\n this.searchComponent.displayimagesrc = this.displayimagesrc;\n this.searchComponent.binddisplaylabel = this.bindDisplayExpr;\n this.searchComponent.displaylabel = this.displayfield;\n this.searchComponent.datafield = this.bindDataField || this.datafield;\n this.searchComponent.binddataset = this.bindDataSet;\n this.searchComponent.dataset = this.dataset;\n this.searchComponent.searchkey = this.searchkey;\n this.searchComponent.limit = this.limit;\n this.searchComponent.debouncetime = this.debouncetime;\n this.searchComponent.matchmode = this.matchmode;\n\n this.getTransformedData = (val, isCustom) => {\n return this.searchComponent.getTransformedData([val], this.nextItemIndex++, isCustom);\n };\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.enablereorder) {\n this.configureDnD();\n }\n }\n\n /**\n * This method returns the evaluated class expression.\n * @param $index index of the chip\n * @param item chip object containing the key, value, label\n * @returns {any} evaluated class expression value\n */\n private registerChipItemClass(item, $index) {\n if (this.bindChipclass) {\n const watchName = `${this.widgetId}_chipItemClass_${$index}`;\n $unwatch(watchName);\n //[Todo-CSP]: same as list item class\n this.registerDestroyListener($watch(this.bindChipclass, this.viewParent, {item, $index}, (nv, ov) => {\n this.applyItemClass(getConditionalClasses(nv, ov), $index);\n }, watchName));\n }\n }\n\n private applyItemClass(val, index) {\n const chipItem = this.nativeElement.querySelectorAll('.chip-item').item(index);\n $(chipItem).removeClass(val.toRemove).addClass(val.toAdd);\n }\n\n private removeDuplicates() {\n this.chipsList = getUniqObjsByDataField(this.chipsList, this.datafield, this.displayfield || this.displaylabel);\n }\n\n // This method updates the queryModel.\n // default call to get the default data can be done only when defaultQuery is true.\n private updateQueryModel(data: any): Promise<void> {\n const promises = [];\n if (!data) {\n this.chipsList = [];\n return Promise.resolve();\n }\n\n // clone the data as the updations on data will change the datavalue.\n let dataValue = clone(data);\n const prevChipsList = this.chipsList;\n this.chipsList = [];\n\n // update the model when model has items more than maxsize\n if (this.maxsize && dataValue.length > this.maxsize) {\n this._modelByValue = dataValue = slice(dataValue, 0, this.maxsize);\n data = dataValue;\n }\n\n const searchQuery: Array<string> = [];\n\n /**\n * For each value in datavalue,\n * 1. check whether value is in datasetItems, if item is found, addd to the chipsList.\n * 2. else make a default query to the filter and get the record.\n * 3. In step 2, if datavalue is not ALLFIELDS, then make a query. Extract the chipsList from the query response.\n * 4. If there is no response for the value and allowonlyselect is true, remove the value from the datavalue. So that datavalue just contains the valid values.\n * 5. In step 2, if datavalue is ALLFIELDS and value is object, then just prepare the datasetItem from the value.\n * 6. If value is not object and allowonlyselect is false, then create a customModel and replace this value with customModel and prepare datasetItem from this value\n */\n dataValue.forEach((val: any, i: number) => {\n const itemFound = find(this.datasetItems, item => {\n return isObject(item.value) ? isEqual(item.value, val) : toString(item.value) === toString(val);\n });\n\n if (itemFound) {\n this.chipsList.push(itemFound);\n } else if (this.datafield !== ALLFIELDS) {\n searchQuery.push(val);\n } else if (this.datafield === ALLFIELDS) {\n let dataObj, isCustom = false;\n if (!isObject(val)) {\n dataObj = this.createCustomDataModel(val);\n isCustom = true;\n if (dataObj) {\n data.splice(i, 1, dataObj);\n }\n } else {\n // if custom chips is already generated, val will be object as {'dataField_val': 'entered_val'}\n // Hence check this val in previous chipList and assign the iscustom flag\n const prevChipObj = prevChipsList.find(obj => {\n return isEqual(obj.value, val);\n });\n if (prevChipObj) {\n isCustom = prevChipObj.iscustom;\n }\n }\n dataObj = dataObj || val;\n\n const transformedData = this.getTransformedData(dataObj, isCustom);\n const chipObj = transformedData[0];\n if (isCustom) {\n (chipObj as any).iscustom = isCustom;\n }\n this.chipsList.push(chipObj);\n }\n });\n\n // make default query with all the values and if response for the value is not in datavalue then add a custom chip object.\n if (searchQuery.length) {\n promises.push(this.getDefaultModel(searchQuery, this.nextItemIndex)\n .then(response => {\n this.chipsList = this.chipsList.concat(response || []);\n dataValue.forEach((val: any, i: number) => {\n const isExists = find(this.chipsList, (obj) => {\n return obj.value.toString() === val.toString();\n });\n\n if (!isExists) {\n if (this.allowonlyselect) {\n const index = data.indexOf(val);\n if (index > -1) {\n data.splice(index, 1);\n }\n return;\n }\n const transformedData = this.getTransformedData(val, true);\n const chipObj = transformedData[0];\n (chipObj as any).iscustom = true;\n this.chipsList.push(chipObj);\n }\n });\n }));\n }\n\n // default chip data is adding focus on to the search input. Hence this flag helps not to focus.\n this.resetSearchModel(true);\n\n return Promise.all(promises).then(() => {\n this._modelByValue = data;\n this.removeDuplicates();\n this.updateMaxSize();\n $appDigest();\n });\n }\n\n private resetSearchModel(defaultQuery?: boolean) {\n this._unsubscribeDv = true;\n // clear search will empty the query model and gets the data when minchars is 0 (i.e. autocomplete) on focus\n // defaultQuery flag is set when widget is not active. This will only load the autocomplete dropup with minchars as 0 when widget is focused/active\n (this.searchComponent as any).clearSearch(undefined, !this.minchars && !defaultQuery);\n this._unsubscribeDv = false;\n }\n\n // Add the newItem to the list\n private addItem($event: Event, widget?: SearchComponent) {\n const searchComponent = widget;\n let allowAdd;\n let chipObj;\n\n if (searchComponent && isDefined(searchComponent.datavalue) && searchComponent.queryModel !== '') {\n if (!searchComponent.query || !trim(searchComponent.query)) {\n return;\n }\n chipObj = searchComponent.queryModel;\n } else {\n if (this.allowonlyselect) {\n return;\n }\n let dataObj;\n if (this.datafield === ALLFIELDS) {\n if (!isObject(this.searchComponent.query) && trim(this.searchComponent.query)) {\n dataObj = this.createCustomDataModel(this.searchComponent.query);\n // return if the custom chip is empty\n if (!dataObj) {\n this.resetSearchModel();\n return;\n }\n }\n }\n\n const data = dataObj || trim(this.searchComponent.query);\n if (data) {\n const transformedData = this.getTransformedData(data, true);\n chipObj = transformedData[0];\n chipObj.iscustom = true;\n }\n }\n\n if (!isDefined(chipObj) || chipObj === '') {\n return;\n }\n\n allowAdd = this.invokeEventCallback('beforeadd', {$event, newItem: chipObj});\n\n if (isDefined(allowAdd) && !toBoolean(allowAdd)) {\n return;\n }\n\n if (this.isDuplicate(chipObj)) {\n this.resetSearchModel();\n return;\n }\n this.registerChipItemClass(chipObj, this.chipsList.length);\n this.chipsList.push(chipObj);\n\n if (!this.datavalue) {\n this._modelByValue = [chipObj.value];\n } else {\n this._modelByValue = [...this._modelByValue, chipObj.value];\n }\n\n this._unsubscribeDv = true;\n this.invokeOnTouched();\n this.invokeOnChange(this._modelByValue, $event || {}, true);\n\n this.invokeEventCallback('add', {$event, $item: chipObj});\n\n this.updateMaxSize();\n\n // reset input box when item is added.\n this.resetSearchModel();\n\n // stop the event to not to call the submit event on enter press.\n if ($event && (($event as any).key === 'Enter' || ($event as any).keyCode === 13)) {\n this.stopEvent($event);\n }\n }\n\n // Prepare datavalue object from a string(junk) value when datafield is allFields.\n private createCustomDataModel(val: string) {\n const key = this.displayfield || (this.datafield !== ALLFIELDS ? this.datafield : undefined);\n\n if (key) {\n const customObj = {};\n customObj[key] = val;\n return customObj;\n }\n }\n\n // Check if newItem already exists\n private isDuplicate(item: DataSetItem) {\n if (this.datafield === ALLFIELDS) {\n return findIndex(this.chipsList, {value: item.value}) > -1;\n }\n return findIndex(this.chipsList, {key: item.key}) > -1;\n }\n\n // Check if max size is reached\n private updateMaxSize() {\n this.saturate = this.maxsize > 0 && this.chipsList.length === this.maxsize;\n }\n\n // Makes call to searchComponent to filter the dataSource based on the query.\n protected getDefaultModel(query: Array<string> | string, index?: number) {\n this.nextItemIndex++;\n return this.searchComponent.getDataSource(query, true, index)\n .then((response) => {\n // @ts-ignore\n return filter(query, queryVal => {\n find(response, {value: queryVal});\n });\n });\n }\n\n private handleChipClick($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n ($event.currentTarget as any).focus();\n this.invokeEventCallback('chipclick', {$event, $item: chip});\n }\n\n private handleChipFocus($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n (chip as any).active = true;\n this.invokeEventCallback('chipselect', {$event, $item: chip});\n }\n\n // To avoid form submit on pressing enter key\n public stopEvent($event: Event) {\n $event.stopPropagation();\n $event.preventDefault();\n }\n\n public onTextDelete($event: Event) {\n if (isAppleProduct) {\n this.onInputClear($event);\n }\n }\n\n public onInputClear($event: Event) {\n if (!this.chipsList || !this.chipsList.length || this.searchComponent.query) {\n return;\n }\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n this.stopEvent($event);\n }\n\n private onBackspace($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index, true);\n }\n\n private onDelete($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index);\n }\n\n public onArrowLeft($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n\n // On left arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n return;\n }\n\n if ($index > 0) {\n this.$element.find('li.chip-item > a.app-chip').get($index - 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n public onArrowRight($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n // On right arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').first().focus();\n return;\n }\n\n if ($index < (this.chipsList.length - 1)) {\n this.$element.find('li.chip-item > a.app-chip').get($index + 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n // focus search box.\n private focusSearchBox() {\n this.$element.find('.app-chip-input > input.app-textbox').focus();\n }\n\n // Remove the item from list\n private removeItem($event: Event, item: DataSetItem, index: number, canFocus?: boolean) {\n $event.stopPropagation();\n\n const indexes = isArray(index) ? index : [index];\n const focusIndex = max(indexes);\n\n const items = reduce(indexes, (result, i) => {\n result.push(this.chipsList[i]);\n return result;\n }, []);\n\n // prevent deletion if the before-remove event callback returns false\n const allowRemove = this.invokeEventCallback('beforeremove', {$event, $item: items.length === 1 ? items[0] : items});\n if (isDefined(allowRemove) && !toBoolean(allowRemove)) {\n return;\n }\n\n const prevDatavalue = clone(this.datavalue);\n\n // focus next chip after deletion.\n // if there are no chips in the list focus search box\n setTimeout(() => {\n const chipsLength = this.chipsList.length;\n const $chipsList = this.$element.find('li.chip-item > a.app-chip');\n\n if (!chipsLength || !canFocus) {\n this.focusSearchBox();\n } else if ((chipsLength - 1) < focusIndex) {\n // if focus index is greater than chips length select last chip\n $chipsList.get(chipsLength - 1).focus();\n } else {\n // manually set the succeeding chip as active if there is a chip next to the current chip.\n this.chipsList[focusIndex].active = true;\n $chipsList.get(focusIndex).focus();\n }\n });\n\n const pulledItems = pullAt(this.chipsList, indexes);\n\n pulledItems.forEach(datasetItem => {\n this._modelByValue = filter(this._modelByValue, val => {\n return !(isObject(val) ? isEqual(val, datasetItem.value) : toString(val) === toString(datasetItem.value));\n });\n });\n\n this._unsubscribeDv = false;\n\n this.invokeOnChange(this._modelByValue, $event, true);\n this.invokeEventCallback('change', {$event, newVal: this.datavalue, oldVal: prevDatavalue});\n\n this.updateMaxSize();\n\n this.invokeEventCallback('remove', {$event, $item: items.length === 1 ? items[0] : items});\n }\n\n /**\n * Swaps items in an array if provided with indexes.\n * @param data :- array to be swapped\n * @param newIndex :- new index for the element to be placed\n * @param currentIndex :- the current index of the element.\n */\n private swapElementsInArray(data: Array<any>, newIndex: number, currentIndex: number) {\n const draggedItem = pullAt(data, currentIndex)[0];\n data.splice(newIndex, 0, draggedItem);\n }\n\n /**\n * Cancels the reorder by reseting the elements to the original position.\n */\n private resetReorder() {\n this.$element.removeData('oldIndex');\n }\n\n private invokeOnBeforeServiceCall(inputData) {\n this.invokeEventCallback('beforeservicecall', {inputData});\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName === 'remove' || eventName === 'beforeremove' || eventName === 'chipselect'\n || eventName === 'chipclick' || eventName === 'add' || eventName === 'reorder' || eventName === 'change') {\n return;\n }\n\n super.handleEvent(node, eventName, eventCallback, locals);\n }\n\n // Configures the reordable feature in chips widgets.\n private configureDnD() {\n const options = {\n items: '> li:not(.app-chip-search)',\n placeholder: 'chip-placeholder'\n };\n\n configureDnD(this.$element, options, this.onReorderStart.bind(this), this.update.bind(this));\n }\n\n // Triggered on drag start while reordering.\n private onReorderStart(evt: Event, ui: Object) {\n const helper = (ui as any).helper;\n // increasing the width of the dragged item by 1\n helper.width(helper.width() + 1);\n this.$element.data('oldIndex', (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0));\n }\n\n // updates the chipsList and datavalue on reorder.\n private update($event: Event, ui: Object) {\n let changedItem,\n newIndex,\n oldIndex;\n\n // Get the index of the item at position before drag and after the reorder.\n newIndex = (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0);\n oldIndex = this.$element.data('oldIndex');\n\n newIndex = this.chipsList.length === newIndex ? newIndex - 1 : newIndex;\n changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: this.chipsList[oldIndex]\n };\n\n if (newIndex === oldIndex) {\n this.resetReorder();\n return;\n }\n changedItem.item = this.chipsList[oldIndex];\n\n const allowReorder = this.invokeEventCallback('beforereorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n\n if (isDefined(allowReorder) && toBoolean(allowReorder) === false) {\n this.resetReorder();\n return;\n }\n\n // modify the chipsList and datavalue after the reorder.\n this.swapElementsInArray(this.chipsList, newIndex, oldIndex);\n this.swapElementsInArray(this._modelByValue, newIndex, oldIndex);\n\n changedItem.item = this.chipsList[newIndex];\n\n this.chipsList = [...this.chipsList];\n\n this.resetReorder();\n this.invokeEventCallback('reorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n }\n\n onPropertyChange(key: string, nv: any, ov: any) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'dataoptions') {\n (this.searchComponent as any).dataoptions = nv;\n }\n if (key === 'datafield') {\n this.searchComponent.datafield = this.datafield;\n }\n if (key === 'displayfield') {\n this.searchComponent.displaylabel = this.displayfield;\n }\n if (key === 'displayexpression') {\n this.searchComponent.binddisplaylabel = this.binddisplayexpression ? this.binddisplayexpression : this.displayexpression;\n }\n if (key === 'displayimagesrc') {\n this.searchComponent.binddisplayimagesrc = this.binddisplayimagesrc ? this.binddisplayimagesrc : this.displayimagesrc;\n }\n if (key === 'limit') {\n this.searchComponent.limit = this.limit;\n }\n if (key === 'matchmode') {\n this.searchComponent.matchmode = this.matchmode;\n }\n if (key === 'groupby') {\n this.searchComponent.groupby = this.groupby;\n }\n if (key === 'enablereorder') {\n if (this.$element.hasClass('ui-sortable')) {\n this.$element.sortable('option', 'disabled', !nv);\n } else if (nv) {\n this.configureDnD();\n }\n\n // Add this block to handle drag prevention\n const chipElements = this.$element.find('.chip-item a.app-chip');\n if (!nv) {\n chipElements.addClass('no-drag');\n // Prevent default drag behavior\n chipElements.on('dragstart', (e) => {\n e.preventDefault();\n return false;\n });\n } else {\n chipElements.removeClass('no-drag');\n chipElements.off('dragstart');\n }\n }\n if (key === 'readonly') {\n if (nv) {\n this.$element.addClass('readonly');\n } else {\n this.$element.removeClass('readonly');\n }\n }\n if (key === 'inputposition') {\n const $inputEl = this.$element.find('li.app-chip-search');\n if (nv === 'first') {\n this.$element.prepend($inputEl);\n } else {\n this.$element.append($inputEl);\n }\n }\n if (key === 'autofocus' && nv) {\n // setting the autofocus on the input once after dom is updated\n setTimeout(() => {\n const $chipsList = this.$element.find('.app-chip-input > input.app-textbox');\n if ($chipsList && $chipsList.length) {\n this.focusSearchBox();\n }\n });\n }\n super.onPropertyChange(key, nv, ov);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/chips/src/chips.props.ts","../../../../../projects/components/widgets/input/chips/src/chips.component.html","../../../../../projects/components/widgets/input/chips/src/chips.component.ts","../../../../../projects/components/widgets/input/chips/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const chipsProps = new Map(\n [\n ['allowonlyselect', PROP_BOOLEAN],\n ['autofocus', PROP_BOOLEAN],\n ['chipclass', PROP_STRING],\n ['class', PROP_STRING],\n ['compareby', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataoptions', PROP_ANY],\n ['dataset', {value: 'Option 1, Option 2, Option 3', ...PROP_ANY}],\n ['datasource', PROP_ANY],\n ['datavalue', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['dateformat', PROP_STRING],\n ['disabled', PROP_BOOLEAN],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['displayimagesrc', PROP_STRING],\n ['enablereorder', PROP_BOOLEAN],\n ['groupby', PROP_STRING],\n ['inputposition', {value: 'last', ...PROP_STRING}],\n ['inputwidth', {value: 'default', ...PROP_STRING}],\n ['limit', PROP_NUMBER],\n ['loadingdatamsg', {value: 'Loading items...', ...PROP_STRING}],\n ['match', PROP_STRING],\n ['matchmode', PROP_STRING],\n ['maxsize', PROP_NUMBER],\n ['minchars', {value: 1 , ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['navsearchbar', {value: false, ...PROP_BOOLEAN}],\n ['orderby', PROP_STRING],\n ['placeholder', {value: 'Type here..', ...PROP_STRING}],\n ['query', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['searchkey', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showsearchicon', PROP_BOOLEAN],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'search', ...PROP_STRING}],\n ['debouncetime', {value: 250, ...PROP_NUMBER}],\n ['datacompletemsg', { value: 'No more data to load', ...PROP_STRING }],\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-chips',\n chipsProps\n );\n registerFormWidget(\n FormWidgetType.CHIPS,\n new Map(chipsProps)\n );\n};\n\n","@for (item of chipsList; track item) {\n <li class=\"chip-item {{chipclass && !bindChipclass ? chipclass : ''}}\"\n [ngClass]=\"{'active': item.active, 'disabled': disabled}\">\n <a href=\"javascript:void(0)\" class=\"app-chip\"\n (click)=\"handleChipClick($event, item)\"\n (keydown.delete)=\"onDelete($event, item, $index)\"\n (keydown.backspace)=\"onBackspace($event, item, $index)\"\n (keydown.arrowleft)=\"onArrowLeft(item, $index)\"\n (keydown.arrowright)=\"onArrowRight(item, $index)\"\n (focus)=\"handleChipFocus($event, item)\"\n (blur)=\"readonly ? 0 : item.active = false\"\n [ngClass]=\"{'no-drag': !enablereorder,'chip-duplicate bg-danger': item.isDuplicate, 'chip-picture': item.imgSrc}\">\n @if (item.imgSrc) {\n <img data-identifier=\"img\" alt=\"Chip Image\" class=\"button-image-icon\" [src]=\"item.imgSrc\"/>\n }\n <span class=\"app-chip-title\" [textContent]=\"item.label\" [title]=\"item.label\"></span>\n @if (!readonly) {\n <button type=\"button\" [attr.aria-label]=\"'Clear ' + item.label\" class=\"btn btn-transparent\"\n (click)=\"removeItem($event, item, $index);\">\n <i class=\"app-icon wi wi-close\"></i>\n </button>\n }\n </a>\n </li>\n}\n<li class=\"app-chip-search\" [ngClass]=\"{'full-width': inputwidth === 'full'}\">\n <div #search wmSearch class=\"app-chip-input\"\n name=\"app-chip-search\"\n submit.event=\"addItem($event, widget)\"\n beforeservicecall.event=\"invokeOnBeforeServiceCall(inputData)\"\n disabled.bind=\"disabled || readonly || saturate\"\n datafield.bind=\"datafield\"\n allowonlyselect.bind=\"allowonlyselect\"\n searchkey.bind=\"searchkey\"\n orderby.bind=\"orderby\"\n placeholder.bind=\"saturate ? maxSizeReached : placeholder\"\n showsearchicon.bind=\"showsearchicon\"\n tabindex.bind=\"tabindex\"\n minchars.bind=\"minchars\"\n debouncetime.bind=\"debouncetime\"\n matchmode.bind=\"matchmode\"\n datacompletemsg.bind = \"datacompletemsg\"\n groupby.bind=\"groupby\"\n match.bind=\"match\"\n dateformat.bind=\"dateformat\"\n (keydown.enter)=\"stopEvent($event)\"\n (keydown.delete)=\"onTextDelete($event)\"\n (keydown.backspace)=\"onInputClear($event)\"\n (keydown.arrowleft)=\"onArrowLeft()\"\n (keydown.arrowright)=\"onArrowRight()\">\n </div>\n</li>\n","import { CommonModule } from '@angular/common';\nimport { WmComponentsModule } from \"@wm/components/base\";\nimport {\n AfterViewInit,\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n ViewChild\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {\n $appDigest,\n $unwatch,\n $watch,\n debounce,\n isAppleProduct,\n isDefined,\n toBoolean\n} from '@wm/core';\nimport { ALLFIELDS, configureDnD, DataSetItem, getConditionalClasses, getUniqObjsByDataField, IWidgetConfig, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input';\nimport { SearchComponent } from '@wm/components/basic/search';\n\nimport { registerProps } from './chips.props';\nimport {\n clone,\n filter,\n find,\n findIndex,\n forEach, isArray,\n isEqual,\n isObject, max, pullAt, reduce,\n slice,\n toString,\n trim\n} from \"lodash-es\";\n\nconst WIDGET_CONFIG: IWidgetConfig = {\n widgetType: 'wm-chips',\n hostClass: 'app-chips nav nav-pills list-inline'\n};\n\n@Component({\n standalone: true,\n imports: [CommonModule, WmComponentsModule, SearchComponent],\n selector: '[wmChips]',\n templateUrl: './chips.component.html',\n providers: [\n provideAs(ChipsComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(ChipsComponent)\n ]\n})\nexport class ChipsComponent extends DatasetAwareFormComponent implements OnInit, AfterViewInit {\n static initializeProps = registerProps();\n public allowonlyselect: boolean;\n public enablereorder: boolean;\n public maxsize: number;\n public inputwidth: any;\n private debouncetime: number;\n\n public chipsList: Array<any> = [];\n private readonly maxSizeReached = 'Max size reached';\n private saturate: boolean;\n private nextItemIndex: number;\n private getTransformedData: (data, itemIndex?) => DataSetItem[];\n private inputposition: string;\n private showsearchicon: boolean;\n\n @ViewChild(SearchComponent, /* TODO: add static flag */ {static: true}) searchComponent: SearchComponent;\n private _datasource: any;\n private _unsubscribeDv = false;\n private searchkey: string;\n private _debounceUpdateQueryModel: any;\n private limit: number;\n private _classExpr: any;\n private minchars: number;\n private matchmode: string;\n\n // getter setter is added to pass the datasource to searchcomponent.\n get datasource () {\n return this._datasource;\n }\n\n set datasource(nv) {\n this._datasource = nv;\n this.searchComponent.datasource = nv;\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n }\n\n constructor(\n inj: Injector,\n @Attribute('displayfield.bind') private bindDisplayField,\n @Attribute('displayexpression.bind') private bindDisplayExpr,\n @Attribute('displayimagesrc.bind') private bindDisplayImgSrc,\n @Attribute('datafield.bind') private bindDataField,\n @Attribute('dataset.bind') private bindDataSet,\n @Attribute('chipclass.bind') private bindChipclass,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n\n // set the showsearchicon as false by default.\n if (!isDefined(this.showsearchicon)) {\n this.showsearchicon = false;\n }\n\n this.multiple = true;\n this.nextItemIndex = 0; // default chip index\n\n this._debounceUpdateQueryModel = debounce((val) => {\n this.updateQueryModel(val).then(() => {\n if (this.bindChipclass) {\n forEach(this.chipsList, (item, index) => {\n this.registerChipItemClass(item, index);\n });\n }\n });\n }, 150);\n\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.searchComponent.dataset = this.dataset;\n // clearing the last results when dataset is reassigned\n (this.searchComponent as any)._lastResult = undefined;\n this.nextItemIndex = this.datasetItems.length;\n this._debounceUpdateQueryModel(this.datavalue || this.toBeProcessedDatavalue);\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n const datavalueSubscription = this.datavalue$.subscribe((val: Array<string> | string) => {\n // update queryModel only when parentRef is available.\n if (!this._unsubscribeDv) {\n this.chipsList = [];\n // if the datafield is ALLFILEDS do not fetch the records\n // update the query model with the values we have\n this._debounceUpdateQueryModel(val);\n }\n });\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n ngOnInit() {\n super.ngOnInit();\n\n this.searchComponent.multiple = true;\n this.searchComponent.binddisplayimagesrc = this.bindDisplayImgSrc;\n this.searchComponent.displayimagesrc = this.displayimagesrc;\n this.searchComponent.binddisplaylabel = this.bindDisplayExpr;\n this.searchComponent.displaylabel = this.displayfield;\n this.searchComponent.datafield = this.bindDataField || this.datafield;\n this.searchComponent.binddataset = this.bindDataSet;\n this.searchComponent.dataset = this.dataset;\n this.searchComponent.searchkey = this.searchkey;\n this.searchComponent.limit = this.limit;\n this.searchComponent.debouncetime = this.debouncetime;\n this.searchComponent.matchmode = this.matchmode;\n\n this.getTransformedData = (val, isCustom) => {\n return this.searchComponent.getTransformedData([val], this.nextItemIndex++, isCustom);\n };\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n if (this.enablereorder) {\n this.configureDnD();\n }\n }\n\n /**\n * This method returns the evaluated class expression.\n * @param $index index of the chip\n * @param item chip object containing the key, value, label\n * @returns {any} evaluated class expression value\n */\n private registerChipItemClass(item, $index) {\n if (this.bindChipclass) {\n const watchName = `${this.widgetId}_chipItemClass_${$index}`;\n $unwatch(watchName);\n //[Todo-CSP]: same as list item class\n this.registerDestroyListener($watch(this.bindChipclass, this.viewParent, {item, $index}, (nv, ov) => {\n this.applyItemClass(getConditionalClasses(nv, ov), $index);\n }, watchName));\n }\n }\n\n private applyItemClass(val, index) {\n const chipItem = this.nativeElement.querySelectorAll('.chip-item').item(index);\n $(chipItem).removeClass(val.toRemove).addClass(val.toAdd);\n }\n\n private removeDuplicates() {\n this.chipsList = getUniqObjsByDataField(this.chipsList, this.datafield, this.displayfield || this.displaylabel);\n }\n\n // This method updates the queryModel.\n // default call to get the default data can be done only when defaultQuery is true.\n private updateQueryModel(data: any): Promise<void> {\n const promises = [];\n if (!data) {\n this.chipsList = [];\n return Promise.resolve();\n }\n\n // clone the data as the updations on data will change the datavalue.\n let dataValue = clone(data);\n const prevChipsList = this.chipsList;\n this.chipsList = [];\n\n // update the model when model has items more than maxsize\n if (this.maxsize && dataValue.length > this.maxsize) {\n this._modelByValue = dataValue = slice(dataValue, 0, this.maxsize);\n data = dataValue;\n }\n\n const searchQuery: Array<string> = [];\n\n /**\n * For each value in datavalue,\n * 1. check whether value is in datasetItems, if item is found, addd to the chipsList.\n * 2. else make a default query to the filter and get the record.\n * 3. In step 2, if datavalue is not ALLFIELDS, then make a query. Extract the chipsList from the query response.\n * 4. If there is no response for the value and allowonlyselect is true, remove the value from the datavalue. So that datavalue just contains the valid values.\n * 5. In step 2, if datavalue is ALLFIELDS and value is object, then just prepare the datasetItem from the value.\n * 6. If value is not object and allowonlyselect is false, then create a customModel and replace this value with customModel and prepare datasetItem from this value\n */\n dataValue.forEach((val: any, i: number) => {\n const itemFound = find(this.datasetItems, item => {\n return isObject(item.value) ? isEqual(item.value, val) : toString(item.value) === toString(val);\n });\n\n if (itemFound) {\n this.chipsList.push(itemFound);\n } else if (this.datafield !== ALLFIELDS) {\n searchQuery.push(val);\n } else if (this.datafield === ALLFIELDS) {\n let dataObj, isCustom = false;\n if (!isObject(val)) {\n dataObj = this.createCustomDataModel(val);\n isCustom = true;\n if (dataObj) {\n data.splice(i, 1, dataObj);\n }\n } else {\n // if custom chips is already generated, val will be object as {'dataField_val': 'entered_val'}\n // Hence check this val in previous chipList and assign the iscustom flag\n const prevChipObj = prevChipsList.find(obj => {\n return isEqual(obj.value, val);\n });\n if (prevChipObj) {\n isCustom = prevChipObj.iscustom;\n }\n }\n dataObj = dataObj || val;\n\n const transformedData = this.getTransformedData(dataObj, isCustom);\n const chipObj = transformedData[0];\n if (isCustom) {\n (chipObj as any).iscustom = isCustom;\n }\n this.chipsList.push(chipObj);\n }\n });\n\n // make default query with all the values and if response for the value is not in datavalue then add a custom chip object.\n if (searchQuery.length) {\n promises.push(this.getDefaultModel(searchQuery, this.nextItemIndex)\n .then(response => {\n this.chipsList = this.chipsList.concat(response || []);\n dataValue.forEach((val: any, i: number) => {\n const isExists = find(this.chipsList, (obj) => {\n return obj.value.toString() === val.toString();\n });\n\n if (!isExists) {\n if (this.allowonlyselect) {\n const index = data.indexOf(val);\n if (index > -1) {\n data.splice(index, 1);\n }\n return;\n }\n const transformedData = this.getTransformedData(val, true);\n const chipObj = transformedData[0];\n (chipObj as any).iscustom = true;\n this.chipsList.push(chipObj);\n }\n });\n }));\n }\n\n // default chip data is adding focus on to the search input. Hence this flag helps not to focus.\n this.resetSearchModel(true);\n\n return Promise.all(promises).then(() => {\n this._modelByValue = data;\n this.removeDuplicates();\n this.updateMaxSize();\n $appDigest();\n });\n }\n\n private resetSearchModel(defaultQuery?: boolean) {\n this._unsubscribeDv = true;\n // clear search will empty the query model and gets the data when minchars is 0 (i.e. autocomplete) on focus\n // defaultQuery flag is set when widget is not active. This will only load the autocomplete dropup with minchars as 0 when widget is focused/active\n (this.searchComponent as any).clearSearch(undefined, !this.minchars && !defaultQuery);\n this._unsubscribeDv = false;\n }\n\n // Add the newItem to the list\n private addItem($event: Event, widget?: SearchComponent) {\n const searchComponent = widget;\n let allowAdd;\n let chipObj;\n\n if (searchComponent && isDefined(searchComponent.datavalue) && searchComponent.queryModel !== '') {\n if (!searchComponent.query || !trim(searchComponent.query)) {\n return;\n }\n chipObj = searchComponent.queryModel;\n } else {\n if (this.allowonlyselect) {\n return;\n }\n let dataObj;\n if (this.datafield === ALLFIELDS) {\n if (!isObject(this.searchComponent.query) && trim(this.searchComponent.query)) {\n dataObj = this.createCustomDataModel(this.searchComponent.query);\n // return if the custom chip is empty\n if (!dataObj) {\n this.resetSearchModel();\n return;\n }\n }\n }\n\n const data = dataObj || trim(this.searchComponent.query);\n if (data) {\n const transformedData = this.getTransformedData(data, true);\n chipObj = transformedData[0];\n chipObj.iscustom = true;\n }\n }\n\n if (!isDefined(chipObj) || chipObj === '') {\n return;\n }\n\n allowAdd = this.invokeEventCallback('beforeadd', {$event, newItem: chipObj});\n\n if (isDefined(allowAdd) && !toBoolean(allowAdd)) {\n return;\n }\n\n if (this.isDuplicate(chipObj)) {\n this.resetSearchModel();\n return;\n }\n this.registerChipItemClass(chipObj, this.chipsList.length);\n this.chipsList.push(chipObj);\n\n if (!this.datavalue) {\n this._modelByValue = [chipObj.value];\n } else {\n this._modelByValue = [...this._modelByValue, chipObj.value];\n }\n\n this._unsubscribeDv = true;\n this.invokeOnTouched();\n this.invokeOnChange(this._modelByValue, $event || {}, true);\n\n this.invokeEventCallback('add', {$event, $item: chipObj});\n\n this.updateMaxSize();\n\n // reset input box when item is added.\n this.resetSearchModel();\n\n // stop the event to not to call the submit event on enter press.\n if ($event && (($event as any).key === 'Enter' || ($event as any).keyCode === 13)) {\n this.stopEvent($event);\n }\n }\n\n // Prepare datavalue object from a string(junk) value when datafield is allFields.\n private createCustomDataModel(val: string) {\n const key = this.displayfield || (this.datafield !== ALLFIELDS ? this.datafield : undefined);\n\n if (key) {\n const customObj = {};\n customObj[key] = val;\n return customObj;\n }\n }\n\n // Check if newItem already exists\n private isDuplicate(item: DataSetItem) {\n if (this.datafield === ALLFIELDS) {\n return findIndex(this.chipsList, {value: item.value}) > -1;\n }\n return findIndex(this.chipsList, {key: item.key}) > -1;\n }\n\n // Check if max size is reached\n private updateMaxSize() {\n this.saturate = this.maxsize > 0 && this.chipsList.length === this.maxsize;\n }\n\n // Makes call to searchComponent to filter the dataSource based on the query.\n protected getDefaultModel(query: Array<string> | string, index?: number) {\n this.nextItemIndex++;\n return this.searchComponent.getDataSource(query, true, index)\n .then((response) => {\n // @ts-ignore\n return filter(query, queryVal => {\n find(response, {value: queryVal});\n });\n });\n }\n\n private handleChipClick($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n ($event.currentTarget as any).focus();\n this.invokeEventCallback('chipclick', {$event, $item: chip});\n }\n\n private handleChipFocus($event: Event, chip: DataSetItem) {\n if (this.readonly) {\n return;\n }\n (chip as any).active = true;\n this.invokeEventCallback('chipselect', {$event, $item: chip});\n }\n\n // To avoid form submit on pressing enter key\n public stopEvent($event: Event) {\n const inputValue = ($event.target as HTMLInputElement)?.value ?? '';\n if(inputValue.trim()){\n $event.stopPropagation();\n $event.preventDefault();\n }\n }\n\n public onTextDelete($event: Event) {\n if (isAppleProduct) {\n this.onInputClear($event);\n }\n }\n\n public onInputClear($event: Event) {\n if (!this.chipsList || !this.chipsList.length || this.searchComponent.query) {\n return;\n }\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n this.stopEvent($event);\n }\n\n private onBackspace($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index, true);\n }\n\n private onDelete($event: Event, $item: DataSetItem, $index: number) {\n if (this.readonly) {\n return;\n }\n this.removeItem($event, $item, $index);\n }\n\n public onArrowLeft($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n\n // On left arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').last().focus();\n return;\n }\n\n if ($index > 0) {\n this.$element.find('li.chip-item > a.app-chip').get($index - 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n public onArrowRight($item?: DataSetItem, $index?: number) {\n if (this.readonly) {\n return;\n }\n // On right arrow click when search input query is empty.\n if (!this.searchComponent.query && !isDefined($index) && !isDefined($item)) {\n this.$element.find('li.chip-item > a.app-chip').first().focus();\n return;\n }\n\n if ($index < (this.chipsList.length - 1)) {\n this.$element.find('li.chip-item > a.app-chip').get($index + 1).focus();\n } else {\n this.focusSearchBox();\n }\n }\n\n // focus search box.\n private focusSearchBox() {\n this.$element.find('.app-chip-input > input.app-textbox').focus();\n }\n\n // Remove the item from list\n private removeItem($event: Event, item: DataSetItem, index: number, canFocus?: boolean) {\n $event.stopPropagation();\n\n const indexes = isArray(index) ? index : [index];\n const focusIndex = max(indexes);\n\n const items = reduce(indexes, (result, i) => {\n result.push(this.chipsList[i]);\n return result;\n }, []);\n\n // prevent deletion if the before-remove event callback returns false\n const allowRemove = this.invokeEventCallback('beforeremove', {$event, $item: items.length === 1 ? items[0] : items});\n if (isDefined(allowRemove) && !toBoolean(allowRemove)) {\n return;\n }\n\n const prevDatavalue = clone(this.datavalue);\n\n // focus next chip after deletion.\n // if there are no chips in the list focus search box\n setTimeout(() => {\n const chipsLength = this.chipsList.length;\n const $chipsList = this.$element.find('li.chip-item > a.app-chip');\n\n if (!chipsLength || !canFocus) {\n this.focusSearchBox();\n } else if ((chipsLength - 1) < focusIndex) {\n // if focus index is greater than chips length select last chip\n $chipsList.get(chipsLength - 1).focus();\n } else {\n // manually set the succeeding chip as active if there is a chip next to the current chip.\n this.chipsList[focusIndex].active = true;\n $chipsList.get(focusIndex).focus();\n }\n });\n\n const pulledItems = pullAt(this.chipsList, indexes);\n\n pulledItems.forEach(datasetItem => {\n this._modelByValue = filter(this._modelByValue, val => {\n return !(isObject(val) ? isEqual(val, datasetItem.value) : toString(val) === toString(datasetItem.value));\n });\n });\n\n this._unsubscribeDv = false;\n\n this.invokeOnChange(this._modelByValue, $event, true);\n this.invokeEventCallback('change', {$event, newVal: this.datavalue, oldVal: prevDatavalue});\n\n this.updateMaxSize();\n\n this.invokeEventCallback('remove', {$event, $item: items.length === 1 ? items[0] : items});\n }\n\n /**\n * Swaps items in an array if provided with indexes.\n * @param data :- array to be swapped\n * @param newIndex :- new index for the element to be placed\n * @param currentIndex :- the current index of the element.\n */\n private swapElementsInArray(data: Array<any>, newIndex: number, currentIndex: number) {\n const draggedItem = pullAt(data, currentIndex)[0];\n data.splice(newIndex, 0, draggedItem);\n }\n\n /**\n * Cancels the reorder by reseting the elements to the original position.\n */\n private resetReorder() {\n this.$element.removeData('oldIndex');\n }\n\n private invokeOnBeforeServiceCall(inputData) {\n this.invokeEventCallback('beforeservicecall', {inputData});\n }\n\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName === 'remove' || eventName === 'beforeremove' || eventName === 'chipselect'\n || eventName === 'chipclick' || eventName === 'add' || eventName === 'reorder' || eventName === 'change') {\n return;\n }\n\n super.handleEvent(node, eventName, eventCallback, locals);\n }\n\n // Configures the reordable feature in chips widgets.\n private configureDnD() {\n const options = {\n items: '> li:not(.app-chip-search)',\n placeholder: 'chip-placeholder'\n };\n\n configureDnD(this.$element, options, this.onReorderStart.bind(this), this.update.bind(this));\n }\n\n // Triggered on drag start while reordering.\n private onReorderStart(evt: Event, ui: Object) {\n const helper = (ui as any).helper;\n // increasing the width of the dragged item by 1\n helper.width(helper.width() + 1);\n this.$element.data('oldIndex', (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0));\n }\n\n // updates the chipsList and datavalue on reorder.\n private update($event: Event, ui: Object) {\n let changedItem,\n newIndex,\n oldIndex;\n\n // Get the index of the item at position before drag and after the reorder.\n newIndex = (ui as any).item.index() - (this.inputposition === 'first' ? 1 : 0);\n oldIndex = this.$element.data('oldIndex');\n\n newIndex = this.chipsList.length === newIndex ? newIndex - 1 : newIndex;\n changedItem = {\n oldIndex: oldIndex,\n newIndex: newIndex,\n item: this.chipsList[oldIndex]\n };\n\n if (newIndex === oldIndex) {\n this.resetReorder();\n return;\n }\n changedItem.item = this.chipsList[oldIndex];\n\n const allowReorder = this.invokeEventCallback('beforereorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n\n if (isDefined(allowReorder) && toBoolean(allowReorder) === false) {\n this.resetReorder();\n return;\n }\n\n // modify the chipsList and datavalue after the reorder.\n this.swapElementsInArray(this.chipsList, newIndex, oldIndex);\n this.swapElementsInArray(this._modelByValue, newIndex, oldIndex);\n\n changedItem.item = this.chipsList[newIndex];\n\n this.chipsList = [...this.chipsList];\n\n this.resetReorder();\n this.invokeEventCallback('reorder', {$event, $data: this.chipsList, $changedItem: changedItem});\n }\n\n onPropertyChange(key: string, nv: any, ov: any) {\n if (key === 'tabindex') {\n return;\n }\n if (key === 'dataoptions') {\n (this.searchComponent as any).dataoptions = nv;\n }\n if (key === 'datafield') {\n this.searchComponent.datafield = this.datafield;\n }\n if (key === 'displayfield') {\n this.searchComponent.displaylabel = this.displayfield;\n }\n if (key === 'displayexpression') {\n this.searchComponent.binddisplaylabel = this.binddisplayexpression ? this.binddisplayexpression : this.displayexpression;\n }\n if (key === 'displayimagesrc') {\n this.searchComponent.binddisplayimagesrc = this.binddisplayimagesrc ? this.binddisplayimagesrc : this.displayimagesrc;\n }\n if (key === 'limit') {\n this.searchComponent.limit = this.limit;\n }\n if (key === 'matchmode') {\n this.searchComponent.matchmode = this.matchmode;\n }\n if (key === 'groupby') {\n this.searchComponent.groupby = this.groupby;\n }\n if (key === 'enablereorder') {\n if (this.$element.hasClass('ui-sortable')) {\n this.$element.sortable('option', 'disabled', !nv);\n } else if (nv) {\n this.configureDnD();\n }\n\n // Add this block to handle drag prevention\n const chipElements = this.$element.find('.chip-item a.app-chip');\n if (!nv) {\n chipElements.addClass('no-drag');\n // Prevent default drag behavior\n chipElements.on('dragstart', (e) => {\n e.preventDefault();\n return false;\n });\n } else {\n chipElements.removeClass('no-drag');\n chipElements.off('dragstart');\n }\n }\n if (key === 'readonly') {\n if (nv) {\n this.$element.addClass('readonly');\n } else {\n this.$element.removeClass('readonly');\n }\n }\n if (key === 'inputposition') {\n const $inputEl = this.$element.find('li.app-chip-search');\n if (nv === 'first') {\n this.$element.prepend($inputEl);\n } else {\n this.$element.append($inputEl);\n }\n }\n if (key === 'autofocus' && nv) {\n // setting the autofocus on the input once after dom is updated\n setTimeout(() => {\n const $chipsList = this.$element.find('.app-chip-input > input.app-textbox');\n if ($chipsList && $chipsList.length) {\n this.focusSearchBox();\n }\n });\n }\n super.onPropertyChange(key, nv, ov);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -181,6 +181,18 @@
|
|
|
181
181
|
return;
|
|
182
182
|
}
|
|
183
183
|
binddatavalue = binddatavalue.replace(/\[\$i\]/g, '[0]');
|
|
184
|
+
binddatavalue = binddatavalue.replace(/\[(.*?)\]/g, (_match, key) => {
|
|
185
|
+
try {
|
|
186
|
+
const value = eval(`this.viewParent.${key}`);
|
|
187
|
+
if (typeof value === 'string' || typeof value === 'number')
|
|
188
|
+
return `[${value}]`;
|
|
189
|
+
else
|
|
190
|
+
return '[0]';
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
return '[0]'; // fallback if evaluation fails
|
|
194
|
+
}
|
|
195
|
+
});
|
|
184
196
|
// In case of list widget context will be the listItem.
|
|
185
197
|
if (lodashEs.has(this.context, binddatavalue.split('.')[0]) && lodashEs.has(this.context, binddatavalue)) {
|
|
186
198
|
lodashEs.set(this.context, binddatavalue, value);
|
|
@@ -189,10 +201,10 @@
|
|
|
189
201
|
else if (lodashEs.has(this.viewParent, binddatavalue) && this.viewParent.containerWidget?._isCustom) {
|
|
190
202
|
lodashEs.set(this.viewParent, binddatavalue, value);
|
|
191
203
|
}
|
|
192
|
-
else if (lodashEs.has(this.viewParent, binddatavalue) && this.datavaluesource
|
|
204
|
+
else if (lodashEs.has(this.viewParent, binddatavalue) && this.datavaluesource?.owner === "Page") {
|
|
193
205
|
lodashEs.set(this.viewParent, binddatavalue, value);
|
|
194
206
|
}
|
|
195
|
-
else if (lodashEs.has(this.viewParent?.App, binddatavalue) && this.datavaluesource
|
|
207
|
+
else if (lodashEs.has(this.viewParent?.App, binddatavalue) && this.datavaluesource?.owner === "App") {
|
|
196
208
|
lodashEs.set(this.viewParent.App, binddatavalue, value);
|
|
197
209
|
}
|
|
198
210
|
}
|
|
@@ -33,6 +33,18 @@ export class BaseFormComponent extends StylableComponent {
|
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
35
|
binddatavalue = binddatavalue.replace(/\[\$i\]/g, '[0]');
|
|
36
|
+
binddatavalue = binddatavalue.replace(/\[(.*?)\]/g, (_match, key) => {
|
|
37
|
+
try {
|
|
38
|
+
const value = eval(`this.viewParent.${key}`);
|
|
39
|
+
if (typeof value === 'string' || typeof value === 'number')
|
|
40
|
+
return `[${value}]`;
|
|
41
|
+
else
|
|
42
|
+
return '[0]';
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return '[0]'; // fallback if evaluation fails
|
|
46
|
+
}
|
|
47
|
+
});
|
|
36
48
|
// In case of list widget context will be the listItem.
|
|
37
49
|
if (has(this.context, binddatavalue.split('.')[0]) && has(this.context, binddatavalue)) {
|
|
38
50
|
set(this.context, binddatavalue, value);
|
|
@@ -41,10 +53,10 @@ export class BaseFormComponent extends StylableComponent {
|
|
|
41
53
|
else if (has(this.viewParent, binddatavalue) && this.viewParent.containerWidget?._isCustom) {
|
|
42
54
|
set(this.viewParent, binddatavalue, value);
|
|
43
55
|
}
|
|
44
|
-
else if (has(this.viewParent, binddatavalue) && this.datavaluesource
|
|
56
|
+
else if (has(this.viewParent, binddatavalue) && this.datavaluesource?.owner === "Page") {
|
|
45
57
|
set(this.viewParent, binddatavalue, value);
|
|
46
58
|
}
|
|
47
|
-
else if (has(this.viewParent?.App, binddatavalue) && this.datavaluesource
|
|
59
|
+
else if (has(this.viewParent?.App, binddatavalue) && this.datavaluesource?.owner === "App") {
|
|
48
60
|
set(this.viewParent.App, binddatavalue, value);
|
|
49
61
|
}
|
|
50
62
|
}
|
|
@@ -95,4 +107,4 @@ export class BaseFormComponent extends StylableComponent {
|
|
|
95
107
|
}, {
|
|
96
108
|
type: Optional
|
|
97
109
|
}] }, { type: Promise }], null); })();
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFHbkMsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxpQkFBaUI7SUFPN0QsWUFDYyxHQUFhLEVBQ0QsTUFBcUIsRUFDSCxlQUFvQixFQUM1RCxXQUEwQjtRQUUxQixLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFMdkMsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQU12QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQVM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsS0FBSztRQUNyQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXZDLDhDQUE4QztRQUM5QyxJQUFJLElBQUksQ0FBQyxlQUFl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QUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVMsTUFBTTtnQkFDakMsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO29CQUNuRyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzdCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO2tIQS9GaUIsaUJBQWlCLHdDQVN2QixZQUFZLGVBQ1osa0JBQWtCO3VFQVZaLGlCQUFpQixXQUFqQixpQkFBaUI7O2lGQUFqQixpQkFBaUI7Y0FEdEMsVUFBVTs7c0JBVUYsTUFBTTt1QkFBQyxZQUFZOztzQkFDbkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtEYXRhU291cmNlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IElXaWRnZXRDb25maWcsIFN0eWxhYmxlQ29tcG9uZW50LCBXaWRnZXRDb25maWcgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7aGFzLCBzZXR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xuXG4gICAgcHJpdmF0ZSBkYXRhdmFsO1xuICAgIHByaXZhdGUgcHJldkRhdGF2YWx1ZTtcbiAgICBwcm90ZWN0ZWQgYmluZGRhdGF2YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF0YXZhbHVlc291cmNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksXG4gICAgICAgIGluaXRQcm9taXNlPzogUHJvbWlzZTxhbnk+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQsIGluaXRQcm9taXNlKTtcbiAgICAgICAgdGhpcy5iaW5kZGF0YXZhbHVlID0gdGhpcy4kZWxlbWVudC5hdHRyKCdkYXRhdmFsdWUuYmluZCcpO1xuICAgIH1cblxuICAgIHNldCBkYXRhdmFsdWUoZGF0YXZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YXZhbCA9IGRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgdmFyaWFibGUgYm91bmQgdG8gdGhlIHdpZGdldCdzIGRhdGF2YWx1ZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICB1cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKSB7XG4gICAgICAgIGxldCBiaW5kZGF0YXZhbHVlID0gdGhpcy5iaW5kZGF0YXZhbHVlO1xuXG4gICAgICAgIC8vIHJldHVybiBpZiB0aGUgdmFyaWFibGUgYm91bmQgaXMgbm90IHN0YXRpYy5cbiAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmIHRoaXMuZGF0YXZhbHVlc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmICF0aGlzLmRhdGF2YWx1ZXNvdXJjZS50d29XYXlCaW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIGlmIHdpZGdldCBpcyBib3VuZC5cbiAgICAgICAgaWYgKCFiaW5kZGF0YXZhbHVlIHx8IGJpbmRkYXRhdmFsdWUuc3RhcnRzV2l0aCgnV2lkZ2V0cy4nKSB8fCBiaW5kZGF0YXZhbHVlLnN0YXJ0c1dpdGgoJ2l0ZW1SZWYuY3VycmVudEl0ZW1XaWRnZXRzJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpbmRkYXRhdmFsdWUgPSBiaW5kZGF0YXZhbHVlLnJlcGxhY2UoL1xcW1xcJGlcXF0vZywgJ1swXScpO1xuXG4gICAgICAgIC8vIEluIGNhc2Ugb2YgbGlzdCB3aWRnZXQgY29udGV4dCB3aWxsIGJlIHRoZSBsaXN0SXRlbS5cbiAgICAgICAgaWYgKGhhcyh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUuc3BsaXQoJy4nKVswXSkgJiYgaGFzKHRoaXMuY29udGV4dCwgYmluZGRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldCh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQYXJlbnQgd2lkZ2V0IG11c3QgdXBkYXRlIG9uIGN1c3RvbSB3aWRnZXQgZGF0YXZhbHVlIGNoYW5nZSBmb3IgYmluZGluZ3MgdG8gd29ya1xuICAgICAgICBlbHNlIGlmIChoYXModGhpcy52aWV3UGFyZW50LCBiaW5kZGF0YXZhbHVlKSAmJiB0aGlzLnZpZXdQYXJlbnQuY29udGFpbmVyV2lkZ2V0Py5faXNDdXN0b20pIHtcbiAgICAgICAgICAgIHNldCh0aGlzLnZpZXdQYXJlbnQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChoYXModGhpcy52aWV3UGFyZW50LCBiaW5kZGF0YXZhbHVlKSAmJiB0aGlzLmRhdGF2YWx1ZXNvdXJjZS5vd25lciA9PT0gXCJQYWdlXCIpIHtcbiAgICAgICAgICAgIHNldCh0aGlzLnZpZXdQYXJlbnQsIGJpbmRkYXRhdmFsdWUsIHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChoYXModGhpcy52aWV3UGFyZW50Py5BcHAsIGJpbmRkYXRhdmFsdWUpICYmIHRoaXMuZGF0YXZhbHVlc291cmNlLm93bmVyID09PSBcIkFwcFwiKSB7XG4gICAgICAgICAgICBzZXQodGhpcy52aWV3UGFyZW50LkFwcCwgYmluZGRhdGF2YWx1ZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGludm9rZU9uQ2hhbmdlKHZhbHVlLCAkZXZlbnQ/OiBFdmVudCkge1xuICAgICAgICAvLyBpbnZva2UgdGhlIGV2ZW50IGNhbGxiYWNrXG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSAhPT0gdGhpcy5wcmV2RGF0YXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NoYW5nZScsIHtcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBuZXdWYWw6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBvbGRWYWw6IHRoaXMucHJldkRhdGF2YWx1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgcHJldmlvdXMgdmFsdWVcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVByZXZEYXRhdmFsdWUodmFsOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gdmFsO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0UHJldkRhdGFWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldkRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4vLyBbV01TLTE4ODkyXS0gc3RvcHBpbmcgZXZlbnQgcHJvcGFnYXRpb24gW2ZvciBBcnJvd0xlZnQsIEFycm93VXAsIEFycm93UmlnaHQsIEFycm93RG93biBhY3Rpb25zXSAgd2hlbiBmb3JtIHdpZGdldHMgb3IgZm9ybSBpcyBpbnNpZGUgbGlzdCB3aWRnZXRcbiAgICAgICAgbGV0IHBhcmVudEVsZW1MaXN0ID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLnBhcmVudHMoKTtcbiAgICAgICAgaWYgKHBhcmVudEVsZW1MaXN0LmNsb3Nlc3QoJ1t3bUxpc3RdJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmtleWRvd24oZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKCRldmVudC5rZXlDb2RlID09PSAzNyB8fCAkZXZlbnQua2V5Q29kZSA9PT0gMzggfHwgJGV2ZW50LmtleUNvZGUgPT09IDM5IHx8ICRldmVudC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9iYXNlLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFcEMsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFHbkMsTUFBTSxPQUFnQixpQkFBa0IsU0FBUSxpQkFBaUI7SUFPN0QsWUFDYyxHQUFhLEVBQ0QsTUFBcUIsRUFDSCxlQUFvQixFQUM1RCxXQUEwQjtRQUUxQixLQUFLLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFMdkMsUUFBRyxHQUFILEdBQUcsQ0FBVTtRQU12QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQVM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsS0FBSztRQUNyQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRXZDLDhDQUE4QztRQUM5QyxJQUFJLElBQUksQ0FBQyxlQUFl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N0IsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7UUFDRCw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVTLG1CQUFtQixDQUFDLEdBQVE7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDN0IsQ0FBQztJQUNTLGdCQUFnQjtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELGVBQWU7UUFDWCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFaEMsbUpBQW1KO1FBQzNJLElBQUksY0FBYyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckQsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVMsTUFBTTtnQkFDakMsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO29CQUNuRyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQzdCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO2tIQTlHaUIsaUJBQWlCLHdDQVN2QixZQUFZLGVBQ1osa0JBQWtCO3VFQVZaLGlCQUFpQixXQUFqQixpQkFBaUI7O2lGQUFqQixpQkFBaUI7Y0FEdEMsVUFBVTs7c0JBVUYsTUFBTTt1QkFBQyxZQUFZOztzQkFDbkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtEYXRhU291cmNlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7IElXaWRnZXRDb25maWcsIFN0eWxhYmxlQ29tcG9uZW50LCBXaWRnZXRDb25maWcgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7aGFzLCBzZXR9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ29tcG9uZW50IGV4dGVuZHMgU3R5bGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0e1xuXG4gICAgcHJpdmF0ZSBkYXRhdmFsO1xuICAgIHByaXZhdGUgcHJldkRhdGF2YWx1ZTtcbiAgICBwcm90ZWN0ZWQgYmluZGRhdGF2YWx1ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF0YXZhbHVlc291cmNlOiBhbnk7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnksXG4gICAgICAgIGluaXRQcm9taXNlPzogUHJvbWlzZTxhbnk+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgY29uZmlnLCBleHBsaWNpdENvbnRleHQsIGluaXRQcm9taXNlKTtcbiAgICAgICAgdGhpcy5iaW5kZGF0YXZhbHVlID0gdGhpcy4kZWxlbWVudC5hdHRyKCdkYXRhdmFsdWUuYmluZCcpO1xuICAgIH1cblxuICAgIHNldCBkYXRhdmFsdWUoZGF0YXZhbHVlKSB7XG4gICAgICAgIHRoaXMuZGF0YXZhbCA9IGRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZGF0YXZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhdmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgdmFyaWFibGUgYm91bmQgdG8gdGhlIHdpZGdldCdzIGRhdGF2YWx1ZSBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICB1cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKSB7XG4gICAgICAgIGxldCBiaW5kZGF0YXZhbHVlID0gdGhpcy5iaW5kZGF0YXZhbHVlO1xuXG4gICAgICAgIC8vIHJldHVybiBpZiB0aGUgdmFyaWFibGUgYm91bmQgaXMgbm90IHN0YXRpYy5cbiAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmIHRoaXMuZGF0YXZhbHVlc291cmNlLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uSVNfQVBJX0FXQVJFKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YXZhbHVlc291cmNlICYmICF0aGlzLmRhdGF2YWx1ZXNvdXJjZS50d29XYXlCaW5kaW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmV0dXJuIGlmIHdpZGdldCBpcyBib3VuZC5cbiAgICAgICAgaWYgKCFiaW5kZGF0YXZhbHVlIHx8IGJpbmRkYXRhdmFsdWUuc3RhcnRzV2l0aCgnV2lkZ2V0cy4nKSB8fCBiaW5kZGF0YXZhbHVlLnN0YXJ0c1dpdGgoJ2l0ZW1SZWYuY3VycmVudEl0ZW1XaWRnZXRzJykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGJpbmRkYXRhdmFsdWUgPSBiaW5kZGF0YXZhbHVlLnJlcGxhY2UoL1xcW1xcJGlcXF0vZywgJ1swXScpO1xuICAgICAgICBiaW5kZGF0YXZhbHVlID0gYmluZGRhdGF2YWx1ZS5yZXBsYWNlKFxuICAgICAgICAgICAgL1xcWyguKj8pXFxdL2csXG4gICAgICAgICAgICAoX21hdGNoLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGV2YWwoYHRoaXMudmlld1BhcmVudC4ke2tleX1gKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgWyR7dmFsdWV9XWA7XG4gICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnWzBdJ1xuICAgICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1swXSc7IC8vIGZhbGxiYWNrIGlmIGV2YWx1YXRpb24gZmFpbHNcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cblxuICAgICAgICAvLyBJbiBjYXNlIG9mIGxpc3Qgd2lkZ2V0IGNvbnRleHQgd2lsbCBiZSB0aGUgbGlzdEl0ZW0uXG4gICAgICAgIGlmIChoYXModGhpcy5jb250ZXh0LCBiaW5kZGF0YXZhbHVlLnNwbGl0KCcuJylbMF0pICYmIGhhcyh0aGlzLmNvbnRleHQsIGJpbmRkYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICBzZXQodGhpcy5jb250ZXh0LCBiaW5kZGF0YXZhbHVlLCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUGFyZW50IHdpZGdldCBtdXN0IHVwZGF0ZSBvbiBjdXN0b20gd2lkZ2V0IGRhdGF2YWx1ZSBjaGFuZ2UgZm9yIGJpbmRpbmdzIHRvIHdvcmtcbiAgICAgICAgZWxzZSBpZiAoaGFzKHRoaXMudmlld1BhcmVudCwgYmluZGRhdGF2YWx1ZSkgJiYgdGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldD8uX2lzQ3VzdG9tKSB7XG4gICAgICAgICAgICBzZXQodGhpcy52aWV3UGFyZW50LCBiaW5kZGF0YXZhbHVlLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoaGFzKHRoaXMudmlld1BhcmVudCwgYmluZGRhdGF2YWx1ZSkgJiYgdGhpcy5kYXRhdmFsdWVzb3VyY2U/Lm93bmVyID09PSBcIlBhZ2VcIikge1xuICAgICAgICAgICAgc2V0KHRoaXMudmlld1BhcmVudCwgYmluZGRhdGF2YWx1ZSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKGhhcyh0aGlzLnZpZXdQYXJlbnQ/LkFwcCwgYmluZGRhdGF2YWx1ZSkgJiYgdGhpcy5kYXRhdmFsdWVzb3VyY2U/Lm93bmVyID09PSBcIkFwcFwiKSB7XG4gICAgICAgICAgICBzZXQodGhpcy52aWV3UGFyZW50LkFwcCwgYmluZGRhdGF2YWx1ZSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGludm9rZU9uQ2hhbmdlKHZhbHVlLCAkZXZlbnQ/OiBFdmVudCkge1xuICAgICAgICAvLyBpbnZva2UgdGhlIGV2ZW50IGNhbGxiYWNrXG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSAhPT0gdGhpcy5wcmV2RGF0YXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVCb3VuZFZhcmlhYmxlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2NoYW5nZScsIHtcbiAgICAgICAgICAgICAgICAgICAgJGV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBuZXdWYWw6IHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBvbGRWYWw6IHRoaXMucHJldkRhdGF2YWx1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIHVwZGF0ZSB0aGUgcHJldmlvdXMgdmFsdWVcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVByZXZEYXRhdmFsdWUodmFsOiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcmV2RGF0YXZhbHVlID0gdmFsO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgZ2V0UHJldkRhdGFWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldkRhdGF2YWx1ZTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuXG4vLyBbV01TLTE4ODkyXS0gc3RvcHBpbmcgZXZlbnQgcHJvcGFnYXRpb24gW2ZvciBBcnJvd0xlZnQsIEFycm93VXAsIEFycm93UmlnaHQsIEFycm93RG93biBhY3Rpb25zXSAgd2hlbiBmb3JtIHdpZGdldHMgb3IgZm9ybSBpcyBpbnNpZGUgbGlzdCB3aWRnZXRcbiAgICAgICAgbGV0IHBhcmVudEVsZW1MaXN0ID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLnBhcmVudHMoKTtcbiAgICAgICAgaWYgKHBhcmVudEVsZW1MaXN0LmNsb3Nlc3QoJ1t3bUxpc3RdJykubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLiRlbGVtZW50LmtleWRvd24oZnVuY3Rpb24oJGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKCRldmVudC5rZXlDb2RlID09PSAzNyB8fCAkZXZlbnQua2V5Q29kZSA9PT0gMzggfHwgJGV2ZW50LmtleUNvZGUgPT09IDM5IHx8ICRldmVudC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -167,6 +167,18 @@ class BaseFormComponent extends StylableComponent {
|
|
|
167
167
|
return;
|
|
168
168
|
}
|
|
169
169
|
binddatavalue = binddatavalue.replace(/\[\$i\]/g, '[0]');
|
|
170
|
+
binddatavalue = binddatavalue.replace(/\[(.*?)\]/g, (_match, key) => {
|
|
171
|
+
try {
|
|
172
|
+
const value = eval(`this.viewParent.${key}`);
|
|
173
|
+
if (typeof value === 'string' || typeof value === 'number')
|
|
174
|
+
return `[${value}]`;
|
|
175
|
+
else
|
|
176
|
+
return '[0]';
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return '[0]'; // fallback if evaluation fails
|
|
180
|
+
}
|
|
181
|
+
});
|
|
170
182
|
// In case of list widget context will be the listItem.
|
|
171
183
|
if (has(this.context, binddatavalue.split('.')[0]) && has(this.context, binddatavalue)) {
|
|
172
184
|
set(this.context, binddatavalue, value);
|
|
@@ -175,10 +187,10 @@ class BaseFormComponent extends StylableComponent {
|
|
|
175
187
|
else if (has(this.viewParent, binddatavalue) && this.viewParent.containerWidget?._isCustom) {
|
|
176
188
|
set(this.viewParent, binddatavalue, value);
|
|
177
189
|
}
|
|
178
|
-
else if (has(this.viewParent, binddatavalue) && this.datavaluesource
|
|
190
|
+
else if (has(this.viewParent, binddatavalue) && this.datavaluesource?.owner === "Page") {
|
|
179
191
|
set(this.viewParent, binddatavalue, value);
|
|
180
192
|
}
|
|
181
|
-
else if (has(this.viewParent?.App, binddatavalue) && this.datavaluesource
|
|
193
|
+
else if (has(this.viewParent?.App, binddatavalue) && this.datavaluesource?.owner === "App") {
|
|
182
194
|
set(this.viewParent.App, binddatavalue, value);
|
|
183
195
|
}
|
|
184
196
|
}
|