@vgip/meta-ui 1.4.2 → 1.4.4
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/esm2020/lib/common/metaNormalizer.mjs +18 -17
- package/esm2020/lib/field.mjs +30 -19
- package/esm2020/lib/fieldAbstract.mjs +18 -11
- package/fesm2015/vgip-meta-ui.mjs +63 -44
- package/fesm2015/vgip-meta-ui.mjs.map +1 -1
- package/fesm2020/vgip-meta-ui.mjs +63 -44
- package/fesm2020/vgip-meta-ui.mjs.map +1 -1
- package/lib/field.d.ts +1 -1
- package/package.json +1 -1
|
@@ -70,15 +70,20 @@ export class FieldAbstract {
|
|
|
70
70
|
this.parentChangeSubject.subscribe((value) => {
|
|
71
71
|
if (value && value.hasOwnProperty(par.split('.')[0])) {
|
|
72
72
|
setHiddenByPropertyConfig(par);
|
|
73
|
+
if (this.meta.$hidden) {
|
|
74
|
+
delete this.parent[this.meta.name];
|
|
75
|
+
}
|
|
73
76
|
}
|
|
74
77
|
});
|
|
75
78
|
}
|
|
76
79
|
}
|
|
77
|
-
else if (this.meta.hidden === '
|
|
78
|
-
this.meta
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
this.meta
|
|
80
|
+
else if (typeof (this.meta.hidden) === 'string') {
|
|
81
|
+
if (this.meta.hidden.toUpperCase() === 'CREATE') {
|
|
82
|
+
this.meta.$hidden = !this.isPersistedParent;
|
|
83
|
+
}
|
|
84
|
+
else if (this.meta.hidden.toUpperCase() === 'UPDATE') {
|
|
85
|
+
this.meta.$hidden = this.isPersistedParent;
|
|
86
|
+
}
|
|
82
87
|
}
|
|
83
88
|
else {
|
|
84
89
|
this.meta.$hidden = !!this.meta.hidden;
|
|
@@ -114,11 +119,13 @@ export class FieldAbstract {
|
|
|
114
119
|
});
|
|
115
120
|
}
|
|
116
121
|
}
|
|
117
|
-
else if (this.meta.visible === '
|
|
118
|
-
this.meta
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
this.meta
|
|
122
|
+
else if (typeof (this.meta.visible) === 'string') {
|
|
123
|
+
if (this.meta.visible.toUpperCase() === 'CREATE') {
|
|
124
|
+
this.meta.$invisible = this.isPersistedParent;
|
|
125
|
+
}
|
|
126
|
+
else if (this.meta.visible.toUpperCase() === 'UPDATE') {
|
|
127
|
+
this.meta.$invisible = !this.isPersistedParent;
|
|
128
|
+
}
|
|
122
129
|
}
|
|
123
130
|
}
|
|
124
131
|
if (this.theme !== 'inherit') {
|
|
@@ -276,4 +283,4 @@ export class MetaElemDisableadble {
|
|
|
276
283
|
this.elementRef.nativeElement.classList.remove(this.cssmodifier);
|
|
277
284
|
}
|
|
278
285
|
}
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRBYnN0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21ldGEtdWkvc3JjL2xpYi9maWVsZEFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUEyQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYseURBQXlEO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBUXhFLGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLGFBQWE7SUFGbkM7UUFpQkUseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRzFCLGdCQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixVQUFLLEdBQVEsRUFBRSxDQUFDO0tBNlBqQjtJQTNQQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFFeEMsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssT0FBTyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFtQixDQUFDO2FBQzVDO2lCQUFNO2dCQUNMLFFBQVEsSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDNUIsS0FBSyxXQUFXO3dCQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcseUJBQXlCLENBQUM7d0JBQ2pELE1BQU07b0JBQ1IsS0FBSyxPQUFPO3dC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TSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQEF1dGhvcjogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBEYXRlOiAyMDE5LTA5LTE5IDE3OjM0OjQ0XG4gKiBATGFzdCBNb2RpZmllZCBieTogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMDQtMTggMjE6MTg6MDhcbiAqL1xuXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBFdmVudEVtaXR0ZXIsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXRhRGFyaywgbWV0YUxpZ2h0IH0gZnJvbSAnLi9jb21tb24vdXRpbHMvY29sb3JUaGVtZXMnO1xuaW1wb3J0IHsgZXh0cmFjdFZhbHVlQnlTbWFydFByb3AgfSBmcm9tICcuLi9saWIvY29tbW9uL3V0aWxzL3NtYXJ0UHJvcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1ldGFGaWVsZDxUIGV4dGVuZHMgRmllbGRBYnN0cmFjdD4ge1xuICBtZXRhOiBhbnk7XG4gIG1vZGVsOiBhbnk7XG59XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmllbGRBYnN0cmFjdCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQgeyAvLyBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgbW9kZWw6IGFueTtcbiAgbWV0YTogYW55O1xuICBpbmRleDogbnVtYmVyO1xuICBwYXJlbnQ6IGFueTtcbiAgaW50ZWdyYXRpb25Db2RlOiBzdHJpbmc7XG4gIGludGVncmF0aW9uSWNvbjogc3RyaW5nO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgbW9kZWxJbnB1dDogSFRNTElucHV0RWxlbWVudDtcbiAgbW9kZWxDb250cm9sOiBIVE1MSW5wdXRFbGVtZW50O1xuICBtYWluSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIGtleUxpc3RlbmVyQWN0aXZlOiBib29sZWFuO1xuICBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XG4gIG9uTGVhdmU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICB2YWxpZGF0aW9uQXR0cmlidXRlcyA9IFtdO1xuICBwcmV2aWV3OiBib29sZWFuO1xuICBwcmV2TW9kZWw6IGFueTtcbiAgY2hhbmdlRXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudHMnKTtcbiAgbWV0YVJlc291cmNlU2VydmljZTogYW55O1xuICBsb2dpY2FsRGlzYWJsZWQgPSBmYWxzZTtcbiAgdGhlbWU6IHN0cmluZztcbiAgZmxhZ3M6IGFueSA9IHt9O1xuXG4gIHN0YXRpYyBzZXR1cChpbnN0YW5jZSwgcGFyZW50LCBtZXRhKSB7IH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZikge1xuICAgICAgaWYgKHRoaXMuaW50ZWdyYXRpb25Db2RlID09PSAnbW9ja3MnKSB7XG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25JY29uID0gJ0JyYW5kLWljb24tdm9uYWdlJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnRlZ3JhdGlvbkNvZGUpIHtcbiAgICAgICAgICBjYXNlICdvZmZpY2UzNjUnOlxuICAgICAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkljb24gPSAnQnJhbmQtaWNvbi1vZmZpY2UtY29sb3InO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnc3VnYXInOlxuICAgICAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkljb24gPSAnQnJhbmQtaWNvbi1zdWdhcmNybS1jb2xvcic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdtc2R5bmFtaWNzJzpcbiAgICAgICAgICAgIHRoaXMuaW50ZWdyYXRpb25JY29uID0gJ0JyYW5kLWljb24tZHluYW1pY3MtY29sb3InO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRoaXMuaW50ZWdyYXRpb25JY29uID0gYEJyYW5kLWljb24tJHsodGhpcy5pbnRlZ3JhdGlvbkNvZGUgfHwgJycpLnRvTG93ZXJDYXNlKCl9LWNvbG9yYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMubWV0YSwgJyRvcHRpb25hbCcsIHtcbiAgICAgICAgdmFsdWU6ICh0eXBlb2YodGhpcy5kZWZhdWx0KSA9PT0gJ3VuZGVmaW5lZCcpICYmIHRoaXMuaXNPcHRpb25hbCxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICAgIH0pO1xuICAgICAgdGhpcy5mbGFncyA9IHRoaXMubWV0YS5mbGFncyB8fCB7fTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLm1ldGEsICckaGlkZGVuJywge1xuICAgICAgICB2YWx1ZTogIXRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQgJiYgdGhpcy5mbGFncy5jcmVhdGFibGUgPT09IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgfSk7XG4gICAgICBpZiAodHlwZW9mKHRoaXMubWV0YS5oaWRkZW4pICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mKHRoaXMubWV0YS5oaWRkZW4pID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGNvbnN0IHNldEhpZGRlbkJ5UHJvcGVydHlDb25maWcgPSAocGFyKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mKHRoaXMubWV0YS5oaWRkZW5bcGFyXSkgPT09ICdib29sZWFuJykgeyAvLyBhbnkgdmFsdWUgbWFrZXMgbWUgaGlkZGVuXG4gICAgICAgICAgICAgIHRoaXMubWV0YS4kaGlkZGVuID0gISF0aGlzLnBhcmVudFtwYXJdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBleHRyYWN0VmFsdWVCeVNtYXJ0UHJvcCh0aGlzLnBhcmVudCwgcGFyKTtcbiAgICAgICAgICAgICAgY29uc3QgcGFyVmFsdWUgPSB2YWx1ZSA/ICh2YWx1ZS5pZCB8fCB2YWx1ZS52YWx1ZSB8fCB2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgdGhpcy5tZXRhLiRoaWRkZW4gPSB0aGlzLm1ldGEuaGlkZGVuW3Bhcl0gPT09IHBhclZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgZm9yIChjb25zdCBwYXIgb2YgT2JqZWN0LmtleXModGhpcy5tZXRhLmhpZGRlbikpIHtcbiAgICAgICAgICAgIHNldEhpZGRlbkJ5UHJvcGVydHlDb25maWcocGFyKTtcbiAgICAgICAgICAgIHRoaXMucGFyZW50Q2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5oYXNPd25Qcm9wZXJ0eShwYXIuc3BsaXQoJy4nKVswXSkpIHtcbiAgICAgICAgICAgICAgICBzZXRIaWRkZW5CeVByb3BlcnR5Q29uZmlnKHBhcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1ldGEuaGlkZGVuID09PSAnY3JlYXRlJykge1xuICAgICAgICAgIHRoaXMubWV0YS4kaGlkZGVuID0gIXRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQ7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZXRhLmhpZGRlbiA9PT0gJ3VwZGF0ZScpIHtcbiAgICAgICAgICB0aGlzLm1ldGEuJGhpZGRlbiA9IHRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5tZXRhLiRoaWRkZW49ICEhdGhpcy5tZXRhLmhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5tZXRhLCAnJGludmlzaWJsZScsIHtcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgfSk7XG4gICAgICBpZiAodHlwZW9mKHRoaXMubWV0YS52aXNpYmxlKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaWYgKHR5cGVvZih0aGlzLm1ldGEudmlzaWJsZSkgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3Qgc2V0SW52aXNpYmxlQnlQcm9wZXJ0eUNvbmZpZyA9IChwYXIpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YodGhpcy5tZXRhLnZpc2libGVbcGFyXSkgPT09ICdib29sZWFuJykgeyAvLyBhbnkgdmFsdWUgbWFrZXMgbWUgaGlkZGVuXG4gICAgICAgICAgICAgIHRoaXMubWV0YS4kaW52aXNpYmxlID0gIXRoaXMucGFyZW50W3Bhcl07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGV4dHJhY3RWYWx1ZUJ5U21hcnRQcm9wKHRoaXMucGFyZW50LCBwYXIpO1xuICAgICAgICAgICAgICBjb25zdCBwYXJWYWx1ZSA9IHZhbHVlID8gKHZhbHVlLmlkIHx8IHZhbHVlLnZhbHVlIHx8IHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLm1ldGEuJGludmlzaWJsZSA9IHRoaXMubWV0YS52aXNpYmxlW3Bhcl0gIT09IHBhclZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgZm9yIChjb25zdCBwYXIgb2YgT2JqZWN0LmtleXModGhpcy5tZXRhLnZpc2libGUpKSB7XG4gICAgICAgICAgICBzZXRJbnZpc2libGVCeVByb3BlcnR5Q29uZmlnKHBhcik7XG4gICAgICAgICAgICB0aGlzLnBhcmVudENoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUuaGFzT3duUHJvcGVydHkocGFyLnNwbGl0KCcuJylbMF0pKSB7XG4gICAgICAgICAgICAgICAgc2V0SW52aXNpYmxlQnlQcm9wZXJ0eUNvbmZpZyhwYXIpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1ldGEuJGludmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1ldGEudmlzaWJsZSA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgICAgICB0aGlzLm1ldGEuJGludmlzaWJsZSA9IHRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQ7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZXRhLnZpc2libGUgPT09ICd1cGRhdGUnKSB7XG4gICAgICAgICAgdGhpcy5tZXRhLiRpbnZpc2libGUgPSAhdGhpcy5pc1BlcnNpc3RlZFBhcmVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy50aGVtZSAhPT0gJ2luaGVyaXQnKSB7XG4gICAgICAgIGNvbnN0IG1ldGFUaGVtZSA9IHRoaXMudGhlbWUgPT09ICdkYXJrJyA/IG1ldGFEYXJrIDogbWV0YUxpZ2h0O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhtZXRhVGhlbWUucHJvcGVydGllcykpIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShrZXksIG1ldGFUaGVtZS5wcm9wZXJ0aWVzW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzT3B0aW9uYWwoKSB7XG4gICAgY29uc3QgYmFzZU9wdGlvbmFsID0gIXRoaXMubWV0YS51bnNldCAmJiAhdGhpcy52YWxpZGF0aW9ucy5yZXF1aXJlZCAmJiAhdGhpcy5tZXRhLnZpc2libGU7XG4gICAgc3dpdGNoICh0aGlzLm1ldGEudHlwZSkge1xuICAgICAgY2FzZSAnY29tcG9zaXRlJzoge1xuICAgICAgICBpZiAoYmFzZU9wdGlvbmFsKSB7XG4gICAgICAgICAgcmV0dXJuICF0aGlzLm1ldGEuZmllbGRzLmZpbmQoKGYpID0+ICFmLiRvcHRpb25hbCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgY2FzZSAnbGlzdCc6IHtcbiAgICAgICAgaWYgKGJhc2VPcHRpb25hbCkge1xuICAgICAgICAgIHJldHVybiAhKHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXSBpbnN0YW5jZW9mIEFycmF5ICYmIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXS5sZW5ndGgpICYmICF0aGlzLm1ldGEubWluO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIGJhc2VPcHRpb25hbCAmJiB0eXBlb2YodGhpcy5wYXJlbnRbdGhpcy5tZXRhLm5hbWVdKSA9PT0gJ3VuZGVmaW5lZCc7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLnVpSW5wdXQ7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG1vZGVsVG9WYWx1ZShtLCB2YWx1ZVR5cGUpIHtcbiAgICBpZiAodHlwZW9mKG0pICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgc3dpdGNoICh2YWx1ZVR5cGUpIHtcbiAgICAgICAgY2FzZSAnb2JqZWN0Jzoge1xuICAgICAgICAgIHJldHVybiBtID8geyBpZDogbS5pZCwgbGFiZWw6IG0ubGFiZWwsIHR5cGU6IG0udHlwZSB9IDogbTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdudW1iZXInOiB7XG4gICAgICAgICAgaWYgKG0gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgdiA9IG0uaWQgfHwgbTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiBwYXJzZUludCh2LCAxMCk7XG4gICAgICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBpZiAobSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbS5pZCB8fCBtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uU3ViamVjdENoYW5nZShtb2RlbCkge1xuICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMucGFyZW50LCAnJGNoYW5nZVN1YmplY3QnKSkge1xuICAgICAgY29uc3QgcGFyZW50Q2hhbmdlOiBhbnkgPSB7fTtcbiAgICAgIHBhcmVudENoYW5nZVt0aGlzLm1ldGEubmFtZV0gPSBtb2RlbDtcbiAgICAgIHRoaXMucGFyZW50Q2hhbmdlU3ViamVjdC5uZXh0KHBhcmVudENoYW5nZSk7XG4gICAgfVxuICB9XG5cbiAgb25Nb2RlbENoYW5nZShtb2RlbCkge1xuICAgIC8vIFRPRE8gYWRkIHJlc291cmNlIHR5cGUgbG9naWNcbiAgICBpZiAodGhpcy5tb2RlbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICB0aGlzLnBhcmVudFt0aGlzLm1ldGEubmFtZV0gPSB0aGlzLm1vZGVsLm1hcCgobSkgPT4gdGhpcy5tb2RlbFRvVmFsdWUobSwgdGhpcy5tZXRhLnZhbHVlVHlwZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhcmVudFt0aGlzLm1ldGEubmFtZV0gPSB0aGlzLm1vZGVsVG9WYWx1ZShtb2RlbCwgdGhpcy5tZXRhLnZhbHVlVHlwZSk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2UuZW1pdChtb2RlbCk7XG4gICAgdGhpcy5vblN1YmplY3RDaGFuZ2UobW9kZWwpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdvbkNoYW5nZScsIG1vZGVsKTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmluaXRNb3VzZUV2ZW50KCdjaGFuZ2UnLCB0cnVlLCB0cnVlLCB3aW5kb3csIDAsIDAsIDAsIDAsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KHRoaXMuY2hhbmdlRXZlbnQpO1xuICAgIGlmICh0aGlzLm1vZGVsKSB7XG4gICAgICB0aGlzLnByZXZNb2RlbCA9IHRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YS51bnNldCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMubWV0YS4kb3B0aW9uYWwgPSB0aGlzLmlzT3B0aW9uYWw7XG4gIH1cblxuICBnZXQgcGFyZW50Q2hhbmdlU3ViamVjdCgpIHtcbiAgICBpZiAoIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5wYXJlbnQsICckY2hhbmdlU3ViamVjdCcpKSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5wYXJlbnQsICckY2hhbmdlU3ViamVjdCcsIHtcbiAgICAgICAgdmFsdWU6IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pLnBpcGUoZGVib3VuY2VUaW1lKDMwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LiRjaGFuZ2VTdWJqZWN0O1xuICB9XG5cbiAgZ2V0IGlzUGVyc2lzdGVkUGFyZW50KCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlcnNjb3JlLWRhbmdsZVxuICAgIHJldHVybiB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5fdmdpcyAmJiAodGhpcy5wYXJlbnQuX3ZnaXMuZXh0ZXJuYWxJZCB8fCB0aGlzLnBhcmVudC5fdmdpcy5pZCApO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgZGVsZXRlIHRoaXMubW9kZWw7XG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMubW9kZWwpO1xuICB9XG5cbiAgZ2V0IHZhbGlkYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGEudmFsaWRhdGlvbnMgfHwge307XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gKHR5cGVvZiAodGhpcy5pbmRleCkgPT09ICd1bmRlZmluZWQnKSA/IHRoaXMubWV0YS5uYW1lIDogYCR7dGhpcy5tZXRhLm5hbWV9WyR7dGhpcy5pbmRleH1dYDtcbiAgfVxuXG4gIGdldCBkZWZhdWx0KCkge1xuICAgIHJldHVybiB0aGlzLm1ldGEuZGVmYXVsdCB8fCB0aGlzLm1ldGEuZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIC8vIFRPRE8gY29uZGl0aW9uc1xuICAgIHJldHVybiB0aGlzLmxvZ2ljYWxEaXNhYmxlZCB8fCB0aGlzLnZhbGlkYXRpb25zLmRpc2FibGVkIHx8IHRoaXMubWV0YS5kaXNhYmxlZCA9PT0gdHJ1ZSB8fCB0aGlzLmZsYWdzLmRpc2FibGVkXG4gICAgICB8fCAodGhpcy5mbGFncy51cGRhdGFibGUgPT09IGZhbHNlICYmIHRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQpO1xuICB9XG5cbiAgZ2V0IHJlYWRvbmx5KCkge1xuICAgIC8vIFRPRE8gY29uZGl0aW9uc1xuICAgIHJldHVybiAhISh0aGlzLnZhbGlkYXRpb25zLnJlYWRvbmx5IHx8IHRoaXMubWV0YS5yZWFkb25seSB8fCAodGhpcy5mbGFncy51cGRhdGFibGUgPT09IGZhbHNlKSk7XG4gIH1cblxuICBnZXQgc2VuZFRvU2VydmVyKCkge1xuICAgIHJldHVybiB0aGlzLmlzUGVyc2lzdGVkUGFyZW50ID8gKHRoaXMuZmxhZ3MudXBkYXRhYmxlICE9PSBmYWxzZSkgOiAodGhpcy5mbGFncy5jcmVhdGFibGUgIT09IGZhbHNlKTtcbiAgfVxuXG4gIGdldCB1aUlucHV0KCkge1xuICAgIGlmICghdGhpcy5tYWluSW5wdXQpIHtcbiAgICAgIHRoaXMubWFpbklucHV0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm1haW46bm90KFt0eXBlPVwiaGlkZGVuXCJdKTpub3QoLnN0YW5kYWxvbmUpJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1haW5JbnB1dDtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlWYWxpZGF0aW9ucygpIHtcbiAgICB0aGlzLnZhbGlkYXRpb25BdHRyaWJ1dGVzLmZvckVhY2goKGF0dHJpYnV0ZSkgPT4ge1xuICAgICAgY29uc3QgdmFsaWRhdGlvbiA9IHRoaXMudmFsaWRhdGlvbnNbYXR0cmlidXRlXTtcbiAgICAgIGlmICh2YWxpZGF0aW9uKSB7XG4gICAgICAgIHRoaXMubW9kZWxJbnB1dC5zZXRBdHRyaWJ1dGUoYXR0cmlidXRlLCB2YWxpZGF0aW9uLnZhbHVlIHx8IHZhbGlkYXRpb24pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIE1ldGFFbGVtIHtcbiAgY3NzZWxlbTogc3RyaW5nO1xuICBtZXRhOiBhbnk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBNZXRhRWxlbURpc2FibGVhZGJsZSBpbXBsZW1lbnRzIE1ldGFFbGVtIHtcbiAgY3NzbW9kaWZpZXI6IHN0cmluZztcbiAgYWJzdHJhY3QgbWV0YTogYW55O1xuICBhYnN0cmFjdCBjc3NlbGVtOiBzdHJpbmc7XG4gIGFic3RyYWN0IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gIGRpc2FibGUoKSB7XG4gICAgY29uc29sZS5sb2codGhpcy5jc3Ntb2RpZmllcik7XG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSh0aGlzLmNzc21vZGlmaWVyKTtcbiAgfVxufVxuXG4iXX0=
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRBYnN0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21ldGEtdWkvc3JjL2xpYi9maWVsZEFic3RyYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxFQUEyQyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYseURBQXlEO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBUXhFLGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLGFBQWE7SUFGbkM7UUFpQkUseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRzFCLGdCQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVsRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4QixVQUFLLEdBQVEsRUFBRSxDQUFDO0tBb1FqQjtJQWxRQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFFeEMsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssT0FBTyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLG1CQUFtQixDQUFDO2FBQzVDO2lCQUFNO2dCQUNMLFFBQVEsSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDNUIsS0FBSyxXQUFXO3dCQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcseUJBQXlCLENBQUM7d0JBQ2pELE1BQU07b0JBQ1IsS0FBSyxPQUFPO3dC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LElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxDQUFDO2FBQ3pFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzswR0F6Um1CLGFBQWE7OEZBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUZsQyxTQUFTOztBQStSVixNQUFNLE9BQU8sUUFBUTtDQUdwQjtBQUVELE1BQU0sT0FBZ0Isb0JBQW9CO0lBS3hDLE9BQU87UUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQEF1dGhvcjogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBEYXRlOiAyMDE5LTA5LTE5IDE3OjM0OjQ0XG4gKiBATGFzdCBNb2RpZmllZCBieTogQWxleGFuZGVyLlZhbmdlbG92QHZvbmFnZS5jb21cbiAqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjAtMDQtMTggMjE6MTg6MDhcbiAqL1xuXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBFdmVudEVtaXR0ZXIsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBtZXRhRGFyaywgbWV0YUxpZ2h0IH0gZnJvbSAnLi9jb21tb24vdXRpbHMvY29sb3JUaGVtZXMnO1xuaW1wb3J0IHsgZXh0cmFjdFZhbHVlQnlTbWFydFByb3AgfSBmcm9tICcuLi9saWIvY29tbW9uL3V0aWxzL3NtYXJ0UHJvcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1ldGFGaWVsZDxUIGV4dGVuZHMgRmllbGRBYnN0cmFjdD4ge1xuICBtZXRhOiBhbnk7XG4gIG1vZGVsOiBhbnk7XG59XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmllbGRBYnN0cmFjdCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQgeyAvLyBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgbW9kZWw6IGFueTtcbiAgbWV0YTogYW55O1xuICBpbmRleDogbnVtYmVyO1xuICBwYXJlbnQ6IGFueTtcbiAgaW50ZWdyYXRpb25Db2RlOiBzdHJpbmc7XG4gIGludGVncmF0aW9uSWNvbjogc3RyaW5nO1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgbW9kZWxJbnB1dDogSFRNTElucHV0RWxlbWVudDtcbiAgbW9kZWxDb250cm9sOiBIVE1MSW5wdXRFbGVtZW50O1xuICBtYWluSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gIGtleUxpc3RlbmVyQWN0aXZlOiBib29sZWFuO1xuICBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XG4gIG9uTGVhdmU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICB2YWxpZGF0aW9uQXR0cmlidXRlcyA9IFtdO1xuICBwcmV2aWV3OiBib29sZWFuO1xuICBwcmV2TW9kZWw6IGFueTtcbiAgY2hhbmdlRXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudHMnKTtcbiAgbWV0YVJlc291cmNlU2VydmljZTogYW55O1xuICBsb2dpY2FsRGlzYWJsZWQgPSBmYWxzZTtcbiAgdGhlbWU6IHN0cmluZztcbiAgZmxhZ3M6IGFueSA9IHt9O1xuXG4gIHN0YXRpYyBzZXR1cChpbnN0YW5jZSwgcGFyZW50LCBtZXRhKSB7IH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZikge1xuICAgICAgaWYgKHRoaXMuaW50ZWdyYXRpb25Db2RlID09PSAnbW9ja3MnKSB7XG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25JY29uID0gJ0JyYW5kLWljb24tdm9uYWdlJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnRlZ3JhdGlvbkNvZGUpIHtcbiAgICAgICAgICBjYXNlICdvZmZpY2UzNjUnOlxuICAgICAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkljb24gPSAnQnJhbmQtaWNvbi1vZmZpY2UtY29sb3InO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnc3VnYXInOlxuICAgICAgICAgICAgdGhpcy5pbnRlZ3JhdGlvbkljb24gPSAnQnJhbmQtaWNvbi1zdWdhcmNybS1jb2xvcic7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdtc2R5bmFtaWNzJzpcbiAgICAgICAgICAgIHRoaXMuaW50ZWdyYXRpb25JY29uID0gJ0JyYW5kLWljb24tZHluYW1pY3MtY29sb3InO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRoaXMuaW50ZWdyYXRpb25JY29uID0gYEJyYW5kLWljb24tJHsodGhpcy5pbnRlZ3JhdGlvbkNvZGUgfHwgJycpLnRvTG93ZXJDYXNlKCl9LWNvbG9yYDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMubWV0YSwgJyRvcHRpb25hbCcsIHtcbiAgICAgICAgdmFsdWU6ICh0eXBlb2YodGhpcy5kZWZhdWx0KSA9PT0gJ3VuZGVmaW5lZCcpICYmIHRoaXMuaXNPcHRpb25hbCxcbiAgICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICAgIH0pO1xuICAgICAgdGhpcy5mbGFncyA9IHRoaXMubWV0YS5mbGFncyB8fCB7fTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLm1ldGEsICckaGlkZGVuJywge1xuICAgICAgICB2YWx1ZTogIXRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQgJiYgdGhpcy5mbGFncy5jcmVhdGFibGUgPT09IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgfSk7XG4gICAgICBpZiAodHlwZW9mKHRoaXMubWV0YS5oaWRkZW4pICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBpZiAodHlwZW9mKHRoaXMubWV0YS5oaWRkZW4pID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGNvbnN0IHNldEhpZGRlbkJ5UHJvcGVydHlDb25maWcgPSAocGFyKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mKHRoaXMubWV0YS5oaWRkZW5bcGFyXSkgPT09ICdib29sZWFuJykgeyAvLyBhbnkgdmFsdWUgbWFrZXMgbWUgaGlkZGVuXG4gICAgICAgICAgICAgIHRoaXMubWV0YS4kaGlkZGVuID0gISF0aGlzLnBhcmVudFtwYXJdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBleHRyYWN0VmFsdWVCeVNtYXJ0UHJvcCh0aGlzLnBhcmVudCwgcGFyKTtcbiAgICAgICAgICAgICAgY29uc3QgcGFyVmFsdWUgPSB2YWx1ZSA/ICh2YWx1ZS5pZCB8fCB2YWx1ZS52YWx1ZSB8fCB2YWx1ZSkgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgdGhpcy5tZXRhLiRoaWRkZW4gPSB0aGlzLm1ldGEuaGlkZGVuW3Bhcl0gPT09IHBhclZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgZm9yIChjb25zdCBwYXIgb2YgT2JqZWN0LmtleXModGhpcy5tZXRhLmhpZGRlbikpIHtcbiAgICAgICAgICAgIHNldEhpZGRlbkJ5UHJvcGVydHlDb25maWcocGFyKTtcbiAgICAgICAgICAgIHRoaXMucGFyZW50Q2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5oYXNPd25Qcm9wZXJ0eShwYXIuc3BsaXQoJy4nKVswXSkpIHtcbiAgICAgICAgICAgICAgICBzZXRIaWRkZW5CeVByb3BlcnR5Q29uZmlnKHBhcik7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWV0YS4kaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5wYXJlbnRbdGhpcy5tZXRhLm5hbWVdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZih0aGlzLm1ldGEuaGlkZGVuKSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpZiAodGhpcy5tZXRhLmhpZGRlbi50b1VwcGVyQ2FzZSgpID09PSAnQ1JFQVRFJykge1xuICAgICAgICAgICAgdGhpcy5tZXRhLiRoaWRkZW4gPSAhdGhpcy5pc1BlcnNpc3RlZFBhcmVudDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWV0YS5oaWRkZW4udG9VcHBlckNhc2UoKSA9PT0gJ1VQREFURScpIHtcbiAgICAgICAgICAgIHRoaXMubWV0YS4kaGlkZGVuID0gdGhpcy5pc1BlcnNpc3RlZFBhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5tZXRhLiRoaWRkZW49ICEhdGhpcy5tZXRhLmhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5tZXRhLCAnJGludmlzaWJsZScsIHtcbiAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZVxuICAgICAgfSk7XG4gICAgICBpZiAodHlwZW9mKHRoaXMubWV0YS52aXNpYmxlKSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgaWYgKHR5cGVvZih0aGlzLm1ldGEudmlzaWJsZSkgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgY29uc3Qgc2V0SW52aXNpYmxlQnlQcm9wZXJ0eUNvbmZpZyA9IChwYXIpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YodGhpcy5tZXRhLnZpc2libGVbcGFyXSkgPT09ICdib29sZWFuJykgeyAvLyBhbnkgdmFsdWUgbWFrZXMgbWUgaGlkZGVuXG4gICAgICAgICAgICAgIHRoaXMubWV0YS4kaW52aXNpYmxlID0gIXRoaXMucGFyZW50W3Bhcl07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGV4dHJhY3RWYWx1ZUJ5U21hcnRQcm9wKHRoaXMucGFyZW50LCBwYXIpO1xuICAgICAgICAgICAgICBjb25zdCBwYXJWYWx1ZSA9IHZhbHVlID8gKHZhbHVlLmlkIHx8IHZhbHVlLnZhbHVlIHx8IHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLm1ldGEuJGludmlzaWJsZSA9IHRoaXMubWV0YS52aXNpYmxlW3Bhcl0gIT09IHBhclZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgICAgZm9yIChjb25zdCBwYXIgb2YgT2JqZWN0LmtleXModGhpcy5tZXRhLnZpc2libGUpKSB7XG4gICAgICAgICAgICBzZXRJbnZpc2libGVCeVByb3BlcnR5Q29uZmlnKHBhcik7XG4gICAgICAgICAgICB0aGlzLnBhcmVudENoYW5nZVN1YmplY3Quc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUuaGFzT3duUHJvcGVydHkocGFyLnNwbGl0KCcuJylbMF0pKSB7XG4gICAgICAgICAgICAgICAgc2V0SW52aXNpYmxlQnlQcm9wZXJ0eUNvbmZpZyhwYXIpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1ldGEuJGludmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YodGhpcy5tZXRhLnZpc2libGUpID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGlmICh0aGlzLm1ldGEudmlzaWJsZS50b1VwcGVyQ2FzZSgpID09PSAnQ1JFQVRFJykge1xuICAgICAgICAgICAgdGhpcy5tZXRhLiRpbnZpc2libGUgPSB0aGlzLmlzUGVyc2lzdGVkUGFyZW50O1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZXRhLnZpc2libGUudG9VcHBlckNhc2UoKSA9PT0gJ1VQREFURScpIHtcbiAgICAgICAgICAgIHRoaXMubWV0YS4kaW52aXNpYmxlID0gIXRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnRoZW1lICE9PSAnaW5oZXJpdCcpIHtcbiAgICAgICAgY29uc3QgbWV0YVRoZW1lID0gdGhpcy50aGVtZSA9PT0gJ2RhcmsnID8gbWV0YURhcmsgOiBtZXRhTGlnaHQ7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG1ldGFUaGVtZS5wcm9wZXJ0aWVzKSkge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGtleSwgbWV0YVRoZW1lLnByb3BlcnRpZXNba2V5XSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgaXNPcHRpb25hbCgpIHtcbiAgICBjb25zdCBiYXNlT3B0aW9uYWwgPSAhdGhpcy5tZXRhLnVuc2V0ICYmICF0aGlzLnZhbGlkYXRpb25zLnJlcXVpcmVkICYmICF0aGlzLm1ldGEudmlzaWJsZTtcbiAgICBzd2l0Y2ggKHRoaXMubWV0YS50eXBlKSB7XG4gICAgICBjYXNlICdjb21wb3NpdGUnOiB7XG4gICAgICAgIGlmIChiYXNlT3B0aW9uYWwpIHtcbiAgICAgICAgICByZXR1cm4gIXRoaXMubWV0YS5maWVsZHMuZmluZCgoZikgPT4gIWYuJG9wdGlvbmFsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBjYXNlICdsaXN0Jzoge1xuICAgICAgICBpZiAoYmFzZU9wdGlvbmFsKSB7XG4gICAgICAgICAgcmV0dXJuICEodGhpcy5wYXJlbnRbdGhpcy5tZXRhLm5hbWVdIGluc3RhbmNlb2YgQXJyYXkgJiYgdGhpcy5wYXJlbnRbdGhpcy5tZXRhLm5hbWVdLmxlbmd0aCkgJiYgIXRoaXMubWV0YS5taW47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gYmFzZU9wdGlvbmFsICYmIHR5cGVvZih0aGlzLnBhcmVudFt0aGlzLm1ldGEubmFtZV0pID09PSAndW5kZWZpbmVkJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMudWlJbnB1dDtcbiAgICBpZiAoaW5wdXQpIHtcbiAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgbW9kZWxUb1ZhbHVlKG0sIHZhbHVlVHlwZSkge1xuICAgIGlmICh0eXBlb2YobSkgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBzd2l0Y2ggKHZhbHVlVHlwZSkge1xuICAgICAgICBjYXNlICdvYmplY3QnOiB7XG4gICAgICAgICAgcmV0dXJuIG0gPyB7IGlkOiBtLmlkLCBsYWJlbDogbS5sYWJlbCwgdHlwZTogbS50eXBlIH0gOiBtO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ251bWJlcic6IHtcbiAgICAgICAgICBpZiAobSAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCB2ID0gbS5pZCB8fCBtO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHYsIDEwKTtcbiAgICAgICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIGlmIChtICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBtLmlkIHx8IG07XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25TdWJqZWN0Q2hhbmdlKG1vZGVsKSB7XG4gICAgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGhpcy5wYXJlbnQsICckY2hhbmdlU3ViamVjdCcpKSB7XG4gICAgICBjb25zdCBwYXJlbnRDaGFuZ2U6IGFueSA9IHt9O1xuICAgICAgcGFyZW50Q2hhbmdlW3RoaXMubWV0YS5uYW1lXSA9IG1vZGVsO1xuICAgICAgdGhpcy5wYXJlbnRDaGFuZ2VTdWJqZWN0Lm5leHQocGFyZW50Q2hhbmdlKTtcbiAgICB9XG4gIH1cblxuICBvbk1vZGVsQ2hhbmdlKG1vZGVsKSB7XG4gICAgLy8gVE9ETyBhZGQgcmVzb3VyY2UgdHlwZSBsb2dpY1xuICAgIGlmICh0aGlzLm1vZGVsIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXSA9IHRoaXMubW9kZWwubWFwKChtKSA9PiB0aGlzLm1vZGVsVG9WYWx1ZShtLCB0aGlzLm1ldGEudmFsdWVUeXBlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFyZW50W3RoaXMubWV0YS5uYW1lXSA9IHRoaXMubW9kZWxUb1ZhbHVlKG1vZGVsLCB0aGlzLm1ldGEudmFsdWVUeXBlKTtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KG1vZGVsKTtcbiAgICB0aGlzLm9uU3ViamVjdENoYW5nZShtb2RlbCk7XG4gICAgLy8gY29uc29sZS5sb2coJ29uQ2hhbmdlJywgbW9kZWwpO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuaW5pdE1vdXNlRXZlbnQoJ2NoYW5nZScsIHRydWUsIHRydWUsIHdpbmRvdywgMCwgMCwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIDAsIG51bGwpO1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQodGhpcy5jaGFuZ2VFdmVudCk7XG4gICAgaWYgKHRoaXMubW9kZWwpIHtcbiAgICAgIHRoaXMucHJldk1vZGVsID0gdGhpcy5tb2RlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXRhLnVuc2V0ID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5tZXRhLiRvcHRpb25hbCA9IHRoaXMuaXNPcHRpb25hbDtcbiAgfVxuXG4gIGdldCBwYXJlbnRDaGFuZ2VTdWJqZWN0KCkge1xuICAgIGlmICghT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzLnBhcmVudCwgJyRjaGFuZ2VTdWJqZWN0JykpIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnBhcmVudCwgJyRjaGFuZ2VTdWJqZWN0Jywge1xuICAgICAgICB2YWx1ZTogbmV3IEJlaGF2aW9yU3ViamVjdCh7fSkucGlwZShkZWJvdW5jZVRpbWUoMzAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2VcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5wYXJlbnQuJGNoYW5nZVN1YmplY3Q7XG4gIH1cblxuICBnZXQgaXNQZXJzaXN0ZWRQYXJlbnQoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgcmV0dXJuIHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50Ll92Z2lzICYmICh0aGlzLnBhcmVudC5fdmdpcy5leHRlcm5hbElkIHx8IHRoaXMucGFyZW50Ll92Z2lzLmlkICk7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICBkZWxldGUgdGhpcy5tb2RlbDtcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5tb2RlbCk7XG4gIH1cblxuICBnZXQgdmFsaWRhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YS52YWxpZGF0aW9ucyB8fCB7fTtcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiAodHlwZW9mICh0aGlzLmluZGV4KSA9PT0gJ3VuZGVmaW5lZCcpID8gdGhpcy5tZXRhLm5hbWUgOiBgJHt0aGlzLm1ldGEubmFtZX1bJHt0aGlzLmluZGV4fV1gO1xuICB9XG5cbiAgZ2V0IGRlZmF1bHQoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YS5kZWZhdWx0IHx8IHRoaXMubWV0YS5kZWZhdWx0VmFsdWU7XG4gIH1cblxuICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgLy8gVE9ETyBjb25kaXRpb25zXG4gICAgcmV0dXJuIHRoaXMubG9naWNhbERpc2FibGVkIHx8IHRoaXMudmFsaWRhdGlvbnMuZGlzYWJsZWQgfHwgdGhpcy5tZXRhLmRpc2FibGVkID09PSB0cnVlIHx8IHRoaXMuZmxhZ3MuZGlzYWJsZWRcbiAgICAgIHx8ICh0aGlzLmZsYWdzLnVwZGF0YWJsZSA9PT0gZmFsc2UgJiYgdGhpcy5pc1BlcnNpc3RlZFBhcmVudCk7XG4gIH1cblxuICBnZXQgcmVhZG9ubHkoKSB7XG4gICAgLy8gVE9ETyBjb25kaXRpb25zXG4gICAgcmV0dXJuICEhKHRoaXMudmFsaWRhdGlvbnMucmVhZG9ubHkgfHwgdGhpcy5tZXRhLnJlYWRvbmx5IHx8ICh0aGlzLmZsYWdzLnVwZGF0YWJsZSA9PT0gZmFsc2UpKTtcbiAgfVxuXG4gIGdldCBzZW5kVG9TZXJ2ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNQZXJzaXN0ZWRQYXJlbnQgPyAodGhpcy5mbGFncy51cGRhdGFibGUgIT09IGZhbHNlKSA6ICh0aGlzLmZsYWdzLmNyZWF0YWJsZSAhPT0gZmFsc2UpO1xuICB9XG5cbiAgZ2V0IHVpSW5wdXQoKSB7XG4gICAgaWYgKCF0aGlzLm1haW5JbnB1dCkge1xuICAgICAgdGhpcy5tYWluSW5wdXQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubWFpbjpub3QoW3R5cGU9XCJoaWRkZW5cIl0pOm5vdCguc3RhbmRhbG9uZSknKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubWFpbklucHV0O1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseVZhbGlkYXRpb25zKCkge1xuICAgIHRoaXMudmFsaWRhdGlvbkF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cmlidXRlKSA9PiB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uID0gdGhpcy52YWxpZGF0aW9uc1thdHRyaWJ1dGVdO1xuICAgICAgaWYgKHZhbGlkYXRpb24pIHtcbiAgICAgICAgdGhpcy5tb2RlbElucHV0LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIHZhbGlkYXRpb24udmFsdWUgfHwgdmFsaWRhdGlvbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgTWV0YUVsZW0ge1xuICBjc3NlbGVtOiBzdHJpbmc7XG4gIG1ldGE6IGFueTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE1ldGFFbGVtRGlzYWJsZWFkYmxlIGltcGxlbWVudHMgTWV0YUVsZW0ge1xuICBjc3Ntb2RpZmllcjogc3RyaW5nO1xuICBhYnN0cmFjdCBtZXRhOiBhbnk7XG4gIGFic3RyYWN0IGNzc2VsZW06IHN0cmluZztcbiAgYWJzdHJhY3QgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcbiAgZGlzYWJsZSgpIHtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNzc21vZGlmaWVyKTtcbiAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuY3NzbW9kaWZpZXIpO1xuICB9XG59XG5cbiJdfQ==
|
|
@@ -671,13 +671,15 @@ const metaNormalizer = (meta, integration, resourceType) => {
|
|
|
671
671
|
break;
|
|
672
672
|
}
|
|
673
673
|
case 'NETSUITE': {
|
|
674
|
-
if (f.name === 'company' && !f.
|
|
675
|
-
f.
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
674
|
+
if (f.name === 'company' && !f.auto) {
|
|
675
|
+
f.auto = {
|
|
676
|
+
search: {
|
|
677
|
+
params: {
|
|
678
|
+
contactId: 'contact.id'
|
|
679
|
+
},
|
|
680
|
+
url: '../Contact/${contactId}?expand=company',
|
|
681
|
+
extract: 'company'
|
|
682
|
+
}
|
|
681
683
|
};
|
|
682
684
|
}
|
|
683
685
|
}
|
|
@@ -792,15 +794,14 @@ const metaNormalizer = (meta, integration, resourceType) => {
|
|
|
792
794
|
if (resourceType === 'CandidateNote' || resourceType === 'ContactNote') {
|
|
793
795
|
metaV3.layout.editable = false;
|
|
794
796
|
}
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
}
|
|
797
|
+
// } else if (integrationCode === 'CLIO') {
|
|
798
|
+
// if (resourceType === 'PhoneCommunication') {
|
|
799
|
+
// for (const f of metaV3.layout.sections[0].fields) {
|
|
800
|
+
// if (f.name === 'time_entries') {
|
|
801
|
+
// f.visible = 'CREATE';
|
|
802
|
+
// }
|
|
803
|
+
// }
|
|
804
|
+
// }
|
|
804
805
|
}
|
|
805
806
|
return sortObj(metaV3);
|
|
806
807
|
};
|
|
@@ -979,15 +980,20 @@ class FieldAbstract {
|
|
|
979
980
|
this.parentChangeSubject.subscribe((value) => {
|
|
980
981
|
if (value && value.hasOwnProperty(par.split('.')[0])) {
|
|
981
982
|
setHiddenByPropertyConfig(par);
|
|
983
|
+
if (this.meta.$hidden) {
|
|
984
|
+
delete this.parent[this.meta.name];
|
|
985
|
+
}
|
|
982
986
|
}
|
|
983
987
|
});
|
|
984
988
|
}
|
|
985
989
|
}
|
|
986
|
-
else if (this.meta.hidden === '
|
|
987
|
-
this.meta
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
this.meta
|
|
990
|
+
else if (typeof (this.meta.hidden) === 'string') {
|
|
991
|
+
if (this.meta.hidden.toUpperCase() === 'CREATE') {
|
|
992
|
+
this.meta.$hidden = !this.isPersistedParent;
|
|
993
|
+
}
|
|
994
|
+
else if (this.meta.hidden.toUpperCase() === 'UPDATE') {
|
|
995
|
+
this.meta.$hidden = this.isPersistedParent;
|
|
996
|
+
}
|
|
991
997
|
}
|
|
992
998
|
else {
|
|
993
999
|
this.meta.$hidden = !!this.meta.hidden;
|
|
@@ -1023,11 +1029,13 @@ class FieldAbstract {
|
|
|
1023
1029
|
});
|
|
1024
1030
|
}
|
|
1025
1031
|
}
|
|
1026
|
-
else if (this.meta.visible === '
|
|
1027
|
-
this.meta
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
this.meta
|
|
1032
|
+
else if (typeof (this.meta.visible) === 'string') {
|
|
1033
|
+
if (this.meta.visible.toUpperCase() === 'CREATE') {
|
|
1034
|
+
this.meta.$invisible = this.isPersistedParent;
|
|
1035
|
+
}
|
|
1036
|
+
else if (this.meta.visible.toUpperCase() === 'UPDATE') {
|
|
1037
|
+
this.meta.$invisible = !this.isPersistedParent;
|
|
1038
|
+
}
|
|
1031
1039
|
}
|
|
1032
1040
|
}
|
|
1033
1041
|
if (this.theme !== 'inherit') {
|
|
@@ -3684,11 +3692,11 @@ class FieldReference extends FieldAbstract {
|
|
|
3684
3692
|
}
|
|
3685
3693
|
}
|
|
3686
3694
|
}
|
|
3687
|
-
if (this.meta.search) {
|
|
3688
|
-
const searchParams = this.meta.search.params;
|
|
3695
|
+
if (this.meta.auto && this.meta.auto.search) {
|
|
3696
|
+
const searchParams = this.meta.auto.search.params;
|
|
3689
3697
|
if (searchParams) {
|
|
3690
3698
|
for (const par of Object.keys(searchParams)) {
|
|
3691
|
-
const props = searchParams[par].split('
|
|
3699
|
+
const props = searchParams[par].split('.');
|
|
3692
3700
|
const field = props[0];
|
|
3693
3701
|
const prop = props[1];
|
|
3694
3702
|
let parValue = this.parent[field];
|
|
@@ -3699,7 +3707,7 @@ class FieldReference extends FieldAbstract {
|
|
|
3699
3707
|
if (parValue) {
|
|
3700
3708
|
const params = {};
|
|
3701
3709
|
params[par] = parValue;
|
|
3702
|
-
this.
|
|
3710
|
+
this.searchAutoSuggestions(params);
|
|
3703
3711
|
}
|
|
3704
3712
|
}
|
|
3705
3713
|
this.parentChangeSubject.subscribe((value) => {
|
|
@@ -3710,7 +3718,7 @@ class FieldReference extends FieldAbstract {
|
|
|
3710
3718
|
}
|
|
3711
3719
|
const params = {};
|
|
3712
3720
|
params[par] = value[field];
|
|
3713
|
-
this.
|
|
3721
|
+
this.searchAutoSuggestions(params);
|
|
3714
3722
|
}
|
|
3715
3723
|
}
|
|
3716
3724
|
});
|
|
@@ -3757,7 +3765,7 @@ class FieldReference extends FieldAbstract {
|
|
|
3757
3765
|
delete this.searchResults;
|
|
3758
3766
|
return;
|
|
3759
3767
|
}
|
|
3760
|
-
const
|
|
3768
|
+
const showSearchResults = (results) => {
|
|
3761
3769
|
this.searching = false;
|
|
3762
3770
|
delete this.searchError;
|
|
3763
3771
|
delete this.activeSuggestionIndex;
|
|
@@ -3783,11 +3791,21 @@ class FieldReference extends FieldAbstract {
|
|
|
3783
3791
|
if (this.meta.search.url) {
|
|
3784
3792
|
searchUrl = this.meta.search.url.replace(/\${\s*([\w\.]+)\s*}/g, (match, key) => {
|
|
3785
3793
|
if (searchParams.hasOwnProperty(key)) {
|
|
3786
|
-
const
|
|
3787
|
-
|
|
3788
|
-
|
|
3794
|
+
const props = searchParams[key].split('.');
|
|
3795
|
+
const field = props[0];
|
|
3796
|
+
const prop = props[1];
|
|
3797
|
+
delete searchParams[key]; // if it is URL param, remove it as query param
|
|
3798
|
+
let parValue = this.parent[field];
|
|
3799
|
+
if (parValue) {
|
|
3800
|
+
if (prop) {
|
|
3801
|
+
parValue = parValue[prop];
|
|
3802
|
+
}
|
|
3803
|
+
if (parValue) {
|
|
3804
|
+
return parValue;
|
|
3805
|
+
}
|
|
3806
|
+
}
|
|
3789
3807
|
}
|
|
3790
|
-
return '';
|
|
3808
|
+
return 'undefined';
|
|
3791
3809
|
});
|
|
3792
3810
|
}
|
|
3793
3811
|
for (const p of Object.keys(searchParams)) {
|
|
@@ -3796,7 +3814,7 @@ class FieldReference extends FieldAbstract {
|
|
|
3796
3814
|
searchUrl += `${searchUrl.indexOf('?') === -1 ? '?' : '&'}q=${encodeURIComponent(this.searchText)}`;
|
|
3797
3815
|
this.searching = true;
|
|
3798
3816
|
this.resourceService.getByPath(searchUrl).subscribe((results) => {
|
|
3799
|
-
|
|
3817
|
+
showSearchResults(results);
|
|
3800
3818
|
}, (error) => {
|
|
3801
3819
|
delete this.searching;
|
|
3802
3820
|
this.searchResults = [];
|
|
@@ -3814,7 +3832,7 @@ class FieldReference extends FieldAbstract {
|
|
|
3814
3832
|
});
|
|
3815
3833
|
}
|
|
3816
3834
|
this.vr.searchIntegration(this.searchText, this.searchResourceType.name || this.searchResourceTypesScope).subscribe((results) => {
|
|
3817
|
-
|
|
3835
|
+
showSearchResults(results);
|
|
3818
3836
|
}, (error) => {
|
|
3819
3837
|
this.searching = false;
|
|
3820
3838
|
this.searchResults = [];
|
|
@@ -4133,11 +4151,12 @@ class FieldReference extends FieldAbstract {
|
|
|
4133
4151
|
return this.metaReference.creatable;
|
|
4134
4152
|
}
|
|
4135
4153
|
}
|
|
4136
|
-
|
|
4154
|
+
searchAutoSuggestions(params) {
|
|
4155
|
+
console.log('searchAutoSuggestions', params);
|
|
4137
4156
|
let searchUrl = `/suggestions/${this.meta.name}/search`;
|
|
4138
|
-
if (this.meta.search) {
|
|
4139
|
-
if (this.meta.search.url) {
|
|
4140
|
-
searchUrl = this.meta.search.url.replace(/\${\s*([\w\.]+)\s*}/g, (match, key) => {
|
|
4157
|
+
if (this.meta.auto && this.meta.auto.search) {
|
|
4158
|
+
if (this.meta.auto.search.url) {
|
|
4159
|
+
searchUrl = this.meta.auto.search.url.replace(/\${\s*([\w\.]+)\s*}/g, (match, key) => {
|
|
4141
4160
|
if (params.hasOwnProperty(key)) {
|
|
4142
4161
|
const val = params[key];
|
|
4143
4162
|
delete params[key];
|
|
@@ -4155,8 +4174,8 @@ class FieldReference extends FieldAbstract {
|
|
|
4155
4174
|
if (result) {
|
|
4156
4175
|
let suggestions;
|
|
4157
4176
|
suggestions = result;
|
|
4158
|
-
if (this.meta.search.extract) {
|
|
4159
|
-
suggestions = result[this.meta.search.extract];
|
|
4177
|
+
if (this.meta.auto.search.extract) {
|
|
4178
|
+
suggestions = result[this.meta.auto.search.extract];
|
|
4160
4179
|
}
|
|
4161
4180
|
if (suggestions instanceof Array !== true) {
|
|
4162
4181
|
suggestions = [suggestions];
|