@movvjs/svelte-schedule-view 0.2.2 → 0.2.3-revert-terminal
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/.svelte-kit/__package__/i18n/locales/en.json +1 -3
- package/.svelte-kit/__package__/i18n/locales/ko.json +1 -3
- package/.svelte-kit/__package__/i18n/locales/vi.json +1 -3
- package/.svelte-kit/__package__/i18n/locales/zh-cn.json +1 -3
- package/.svelte-kit/__package__/i18n/locales/zh-tw.json +1 -3
- package/.svelte-kit/__package__/schedule-view/BookingInfo.svelte +14 -47
- package/.svelte-kit/__package__/schedule-view/Schedule.svelte +30 -22
- package/.svelte-kit/__package__/schedule-view/api/common/index.d.ts +0 -1
- package/.svelte-kit/__package__/schedule-view/api/common/index.js +0 -9
- package/.svelte-kit/__package__/schedule-view/assets/scss/indie_booking.scss +1 -58
- package/.svelte-kit/__package__/schedule-view/components/flight-search/FlightSearch.svelte +120 -193
- package/.svelte-kit/__package__/schedule-view/components/flight-search/FlightSearch.svelte.d.ts +2 -10
- package/.svelte-kit/__package__/schedule-view/stores/booking.d.ts +0 -2
- package/.svelte-kit/__package__/schedule-view/stores/booking.js +0 -2
- package/.svelte-kit/__package__/schedule-view/types/flight.d.ts +1 -1
- package/.svelte-kit/generated/server/internal.js +1 -1
- package/dist/i18n/locales/en.json +1 -3
- package/dist/i18n/locales/ko.json +1 -3
- package/dist/i18n/locales/vi.json +1 -3
- package/dist/i18n/locales/zh-cn.json +1 -3
- package/dist/i18n/locales/zh-tw.json +1 -3
- package/dist/schedule-view/BookingInfo.svelte +14 -47
- package/dist/schedule-view/Schedule.svelte +30 -22
- package/dist/schedule-view/api/common/index.d.ts +0 -1
- package/dist/schedule-view/api/common/index.js +0 -9
- package/dist/schedule-view/assets/scss/indie_booking.scss +1 -58
- package/dist/schedule-view/components/flight-search/FlightSearch.svelte +120 -193
- package/dist/schedule-view/components/flight-search/FlightSearch.svelte.d.ts +2 -10
- package/dist/schedule-view/stores/booking.d.ts +0 -2
- package/dist/schedule-view/stores/booking.js +0 -2
- package/dist/schedule-view/types/flight.d.ts +1 -1
- package/package.json +1 -1
- package/src/lib/i18n/locales/en.json +1 -3
- package/src/lib/i18n/locales/ko.json +1 -3
- package/src/lib/i18n/locales/vi.json +1 -3
- package/src/lib/i18n/locales/zh-cn.json +1 -3
- package/src/lib/i18n/locales/zh-tw.json +1 -3
- package/src/lib/schedule-view/BookingInfo.svelte +15 -49
- package/src/lib/schedule-view/Schedule.svelte +31 -23
- package/src/lib/schedule-view/api/common/index.ts +0 -10
- package/src/lib/schedule-view/assets/scss/indie_booking.scss +1 -58
- package/src/lib/schedule-view/components/flight-search/FlightSearch.svelte +126 -208
- package/src/lib/schedule-view/stores/booking.ts +0 -6
- package/src/lib/schedule-view/types/flight.ts +1 -1
- package/src/routes/development/+page.svelte +1 -1
- package/sync-git.sh +74 -29
|
@@ -3,12 +3,12 @@ import { padStart, range } from "lodash-es";
|
|
|
3
3
|
import { fade } from "svelte/transition";
|
|
4
4
|
import { t } from "../../../i18n";
|
|
5
5
|
import { dayjs } from "../../../dayjs";
|
|
6
|
-
import { BookingAPI
|
|
6
|
+
import { BookingAPI } from "../../api";
|
|
7
7
|
import { alert } from "../notifications";
|
|
8
8
|
let on = false;
|
|
9
9
|
let type = "AUTO";
|
|
10
10
|
let dateTime;
|
|
11
|
-
let
|
|
11
|
+
let iata;
|
|
12
12
|
let loading = false;
|
|
13
13
|
let resolveFn;
|
|
14
14
|
let arrivalDate;
|
|
@@ -29,22 +29,15 @@ let manualInput = "";
|
|
|
29
29
|
let estimateDate;
|
|
30
30
|
let hour = 0;
|
|
31
31
|
let minute = 0;
|
|
32
|
-
let terminals = [];
|
|
33
|
-
let arrivalTerminal;
|
|
34
32
|
export async function open(options) {
|
|
35
33
|
return new Promise(async (resolve, reject) => {
|
|
36
34
|
if (!options?.dateTime) {
|
|
37
35
|
reject(new Error($t("flight.pleaseSelectDate")));
|
|
38
36
|
return;
|
|
39
37
|
}
|
|
40
|
-
if (!options?.airport?.iata && !options?.airport?.code) {
|
|
41
|
-
reject(new Error($t("flight.pleaseSelectAnAirport")));
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
38
|
resolveFn = resolve;
|
|
45
39
|
dateTime = options.dateTime;
|
|
46
|
-
|
|
47
|
-
airport.code = options.airport?.code;
|
|
40
|
+
iata = options.iata;
|
|
48
41
|
manualInput = "";
|
|
49
42
|
estimateDate = dayjs(dateTime);
|
|
50
43
|
hour = estimateDate.hour();
|
|
@@ -52,28 +45,15 @@ export async function open(options) {
|
|
|
52
45
|
flights = [];
|
|
53
46
|
page = 1;
|
|
54
47
|
arrivalDate = dayjs(dateTime).minute(0);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
changeType("TERMINAL");
|
|
48
|
+
if (iata) {
|
|
49
|
+
type = "AUTO";
|
|
50
|
+
fetchFlights();
|
|
59
51
|
} else {
|
|
60
|
-
|
|
61
|
-
changeType("AUTO");
|
|
62
|
-
} else {
|
|
63
|
-
changeType("MANUAL");
|
|
64
|
-
}
|
|
52
|
+
type = "MANUAL";
|
|
65
53
|
}
|
|
66
54
|
on = true;
|
|
67
55
|
});
|
|
68
56
|
}
|
|
69
|
-
function changeType(value) {
|
|
70
|
-
type = value;
|
|
71
|
-
if (type === "TERMINAL" || type === "MANUAL") {
|
|
72
|
-
fetchTerminals();
|
|
73
|
-
} else if (type === "AUTO") {
|
|
74
|
-
fetchFlights();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
57
|
function close() {
|
|
78
58
|
on = false;
|
|
79
59
|
}
|
|
@@ -81,7 +61,7 @@ async function fetchFlights() {
|
|
|
81
61
|
loading = true;
|
|
82
62
|
try {
|
|
83
63
|
flights = await BookingAPI.searchFlights({
|
|
84
|
-
iata
|
|
64
|
+
iata,
|
|
85
65
|
ymd: arrivalDate.format("YYYY-MM-DD"),
|
|
86
66
|
time: arrivalDate.hour()
|
|
87
67
|
});
|
|
@@ -92,17 +72,6 @@ async function fetchFlights() {
|
|
|
92
72
|
loading = false;
|
|
93
73
|
}
|
|
94
74
|
}
|
|
95
|
-
async function fetchTerminals() {
|
|
96
|
-
try {
|
|
97
|
-
loading = true;
|
|
98
|
-
terminals = await CommonAPI.getPoiTerminals(airport.code);
|
|
99
|
-
} catch (e) {
|
|
100
|
-
alert.open({ text: e.message });
|
|
101
|
-
terminals = [];
|
|
102
|
-
} finally {
|
|
103
|
-
loading = false;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
75
|
async function subtractHour() {
|
|
107
76
|
arrivalDate = arrivalDate.subtract(1, "hour");
|
|
108
77
|
fetchFlights();
|
|
@@ -137,26 +106,12 @@ function save() {
|
|
|
137
106
|
return;
|
|
138
107
|
}
|
|
139
108
|
const manualFlight = {
|
|
140
|
-
iata
|
|
109
|
+
iata,
|
|
141
110
|
ymd: estimateDate.format("YYYY-MM-DD HH:mm:ss"),
|
|
142
111
|
name: manualInput,
|
|
143
|
-
selectType: "MANUAL"
|
|
144
|
-
arrivalTerminal
|
|
112
|
+
selectType: "MANUAL"
|
|
145
113
|
};
|
|
146
114
|
resolveFn(manualFlight);
|
|
147
|
-
} else if (type === "TERMINAL") {
|
|
148
|
-
if (!arrivalTerminal) {
|
|
149
|
-
alert.open({ text: $t("flight.selectTerminal") });
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
const terminalFlight = {
|
|
153
|
-
iata: airport.iata ?? null,
|
|
154
|
-
ymd: estimateDate.format("YYYY-MM-DD HH:mm:ss"),
|
|
155
|
-
name: null,
|
|
156
|
-
selectType: "MANUAL",
|
|
157
|
-
arrivalTerminal
|
|
158
|
-
};
|
|
159
|
-
resolveFn(terminalFlight);
|
|
160
115
|
}
|
|
161
116
|
close();
|
|
162
117
|
}
|
|
@@ -173,160 +128,132 @@ function save() {
|
|
|
173
128
|
</div>
|
|
174
129
|
|
|
175
130
|
<div class="contents pdMg">
|
|
176
|
-
|
|
131
|
+
<div class="indie_tab_square_01_wrapper">
|
|
132
|
+
<ul class="indie_tab_square_01">
|
|
133
|
+
{#if iata}
|
|
134
|
+
<li class:on={type === 'AUTO'}><a href={null} on:click={() => (type = 'AUTO')}>{$t('flight.selectFlightNo')}</a></li>
|
|
135
|
+
{/if}
|
|
136
|
+
<li class:on={type === 'MANUAL'}><a href={null} on:click={() => (type = 'MANUAL')}>{$t('flight.editManually')}</a></li>
|
|
137
|
+
</ul>
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
{#if type === 'AUTO'}
|
|
141
|
+
<div class="indie_flight_name_top_infos">
|
|
142
|
+
<div class="infos">
|
|
143
|
+
<p class="sbj">{$t('flight.arrivalDate')}</p>
|
|
144
|
+
<p class="date">
|
|
145
|
+
<span>{dayjs(arrivalDate).format('ll')}</span>
|
|
146
|
+
<span>{dayjs(arrivalDate).format('HH:mm')}~{dayjs(arrivalDate).add(1, 'hour').format('HH:mm')}</span>
|
|
147
|
+
</p>
|
|
148
|
+
</div>
|
|
149
|
+
<div class="btns">
|
|
150
|
+
<button type="button" class="indie_btn_squre only prev" on:click={() => subtractHour()}>이전</button>
|
|
151
|
+
<button type="button" class="indie_btn_squre only next" on:click={() => addHour()}>다음</button>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
|
|
177
155
|
{#if loading}
|
|
178
156
|
<div class="indie_loading_common_box">
|
|
179
157
|
<div class="indie_loader" />
|
|
180
158
|
</div>
|
|
159
|
+
{:else if !loading && flights.length === 0}
|
|
160
|
+
<div class="indie_search_none_common_box">
|
|
161
|
+
<p>{$t('flight.noFlightsWereFound')}</p>
|
|
162
|
+
</div>
|
|
181
163
|
{:else}
|
|
182
|
-
<
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
164
|
+
<div bind:this={contentsEl$} class="indie_tab_squre_01_cont" in:fade={{ duration: 100, delay: 100 }}>
|
|
165
|
+
<!-- 항공편 선택 -->
|
|
166
|
+
<ul class="indie_flight_name_select_list">
|
|
167
|
+
{#each flightsByPaging as item (item.name)}
|
|
168
|
+
<li in:fade={{ duration: 100, delay: 100 }}>
|
|
169
|
+
<div class="check">
|
|
170
|
+
<input
|
|
171
|
+
bind:group={flight}
|
|
172
|
+
value={item}
|
|
173
|
+
type="radio"
|
|
174
|
+
class="indie_radio_box xs flight_b"
|
|
175
|
+
name="f_choice"
|
|
176
|
+
id="ch_{item.name}" />
|
|
177
|
+
<label for="ch_{item.name}">
|
|
178
|
+
<p class="flight">{item.name}</p>
|
|
179
|
+
<div class="flight_time_box">
|
|
180
|
+
<dl class="start">
|
|
181
|
+
<dt>{item.departureAirport}</dt>
|
|
182
|
+
<dd>
|
|
183
|
+
<!-- TODO: 검색일 이전날짜인 경우 표현 -->
|
|
184
|
+
{#if dayjs(item.departure).isBefore(arrivalDate, 'day')}
|
|
185
|
+
<b>D-{arrivalDate.diff(dayjs(item.departure).format('YYYY-MM-DD'), 'd')}</b>
|
|
186
|
+
{/if}
|
|
187
|
+
{dayjs(item.departure).format('HH:mm')}
|
|
188
|
+
</dd>
|
|
189
|
+
</dl>
|
|
198
190
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
<button type="button" class="indie_btn_squre only prev" on:click={() => subtractHour()}>이전</button>
|
|
210
|
-
<button type="button" class="indie_btn_squre only next" on:click={() => addHour()}>다음</button>
|
|
211
|
-
</div>
|
|
191
|
+
<dl class="end">
|
|
192
|
+
<dt>{item.arrivalAirport}</dt>
|
|
193
|
+
<dd>{dayjs(item.arrive).format('HH:mm')}</dd>
|
|
194
|
+
</dl>
|
|
195
|
+
</div>
|
|
196
|
+
</label>
|
|
197
|
+
</div>
|
|
198
|
+
</li>
|
|
199
|
+
{/each}
|
|
200
|
+
</ul>
|
|
212
201
|
</div>
|
|
213
202
|
|
|
214
|
-
{
|
|
215
|
-
<div class="
|
|
216
|
-
<
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
value={item}
|
|
232
|
-
type="radio"
|
|
233
|
-
class="indie_radio_box xs flight_b"
|
|
234
|
-
name="f_choice"
|
|
235
|
-
id="ch_{item.name}" />
|
|
236
|
-
<label for="ch_{item.name}">
|
|
237
|
-
<p class="flight">{item.name}</p>
|
|
238
|
-
<div class="flight_time_box">
|
|
239
|
-
<dl class="start">
|
|
240
|
-
<dt>{item.departureAirport}</dt>
|
|
241
|
-
<dd>
|
|
242
|
-
<!-- TODO: 검색일 이전날짜인 경우 표현 -->
|
|
243
|
-
{#if dayjs(item.departure).isBefore(arrivalDate, 'day')}
|
|
244
|
-
<b>D-{arrivalDate.diff(dayjs(item.departure).format('YYYY-MM-DD'), 'd')}</b>
|
|
245
|
-
{/if}
|
|
246
|
-
{dayjs(item.departure).format('HH:mm')}
|
|
247
|
-
</dd>
|
|
248
|
-
</dl>
|
|
249
|
-
|
|
250
|
-
<dl class="end">
|
|
251
|
-
<dt>{item.arrivalAirport}</dt>
|
|
252
|
-
<dd>{dayjs(item.arrive).format('HH:mm')}</dd>
|
|
253
|
-
</dl>
|
|
254
|
-
</div>
|
|
255
|
-
</label>
|
|
256
|
-
</div>
|
|
257
|
-
</li>
|
|
258
|
-
{/each}
|
|
259
|
-
</ul>
|
|
203
|
+
<div class="indie_flight_paing_box" in:fade={{ duration: 100, delay: 100 }}>
|
|
204
|
+
<div class="indie_paging_b">
|
|
205
|
+
<button
|
|
206
|
+
type="button"
|
|
207
|
+
class="pg_left"
|
|
208
|
+
style:visibility={page > 1 ? 'visible' : 'hidden'}
|
|
209
|
+
on:click={() => (page = page > 1 ? page - 1 : page)}>이전</button>
|
|
210
|
+
<input readonly type="text" class="txt_paging" value={page} />
|
|
211
|
+
<span>/</span>
|
|
212
|
+
<span class="last">{totalPage}</span>
|
|
213
|
+
<button
|
|
214
|
+
type="button"
|
|
215
|
+
class="pg_right"
|
|
216
|
+
style:visibility={page < totalPage ? 'visible' : 'hidden'}
|
|
217
|
+
on:click={() => (page = page < totalPage ? page + 1 : page)}>
|
|
218
|
+
다음
|
|
219
|
+
</button>
|
|
260
220
|
</div>
|
|
221
|
+
</div>
|
|
222
|
+
{/if}
|
|
223
|
+
{:else if type === 'MANUAL'}
|
|
224
|
+
<div class="indie_tab_squre_01_cont">
|
|
225
|
+
<!-- 항공편 직접입력 -->
|
|
226
|
+
<input bind:value={manualInput} maxlength="15" type="text" class="indie_text_nor lg w100 mgt10" placeholder={$t('flight.flightNo')} />
|
|
261
227
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
<button
|
|
265
|
-
type="button"
|
|
266
|
-
class="pg_left"
|
|
267
|
-
style:visibility={page > 1 ? 'visible' : 'hidden'}
|
|
268
|
-
on:click={() => (page = page > 1 ? page - 1 : page)}>이전</button>
|
|
269
|
-
<input readonly type="text" class="txt_paging" value={page} />
|
|
270
|
-
<span>/</span>
|
|
271
|
-
<span class="last">{totalPage}</span>
|
|
272
|
-
<button
|
|
273
|
-
type="button"
|
|
274
|
-
class="pg_right"
|
|
275
|
-
style:visibility={page < totalPage ? 'visible' : 'hidden'}
|
|
276
|
-
on:click={() => (page = page < totalPage ? page + 1 : page)}>
|
|
277
|
-
다음
|
|
278
|
-
</button>
|
|
279
|
-
</div>
|
|
280
|
-
</div>
|
|
281
|
-
{/if}
|
|
282
|
-
{:else if type === 'MANUAL'}
|
|
283
|
-
<div class="indie_tab_squre_01_cont">
|
|
284
|
-
<!-- 항공편 직접입력 -->
|
|
285
|
-
<input bind:value={manualInput} maxlength="15" type="text" class="indie_text_nor w100 mgt10" placeholder={$t('flight.flightNo')} />
|
|
228
|
+
<div class="indie_flight_direct_input">
|
|
229
|
+
<p class="tit">{$t('flight.estimatedTimeOfArrival')}</p>
|
|
286
230
|
|
|
287
|
-
|
|
288
|
-
<div class="
|
|
289
|
-
<
|
|
231
|
+
<div class="gather_box">
|
|
232
|
+
<div class="da_select_box">
|
|
233
|
+
<button type="button" class="indie_btn_squre only prev" on:click={() => subtractDay()}>이전</button>
|
|
234
|
+
<p class="date">{dayjs(estimateDate).format('YYYY.MM.DD')}</p>
|
|
235
|
+
<button type="button" class="indie_btn_squre only next" on:click={() => addDay()}>다음</button>
|
|
290
236
|
</div>
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
<div class="gather_box">
|
|
304
|
-
<div class="da_select_box">
|
|
305
|
-
<button type="button" class="indie_btn_squre only prev" on:click={() => subtractDay()}>이전</button>
|
|
306
|
-
<p class="date">{dayjs(estimateDate).format('YYYY.MM.DD')}</p>
|
|
307
|
-
<button type="button" class="indie_btn_squre only next" on:click={() => addDay()}>다음</button>
|
|
308
|
-
</div>
|
|
309
|
-
<div class="indie_time_select_box triangle lg">
|
|
310
|
-
<select bind:value={hour} on:change={() => onChangeEstimateTime()}>
|
|
311
|
-
{#each range(0, 24, 1) as h}
|
|
312
|
-
<option value={h}>{padStart(`${h}`, 2, '0')}</option>
|
|
313
|
-
{/each}
|
|
314
|
-
</select>
|
|
315
|
-
<span>:</span>
|
|
316
|
-
<select bind:value={minute} on:change={() => onChangeEstimateTime()}>
|
|
317
|
-
{#each range(0, 60, 1) as m}
|
|
318
|
-
<option value={m}>{padStart(`${m}`, 2, '0')}</option>
|
|
319
|
-
{/each}
|
|
320
|
-
</select>
|
|
321
|
-
</div>
|
|
237
|
+
<div class="indie_time_select_box triangle lg">
|
|
238
|
+
<select bind:value={hour} on:change={() => onChangeEstimateTime()}>
|
|
239
|
+
{#each range(0, 24, 1) as h}
|
|
240
|
+
<option value={h}>{padStart(`${h}`, 2, '0')}</option>
|
|
241
|
+
{/each}
|
|
242
|
+
</select>
|
|
243
|
+
<span>:</span>
|
|
244
|
+
<select bind:value={minute} on:change={() => onChangeEstimateTime()}>
|
|
245
|
+
{#each range(0, 60, 1) as m}
|
|
246
|
+
<option value={m}>{padStart(`${m}`, 2, '0')}</option>
|
|
247
|
+
{/each}
|
|
248
|
+
</select>
|
|
322
249
|
</div>
|
|
250
|
+
</div>
|
|
323
251
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
</div>
|
|
252
|
+
<div class="indie_exclamation_mark_box sm black">
|
|
253
|
+
<p class="normal">{$t('flight.directly')}</p>
|
|
327
254
|
</div>
|
|
328
255
|
</div>
|
|
329
|
-
|
|
256
|
+
</div>
|
|
330
257
|
{/if}
|
|
331
258
|
</div>
|
|
332
259
|
|
package/.svelte-kit/__package__/schedule-view/components/flight-search/FlightSearch.svelte.d.ts
CHANGED
|
@@ -4,11 +4,7 @@ declare const __propDef: {
|
|
|
4
4
|
props: {
|
|
5
5
|
open?: (options: {
|
|
6
6
|
dateTime: string;
|
|
7
|
-
|
|
8
|
-
iata: string;
|
|
9
|
-
code: string;
|
|
10
|
-
};
|
|
11
|
-
terminalOnly: boolean;
|
|
7
|
+
iata: string;
|
|
12
8
|
}) => Promise<Flight>;
|
|
13
9
|
};
|
|
14
10
|
events: {
|
|
@@ -22,11 +18,7 @@ export type FlightSearchSlots = typeof __propDef.slots;
|
|
|
22
18
|
export default class FlightSearch extends SvelteComponent<FlightSearchProps, FlightSearchEvents, FlightSearchSlots> {
|
|
23
19
|
get open(): (options: {
|
|
24
20
|
dateTime: string;
|
|
25
|
-
|
|
26
|
-
iata: string;
|
|
27
|
-
code: string;
|
|
28
|
-
};
|
|
29
|
-
terminalOnly: boolean;
|
|
21
|
+
iata: string;
|
|
30
22
|
}) => Promise<Flight>;
|
|
31
23
|
}
|
|
32
24
|
export {};
|
|
@@ -53,7 +53,6 @@ export declare const originalBooking: {
|
|
|
53
53
|
selectedPrice: import("svelte/store").Writable<SearchPriceV2>;
|
|
54
54
|
isModifiable: import("svelte/store").Readable<boolean>;
|
|
55
55
|
priceDifference: import("svelte/store").Readable<number>;
|
|
56
|
-
isFlightService: import("svelte/store").Readable<boolean>;
|
|
57
56
|
hour: {
|
|
58
57
|
subscribe: (this: void, run: import("svelte/store").Subscriber<number>, invalidate?: import("svelte/store").Invalidator<number>) => import("svelte/store").Unsubscriber;
|
|
59
58
|
set(hour: number): void;
|
|
@@ -147,7 +146,6 @@ export declare const copiedBooking: {
|
|
|
147
146
|
selectedPrice: import("svelte/store").Writable<SearchPriceV2>;
|
|
148
147
|
isModifiable: import("svelte/store").Readable<boolean>;
|
|
149
148
|
priceDifference: import("svelte/store").Readable<number>;
|
|
150
|
-
isFlightService: import("svelte/store").Readable<boolean>;
|
|
151
149
|
hour: {
|
|
152
150
|
subscribe: (this: void, run: import("svelte/store").Subscriber<number>, invalidate?: import("svelte/store").Invalidator<number>) => import("svelte/store").Unsubscriber;
|
|
153
151
|
set(hour: number): void;
|
|
@@ -70,7 +70,6 @@ function createBookingStore(bookingDTO) {
|
|
|
70
70
|
const isBabySeatServiceAvailable = derived(availableExtraServices, $availableExtraServices => $availableExtraServices.some(extra => extra.type === ExtraServiceType.baby));
|
|
71
71
|
// 피켓 서비스 가능 여부
|
|
72
72
|
const isPicketServiceAvailable = derived(availableExtraServices, $availableExtraServices => $availableExtraServices.some(extra => extra.type === ExtraServiceType.picket));
|
|
73
|
-
const isFlightService = derived(booking, $booking => $booking?.serviceType === BookingServiceType.pickup || $booking?.serviceType === BookingServiceType.sending);
|
|
74
73
|
// 금액 정보
|
|
75
74
|
const price = derived(booking, $booking => {
|
|
76
75
|
const beforePrice = isNumber($booking?.price) ? $booking.price : null;
|
|
@@ -346,7 +345,6 @@ function createBookingStore(bookingDTO) {
|
|
|
346
345
|
selectedPrice,
|
|
347
346
|
isModifiable,
|
|
348
347
|
priceDifference,
|
|
349
|
-
isFlightService,
|
|
350
348
|
// subscribe & set
|
|
351
349
|
hour,
|
|
352
350
|
minute,
|
|
@@ -6,7 +6,6 @@ interface BaseFlight {
|
|
|
6
6
|
name: string;
|
|
7
7
|
iata: string;
|
|
8
8
|
selectType: 'AUTO' | 'MANUAL';
|
|
9
|
-
arrivalTerminal?: string;
|
|
10
9
|
}
|
|
11
10
|
export interface FlightAuto extends BaseFlight {
|
|
12
11
|
selectType: 'AUTO';
|
|
@@ -17,6 +16,7 @@ export interface FlightAuto extends BaseFlight {
|
|
|
17
16
|
arrivalAirport: string;
|
|
18
17
|
departureAirport: string;
|
|
19
18
|
delay: boolean;
|
|
19
|
+
arrivalTerminal: string;
|
|
20
20
|
}
|
|
21
21
|
export interface FlightManual extends BaseFlight {
|
|
22
22
|
selectType: 'MANUAL';
|
|
@@ -21,7 +21,7 @@ export const options = {
|
|
|
21
21
|
app: ({ head, body, assets, nonce, env }) => "<!DOCTYPE html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t\t<meta name=\"referrer\" content=\"no-referrer\" />\n\t\t" + head + "\n\t</head>\n\t<body data-sveltekit-preload-data=\"hover\">\n\t\t<div>" + body + "</div>\n\t</body>\n</html>\n",
|
|
22
22
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
|
|
23
23
|
},
|
|
24
|
-
version_hash: "
|
|
24
|
+
version_hash: "14o4knl"
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export async function get_hooks() {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"file": "File",
|
|
21
21
|
"fileUpload": "Upload file",
|
|
22
22
|
"firstName": "First name",
|
|
23
|
-
"flight": "Flight
|
|
23
|
+
"flight": "Flight",
|
|
24
24
|
"guestName": "Guest Name",
|
|
25
25
|
"hours": "{hour} hour(s)",
|
|
26
26
|
"lastName": "Last name",
|
|
@@ -80,10 +80,8 @@
|
|
|
80
80
|
"noFlightsWereFound": "No flights were found.",
|
|
81
81
|
"pleaseEnterFlightNo": "Please enter flight No.",
|
|
82
82
|
"pleaseSelectAFlightNo": "Please select a flight No.",
|
|
83
|
-
"pleaseSelectAnAirport": "Please select an airport.",
|
|
84
83
|
"pleaseSelectDate": "Please select a date.",
|
|
85
84
|
"selectFlightNo": "Select Flight No.",
|
|
86
|
-
"selectTerminal": "Please select a terminal.",
|
|
87
85
|
"terminal": "Terminal {number}"
|
|
88
86
|
},
|
|
89
87
|
"placeholder": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"file": "파일",
|
|
21
21
|
"fileUpload": "파일 업로드",
|
|
22
22
|
"firstName": "이름",
|
|
23
|
-
"flight": "항공편
|
|
23
|
+
"flight": "항공편",
|
|
24
24
|
"guestName": "사용자명",
|
|
25
25
|
"hours": "{hour} 시간",
|
|
26
26
|
"lastName": "성",
|
|
@@ -67,10 +67,8 @@
|
|
|
67
67
|
"noFlightsWereFound": "항공편을 찾을 수 없습니다.",
|
|
68
68
|
"pleaseEnterFlightNo": "항공편명을 입력해주세요.",
|
|
69
69
|
"pleaseSelectAFlightNo": "항공편명을 선택해주세요.",
|
|
70
|
-
"pleaseSelectAnAirport": "공항을 선택해주세요.",
|
|
71
70
|
"pleaseSelectDate": "날짜를 선택해주세요.",
|
|
72
71
|
"selectFlightNo": "항공편명 선택",
|
|
73
|
-
"selectTerminal": "터미널을 선택해주세요.",
|
|
74
72
|
"terminal": "터미널 {number}"
|
|
75
73
|
},
|
|
76
74
|
"placeholder": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"file": "Tệp",
|
|
21
21
|
"fileUpload": "Cập nhật dử liệu",
|
|
22
22
|
"firstName": "Tên đầu tiên",
|
|
23
|
-
"flight": "
|
|
23
|
+
"flight": "Mã chuyến bay",
|
|
24
24
|
"guestName": "Tên khách",
|
|
25
25
|
"hours": "{hour} giờ",
|
|
26
26
|
"lastName": "Họ",
|
|
@@ -67,10 +67,8 @@
|
|
|
67
67
|
"noFlightsWereFound": "Không tìm thấy chuyến bay.",
|
|
68
68
|
"pleaseEnterFlightNo": "Vui lòng nhập số chuyến bay",
|
|
69
69
|
"pleaseSelectAFlightNo": "Vui lòng chọn số chuyến bay",
|
|
70
|
-
"pleaseSelectAnAirport": "Vui lòng chọn một sân bay.",
|
|
71
70
|
"pleaseSelectDate": "Vui lòng chọn một ngày.",
|
|
72
71
|
"selectFlightNo": "Chọn số chuyến bay",
|
|
73
|
-
"selectTerminal": "Vui lòng chọn một thiết bị đầu cuối.",
|
|
74
72
|
"terminal": "Nhà ga số 2"
|
|
75
73
|
},
|
|
76
74
|
"placeholder": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"file": "档案",
|
|
21
21
|
"fileUpload": "上传文件",
|
|
22
22
|
"firstName": "名",
|
|
23
|
-
"flight": "
|
|
23
|
+
"flight": "航班号",
|
|
24
24
|
"guestName": "乘客姓名",
|
|
25
25
|
"hours": "{hour} 小时",
|
|
26
26
|
"lastName": "姓",
|
|
@@ -67,10 +67,8 @@
|
|
|
67
67
|
"noFlightsWereFound": "未找到航班。",
|
|
68
68
|
"pleaseEnterFlightNo": "请输入航班号",
|
|
69
69
|
"pleaseSelectAFlightNo": "请选择航班号",
|
|
70
|
-
"pleaseSelectAnAirport": "请选择一个机场。",
|
|
71
70
|
"pleaseSelectDate": "请选择日期。",
|
|
72
71
|
"selectFlightNo": "选择航班号",
|
|
73
|
-
"selectTerminal": "请选择一个终端。",
|
|
74
72
|
"terminal": "第{number}航站楼"
|
|
75
73
|
},
|
|
76
74
|
"placeholder": {
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"file": "檔案",
|
|
21
21
|
"fileUpload": "上傳文件",
|
|
22
22
|
"firstName": "名",
|
|
23
|
-
"flight": "
|
|
23
|
+
"flight": "航班號",
|
|
24
24
|
"guestName": "乘客姓名",
|
|
25
25
|
"hours": "{hour} 小時",
|
|
26
26
|
"lastName": "姓",
|
|
@@ -67,10 +67,8 @@
|
|
|
67
67
|
"noFlightsWereFound": "未找到航班。",
|
|
68
68
|
"pleaseEnterFlightNo": "請輸入航班號碼",
|
|
69
69
|
"pleaseSelectAFlightNo": "請選擇航班號碼",
|
|
70
|
-
"pleaseSelectAnAirport": "請選擇機場。",
|
|
71
70
|
"pleaseSelectDate": "請選擇日期。",
|
|
72
71
|
"selectFlightNo": "選擇航班號碼",
|
|
73
|
-
"selectTerminal": "請選擇一個終端。",
|
|
74
72
|
"terminal": "第{number}航廈"
|
|
75
73
|
},
|
|
76
74
|
"placeholder": {
|