@michalrakus/x-react-web-lib 1.27.1 → 1.28.0
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/lib/components/XAutoCompleteBase.js +4 -4
- package/lib/components/XFormBase.d.ts +1 -1
- package/lib/components/XFormBase.js +4 -5
- package/lib/serverApi/XUtilsCommon.js +12 -8
- package/lib/serverApi/XUtilsConversions.d.ts +1 -0
- package/lib/serverApi/XUtilsConversions.js +14 -1
- package/package.json +1 -1
|
@@ -689,7 +689,7 @@ var XAutoCompleteBase = /** @class */ (function (_super) {
|
|
|
689
689
|
}
|
|
690
690
|
this.createDropdownItem(buttonItems);
|
|
691
691
|
if (this.props.buttonsLayout === "buttons") {
|
|
692
|
-
buttons = buttonItems.map(function (value) { return react_1.default.createElement(button_1.Button, { icon: value.icon, tooltip: value.tooltip, tooltipOptions: { position: 'top' }, onClick: function (e) { return value.command(e); }, className: 'x-dropdownbutton' + XUtils_1.XUtils.mobileCssSuffix() }); });
|
|
692
|
+
buttons = buttonItems.map(function (value, index) { return react_1.default.createElement(button_1.Button, { key: "button".concat(index), icon: value.icon, tooltip: value.tooltip, tooltipOptions: { position: 'top' }, onClick: function (e) { return value.command(e); }, className: 'x-dropdownbutton' + XUtils_1.XUtils.mobileCssSuffix() }); });
|
|
693
693
|
}
|
|
694
694
|
else {
|
|
695
695
|
// buttonsLayout === "splitButton"
|
|
@@ -728,15 +728,15 @@ var XAutoCompleteBase = /** @class */ (function (_super) {
|
|
|
728
728
|
// <DobrovolnikForm id={this.formDialogObjectId} object={this.formDialogInitValuesForInsert} onSaveOrCancel={this.formDialogOnSaveOrCancel}/>
|
|
729
729
|
// formgroup-inline lepi SplitButton na autocomplete a zarovna jeho vysku
|
|
730
730
|
return (react_1.default.createElement("div", { className: "x-auto-complete-base", style: { width: this.props.width, maxWidth: this.props.maxWidth } },
|
|
731
|
-
react_1.default.createElement(autocomplete_1.AutoComplete, __assign({ value: inputValue, suggestions: this.state.filteredSuggestions, completeMethod: this.completeMethod, itemTemplate: this.itemTemplate, onChange: this.onChange, onSelect: this.onSelect, onBlur: this.onBlur, minLength: this.props.minLength, scrollHeight: this.props.scrollHeight, ref: this.autoCompleteRef, readOnly: readOnly, disabled: readOnly }, XUtils_1.XUtils.createTooltipOrErrorProps(error), { inputClassName: this.props.inputClassName, showEmptyMessage: true })),
|
|
731
|
+
react_1.default.createElement(autocomplete_1.AutoComplete, __assign({ key: "autoComplete", value: inputValue, suggestions: this.state.filteredSuggestions, completeMethod: this.completeMethod, itemTemplate: this.itemTemplate, onChange: this.onChange, onSelect: this.onSelect, onBlur: this.onBlur, minLength: this.props.minLength, scrollHeight: this.props.scrollHeight, ref: this.autoCompleteRef, readOnly: readOnly, disabled: readOnly }, XUtils_1.XUtils.createTooltipOrErrorProps(error), { inputClassName: this.props.inputClassName, showEmptyMessage: true })),
|
|
732
732
|
buttons,
|
|
733
733
|
this.props.valueForm != undefined ?
|
|
734
|
-
react_1.default.createElement(dialog_1.Dialog, { className: "x-dialog-without-header", visible: this.state.formDialogOpened, onHide: this.formDialogOnHide }, react_1.default.cloneElement(this.props.valueForm, {
|
|
734
|
+
react_1.default.createElement(dialog_1.Dialog, { key: "dialogForm", className: "x-dialog-without-header", visible: this.state.formDialogOpened, onHide: this.formDialogOnHide }, react_1.default.cloneElement(this.props.valueForm, {
|
|
735
735
|
id: this.formDialogObjectId, initValues: this.formDialogInitValuesForInsert, onSaveOrCancel: this.formDialogOnSaveOrCancel
|
|
736
736
|
} /*, this.props.valueForm.children*/))
|
|
737
737
|
: undefined,
|
|
738
738
|
this.props.searchBrowse != undefined && !readOnly ?
|
|
739
|
-
react_1.default.createElement(dialog_1.Dialog, { className: "x-dialog-without-header", visible: this.state.searchDialogOpened, onHide: this.searchDialogOnHide }, react_1.default.cloneElement(this.props.searchBrowse, { searchBrowseParams: this.createSearchBrowseParams() } /*, props.searchBrowse.children*/))
|
|
739
|
+
react_1.default.createElement(dialog_1.Dialog, { key: "dialogBrowse", className: "x-dialog-without-header", visible: this.state.searchDialogOpened, onHide: this.searchDialogOnHide }, react_1.default.cloneElement(this.props.searchBrowse, { searchBrowseParams: this.createSearchBrowseParams() } /*, props.searchBrowse.children*/))
|
|
740
740
|
: undefined));
|
|
741
741
|
};
|
|
742
742
|
XAutoCompleteBase.valueMoreSuggestions = "...";
|
|
@@ -42,7 +42,7 @@ export declare abstract class XFormBase extends Component<XFormProps> {
|
|
|
42
42
|
* @deprecated - mal by sa pouzivat onTableFieldChange
|
|
43
43
|
*/
|
|
44
44
|
onObjectDataChange(row?: any, onChange?: XTableFieldOnChange): void;
|
|
45
|
-
setStateXForm(): void;
|
|
45
|
+
setStateXForm(callback?: () => void): void;
|
|
46
46
|
onTableAddRow(assocField: string, newRow: any, dataKey?: string, selectedRow?: {}): void;
|
|
47
47
|
static getNextRowId(rowList: any[], dataKey: string): number;
|
|
48
48
|
onTableRemoveRow(assocField: string, row: {}): void;
|
|
@@ -199,7 +199,7 @@ var XFormBase = /** @class */ (function (_super) {
|
|
|
199
199
|
case 5:
|
|
200
200
|
this.preInitForm(object, operationType);
|
|
201
201
|
//console.log("volany XFormBase.componentDidMount() - ideme setnut object");
|
|
202
|
-
this.setState({ object: object } /*, () => console.log("volany XFormBase.componentDidMount() - callback setState")*/);
|
|
202
|
+
this.setState({ object: object } /*, () => console.log("************** volany XFormBase.componentDidMount() - callback setState")*/);
|
|
203
203
|
return [2 /*return*/];
|
|
204
204
|
}
|
|
205
205
|
});
|
|
@@ -265,16 +265,15 @@ var XFormBase = /** @class */ (function (_super) {
|
|
|
265
265
|
// TODO - assocObjectChange dorobit
|
|
266
266
|
onChange({ object: object, tableRow: row, assocObjectChange: undefined });
|
|
267
267
|
}
|
|
268
|
-
// TODO - tu mozno treba setnut funkciu - koli moznej asynchronicite
|
|
269
268
|
this.setState({ object: object });
|
|
270
269
|
};
|
|
271
270
|
// lepsi nazov ako onObjectDataChange
|
|
272
271
|
// ak niekto zmenil this.state.object alebo this.state.errorMap, zmena sa prejavi vo formulari
|
|
273
272
|
// pouzivame napr. po zavolani onChange na XInputText
|
|
274
|
-
|
|
273
|
+
// callback je zavolany, ked dobehne update formulara (mozme pouzit na dalsi update formulara, ktory potrebuje aby boli vsetky komponenty vytvorene)
|
|
274
|
+
XFormBase.prototype.setStateXForm = function (callback) {
|
|
275
275
|
// TODO - je to ok ze object menime takto?
|
|
276
|
-
|
|
277
|
-
this.setState({ object: this.state.object, errorMap: this.state.errorMap });
|
|
276
|
+
this.setState({ object: this.state.object, errorMap: this.state.errorMap }, callback);
|
|
278
277
|
};
|
|
279
278
|
XFormBase.prototype.onTableAddRow = function (assocField, newRow, dataKey, selectedRow) {
|
|
280
279
|
var object = this.getXObject();
|
|
@@ -367,15 +367,19 @@ var XUtilsCommon = /** @class */ (function () {
|
|
|
367
367
|
XUtilsCommon.sqlMaxDateIfNull = function (sqlExp) {
|
|
368
368
|
return "coalesce(".concat(sqlExp, ", '9999-12-31'::DATE)");
|
|
369
369
|
};
|
|
370
|
+
// static today(): Date {
|
|
371
|
+
// const today = new Date();
|
|
372
|
+
// // vynulujeme casovu zlozku
|
|
373
|
+
// // poznamka: Date vzdy obsahuje aj casovu zlozku. Nase konverzne funkcie dateFromModel a dateFromUI pouzivaju konverziu new Date('YYYY-MM-DD')
|
|
374
|
+
// // a tato konverzia vytvara datum s GMT/UTC/Z casom 00:00:00 (stredoeuropsky 00:01:00 - akokeby sme zadavali new Date('YYYY-MM-DDT00:00:00Z'))
|
|
375
|
+
// //today.setHours(0, 0, 0, 0); // nastavi cas 00:00:00 v aktualnej timezone (stredoeuropsky 00:00:00, GMT 23:00:00)
|
|
376
|
+
// // - potom nam nefunguje porovnavanie s datumami vytvorenymi cez funkcie dateFromModel a dateFromUI
|
|
377
|
+
// today.setUTCHours(0, 0, 0, 0);
|
|
378
|
+
// return today;
|
|
379
|
+
// }
|
|
380
|
+
// oprava:
|
|
370
381
|
XUtilsCommon.today = function () {
|
|
371
|
-
|
|
372
|
-
// vynulujeme casovu zlozku
|
|
373
|
-
// poznamka: Date vzdy obsahuje aj casovu zlozku. Nase konverzne funkcie dateFromModel a dateFromUI pouzivaju konverziu new Date('YYYY-MM-DD')
|
|
374
|
-
// a tato konverzia vytvara datum s GMT/UTC/Z casom 00:00:00 (stredoeuropsky 00:01:00 - akokeby sme zadavali new Date('YYYY-MM-DDT00:00:00Z'))
|
|
375
|
-
//today.setHours(0, 0, 0, 0); // nastavi cas 00:00:00 v aktualnej timezone (stredoeuropsky 00:00:00, GMT 23:00:00)
|
|
376
|
-
// - potom nam nefunguje porovnavanie s datumami vytvorenymi cez funkcie dateFromModel a dateFromUI
|
|
377
|
-
today.setUTCHours(0, 0, 0, 0);
|
|
378
|
-
return today;
|
|
382
|
+
return new Date((0, XUtilsConversions_1.dateAsYYYY_MM_DD)(new Date()));
|
|
379
383
|
};
|
|
380
384
|
// vrati true ak sa string sklada iba z cislic, moze mat + alebo - na zaciatku
|
|
381
385
|
XUtilsCommon.isInt = function (stringValue) {
|
|
@@ -15,6 +15,7 @@ export declare enum XDateScale {
|
|
|
15
15
|
export declare function dateFromModel(value: any): Date | null;
|
|
16
16
|
export declare function dateFromUI(valueString: string, dateScale?: XDateScale): Date | null | undefined;
|
|
17
17
|
export declare function dateAsUI(value: Date | null, dateScale?: XDateScale): string;
|
|
18
|
+
export declare function dateAsYYYY_MM_DD(date: Date): string;
|
|
18
19
|
export declare function datetimeAsUI(value: Date | null): string;
|
|
19
20
|
export declare function timeFromModel(value: any): Date | null;
|
|
20
21
|
export declare function dateFormatUI(dateScale?: XDateScale): string;
|
|
@@ -27,7 +27,7 @@ var __read = (this && this.__read) || function (o, n) {
|
|
|
27
27
|
return ar;
|
|
28
28
|
};
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
-
exports.convertValueBase = exports.convertValue = exports.convertObject = exports.AsUIType = exports.booleanAsUIText = exports.intervalAsUI = exports.intervalFromUI = exports.datetimeFormatUI = exports.dateFormatCalendar = exports.dateFormatUI = exports.timeFromModel = exports.datetimeAsUI = exports.dateAsUI = exports.dateFromUI = exports.dateFromModel = exports.XDateScale = exports.numberFromString = exports.numberFromModel = exports.numberAsUI = exports.intFromUI = exports.stringAsDB = exports.stringAsUI = exports.stringFromUI = void 0;
|
|
30
|
+
exports.convertValueBase = exports.convertValue = exports.convertObject = exports.AsUIType = exports.booleanAsUIText = exports.intervalAsUI = exports.intervalFromUI = exports.datetimeFormatUI = exports.dateFormatCalendar = exports.dateFormatUI = exports.timeFromModel = exports.datetimeAsUI = exports.dateAsYYYY_MM_DD = exports.dateAsUI = exports.dateFromUI = exports.dateFromModel = exports.XDateScale = exports.numberFromString = exports.numberFromModel = exports.numberAsUI = exports.intFromUI = exports.stringAsDB = exports.stringAsUI = exports.stringFromUI = void 0;
|
|
31
31
|
var XUtilsCommon_1 = require("./XUtilsCommon");
|
|
32
32
|
var XLocale_1 = require("../components/XLocale");
|
|
33
33
|
var XUtilsMetadataCommon_1 = require("./XUtilsMetadataCommon");
|
|
@@ -215,6 +215,19 @@ function dateAsUI(value, dateScale) {
|
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
exports.dateAsUI = dateAsUI;
|
|
218
|
+
// specialna funkcia - konvertuje Date na string YYYY-MM-DD
|
|
219
|
+
function dateAsYYYY_MM_DD(date) {
|
|
220
|
+
var monthStr = (date.getMonth() + 1).toString();
|
|
221
|
+
if (monthStr.length < 2) {
|
|
222
|
+
monthStr = "0" + monthStr;
|
|
223
|
+
}
|
|
224
|
+
var dayStr = date.getDate().toString();
|
|
225
|
+
if (dayStr.length < 2) {
|
|
226
|
+
dayStr = "0" + dayStr;
|
|
227
|
+
}
|
|
228
|
+
return "".concat(date.getFullYear(), "-").concat(monthStr, "-").concat(dayStr);
|
|
229
|
+
}
|
|
230
|
+
exports.dateAsYYYY_MM_DD = dateAsYYYY_MM_DD;
|
|
218
231
|
function datetimeAsUI(value) {
|
|
219
232
|
if (value !== null) {
|
|
220
233
|
return (0, XUtilsCommon_1.dateFormat)(value, datetimeFormatUI());
|