josenanodev-react-components-library 0.0.7 → 0.0.9
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/dist/cjs/components/Multicalendar/Multicalendar.css +41 -231
- package/dist/cjs/components/Multicalendar/Multicalendar.d.ts +1 -1
- package/dist/cjs/components/Multicalendar/Multicalendar.js +45 -33
- package/dist/cjs/components/Multicalendar/MulticalendarOwnFunctions.d.ts +1 -1
- package/dist/cjs/components/Multicalendar/MulticalendarOwnFunctions.js +3 -3
- package/dist/cjs/components/Multicalendar/subcomponents/composites/DatesGrid/DatesGrid.css +5 -4
- package/dist/cjs/components/Multicalendar/subcomponents/individuals/Cell/Cell.d.ts +3 -3
- package/dist/cjs/components/Multicalendar/subcomponents/individuals/Cell/Cell.js +1 -1
- package/dist/cjs/components/Multicalendar/subcomponents/individuals/DatesRow/DatesRow.js +1 -1
- package/dist/cjs/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.d.ts +3 -3
- package/dist/cjs/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.js +1 -1
- package/dist/cjs/components/Multicalendar/types.d.ts +7 -3
- package/dist/cjs/languages/en-EN.js +0 -170
- package/dist/cjs/languages/es-ES.js +0 -170
- package/dist/cjs/languages/it-IT.js +0 -170
- package/dist/cjs/languages/types.d.ts +0 -170
- package/dist/cjs/mocks/ReactComponentMocksForTesting/CellChildrenMock.js +1 -1
- package/dist/cjs/stories/css-presets.css +77 -0
- package/dist/esm/components/Multicalendar/Multicalendar.css +41 -231
- package/dist/esm/components/Multicalendar/Multicalendar.d.ts +1 -1
- package/dist/esm/components/Multicalendar/Multicalendar.js +47 -35
- package/dist/esm/components/Multicalendar/MulticalendarOwnFunctions.d.ts +1 -1
- package/dist/esm/components/Multicalendar/MulticalendarOwnFunctions.js +3 -3
- package/dist/esm/components/Multicalendar/subcomponents/composites/DatesGrid/DatesGrid.css +5 -4
- package/dist/esm/components/Multicalendar/subcomponents/individuals/Cell/Cell.d.ts +3 -3
- package/dist/esm/components/Multicalendar/subcomponents/individuals/Cell/Cell.js +1 -1
- package/dist/esm/components/Multicalendar/subcomponents/individuals/DatesRow/DatesRow.js +1 -1
- package/dist/esm/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.d.ts +3 -3
- package/dist/esm/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.js +1 -1
- package/dist/esm/components/Multicalendar/types.d.ts +7 -3
- package/dist/esm/languages/en-EN.js +0 -170
- package/dist/esm/languages/es-ES.js +0 -170
- package/dist/esm/languages/it-IT.js +0 -170
- package/dist/esm/languages/types.d.ts +0 -170
- package/dist/esm/mocks/ReactComponentMocksForTesting/CellChildrenMock.js +1 -1
- package/dist/esm/stories/css-presets.css +77 -0
- package/package.json +6 -7
|
@@ -2,22 +2,22 @@ import React, { useEffect, useState, useRef } from "react";
|
|
|
2
2
|
import * as Funciones from "./MulticalendarOwnFunctions";
|
|
3
3
|
import "./Multicalendar.css";
|
|
4
4
|
//Assets
|
|
5
|
-
import
|
|
5
|
+
import { BsChevronLeft, BsChevronRight } from "react-icons/bs";
|
|
6
6
|
//Componentes
|
|
7
7
|
import DatesRow from "./subcomponents/individuals/DatesRow/DatesRow";
|
|
8
8
|
import ListElementsColumn from "./subcomponents/composites/ListElementsColumn/ListElementsColumn";
|
|
9
9
|
import DatesGrid from "./subcomponents/composites/DatesGrid/DatesGrid";
|
|
10
|
-
import
|
|
10
|
+
import DropdownMonthNavigation from "./subcomponents/individuals/DropdownMonthNavigation/DropdownMonthNavigation";
|
|
11
11
|
//Hooks
|
|
12
12
|
import useWindowSize from "../../hooks/useWindowsSize";
|
|
13
13
|
//Utils
|
|
14
14
|
import sqlToJsDate from "../../utils/sqlToJsDate";
|
|
15
15
|
//Services
|
|
16
16
|
import { eraseMulticalendarYScrollPosition, getMulticalendarYScrollPosition, } from "../../Services/MulticalendarStatesAndSettings";
|
|
17
|
-
const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChildren, listElementsIdsArray, language, cellsWidth = 120, cellsHeight = 80, verticalAxisWidth = 280, horizontalAxisHeight = 148,
|
|
17
|
+
const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChildren, listElementsIdsArray, language, pastDatesVisible = true, cellsWidth = 120, cellsHeight = 80, verticalAxisWidth = 280, horizontalAxisHeight = 148, pastDaysInitialQuantity = 365, futureDaysInitialQuantity = 365, chunkRenderX = 0, chunkRenderY = 0, dynamicDaysQuantity = false, draggingOverDateCells = false, waitTimeForCalls = 500, callsOnScrollingMoves, callsOnScrollingStops, aditionalControlsComponents, upperLeftComponent, }) => {
|
|
18
18
|
//Constantes del componente
|
|
19
19
|
const origin = {
|
|
20
|
-
x: Math.ceil(
|
|
20
|
+
x: pastDatesVisible ? Math.ceil(pastDaysInitialQuantity) * cellsWidth : 0,
|
|
21
21
|
y: 0,
|
|
22
22
|
};
|
|
23
23
|
const initialDateOffset = 2 + chunkRenderX;
|
|
@@ -28,8 +28,8 @@ const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChi
|
|
|
28
28
|
//Estados
|
|
29
29
|
const [firtsCall, setFirtsCall] = useState(false);
|
|
30
30
|
const [windowWidth, windowHeight] = useWindowSize();
|
|
31
|
-
const [
|
|
32
|
-
const [
|
|
31
|
+
const [futureDaysQuantity, setFutureDaysQuantity] = useState(Math.ceil(futureDaysInitialQuantity));
|
|
32
|
+
const [pastDaysQuantity, setPastDaysQuantity] = useState(pastDatesVisible ? Math.ceil(pastDaysInitialQuantity) : 0);
|
|
33
33
|
const [paginationWidth, setPaginationWidth] = useState(0);
|
|
34
34
|
const [paginationHeight, setPaginationHeight] = useState(0);
|
|
35
35
|
const [xOffset, setXOffset] = useState(1);
|
|
@@ -49,6 +49,14 @@ const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChi
|
|
|
49
49
|
const [clientYPositionOnGrid, setClientYPositionOnGrid] = useState(undefined);
|
|
50
50
|
const [scrollingOnCourse, setScrollingOnCourse] = useState(false);
|
|
51
51
|
//UseEffects
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (pastDatesVisible) {
|
|
54
|
+
setPastDaysQuantity(Math.ceil(pastDaysInitialQuantity));
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
setPastDaysQuantity(0);
|
|
58
|
+
}
|
|
59
|
+
}, [pastDatesVisible, pastDaysInitialQuantity]);
|
|
52
60
|
useEffect(() => {
|
|
53
61
|
//Delegamos un cambio de estado a los primero renderes para evitar duplicado de llamadas a la API
|
|
54
62
|
if (!firtsCall) {
|
|
@@ -137,7 +145,7 @@ const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChi
|
|
|
137
145
|
});
|
|
138
146
|
}
|
|
139
147
|
setXOffset(Funciones.defineXOffset(xPosition, cellsWidth, chunkRenderX));
|
|
140
|
-
const fechaMinimaMilisegundos = Funciones.minimalDateMilliseconds(xPosition, cellsWidth,
|
|
148
|
+
const fechaMinimaMilisegundos = Funciones.minimalDateMilliseconds(xPosition, cellsWidth, pastDaysQuantity, initialDateOffset);
|
|
141
149
|
setMinimumVisibleDate(Funciones.defineMinimalVisibleDate(fechaMinimaMilisegundos, initialDateOffset));
|
|
142
150
|
if (updateList)
|
|
143
151
|
setUpdateList(false);
|
|
@@ -150,7 +158,7 @@ const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChi
|
|
|
150
158
|
chunkRenderX,
|
|
151
159
|
cellsWidth,
|
|
152
160
|
initialDateOffset,
|
|
153
|
-
|
|
161
|
+
pastDaysQuantity,
|
|
154
162
|
renderCoordinates.x,
|
|
155
163
|
renderCoordinates.y,
|
|
156
164
|
origin.x,
|
|
@@ -169,7 +177,10 @@ const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChi
|
|
|
169
177
|
}
|
|
170
178
|
}, [xPosition, yPosition, idTimeoutForCalls, waitTimeForCalls]);
|
|
171
179
|
useEffect(() => {
|
|
172
|
-
if (
|
|
180
|
+
if (scrollingOnCourse && callsOnScrollingMoves) {
|
|
181
|
+
callsOnScrollingMoves();
|
|
182
|
+
}
|
|
183
|
+
else if (!scrollingOnCourse && callsOnScrollingStops) {
|
|
173
184
|
callsOnScrollingStops();
|
|
174
185
|
}
|
|
175
186
|
// eslint-disable-next-line
|
|
@@ -188,46 +199,46 @@ const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChi
|
|
|
188
199
|
gridTemplateColumns: `${verticalAxisWidth}px`,
|
|
189
200
|
gridTemplateRows: `70px ${horizontalAxisHeight - 70}px calc(100% - ${horizontalAxisHeight}px`,
|
|
190
201
|
} },
|
|
191
|
-
React.createElement("div", { className: "
|
|
192
|
-
React.createElement("div", { className: "div-
|
|
193
|
-
React.createElement(
|
|
194
|
-
Funciones.scrollByDate(new Date(Number(Date.parse(sqlToJsDate(valorDeOpcion).toString()))), gridWrapperRef,
|
|
195
|
-
}, options: Funciones.defineMonthsArray(
|
|
196
|
-
React.createElement("button", { onClick: () => Funciones.scrollByDate(new Date(), gridWrapperRef,
|
|
197
|
-
React.createElement("div", { className: "div-
|
|
198
|
-
React.createElement("div", { className: "
|
|
199
|
-
React.createElement("div", { className: "
|
|
200
|
-
React.createElement("div", { ref: destiniesColumnRef, className: "
|
|
202
|
+
React.createElement("div", { className: "controls" },
|
|
203
|
+
React.createElement("div", { className: "div-dates-navigation" },
|
|
204
|
+
React.createElement(DropdownMonthNavigation, { minimumVisibleDate: minimumVisibleDate, onChangeAction: (valorDeOpcion) => {
|
|
205
|
+
Funciones.scrollByDate(new Date(Number(Date.parse(sqlToJsDate(valorDeOpcion).toString()))), gridWrapperRef, pastDaysQuantity, cellsWidth);
|
|
206
|
+
}, options: Funciones.defineMonthsArray(pastDaysQuantity, futureDaysQuantity, language) }),
|
|
207
|
+
React.createElement("button", { onClick: () => Funciones.scrollByDate(new Date(), gridWrapperRef, pastDaysQuantity, cellsWidth) }, language["Today"])),
|
|
208
|
+
aditionalControlsComponents && (React.createElement("div", { className: "div-aditional-controls-components" }, aditionalControlsComponents))),
|
|
209
|
+
React.createElement("div", { className: "div-upper-left-component" }, upperLeftComponent),
|
|
210
|
+
React.createElement("div", { className: "vertical-axis" },
|
|
211
|
+
React.createElement("div", { ref: destiniesColumnRef, className: "div-list-element-column", onScroll: (e) => {
|
|
201
212
|
// Se puede hacer funcion
|
|
202
213
|
if (gridWrapperRef.current !== null)
|
|
203
214
|
gridWrapperRef.current.scrollTop = e.target.scrollTop;
|
|
204
215
|
} },
|
|
205
216
|
React.createElement(ListElementsColumn, { listHeight: cellsHeight * listElementsIdsArray.length, yOffset: yOffset, elementsHeight: cellsHeight, idsArray: visibleListElementsIds, ReactListElementChildren: ReactListElementChildren }))),
|
|
206
|
-
React.createElement("div", { className: "
|
|
207
|
-
React.createElement("div", { className: "div-
|
|
208
|
-
React.createElement("button", { className: "
|
|
217
|
+
React.createElement("div", { className: "horizontal-axis" },
|
|
218
|
+
React.createElement("div", { className: "div-weeks-buttons" },
|
|
219
|
+
React.createElement("button", { className: "past-week-button", onClick: () => {
|
|
209
220
|
// Se puede hacer funcion
|
|
210
221
|
if (datesRowRef.current !== null)
|
|
211
222
|
datesRowRef.current.scroll({
|
|
212
223
|
left: datesRowRef.current.scrollLeft - cellsWidth * 7,
|
|
213
224
|
});
|
|
214
225
|
} },
|
|
215
|
-
React.createElement(
|
|
226
|
+
React.createElement(BsChevronLeft, null)),
|
|
216
227
|
React.createElement("button", { onClick: () => {
|
|
217
228
|
// Se puede hacer funcion
|
|
218
229
|
if (datesRowRef.current !== null)
|
|
219
230
|
datesRowRef.current.scroll({
|
|
220
231
|
left: datesRowRef.current.scrollLeft + cellsWidth * 7,
|
|
221
232
|
});
|
|
222
|
-
}, className: "
|
|
223
|
-
React.createElement(
|
|
224
|
-
React.createElement("div", { ref: datesRowRef, className: "div-
|
|
233
|
+
}, className: "next-week-button" },
|
|
234
|
+
React.createElement(BsChevronRight, null))),
|
|
235
|
+
React.createElement("div", { ref: datesRowRef, className: "div-dates-row", onScroll: (e) => {
|
|
225
236
|
if (gridWrapperRef.current !== null)
|
|
226
237
|
gridWrapperRef.current.scrollLeft = e.target.scrollLeft;
|
|
227
238
|
} },
|
|
228
|
-
React.createElement(DatesRow, { visibleDates: visibleDates, width: (
|
|
229
|
-
React.createElement("div", { className: "div-
|
|
230
|
-
React.createElement("div", { ref: gridWrapperRef, className: "
|
|
239
|
+
React.createElement(DatesRow, { visibleDates: visibleDates, width: (pastDaysQuantity + futureDaysQuantity) * cellsWidth, height: 64, cellsWidth: cellsWidth, cellsHeight: 64, offset: xOffset, language: language }))),
|
|
240
|
+
React.createElement("div", { className: "div-main-container" },
|
|
241
|
+
React.createElement("div", { ref: gridWrapperRef, className: "main-container", onScroll: (e) => {
|
|
231
242
|
if (datesRowRef.current !== null) {
|
|
232
243
|
datesRowRef.current.scrollLeft = e.target.scrollLeft;
|
|
233
244
|
setXPosition(e.target.scrollLeft);
|
|
@@ -236,15 +247,16 @@ const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChi
|
|
|
236
247
|
destiniesColumnRef.current.scrollTop = e.target.scrollTop;
|
|
237
248
|
setYPosition(e.target.scrollTop);
|
|
238
249
|
}
|
|
239
|
-
if (
|
|
250
|
+
if (dynamicDaysQuantity &&
|
|
240
251
|
e.target.scrollLeft +
|
|
241
252
|
e.target.offsetWidth >
|
|
242
|
-
(
|
|
243
|
-
|
|
253
|
+
(pastDaysQuantity + futureDaysQuantity) * cellsWidth - cellsWidth) {
|
|
254
|
+
setFutureDaysQuantity(futureDaysQuantity + 1);
|
|
244
255
|
}
|
|
245
|
-
if (
|
|
256
|
+
if (pastDatesVisible &&
|
|
257
|
+
dynamicDaysQuantity &&
|
|
246
258
|
e.target.scrollLeft < cellsWidth) {
|
|
247
|
-
|
|
259
|
+
setPastDaysQuantity(pastDaysQuantity + 1);
|
|
248
260
|
e.target.scrollLeft = cellsWidth * 3;
|
|
249
261
|
}
|
|
250
262
|
Funciones.authomaticScrollInGrid(draggingOverDateCells, clientXPositionOnGrid, clientYPositionOnGrid, cellsWidth, cellsHeight, e.target);
|
|
@@ -257,6 +269,6 @@ const Multicalendar = ({ multicalendarId, ReactCellChildren, ReactListElementChi
|
|
|
257
269
|
Funciones.startAuthomaticScrollInGrid(draggingOverDateCells, x, y, cellsWidth, cellsHeight, gridWrapperRef);
|
|
258
270
|
}
|
|
259
271
|
} },
|
|
260
|
-
React.createElement(DatesGrid, { gridWidth: (
|
|
272
|
+
React.createElement(DatesGrid, { gridWidth: (pastDaysQuantity + futureDaysQuantity) * cellsWidth, gridHeight: cellsHeight * listElementsIdsArray.length, xOffset: xOffset, yOffset: yOffset, cellsWidth: cellsWidth, cellsHeight: cellsHeight, visibleListElementsIdsArray: visibleListElementsIds, visibleDates: visibleDates, ReactCellChildren: ReactCellChildren })))));
|
|
261
273
|
};
|
|
262
274
|
export default Multicalendar;
|
|
@@ -63,7 +63,7 @@ export declare function defineListElementsArrayVisibleList(paginationHeight: num
|
|
|
63
63
|
* @param language language object for traductions
|
|
64
64
|
* @returns string of the date, month followed by year
|
|
65
65
|
*/
|
|
66
|
-
export declare function defineMonthsArray(leftPagination: number, language: languageType): JSX.Element[];
|
|
66
|
+
export declare function defineMonthsArray(leftPagination: number, rightPagination: number, language: languageType): JSX.Element[];
|
|
67
67
|
/**
|
|
68
68
|
*
|
|
69
69
|
* @param holdingClic boolean to know if mouse id down
|
|
@@ -95,7 +95,7 @@ export function defineListElementsArrayVisibleList(paginationHeight, chunkRender
|
|
|
95
95
|
let array = [];
|
|
96
96
|
for (let index = 0; index < paginationHeight + chunkRenderY * 2; index++) {
|
|
97
97
|
if (listElementsIds[index + offset] && index + offset >= 0)
|
|
98
|
-
array[index] =
|
|
98
|
+
array[index] = listElementsIds[index + offset];
|
|
99
99
|
}
|
|
100
100
|
return array;
|
|
101
101
|
}
|
|
@@ -105,9 +105,9 @@ export function defineListElementsArrayVisibleList(paginationHeight, chunkRender
|
|
|
105
105
|
* @param language language object for traductions
|
|
106
106
|
* @returns string of the date, month followed by year
|
|
107
107
|
*/
|
|
108
|
-
export function defineMonthsArray(leftPagination, language) {
|
|
108
|
+
export function defineMonthsArray(leftPagination, rightPagination, language) {
|
|
109
109
|
let minimumDateMilliseconds = Date.parse(new Date().toString()) - leftPagination * millisecondsOfOneDay;
|
|
110
|
-
let maximumDateMilliseconds = Date.parse(new Date().toString()) +
|
|
110
|
+
let maximumDateMilliseconds = Date.parse(new Date().toString()) + rightPagination * millisecondsOfOneDay;
|
|
111
111
|
let array = [];
|
|
112
112
|
let sideArray = [];
|
|
113
113
|
for (let index = 0; index * millisecondsOfOneDay + minimumDateMilliseconds < maximumDateMilliseconds; index++) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
import "./Cell.css";
|
|
3
3
|
import { CellPropsType } from "./types";
|
|
4
|
-
declare const
|
|
5
|
-
export default
|
|
4
|
+
declare const _default: React.MemoExoticComponent<({ date, listElementId, width, heigth, ReactCellChildren }: CellPropsType) => JSX.Element>;
|
|
5
|
+
export default _default;
|
|
@@ -4,4 +4,4 @@ const Cell = ({ date, listElementId, width, heigth, ReactCellChildren }) => {
|
|
|
4
4
|
return (React.createElement("div", { className: "cell", style: { width: width, height: heigth } },
|
|
5
5
|
React.createElement(ReactCellChildren, { date: date, listElementId: listElementId })));
|
|
6
6
|
};
|
|
7
|
-
export default Cell;
|
|
7
|
+
export default React.memo(Cell);
|
|
@@ -30,7 +30,7 @@ const DatesRow = ({ visibleDates, width, height, cellsWidth, cellsHeight, offset
|
|
|
30
30
|
height: height,
|
|
31
31
|
paddingLeft: offset * cellsWidth,
|
|
32
32
|
} }, visibleDates.length > 0 &&
|
|
33
|
-
visibleDates.map((dateObject) => (React.createElement("div", { className: "date-cell", style: {
|
|
33
|
+
visibleDates.map((dateObject) => (React.createElement("div", { key: dateObject.toString(), className: "date-cell", style: {
|
|
34
34
|
width: cellsWidth,
|
|
35
35
|
height: cellsHeight,
|
|
36
36
|
} },
|
package/dist/esm/components/Multicalendar/subcomponents/individuals/ListElement/ListElement.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
2
|
import "./ListElement.css";
|
|
3
3
|
import { ListElementPropsType } from "./types";
|
|
4
|
-
declare const
|
|
5
|
-
export default
|
|
4
|
+
declare const _default: React.MemoExoticComponent<({ listElementId, ReactListElementChildren, height, }: ListElementPropsType) => JSX.Element>;
|
|
5
|
+
export default _default;
|
|
@@ -6,18 +6,22 @@ export interface MulticalendarPropsType {
|
|
|
6
6
|
ReactListElementChildren: ReactListElementChildrenType;
|
|
7
7
|
listElementsIdsArray: string[] | number[];
|
|
8
8
|
language: languageType;
|
|
9
|
+
pastDatesVisible?: boolean
|
|
9
10
|
cellsWidth?: number;
|
|
10
11
|
cellsHeight?: number;
|
|
11
12
|
verticalAxisWidth?: number;
|
|
12
13
|
horizontalAxisHeight?: number;
|
|
13
|
-
|
|
14
|
+
pastDaysInitialQuantity?: number;
|
|
15
|
+
futureDaysInitialQuantity?: number;
|
|
14
16
|
chunkRenderX?: number;
|
|
15
17
|
chunkRenderY?: number;
|
|
16
18
|
draggingOverDateCells?: boolean;
|
|
17
|
-
|
|
18
|
-
logoUrl?: string;
|
|
19
|
+
dynamicDaysQuantity?: boolean;
|
|
19
20
|
waitTimeForCalls?: number;
|
|
21
|
+
callsOnScrollingMoves?: Function;
|
|
20
22
|
callsOnScrollingStops?: Function;
|
|
23
|
+
aditionalControlsComponents?: JSX.Element | JSX.Element[]
|
|
24
|
+
upperLeftComponent?: JSX.Element
|
|
21
25
|
}
|
|
22
26
|
|
|
23
27
|
export interface RenderCoordinatesType {
|
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
const spanish = {
|
|
2
|
-
"of": "of",
|
|
3
|
-
"Automatized": "Automatized",
|
|
4
|
-
"properties": "properties",
|
|
5
|
-
"stablishment": "stablishment",
|
|
6
|
-
"stablishments": "stablishments",
|
|
7
|
-
"Loading": "Loading",
|
|
8
2
|
"Today": "Today",
|
|
9
|
-
"Filters": "Filters",
|
|
10
|
-
"Search": "Search",
|
|
11
|
-
"Property Manager": "Property Manager",
|
|
12
|
-
"Zones": "Zones",
|
|
13
|
-
"Properties": "Properties",
|
|
14
|
-
"Categories": "Categories",
|
|
15
|
-
"Clear filters": "Clear filters",
|
|
16
3
|
"monday": "monday",
|
|
17
4
|
"tuesday": "tuesday",
|
|
18
5
|
"wednesday": "wednesday",
|
|
@@ -32,162 +19,5 @@ const spanish = {
|
|
|
32
19
|
"october": "october",
|
|
33
20
|
"november": "november",
|
|
34
21
|
"december": "december",
|
|
35
|
-
"days": "days",
|
|
36
|
-
"Reload": "Reload",
|
|
37
|
-
"Reload properties": "Reload properties",
|
|
38
|
-
"Reload prices": "Reload prices",
|
|
39
|
-
"Competitors": "Competitors",
|
|
40
|
-
"Quick view": "Quick view",
|
|
41
|
-
"View KPIs": "View KPIs",
|
|
42
|
-
"Recommended price": "Recommended price",
|
|
43
|
-
"Minimal price": "Minimal price",
|
|
44
|
-
"Base price": "Base price",
|
|
45
|
-
"PMS price": "PMS price",
|
|
46
|
-
"Change by quantity": "Change by quantity",
|
|
47
|
-
"Change by percentage": "Change by percentage",
|
|
48
|
-
"Competitors price": "Competitors price",
|
|
49
|
-
"Minimal stay": "Minimal stay",
|
|
50
|
-
"Availability": "Availability",
|
|
51
|
-
"Auto adjustment": "Auto adjustment",
|
|
52
|
-
"Ajust leftout days": "Ajust leftout days",
|
|
53
|
-
"Send prices to OTAs": "Send prices to OTAs",
|
|
54
|
-
"Update competitors prices": "Update competitors prices",
|
|
55
|
-
"Go back to original values": "Go back to original values",
|
|
56
|
-
"Updating competitors prices": "Updating competitors prices",
|
|
57
|
-
"Select price type": "Select price type",
|
|
58
|
-
"Base": "Base",
|
|
59
|
-
"Recommended": "Recommended",
|
|
60
|
-
"Minimal": "Minimal",
|
|
61
|
-
"It is the ideal price of the market": "It is the ideal price of the market",
|
|
62
|
-
"It is the price desired by the property manager": "It is the price desired by the property manager",
|
|
63
|
-
"It is the highest value between recommended and base price": "It is the highest value between recommended and base price",
|
|
64
|
-
"Go back": "Go back",
|
|
65
|
-
"Apply": "Apply",
|
|
66
|
-
"Send": "Send",
|
|
67
|
-
"Cancel": "Cancel",
|
|
68
|
-
"Schedule": "Schedule",
|
|
69
|
-
"Menu": "Menu",
|
|
70
|
-
"Multidashboard": "Multidashboard",
|
|
71
|
-
"Settings": "Settings",
|
|
72
|
-
"General report": "General report",
|
|
73
|
-
"Property resume": "Property resume",
|
|
74
|
-
"Price settings": "Price settings",
|
|
75
|
-
"Update competitors prices up to 1 year": "Update competitors prices up to 1 year",
|
|
76
|
-
"Performance manager": "Performance manager",
|
|
77
|
-
"Pickup": "Pickup",
|
|
78
|
-
"Forecast": "Forecast",
|
|
79
|
-
"Rate shopper": "Rate shopper",
|
|
80
|
-
"Aspirational compset": "Aspirational compset",
|
|
81
|
-
"Individual dashboard": "Individual dashboard",
|
|
82
|
-
"Individual report": "Individual report",
|
|
83
|
-
"Schedule automatic prices sends": "Schedule automatic prices sends",
|
|
84
|
-
"Send new prices now": "Send new prices now",
|
|
85
|
-
"Select date range": "Select date range",
|
|
86
|
-
"Custom range": "Custom range",
|
|
87
|
-
"Generate prices Excel file": "Generate prices Excel file",
|
|
88
|
-
"Select channels, Mark Up and currency": "Select channels, Mark Up and currency",
|
|
89
|
-
"Channel": "Channel",
|
|
90
|
-
"Mark Up": "Mark Up",
|
|
91
|
-
"MLOS": "MLOS",
|
|
92
|
-
"Currency": "Currency",
|
|
93
|
-
"Add channel": "Add channel",
|
|
94
|
-
"Export to Excel": "Export to Excel",
|
|
95
|
-
"Save settings": "Save settings",
|
|
96
|
-
"Controls": "Controls",
|
|
97
|
-
"General data": "General data",
|
|
98
|
-
"Work days": "Work days",
|
|
99
|
-
"Weekends and holydays": "Weekends and holydays",
|
|
100
|
-
"Fixed expenses": "Fixed expenses",
|
|
101
|
-
"Varaible expenses": "Varaible expenses",
|
|
102
|
-
"Local currency": "Local currency",
|
|
103
|
-
"Symbol": "Symbol",
|
|
104
|
-
"Cleaning fee": "Cleaning fee",
|
|
105
|
-
"Weekdays discounts": "Weekdays discounts",
|
|
106
|
-
"Seasons discounts": "Seasons discounts",
|
|
107
|
-
"High": "High",
|
|
108
|
-
"Medium high": "Medium high",
|
|
109
|
-
"Medium": "Medium",
|
|
110
|
-
"Medium low": "Medium low",
|
|
111
|
-
"Low": "Low",
|
|
112
|
-
"Left out days": "Left out days",
|
|
113
|
-
"Release": "Release",
|
|
114
|
-
"Increase": "Increase",
|
|
115
|
-
"Occupation rules": "Occupation rules",
|
|
116
|
-
"Apply rules": "Apply rules",
|
|
117
|
-
"Max OCC": "Max OCC",
|
|
118
|
-
"Max ADR": "Max ADR",
|
|
119
|
-
"Final autoprice": "Final autoprice",
|
|
120
|
-
"Release (N days)": "Release (N días)",
|
|
121
|
-
"% Occupation": "% Occupation",
|
|
122
|
-
"% Discount": "% Discount",
|
|
123
|
-
"Maximum": "Maximum",
|
|
124
|
-
"Pax. Mapped": "Pax. Mapped",
|
|
125
|
-
"Minimal occ.": "Minimal occ.",
|
|
126
|
-
"Maxmimum occ.": "Maxmimum occ.",
|
|
127
|
-
"Type of adjustment": "Type of adjustment",
|
|
128
|
-
"Personalized": "Personalized",
|
|
129
|
-
"Price per guest": "Price per guest",
|
|
130
|
-
"Occupation": "Occupation",
|
|
131
|
-
"Pax occupation": "Pax occupation",
|
|
132
|
-
"Price": "Price",
|
|
133
|
-
"Guests": "Guests",
|
|
134
|
-
"Regular price rised by:": "Regular price rised by:",
|
|
135
|
-
"Regular price decreased by:": "Regular price decreased by:",
|
|
136
|
-
"PAX price": "PAX price",
|
|
137
|
-
"Go back to Multiprice": "Go back to Multiprice",
|
|
138
|
-
"Seasons": "Seasons",
|
|
139
|
-
"1º Fortnight": "1º Fortnight",
|
|
140
|
-
"2º Fortnight": "2º Fortnight",
|
|
141
|
-
"Workdays": "Workdays",
|
|
142
|
-
"Weekend": "Weekend",
|
|
143
|
-
"Go back to initial price settings": "Go back to initial price settings",
|
|
144
|
-
"Settings saved succesfully": "Settings saved succesfully",
|
|
145
|
-
"Seasons and minimal stays saved succesfully": "Seasons and minimal stays saved succesfully",
|
|
146
|
-
"An error has ocurred, try again later": "An error has ocurred, try again later",
|
|
147
|
-
"All task have been succesfully achived. We are waiting to recieve data from the OTA. This task can take up to 15min.": "All task have been succesfully achived. We are waiting to recieve data from the OTA. This task can take up to 15min.",
|
|
148
|
-
"It was no possible to send the task to update the competitors prices": "It was no possible to send the task to update the competitors prices",
|
|
149
|
-
"Server is under mantanance, please wait until the service is brought back to you": "Server is under mantanance, please wait until the service is brought back to you",
|
|
150
|
-
"There has been an error, please try again": "There has been an error, please try again",
|
|
151
|
-
"prices will be sent periodically": "prices will be sent periodically",
|
|
152
|
-
"Selected dates": "Selected dates",
|
|
153
|
-
"Days range": "Days range",
|
|
154
|
-
"Revenue": "Revenue",
|
|
155
|
-
"ADR": "ADR",
|
|
156
|
-
"Appliable days of the week": "Appliable days of the week",
|
|
157
|
-
"Manual edition": "Manual edition",
|
|
158
|
-
"Period": "Period",
|
|
159
|
-
"Protect prices": "Protect prices",
|
|
160
|
-
"Protect MLOS": "Protect MLOS",
|
|
161
|
-
"Unprotect prices": "Unprotect prices",
|
|
162
|
-
"Unprotect MLOS": "Unprotect MLOS",
|
|
163
|
-
"Import prices from PMS": "Import prices from PMS",
|
|
164
|
-
"Settings type": "Settings type",
|
|
165
|
-
"Customized": "Customized",
|
|
166
|
-
"Prices have been successfully sent": "Prices have been successfully sent",
|
|
167
|
-
"There has been an error while trying to send the selected prices, please try again later": "There has been an error while trying to send the selected prices, please try again later",
|
|
168
|
-
"Copy settings to other properties": "Copy settings to other properties",
|
|
169
|
-
"Select the properties to which the settings will be copied": "Select the properties to which the settings will be copied",
|
|
170
|
-
"NOTE: All the settings on the selected properties will be overwriten, previous settings in each of the will be lost": "NOTE: All the settings on the selected properties will be overwriten, previous settings in each of the will be lost",
|
|
171
|
-
"Request import": "Request import",
|
|
172
|
-
"Atention!": "Atention!",
|
|
173
|
-
"You are trying to lower a price below the minimal price, this can't be done, the price will stay at the minimum": "You are trying to lower a price below the minimal price, this can't be done, the price will stay at the minimum",
|
|
174
|
-
"Don't show this again": "Don't show this again",
|
|
175
|
-
"Import successfully requested, this task can take up to 10 minutes": "Import successfully requested, this task can take up to 10 minutes",
|
|
176
|
-
"Import requested have failed, please try again later": "Import requested have failed, please try again later",
|
|
177
|
-
"Some custom changes are not protected": "Some custom changes are not protected",
|
|
178
|
-
"There are unprotected custom changes that will be sent. Remember to protect any change in base price or minimal stay, otherwise the changes will be lost on further calculus": "There are unprotected custom changes that will be sent. Remember to protect any change in base price or minimal stay, otherwise the changes will be lost on further calculus",
|
|
179
|
-
"Protect changes and send": "Protect changes and send",
|
|
180
|
-
"Send changes without protecting": "Send changes without protecting",
|
|
181
|
-
"Please define base price values before saving": "Please define base price values before saving",
|
|
182
|
-
"Please define pax mapped before saving": "Please define pax mapped before saving",
|
|
183
|
-
"Do you want to save your changes?": "Do you want to save your changes?",
|
|
184
|
-
"A request will be sent to save your settings": "A request will be sent to save your settings",
|
|
185
|
-
"Minimal price by season": "Minimal price by season",
|
|
186
|
-
"Minimum price according to costs": "Minimum price according to costs",
|
|
187
|
-
"Break even": "Break even",
|
|
188
|
-
"The minimal price of a season can't be lower than the minimal price according to costs": "The minimal price of a season can't be lower than the minimal price according to costs",
|
|
189
|
-
"Season": "Season",
|
|
190
|
-
"Event": "Event",
|
|
191
|
-
"Holiday": "Holiday",
|
|
192
22
|
};
|
|
193
23
|
export default spanish;
|