@wavemaker/app-ng-runtime 11.9.0-next.24953 → 11.9.0-next.24956
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.
- app-ng-runtime/build-task/bundles/index.umd.js +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
- app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
- app-ng-runtime/build-task/fesm2022/index.mjs +2 -2
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/bundles/index.umd.js +1 -1
- app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
- app-ng-runtime/components/base/fesm2022/index.mjs +1 -1
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
- app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
- app-ng-runtime/components/basic/default/bundles/index.umd.js +10 -8
- app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
- app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +5 -5
- app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +5 -4
- app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
- app-ng-runtime/components/basic/default/fesm2022/index.mjs +10 -8
- app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
- app-ng-runtime/components/basic/progress/bundles/index.umd.js +4 -4
- app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +3 -3
- app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +3 -3
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +1 -0
- app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +1 -0
- app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/bundles/index.umd.js +7 -7
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +8 -8
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +7 -7
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
- app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
- app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +24 -3
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +24 -4
- app-ng-runtime/components/data/table/esm2022/table.props.mjs +2 -1
- app-ng-runtime/components/data/table/fesm2022/index.mjs +25 -4
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table.component.d.ts +5 -0
- app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
- app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
- app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -4
- app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -5
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -4
- app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +8 -3
- app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +9 -4
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +8 -3
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +4 -4
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +5 -5
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +4 -4
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
- app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
- app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
- app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
- app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/chips/bundles/index.umd.js +2 -2
- app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +3 -3
- app-ng-runtime/components/input/chips/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +63 -24
- app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
- app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +6 -6
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +50 -13
- app-ng-runtime/components/input/default/fesm2022/index.mjs +62 -23
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/select/select.component.d.ts +1 -0
- app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +127 -95
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +125 -96
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +4 -1
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +127 -95
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +3 -7
- app-ng-runtime/core/bundles/index.umd.js +5 -5
- app-ng-runtime/core/esm2022/utils/utils.mjs +2 -3
- app-ng-runtime/core/fesm2022/index.mjs +1 -2
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/utils/utils.d.ts +0 -1
- app-ng-runtime/package.json +1 -1
|
@@ -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/chips.module.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 ]\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","<li class=\"chip-item {{chipclass && !bindChipclass ? chipclass : ''}}\" role=\"option\" *ngFor=\"let item of chipsList; let $index = index;\"\n [ngClass]=\"{'active': item.active, 'disabled': disabled}\">\n <a class=\"app-chip\" href=\"javascript:void(0);\" tabindex=\"-1\"\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]=\"{'chip-duplicate bg-danger': item.isDuplicate, 'chip-picture': item.imgSrc}\">\n <img data-identifier=\"img\" alt=\"Chip Image\" class=\"button-image-icon\" [src]=\"item.imgSrc\" *ngIf=\"item.imgSrc\"/>\n <span class=\"app-chip-title\" [textContent]=\"item.label\" [title]=\"item.label\"></span>\n <button type=\"button\" tabindex=\"-1\" aria-label=\"Clear Button\" class=\"btn btn-transparent\" (click)=\"removeItem($event, item, $index);\" *ngIf=\"!readonly\">\n <i class=\"app-icon wi wi-close\"></i>\n </button>\n </a>\n</li>\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 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 {\n AfterViewInit,\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n SkipSelf,\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 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 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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { SearchModule } from '@wm/components/basic/search';\n\nimport { ChipsComponent } from './chips.component';\n\nconst components = [\n ChipsComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n SearchModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ChipsModule {\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/chips.module.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 ]\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","<li class=\"chip-item {{chipclass && !bindChipclass ? chipclass : ''}}\" role=\"option\" *ngFor=\"let item of chipsList; let $index = index;\"\n [ngClass]=\"{'active': item.active, 'disabled': disabled}\">\n <a class=\"app-chip\" tabindex=\"-1\"\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]=\"{'chip-duplicate bg-danger': item.isDuplicate, 'chip-picture': item.imgSrc}\">\n <img data-identifier=\"img\" alt=\"Chip Image\" class=\"button-image-icon\" [src]=\"item.imgSrc\" *ngIf=\"item.imgSrc\"/>\n <span class=\"app-chip-title\" [textContent]=\"item.label\" [title]=\"item.label\"></span>\n <button type=\"button\" tabindex=\"-1\" aria-label=\"Clear Button\" class=\"btn btn-transparent\" (click)=\"removeItem($event, item, $index);\" *ngIf=\"!readonly\">\n <i class=\"app-icon wi wi-close\"></i>\n </button>\n </a>\n</li>\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 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 {\n AfterViewInit,\n Attribute,\n Component,\n Inject,\n Injector,\n OnInit,\n Optional,\n SkipSelf,\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 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 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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { SearchModule } from '@wm/components/basic/search';\n\nimport { ChipsComponent } from './chips.component';\n\nconst components = [\n ChipsComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n SearchModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ChipsModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1255,6 +1255,7 @@
|
|
|
1255
1255
|
['trailingzero', { value: false, ...i2.PROP_BOOLEAN }],
|
|
1256
1256
|
['updateon', i2.PROP_STRING],
|
|
1257
1257
|
['inputmode', { value: 'natural', ...i2.PROP_STRING }],
|
|
1258
|
+
['decimalplaces', i2.PROP_NUMBER],
|
|
1258
1259
|
['conditionalclass', i2.PROP_ANY],
|
|
1259
1260
|
['conditionalstyle', i2.PROP_ANY]
|
|
1260
1261
|
]);
|
|
@@ -1381,8 +1382,27 @@
|
|
|
1381
1382
|
if (this.isDefaultQuery) {
|
|
1382
1383
|
const isLocalizedNumber = lodashEs.isString(value) && lodashEs.includes(value, this.DECIMAL);
|
|
1383
1384
|
const parts = isLocalizedNumber ? value.split(this.DECIMAL) : lodashEs.isString(value) && value.split('.');
|
|
1384
|
-
|
|
1385
|
-
|
|
1385
|
+
let decimalPlacesAttrVal = this.getAttr('decimalplaces');
|
|
1386
|
+
const decimalplaces = decimalPlacesAttrVal !== '' && decimalPlacesAttrVal !== undefined ? Number(decimalPlacesAttrVal) : NaN;
|
|
1387
|
+
if (this.inputmode === i2.INPUTMODE.NATURAL && !isNaN(decimalplaces)) {
|
|
1388
|
+
if (decimalplaces === 0) {
|
|
1389
|
+
this.decimalValue = '';
|
|
1390
|
+
value = isLocalizedNumber ? parts[0] : this.transformNumber(parts[0]);
|
|
1391
|
+
}
|
|
1392
|
+
if (decimalplaces > 0) {
|
|
1393
|
+
this.decimalValue = parts[1] && parts[1].substring(0, decimalplaces) || '';
|
|
1394
|
+
if (isLocalizedNumber) {
|
|
1395
|
+
value = this.decimalValue.length ? `${parts[0]}${this.DECIMAL}${this.decimalValue}` : parts[0];
|
|
1396
|
+
}
|
|
1397
|
+
else {
|
|
1398
|
+
value = Number.parseFloat(String(value)).toFixed(decimalplaces);
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
}
|
|
1402
|
+
else {
|
|
1403
|
+
this.decimalValue = parts[1] || '';
|
|
1404
|
+
value = isLocalizedNumber ? value : this.transformNumber(value);
|
|
1405
|
+
}
|
|
1386
1406
|
}
|
|
1387
1407
|
const numberReg = /\d/;
|
|
1388
1408
|
const strVal = value.toString();
|
|
@@ -1431,8 +1451,14 @@
|
|
|
1431
1451
|
*/
|
|
1432
1452
|
isValid(val) {
|
|
1433
1453
|
// id number is infinite then consider it as invalid value
|
|
1434
|
-
|
|
1435
|
-
|
|
1454
|
+
let invalidDecimalPlaces = false;
|
|
1455
|
+
if (this.inputmode === i2.INPUTMODE.NATURAL && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {
|
|
1456
|
+
invalidDecimalPlaces = this.countDecimals(val) > this.decimalplaces;
|
|
1457
|
+
}
|
|
1458
|
+
else if (!Number.isInteger(this.step) && this.countDecimals(val) > this.countDecimals(this.step)) {
|
|
1459
|
+
invalidDecimalPlaces = true;
|
|
1460
|
+
}
|
|
1461
|
+
if (isNaN(val) || !isFinite(val) || invalidDecimalPlaces) {
|
|
1436
1462
|
this.isInvalidNumber = true;
|
|
1437
1463
|
return false;
|
|
1438
1464
|
}
|
|
@@ -1541,6 +1567,9 @@
|
|
|
1541
1567
|
}
|
|
1542
1568
|
// This function returns the step length set in the studio
|
|
1543
1569
|
stepLength() {
|
|
1570
|
+
if (this.inputmode === 'INPUTMODE.NATURAL' && !isNaN(this.decimalplaces) && this.decimalplaces >= 0) {
|
|
1571
|
+
return this.decimalplaces;
|
|
1572
|
+
}
|
|
1544
1573
|
const stepLen = this.step.toString().split('.');
|
|
1545
1574
|
if (stepLen.length === 1) {
|
|
1546
1575
|
return;
|
|
@@ -1623,11 +1652,10 @@
|
|
|
1623
1652
|
* @returns {number}
|
|
1624
1653
|
*/
|
|
1625
1654
|
countDecimals(value) {
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
return 0;
|
|
1655
|
+
const valueStr = value.toString();
|
|
1656
|
+
const isLocalizedNumber = lodashEs.includes(valueStr, this.DECIMAL);
|
|
1657
|
+
const parts = isLocalizedNumber ? valueStr.split(this.DECIMAL) : valueStr.split('.');
|
|
1658
|
+
return parts[1] ? parts[1].length : 0;
|
|
1631
1659
|
}
|
|
1632
1660
|
/**
|
|
1633
1661
|
* handles the arrow press event. Increases or decreases the number. triggered fom the template
|
|
@@ -1712,7 +1740,7 @@
|
|
|
1712
1740
|
const validity = new RegExp(`^[\\d\\s-,.e+${this.GROUP}${this.DECIMAL}]$`, 'i');
|
|
1713
1741
|
const inputValue = $event.target.value;
|
|
1714
1742
|
// when input mode is financial, do not restrict user on entering the value when step value limit is reached.
|
|
1715
|
-
|
|
1743
|
+
this.inputmode === i2.INPUTMODE.FINANCIAL;
|
|
1716
1744
|
// Validates if user eneters more than 16 digits
|
|
1717
1745
|
if (inputValue) {
|
|
1718
1746
|
const parsedVal = parseInt(inputValue.toString().replace(/\D/g, ''));
|
|
@@ -1729,13 +1757,23 @@
|
|
|
1729
1757
|
}
|
|
1730
1758
|
// validates entering of decimal values only when user provides decimal limit(i.e step contains decimal values).
|
|
1731
1759
|
// Restrict user from entering only if the decimal limit is reached and the new digit is entered in decimal place
|
|
1732
|
-
if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {
|
|
1733
|
-
|
|
1734
|
-
}
|
|
1760
|
+
// if (!skipStepValidation && inputValue && this.countDecimals(this.step) && (this.countDecimals(inputValue) >= this.countDecimals(this.step)) && $event.target.selectionStart >= inputValue.length - 1) {
|
|
1761
|
+
// return false;
|
|
1762
|
+
// }
|
|
1735
1763
|
// validates if user entered an invalid character.
|
|
1736
1764
|
if (!validity.test($event.key)) {
|
|
1737
1765
|
return false;
|
|
1738
1766
|
}
|
|
1767
|
+
if (this.inputmode === i2.INPUTMODE.NATURAL && !isNaN(this.decimalplaces)) {
|
|
1768
|
+
if (this.decimalplaces === 0 && this.DECIMAL === $event.key) {
|
|
1769
|
+
return false;
|
|
1770
|
+
}
|
|
1771
|
+
const parts = lodashEs.includes(inputValue, this.DECIMAL) ? inputValue.split(this.DECIMAL) : inputValue.split('.');
|
|
1772
|
+
const isCursorPositionAtDecimalPlace = $event.target.selectionStart > parts[0].length;
|
|
1773
|
+
if (this.decimalplaces > 0 && this.countDecimals(inputValue) >= this.decimalplaces && isCursorPositionAtDecimalPlace) {
|
|
1774
|
+
return false;
|
|
1775
|
+
}
|
|
1776
|
+
}
|
|
1739
1777
|
// comma cannot be entered consecutively
|
|
1740
1778
|
if (lodashEs.includes(inputValue, ',') && inputValue[inputValue.length - 1] === ',' && $event.key === ',') {
|
|
1741
1779
|
return false;
|
|
@@ -2326,7 +2364,7 @@
|
|
|
2326
2364
|
i2.provideAs(SelectComponent, i2$1.NG_VALUE_ACCESSOR, true),
|
|
2327
2365
|
i2.provideAs(SelectComponent, i2$1.NG_VALIDATORS, true),
|
|
2328
2366
|
i2.provideAsWidgetRef(SelectComponent)
|
|
2329
|
-
]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 5, vars:
|
|
2367
|
+
]), i0__namespace.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["focus-target", "", 3, "ngModelChange", "change", "mousedown", "blur", "ngClass", "disabled", "required", "tabindex", "ngModel", "ngModelOptions", "multiple", "autofocus"], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], [3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], [3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2330
2368
|
const _r1 = i0__namespace.ɵɵgetCurrentView();
|
|
2331
2369
|
i0__namespace.ɵɵelementStart(0, "select", 1, 0);
|
|
2332
2370
|
i0__namespace.ɵɵtwoWayListener("ngModelChange", function SelectComponent_Template_select_ngModelChange_0_listener($event) { i0__namespace.ɵɵrestoreView(_r1); i0__namespace.ɵɵtwoWayBindingSet(ctx.modelByKey, $event) || (ctx.modelByKey = $event); return i0__namespace.ɵɵresetView($event); });
|
|
@@ -2335,10 +2373,10 @@
|
|
|
2335
2373
|
i0__namespace.ɵɵtemplate(3, SelectComponent_ng_container_3_Template, 2, 1, "ng-container", 3)(4, SelectComponent_ng_container_4_Template, 2, 1, "ng-container", 3);
|
|
2336
2374
|
i0__namespace.ɵɵelementEnd();
|
|
2337
2375
|
} if (rf & 2) {
|
|
2338
|
-
i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(
|
|
2376
|
+
i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(15, _c1$6, ctx.class))("disabled", ctx.disabled)("required", ctx.required)("tabindex", ctx.tabindex);
|
|
2339
2377
|
i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.modelByKey);
|
|
2340
|
-
i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(
|
|
2341
|
-
i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel);
|
|
2378
|
+
i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(17, _c2$4))("multiple", ctx.multiple)("autofocus", ctx.autofocus);
|
|
2379
|
+
i0__namespace.ɵɵattribute("accesskey", ctx.shortcutkey)("name", ctx.name)("aria-label", ctx.arialabel);
|
|
2342
2380
|
i0__namespace.ɵɵadvance(2);
|
|
2343
2381
|
i0__namespace.ɵɵproperty("textContent", ctx.placeholder)("hidden", !ctx.placeholder);
|
|
2344
2382
|
i0__namespace.ɵɵadvance();
|
|
@@ -2353,7 +2391,7 @@
|
|
|
2353
2391
|
i2.provideAs(SelectComponent, i2$1.NG_VALUE_ACCESSOR, true),
|
|
2354
2392
|
i2.provideAs(SelectComponent, i2$1.NG_VALIDATORS, true),
|
|
2355
2393
|
i2.provideAsWidgetRef(SelectComponent)
|
|
2356
|
-
], template: "<!--Updated focus with mousedown event. IOS devices not allow update of option value after opening dropdown-->\n<select #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (mousedown)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n ></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n ></option>\n </ng-container>\n</select>\n" }]
|
|
2394
|
+
], template: "<!--Updated focus with mousedown event. IOS devices not allow update of option value after opening dropdown-->\n<select #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [attr.accesskey]=\"shortcutkey\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (mousedown)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n ></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n ></option>\n </ng-container>\n</select>\n" }]
|
|
2357
2395
|
}], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
|
|
2358
2396
|
type: i0.Inject,
|
|
2359
2397
|
args: ['EXPLICIT_CONTEXT']
|
|
@@ -3227,9 +3265,10 @@
|
|
|
3227
3265
|
}
|
|
3228
3266
|
// For select widget, display placeholder only on focus else remove the text of the option selected.
|
|
3229
3267
|
checkForSelectPlaceholder() {
|
|
3230
|
-
|
|
3268
|
+
const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
|
|
3269
|
+
if (selectElPlaceholderOption && selectElPlaceholderOption.textContent && !$(this.nativeEl).find('select').is(':focus') &&
|
|
3231
3270
|
!$(this.inputEl.closest('[widget-id]')).attr('datavalue')) {
|
|
3232
|
-
|
|
3271
|
+
selectElPlaceholderOption.textContent = '';
|
|
3233
3272
|
}
|
|
3234
3273
|
}
|
|
3235
3274
|
setDefaultValueAnimation() {
|
|
@@ -3331,10 +3370,10 @@
|
|
|
3331
3370
|
// before placeholder is removed assign it to the placeholder variable
|
|
3332
3371
|
// check for placeholder in inputel and selectel
|
|
3333
3372
|
if (this.inputEl) {
|
|
3334
|
-
const
|
|
3335
|
-
if (this.inputEl.attr('placeholder') ||
|
|
3336
|
-
if (
|
|
3337
|
-
|
|
3373
|
+
const selectElPlaceholderOption = this.nativeEl.querySelector('#placeholderOption');
|
|
3374
|
+
if (this.inputEl.attr('placeholder') || selectElPlaceholderOption) {
|
|
3375
|
+
if (selectElPlaceholderOption) {
|
|
3376
|
+
selectElPlaceholderOption.textContent = '';
|
|
3338
3377
|
}
|
|
3339
3378
|
else {
|
|
3340
3379
|
this.placeholder = this.inputEl.attr('placeholder');
|