@plaidev/karte-action-sdk 1.1.180-28041937.24d05b80 → 1.1.181-28042089.f7e0349f

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.
@@ -25,6 +25,229 @@ const ALL_ACTION_SHORTEN_ID = 'KARTE_ALL_ACTION_SHORTEN_ID';
25
25
  */
26
26
  const KARTE_MODAL_ROOT = 'karte-modal-root';
27
27
 
28
+ /** @internal */
29
+ const NOOP = (_args) => { }; // eslint-disable-line @typescript-eslint/no-unused-vars
30
+ /** @internal */
31
+ const isPreview = () => {
32
+ return true;
33
+ };
34
+ /** @internal */
35
+ const setPreviousFocus = () => {
36
+ const previously_focused = typeof document !== 'undefined' && document.activeElement;
37
+ if (previously_focused) {
38
+ previously_focused?.focus();
39
+ }
40
+ };
41
+ /** @internal */
42
+ const handleKeydown = (handlers) => (e) => {
43
+ if (handlers[e.key]) {
44
+ handlers[e.key](e);
45
+ }
46
+ };
47
+ const POSITION_STYLES = {
48
+ 'top-center': 'top: 0; right: 50%; transform: translate(+50%, 0%);',
49
+ 'top-left': 'top: 0; left: 0; transform: translate(0%, 0%);',
50
+ 'top-right': 'top: 0; right: 0; transform: translate(0%, 0%);',
51
+ 'center-left': 'top: 50%; left: 0; transform: translate(0%, -50%);',
52
+ center: 'top: 50%; left: 50%; transform: translate(-50%, -50%);',
53
+ 'center-right': 'top: 50%; right: 0; transform: translate(0%, -50%);',
54
+ 'bottom-left': 'bottom: 0; left: 0; transform: translate(0%, 0%);',
55
+ 'bottom-center': 'bottom: 0; left: 50%; transform: translate(-50%, 0%);',
56
+ 'bottom-right': 'bottom: 0; right: 0; transform: translate(0%, 0);',
57
+ none: 'top: 0; bottom: 0; right: 0; left: 0;',
58
+ };
59
+ const TRANSFORM = {
60
+ 'top-center': [50, 0],
61
+ 'top-left': [0, 0],
62
+ 'top-right': [0, 0],
63
+ 'center-left': [0, -50],
64
+ center: [-50, -50],
65
+ 'center-right': [0, -50],
66
+ 'bottom-left': [0, 0],
67
+ 'bottom-center': [-50, 0],
68
+ 'bottom-right': [0, 0],
69
+ none: [0, 0],
70
+ };
71
+ /** @internal */
72
+ const getPositionStyle = (position) => {
73
+ const style = POSITION_STYLES[position];
74
+ if (style != null) {
75
+ return style;
76
+ }
77
+ else {
78
+ console.warn(`[action-sdk] invalid '${position}', so we use 'center' instead`);
79
+ return POSITION_STYLES['center'];
80
+ }
81
+ };
82
+ /** @internal */
83
+ const getTransform = (position) => {
84
+ const transform = TRANSFORM[position];
85
+ if (transform != null) {
86
+ return transform;
87
+ }
88
+ else {
89
+ console.warn(`[action-sdk] invalid '${position}', so we use 'center' instead`);
90
+ return TRANSFORM['center'];
91
+ }
92
+ };
93
+ /** @internal */
94
+ const getMarginStyle = (margin) => {
95
+ return `margin: ${margin?.top ?? 0} ${margin?.right ?? 0} ${margin?.bottom ?? 0} ${margin?.left ?? 0};`;
96
+ };
97
+ /** @internal */
98
+ const stringifyStyleObj = (styleObj) => {
99
+ return Object.entries(styleObj)
100
+ .map(([key, value]) => `${key}:${value}`)
101
+ .join(';');
102
+ };
103
+ /**
104
+ * スクロール率が達したときに呼び出すコールバックを登録します
105
+ *
106
+ * @param rate - スクロール率。この値は viewport でのスクロールのパーセンテージ
107
+ * @param fn - スクロール率が達したときに呼び出されるコールバック関数
108
+ *
109
+ * @returns スクロール率によって呼び出されるコールバックを停止する関数を返します
110
+ *
111
+ * @public
112
+ */
113
+ function onScroll(rate, fn) {
114
+ const rates = Array.isArray(rate) ? rate : [rate];
115
+ const body = window.document.body;
116
+ const html = window.document.documentElement;
117
+ const contexts = new Map();
118
+ rates.forEach(rate => {
119
+ contexts.set(rate, {
120
+ rate,
121
+ repeat: false,
122
+ zone: 'out',
123
+ previousRate: 0,
124
+ deltaRate: 0,
125
+ scrollRate: 0,
126
+ scrollTop: html.scrollTop || body.scrollTop,
127
+ });
128
+ });
129
+ const _fn = fn;
130
+ const direction = (ctx) => ctx.deltaRate > 0 ? 'down' : 'up';
131
+ const updateStates = (ctx, repeat) => {
132
+ ctx.repeat = repeat;
133
+ // prettier-ignore
134
+ ctx.zone =
135
+ // case: the scroll rate cannot detect the rate when scrolling to the top
136
+ ctx.scrollTop === 0 && ctx.scrollRate >= ctx.rate
137
+ ? 'out'
138
+ : ctx.scrollRate >= ctx.rate
139
+ ? 'in'
140
+ : 'out';
141
+ // console.log('updateStates', ctx.zone);
142
+ };
143
+ // prettier-ignore
144
+ const canCall = ({ zone, scrollRate, rate, scrollTop, repeat }) => zone === 'out'
145
+ ? scrollRate >= rate
146
+ : repeat
147
+ // case: the scroll rate cannot detect the rate when scrolling to the top
148
+ ? scrollRate < rate || (scrollTop === 0 && scrollRate >= rate)
149
+ : false;
150
+ /*
151
+ // NOTE: same logic the above (code size optimiazation)
152
+ const canCall = (ctx: OnScrollInternalContext): boolean => {
153
+ // console.log('repeat', ctx.repeat, 'rate', ctx.rate, 'scrollRate', ctx.scrollRate, '1 - rate', 1 - ctx.rate, '1 - scrollRate', 1 - ctx.scrollRate, 'scrollRate >= rate', ctx.scrollRate >= ctx.rate, '1 - scrollRate >= 1 - rate', 1 - ctx.scrollRate >= 1 - ctx.rate);
154
+ // console.log(ctx.rate, 'deltaRate', ctx.deltaRate, 'reviousRate', ctx.previousRate)
155
+ if (ctx.zone === 'out') {
156
+ return ctx.scrollRate >= ctx.rate;
157
+ } else {
158
+ // 'in'
159
+ if (ctx.repeat) {
160
+ return ctx.scrollRate < ctx.rate || (ctx.scrollTop === 0 && ctx.scrollRate >= ctx.rate);
161
+ } else {
162
+ return false;
163
+ }
164
+ }
165
+ };
166
+ //*/
167
+ const onScroll = () => {
168
+ const scrollTop = html.scrollTop || body.scrollTop;
169
+ const pageHeight = Math.max(...[body.clientHeight, body.scrollHeight, html.scrollHeight, html.clientHeight]);
170
+ const viewHeight = Math.min(...[html.clientHeight, body.clientHeight]);
171
+ const scrollRate = (scrollTop + viewHeight) / pageHeight;
172
+ // console.log('scrollRate ->', scrollRate, 'scrollTop ->', scrollTop);
173
+ contexts.forEach(ctx => {
174
+ ctx.scrollRate = scrollRate;
175
+ ctx.deltaRate = ctx.scrollRate - ctx.previousRate;
176
+ ctx.previousRate = ctx.scrollRate;
177
+ ctx.scrollTop = scrollTop;
178
+ if (canCall(ctx)) {
179
+ const repeat = !!_fn(Object.assign({ direction: direction(ctx) }, ctx));
180
+ updateStates(ctx, repeat);
181
+ }
182
+ });
183
+ };
184
+ // register scorll event
185
+ window.addEventListener('scroll', onScroll);
186
+ // return disposing (finalizing/releasing) function
187
+ return () => {
188
+ window.removeEventListener('scroll', onScroll);
189
+ };
190
+ }
191
+ /**
192
+ * 指定した時間の経過後に呼び出すコールバックを登録します
193
+ *
194
+ * @param time - コールバックを呼び出すまでの時間。単位はミリセカンド(ms)
195
+ * @param fn - 指定した時間が経過後に呼び出されるコールバック関数
196
+ *
197
+ * @returns コールバックを呼び出すためのタイマーを停止する関数を返します
198
+ *
199
+ * @public
200
+ */
201
+ function onTime(time, fn) {
202
+ const timeoutHandler = setTimeout(fn, time);
203
+ return () => timeoutHandler && clearTimeout(timeoutHandler);
204
+ }
205
+ /** @internal */
206
+ function hasSuffix(value, suffix) {
207
+ return new RegExp(`[0-9]${suffix}$`).test(value);
208
+ }
209
+ /**
210
+ * Goolge Fonts用のURLを生成
211
+ *
212
+ * @param fonts - フォント名の配列
213
+ * @param texts - 使用するテキストの配列
214
+ *
215
+ * @remarks
216
+ * textsを指定した場合フォントサイズが削減される
217
+ *
218
+ * @internal
219
+ */
220
+ function makeGoogleFontUrl(fonts, texts) {
221
+ const params = [];
222
+ params.push('display=swap');
223
+ if (texts) {
224
+ texts.forEach(text => params.push(`text=${text}`));
225
+ }
226
+ fonts.forEach(font => params.push(`family=${font.replace(/['"]/g, '').replace(/ /g, '+')}`));
227
+ return `https://fonts.googleapis.com/css2?${params.join('&')}`;
228
+ }
229
+ /**
230
+ * HTML要素を生成
231
+ *
232
+ * @internal
233
+ */
234
+ const h = (type, props, ...children) => {
235
+ const el = document.createElement(type);
236
+ for (const key of Object.keys(props)) {
237
+ const v = props[key];
238
+ if (key === 'style') {
239
+ Object.assign(el.style, v);
240
+ }
241
+ else {
242
+ el.setAttribute(key, v);
243
+ }
244
+ }
245
+ for (const child of children) {
246
+ el.appendChild(child);
247
+ }
248
+ return el;
249
+ };
250
+
28
251
  /**
29
252
  * ポップアップ(モーダル)のコンポーネントで利用するPropの定義
30
253
  */
@@ -269,239 +492,6 @@ const DefaultFormButtonColor = {
269
492
  sub: '#fff',
270
493
  };
271
494
 
272
- /** @internal */
273
- const NOOP = (_args) => { }; // eslint-disable-line @typescript-eslint/no-unused-vars
274
- /** @internal */
275
- const isPreview = () => {
276
- return true;
277
- };
278
- /** @internal */
279
- const setPreviousFocus = () => {
280
- const previously_focused = typeof document !== 'undefined' && document.activeElement;
281
- if (previously_focused) {
282
- previously_focused?.focus();
283
- }
284
- };
285
- /** @internal */
286
- const handleKeydown = (handlers) => (e) => {
287
- if (handlers[e.key]) {
288
- handlers[e.key](e);
289
- }
290
- };
291
- const POSITION_STYLES = {
292
- 'top-center': 'top: 0; right: 50%; transform: translate(+50%, 0%);',
293
- 'top-left': 'top: 0; left: 0; transform: translate(0%, 0%);',
294
- 'top-right': 'top: 0; right: 0; transform: translate(0%, 0%);',
295
- 'center-left': 'top: 50%; left: 0; transform: translate(0%, -50%);',
296
- center: 'top: 50%; left: 50%; transform: translate(-50%, -50%);',
297
- 'center-right': 'top: 50%; right: 0; transform: translate(0%, -50%);',
298
- 'bottom-left': 'bottom: 0; left: 0; transform: translate(0%, 0%);',
299
- 'bottom-center': 'bottom: 0; left: 50%; transform: translate(-50%, 0%);',
300
- 'bottom-right': 'bottom: 0; right: 0; transform: translate(0%, 0);',
301
- none: 'top: 0; bottom: 0; right: 0; left: 0;',
302
- };
303
- const TRANSFORM = {
304
- 'top-center': [50, 0],
305
- 'top-left': [0, 0],
306
- 'top-right': [0, 0],
307
- 'center-left': [0, -50],
308
- center: [-50, -50],
309
- 'center-right': [0, -50],
310
- 'bottom-left': [0, 0],
311
- 'bottom-center': [-50, 0],
312
- 'bottom-right': [0, 0],
313
- none: [0, 0],
314
- };
315
- /** @internal */
316
- const getPositionStyle = (position) => {
317
- const style = POSITION_STYLES[position];
318
- if (style != null) {
319
- return style;
320
- }
321
- else {
322
- console.warn(`[action-sdk] invalid '${position}', so we use 'center' instead`);
323
- return POSITION_STYLES['center'];
324
- }
325
- };
326
- /** @internal */
327
- const getTransform = (position) => {
328
- const transform = TRANSFORM[position];
329
- if (transform != null) {
330
- return transform;
331
- }
332
- else {
333
- console.warn(`[action-sdk] invalid '${position}', so we use 'center' instead`);
334
- return TRANSFORM['center'];
335
- }
336
- };
337
- /** @internal */
338
- const getMarginStyle = (margin) => {
339
- return `margin: ${margin?.top ?? 0} ${margin?.right ?? 0} ${margin?.bottom ?? 0} ${margin?.left ?? 0};`;
340
- };
341
- /** @internal */
342
- const stringifyStyleObj = (styleObj) => {
343
- return Object.entries(styleObj)
344
- .map(([key, value]) => `${key}:${value}`)
345
- .join(';');
346
- };
347
- /**
348
- * スクロール率が達したときに呼び出すコールバックを登録します
349
- *
350
- * @param rate - スクロール率。この値は viewport でのスクロールのパーセンテージ
351
- * @param fn - スクロール率が達したときに呼び出されるコールバック関数
352
- *
353
- * @returns スクロール率によって呼び出されるコールバックを停止する関数を返します
354
- *
355
- * @public
356
- */
357
- function onScroll(rate, fn) {
358
- const rates = Array.isArray(rate) ? rate : [rate];
359
- const body = window.document.body;
360
- const html = window.document.documentElement;
361
- const contexts = new Map();
362
- rates.forEach(rate => {
363
- contexts.set(rate, {
364
- rate,
365
- repeat: false,
366
- zone: 'out',
367
- previousRate: 0,
368
- deltaRate: 0,
369
- scrollRate: 0,
370
- scrollTop: html.scrollTop || body.scrollTop,
371
- });
372
- });
373
- const _fn = fn;
374
- const direction = (ctx) => ctx.deltaRate > 0 ? 'down' : 'up';
375
- const updateStates = (ctx, repeat) => {
376
- ctx.repeat = repeat;
377
- // prettier-ignore
378
- ctx.zone =
379
- // case: the scroll rate cannot detect the rate when scrolling to the top
380
- ctx.scrollTop === 0 && ctx.scrollRate >= ctx.rate
381
- ? 'out'
382
- : ctx.scrollRate >= ctx.rate
383
- ? 'in'
384
- : 'out';
385
- // console.log('updateStates', ctx.zone);
386
- };
387
- // prettier-ignore
388
- const canCall = ({ zone, scrollRate, rate, scrollTop, repeat }) => zone === 'out'
389
- ? scrollRate >= rate
390
- : repeat
391
- // case: the scroll rate cannot detect the rate when scrolling to the top
392
- ? scrollRate < rate || (scrollTop === 0 && scrollRate >= rate)
393
- : false;
394
- /*
395
- // NOTE: same logic the above (code size optimiazation)
396
- const canCall = (ctx: OnScrollInternalContext): boolean => {
397
- // console.log('repeat', ctx.repeat, 'rate', ctx.rate, 'scrollRate', ctx.scrollRate, '1 - rate', 1 - ctx.rate, '1 - scrollRate', 1 - ctx.scrollRate, 'scrollRate >= rate', ctx.scrollRate >= ctx.rate, '1 - scrollRate >= 1 - rate', 1 - ctx.scrollRate >= 1 - ctx.rate);
398
- // console.log(ctx.rate, 'deltaRate', ctx.deltaRate, 'reviousRate', ctx.previousRate)
399
- if (ctx.zone === 'out') {
400
- return ctx.scrollRate >= ctx.rate;
401
- } else {
402
- // 'in'
403
- if (ctx.repeat) {
404
- return ctx.scrollRate < ctx.rate || (ctx.scrollTop === 0 && ctx.scrollRate >= ctx.rate);
405
- } else {
406
- return false;
407
- }
408
- }
409
- };
410
- //*/
411
- const onScroll = () => {
412
- const scrollTop = html.scrollTop || body.scrollTop;
413
- const pageHeight = Math.max(...[body.clientHeight, body.scrollHeight, html.scrollHeight, html.clientHeight]);
414
- const viewHeight = Math.min(...[html.clientHeight, body.clientHeight]);
415
- const scrollRate = (scrollTop + viewHeight) / pageHeight;
416
- // console.log('scrollRate ->', scrollRate, 'scrollTop ->', scrollTop);
417
- contexts.forEach(ctx => {
418
- ctx.scrollRate = scrollRate;
419
- ctx.deltaRate = ctx.scrollRate - ctx.previousRate;
420
- ctx.previousRate = ctx.scrollRate;
421
- ctx.scrollTop = scrollTop;
422
- if (canCall(ctx)) {
423
- const repeat = !!_fn(Object.assign({ direction: direction(ctx) }, ctx));
424
- updateStates(ctx, repeat);
425
- }
426
- });
427
- };
428
- // register scorll event
429
- window.addEventListener('scroll', onScroll);
430
- // return disposing (finalizing/releasing) function
431
- return () => {
432
- window.removeEventListener('scroll', onScroll);
433
- };
434
- }
435
- /**
436
- * 指定した時間の経過後に呼び出すコールバックを登録します
437
- *
438
- * @param time - コールバックを呼び出すまでの時間。単位はミリセカンド(ms)
439
- * @param fn - 指定した時間が経過後に呼び出されるコールバック関数
440
- *
441
- * @returns コールバックを呼び出すためのタイマーを停止する関数を返します
442
- *
443
- * @public
444
- */
445
- function onTime(time, fn) {
446
- const timeoutHandler = setTimeout(fn, time);
447
- return () => timeoutHandler && clearTimeout(timeoutHandler);
448
- }
449
- /** @internal */
450
- function hasSuffix(value, suffix) {
451
- return new RegExp(`[0-9]${suffix}$`).test(value);
452
- }
453
- /**
454
- * Goolge Fonts用のURLを生成
455
- *
456
- * @param fonts - フォント名の配列
457
- * @param texts - 使用するテキストの配列
458
- *
459
- * @remarks
460
- * textsを指定した場合フォントサイズが削減される
461
- *
462
- * @internal
463
- */
464
- function makeGoogleFontUrl(fonts, texts) {
465
- const params = [];
466
- params.push('display=swap');
467
- if (texts) {
468
- texts.forEach(text => params.push(`text=${text}`));
469
- }
470
- fonts.forEach(font => params.push(`family=${font.replace(/['"]/g, '').replace(/ /g, '+')}`));
471
- return `https://fonts.googleapis.com/css2?${params.join('&')}`;
472
- }
473
- /**
474
- * HTML要素を生成
475
- *
476
- * @internal
477
- */
478
- const h = (type, props, ...children) => {
479
- const el = document.createElement(type);
480
- for (const key of Object.keys(props)) {
481
- const v = props[key];
482
- if (key === 'style') {
483
- Object.assign(el.style, v);
484
- }
485
- else {
486
- el.setAttribute(key, v);
487
- }
488
- }
489
- for (const child of children) {
490
- el.appendChild(child);
491
- }
492
- return el;
493
- };
494
- /**
495
- * 非推奨
496
- *
497
- * @deprecated 非推奨
498
- *
499
- * @internal
500
- */
501
- function getGoogleFontsParam() {
502
- return 'family=' + Fonts.map(font => font.replace(/ /g, '+')).join('&family=');
503
- }
504
-
505
495
  /**
506
496
  * Store to handle action setting
507
497
  *
@@ -1761,6 +1751,7 @@ async function runScript$1(options = {
1761
1751
  const { success } = await setupActionTable(options.localVariablesQuery, data.api_key);
1762
1752
  if (!success)
1763
1753
  return;
1754
+ options.send('script_fired');
1764
1755
  // 旧Widget API IFの処理
1765
1756
  const { onCreateHandlers } = getInternalHandlers();
1766
1757
  if (onCreateHandlers) {
@@ -4889,7 +4880,7 @@ function add_css$n(target) {
4889
4880
  append_styles(target, "svelte-wb7ek", ".text-button-element.svelte-wb7ek{width:100%;height:100%}.text-button-element.svelte-wb7ek > .button{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background-color:transparent;border:none;box-shadow:transparent;box-sizing:border-box;cursor:pointer;transition:box-shadow 0.2s;white-space:pre-wrap;overflow:hidden}.text-button-element.svelte-wb7ek > .button._disabled{cursor:not-allowed !important;opacity:0.2}.text-button-element.svelte-wb7ek > .button:not(._disabled):active{box-shadow:inset 0 0 100px 100px rgba(0, 0, 0, 0.3)}.text-button-element.svelte-wb7ek > .button:not(._disabled):hover{box-shadow:inset 0 0 100px 100px rgba(255, 255, 255, 0.3)}");
4890
4881
  }
4891
4882
 
4892
- // (36:2) <Button onClick={onClick} {style} {eventName}>
4883
+ // (46:2) <Button onClick={onClick} {style} {eventName}>
4893
4884
  function create_default_slot$5(ctx) {
4894
4885
  let rendertext;
4895
4886
  let current;
@@ -4928,9 +4919,6 @@ function create_default_slot$5(ctx) {
4928
4919
 
4929
4920
  function create_fragment$o(ctx) {
4930
4921
  let div;
4931
- let link;
4932
- let link_href_value;
4933
- let t;
4934
4922
  let button;
4935
4923
  let current;
4936
4924
 
@@ -4947,43 +4935,31 @@ function create_fragment$o(ctx) {
4947
4935
  return {
4948
4936
  c() {
4949
4937
  div = element("div");
4950
- link = element("link");
4951
- t = space();
4952
4938
  create_component(button.$$.fragment);
4953
4939
  this.h();
4954
4940
  },
4955
4941
  l(nodes) {
4956
4942
  div = claim_element(nodes, "DIV", { class: true });
4957
4943
  var div_nodes = children(div);
4958
- link = claim_element(div_nodes, "LINK", { href: true, rel: true });
4959
- t = claim_space(div_nodes);
4960
4944
  claim_component(button.$$.fragment, div_nodes);
4961
4945
  div_nodes.forEach(detach);
4962
4946
  this.h();
4963
4947
  },
4964
4948
  h() {
4965
- attr(link, "href", link_href_value = `https://fonts.googleapis.com/css2?${getGoogleFontsParam()}&display=swap&text=${/*text*/ ctx[0]}`);
4966
- attr(link, "rel", "stylesheet");
4967
4949
  attr(div, "class", "text-button-element svelte-wb7ek");
4968
4950
  },
4969
4951
  m(target, anchor) {
4970
4952
  insert_hydration(target, div, anchor);
4971
- append_hydration(div, link);
4972
- append_hydration(div, t);
4973
4953
  mount_component(button, div, null);
4974
4954
  current = true;
4975
4955
  },
4976
4956
  p(ctx, [dirty]) {
4977
- if (!current || dirty & /*text*/ 1 && link_href_value !== (link_href_value = `https://fonts.googleapis.com/css2?${getGoogleFontsParam()}&display=swap&text=${/*text*/ ctx[0]}`)) {
4978
- attr(link, "href", link_href_value);
4979
- }
4980
-
4981
4957
  const button_changes = {};
4982
4958
  if (dirty & /*onClick*/ 2) button_changes.onClick = /*onClick*/ ctx[1];
4983
4959
  if (dirty & /*style*/ 8) button_changes.style = /*style*/ ctx[3];
4984
4960
  if (dirty & /*eventName*/ 4) button_changes.eventName = /*eventName*/ ctx[2];
4985
4961
 
4986
- if (dirty & /*$$scope, text*/ 65) {
4962
+ if (dirty & /*$$scope, text*/ 129) {
4987
4963
  button_changes.$$scope = { dirty, ctx };
4988
4964
  }
4989
4965
 
@@ -5010,6 +4986,7 @@ function instance$o($$self, $$props, $$invalidate) {
5010
4986
  let { text = 'ボタンラベル' } = $$props;
5011
4987
  let { onClick = { operation: 'none', args: [] } } = $$props;
5012
4988
  let { eventName = '' } = $$props;
4989
+ let { font = SYSTEM_FONT } = $$props;
5013
4990
  let { _buttonStyle = 'color:#ffffff; font-size:14px; font-weight:bold; justify-content:center; align-items:center; padding:1px 6px 1px 6px; line-height: 1.5;' } = $$props;
5014
4991
  let { _style = 'background-color: #000000; border-radius:4px; cursor: pointer' } = $$props;
5015
4992
 
@@ -5017,17 +4994,22 @@ function instance$o($$self, $$props, $$invalidate) {
5017
4994
  if ('text' in $$props) $$invalidate(0, text = $$props.text);
5018
4995
  if ('onClick' in $$props) $$invalidate(1, onClick = $$props.onClick);
5019
4996
  if ('eventName' in $$props) $$invalidate(2, eventName = $$props.eventName);
5020
- if ('_buttonStyle' in $$props) $$invalidate(4, _buttonStyle = $$props._buttonStyle);
5021
- if ('_style' in $$props) $$invalidate(5, _style = $$props._style);
4997
+ if ('font' in $$props) $$invalidate(4, font = $$props.font);
4998
+ if ('_buttonStyle' in $$props) $$invalidate(5, _buttonStyle = $$props._buttonStyle);
4999
+ if ('_style' in $$props) $$invalidate(6, _style = $$props._style);
5022
5000
  };
5023
5001
 
5024
5002
  $$self.$$.update = () => {
5025
- if ($$self.$$.dirty & /*_buttonStyle, _style*/ 48) {
5026
- $$invalidate(3, style = [..._buttonStyle.split(';'), ..._style.split(';')].filter(Boolean).join(';'));
5003
+ if ($$self.$$.dirty & /*font*/ 16) {
5004
+ addFont(font);
5005
+ }
5006
+
5007
+ if ($$self.$$.dirty & /*_buttonStyle, _style, font*/ 112) {
5008
+ $$invalidate(3, style = [..._buttonStyle.split(';'), ..._style.split(';'), `font-family:${font}`].filter(prop => prop).join(';'));
5027
5009
  }
5028
5010
  };
5029
5011
 
5030
- return [text, onClick, eventName, style, _buttonStyle, _style];
5012
+ return [text, onClick, eventName, style, font, _buttonStyle, _style];
5031
5013
  }
5032
5014
 
5033
5015
  class TextButtonElement extends SvelteComponent {
@@ -5044,8 +5026,9 @@ class TextButtonElement extends SvelteComponent {
5044
5026
  text: 0,
5045
5027
  onClick: 1,
5046
5028
  eventName: 2,
5047
- _buttonStyle: 4,
5048
- _style: 5
5029
+ font: 4,
5030
+ _buttonStyle: 5,
5031
+ _style: 6
5049
5032
  },
5050
5033
  add_css$n
5051
5034
  );
package/dist/index.es.js CHANGED
@@ -25,6 +25,233 @@ const ALL_ACTION_SHORTEN_ID = 'KARTE_ALL_ACTION_SHORTEN_ID';
25
25
  */
26
26
  const KARTE_MODAL_ROOT = 'karte-modal-root';
27
27
 
28
+ /** @internal */
29
+ const NOOP = (_args) => { }; // eslint-disable-line @typescript-eslint/no-unused-vars
30
+ /** @internal */
31
+ const isPreview = () => {
32
+ return false;
33
+ };
34
+ /** @internal */
35
+ const setPreviousFocus = () => {
36
+ const previously_focused = typeof document !== 'undefined' && document.activeElement;
37
+ if (previously_focused) {
38
+ previously_focused?.focus();
39
+ }
40
+ };
41
+ /** @internal */
42
+ const handleKeydown = (handlers) => (e) => {
43
+ if (handlers[e.key]) {
44
+ handlers[e.key](e);
45
+ }
46
+ };
47
+ const POSITION_STYLES = {
48
+ 'top-center': 'top: 0; right: 50%; transform: translate(+50%, 0%);',
49
+ 'top-left': 'top: 0; left: 0; transform: translate(0%, 0%);',
50
+ 'top-right': 'top: 0; right: 0; transform: translate(0%, 0%);',
51
+ 'center-left': 'top: 50%; left: 0; transform: translate(0%, -50%);',
52
+ center: 'top: 50%; left: 50%; transform: translate(-50%, -50%);',
53
+ 'center-right': 'top: 50%; right: 0; transform: translate(0%, -50%);',
54
+ 'bottom-left': 'bottom: 0; left: 0; transform: translate(0%, 0%);',
55
+ 'bottom-center': 'bottom: 0; left: 50%; transform: translate(-50%, 0%);',
56
+ 'bottom-right': 'bottom: 0; right: 0; transform: translate(0%, 0);',
57
+ none: 'top: 0; bottom: 0; right: 0; left: 0;',
58
+ };
59
+ const TRANSFORM = {
60
+ 'top-center': [50, 0],
61
+ 'top-left': [0, 0],
62
+ 'top-right': [0, 0],
63
+ 'center-left': [0, -50],
64
+ center: [-50, -50],
65
+ 'center-right': [0, -50],
66
+ 'bottom-left': [0, 0],
67
+ 'bottom-center': [-50, 0],
68
+ 'bottom-right': [0, 0],
69
+ none: [0, 0],
70
+ };
71
+ /** @internal */
72
+ const getPositionStyle = (position) => {
73
+ const style = POSITION_STYLES[position];
74
+ if (style != null) {
75
+ return style;
76
+ }
77
+ else {
78
+ console.warn(`[action-sdk] invalid '${position}', so we use 'center' instead`);
79
+ return POSITION_STYLES['center'];
80
+ }
81
+ };
82
+ /** @internal */
83
+ const getTransform = (position) => {
84
+ const transform = TRANSFORM[position];
85
+ if (transform != null) {
86
+ return transform;
87
+ }
88
+ else {
89
+ console.warn(`[action-sdk] invalid '${position}', so we use 'center' instead`);
90
+ return TRANSFORM['center'];
91
+ }
92
+ };
93
+ /** @internal */
94
+ const getMarginStyle = (margin) => {
95
+ return `margin: ${margin?.top ?? 0} ${margin?.right ?? 0} ${margin?.bottom ?? 0} ${margin?.left ?? 0};`;
96
+ };
97
+ /** @internal */
98
+ const stringifyStyleObj = (styleObj) => {
99
+ return Object.entries(styleObj)
100
+ .map(([key, value]) => `${key}:${value}`)
101
+ .join(';');
102
+ };
103
+ /**
104
+ * スクロール率が達したときに呼び出すコールバックを登録します
105
+ *
106
+ * @param rate - スクロール率。この値は viewport でのスクロールのパーセンテージ
107
+ * @param fn - スクロール率が達したときに呼び出されるコールバック関数
108
+ *
109
+ * @returns スクロール率によって呼び出されるコールバックを停止する関数を返します
110
+ *
111
+ * @public
112
+ */
113
+ function onScroll(rate, fn) {
114
+ const rates = Array.isArray(rate) ? rate : [rate];
115
+ const body = window.document.body;
116
+ const html = window.document.documentElement;
117
+ const contexts = new Map();
118
+ rates.forEach(rate => {
119
+ contexts.set(rate, {
120
+ rate,
121
+ repeat: false,
122
+ zone: 'out',
123
+ previousRate: 0,
124
+ deltaRate: 0,
125
+ scrollRate: 0,
126
+ scrollTop: html.scrollTop || body.scrollTop,
127
+ });
128
+ });
129
+ const _fn = fn;
130
+ const direction = (ctx) => ctx.deltaRate > 0 ? 'down' : 'up';
131
+ const updateStates = (ctx, repeat) => {
132
+ ctx.repeat = repeat;
133
+ // prettier-ignore
134
+ ctx.zone =
135
+ // case: the scroll rate cannot detect the rate when scrolling to the top
136
+ ctx.scrollTop === 0 && ctx.scrollRate >= ctx.rate
137
+ ? 'out'
138
+ : ctx.scrollRate >= ctx.rate
139
+ ? 'in'
140
+ : 'out';
141
+ // console.log('updateStates', ctx.zone);
142
+ };
143
+ // prettier-ignore
144
+ const canCall = ({ zone, scrollRate, rate, scrollTop, repeat }) => zone === 'out'
145
+ ? scrollRate >= rate
146
+ : repeat
147
+ // case: the scroll rate cannot detect the rate when scrolling to the top
148
+ ? scrollRate < rate || (scrollTop === 0 && scrollRate >= rate)
149
+ : false;
150
+ /*
151
+ // NOTE: same logic the above (code size optimiazation)
152
+ const canCall = (ctx: OnScrollInternalContext): boolean => {
153
+ // console.log('repeat', ctx.repeat, 'rate', ctx.rate, 'scrollRate', ctx.scrollRate, '1 - rate', 1 - ctx.rate, '1 - scrollRate', 1 - ctx.scrollRate, 'scrollRate >= rate', ctx.scrollRate >= ctx.rate, '1 - scrollRate >= 1 - rate', 1 - ctx.scrollRate >= 1 - ctx.rate);
154
+ // console.log(ctx.rate, 'deltaRate', ctx.deltaRate, 'reviousRate', ctx.previousRate)
155
+ if (ctx.zone === 'out') {
156
+ return ctx.scrollRate >= ctx.rate;
157
+ } else {
158
+ // 'in'
159
+ if (ctx.repeat) {
160
+ return ctx.scrollRate < ctx.rate || (ctx.scrollTop === 0 && ctx.scrollRate >= ctx.rate);
161
+ } else {
162
+ return false;
163
+ }
164
+ }
165
+ };
166
+ //*/
167
+ const onScroll = () => {
168
+ const scrollTop = html.scrollTop || body.scrollTop;
169
+ const pageHeight = Math.max(...[body.clientHeight, body.scrollHeight, html.scrollHeight, html.clientHeight]);
170
+ const viewHeight = Math.min(...[html.clientHeight, body.clientHeight]);
171
+ const scrollRate = (scrollTop + viewHeight) / pageHeight;
172
+ // console.log('scrollRate ->', scrollRate, 'scrollTop ->', scrollTop);
173
+ contexts.forEach(ctx => {
174
+ ctx.scrollRate = scrollRate;
175
+ ctx.deltaRate = ctx.scrollRate - ctx.previousRate;
176
+ ctx.previousRate = ctx.scrollRate;
177
+ ctx.scrollTop = scrollTop;
178
+ if (canCall(ctx)) {
179
+ const repeat = !!_fn(Object.assign({ direction: direction(ctx) }, ctx));
180
+ updateStates(ctx, repeat);
181
+ }
182
+ });
183
+ };
184
+ // register scorll event
185
+ window.addEventListener('scroll', onScroll);
186
+ // return disposing (finalizing/releasing) function
187
+ return () => {
188
+ window.removeEventListener('scroll', onScroll);
189
+ };
190
+ }
191
+ /**
192
+ * 指定した時間の経過後に呼び出すコールバックを登録します
193
+ *
194
+ * @param time - コールバックを呼び出すまでの時間。単位はミリセカンド(ms)
195
+ * @param fn - 指定した時間が経過後に呼び出されるコールバック関数
196
+ *
197
+ * @returns コールバックを呼び出すためのタイマーを停止する関数を返します
198
+ *
199
+ * @public
200
+ */
201
+ function onTime(time, fn) {
202
+ const timeoutHandler = setTimeout(fn, time);
203
+ return () => timeoutHandler && clearTimeout(timeoutHandler);
204
+ }
205
+ /** @internal */
206
+ function hasSuffix(value, suffix) {
207
+ return new RegExp(`[0-9]${suffix}$`).test(value);
208
+ }
209
+ /** @internal */
210
+ function randStr(digit = 8) {
211
+ return Math.random().toString(32).substring(digit);
212
+ }
213
+ /**
214
+ * Goolge Fonts用のURLを生成
215
+ *
216
+ * @param fonts - フォント名の配列
217
+ * @param texts - 使用するテキストの配列
218
+ *
219
+ * @remarks
220
+ * textsを指定した場合フォントサイズが削減される
221
+ *
222
+ * @internal
223
+ */
224
+ function makeGoogleFontUrl(fonts, texts) {
225
+ const params = [];
226
+ params.push('display=swap');
227
+ if (texts) {
228
+ texts.forEach(text => params.push(`text=${text}`));
229
+ }
230
+ fonts.forEach(font => params.push(`family=${font.replace(/['"]/g, '').replace(/ /g, '+')}`));
231
+ return `https://fonts.googleapis.com/css2?${params.join('&')}`;
232
+ }
233
+ /**
234
+ * HTML要素を生成
235
+ *
236
+ * @internal
237
+ */
238
+ const h = (type, props, ...children) => {
239
+ const el = document.createElement(type);
240
+ for (const key of Object.keys(props)) {
241
+ const v = props[key];
242
+ if (key === 'style') {
243
+ Object.assign(el.style, v);
244
+ }
245
+ else {
246
+ el.setAttribute(key, v);
247
+ }
248
+ }
249
+ for (const child of children) {
250
+ el.appendChild(child);
251
+ }
252
+ return el;
253
+ };
254
+
28
255
  /**
29
256
  * ポップアップ(モーダル)のコンポーネントで利用するPropの定義
30
257
  */
@@ -269,243 +496,6 @@ const DefaultFormButtonColor = {
269
496
  sub: '#fff',
270
497
  };
271
498
 
272
- /** @internal */
273
- const NOOP = (_args) => { }; // eslint-disable-line @typescript-eslint/no-unused-vars
274
- /** @internal */
275
- const isPreview = () => {
276
- return false;
277
- };
278
- /** @internal */
279
- const setPreviousFocus = () => {
280
- const previously_focused = typeof document !== 'undefined' && document.activeElement;
281
- if (previously_focused) {
282
- previously_focused?.focus();
283
- }
284
- };
285
- /** @internal */
286
- const handleKeydown = (handlers) => (e) => {
287
- if (handlers[e.key]) {
288
- handlers[e.key](e);
289
- }
290
- };
291
- const POSITION_STYLES = {
292
- 'top-center': 'top: 0; right: 50%; transform: translate(+50%, 0%);',
293
- 'top-left': 'top: 0; left: 0; transform: translate(0%, 0%);',
294
- 'top-right': 'top: 0; right: 0; transform: translate(0%, 0%);',
295
- 'center-left': 'top: 50%; left: 0; transform: translate(0%, -50%);',
296
- center: 'top: 50%; left: 50%; transform: translate(-50%, -50%);',
297
- 'center-right': 'top: 50%; right: 0; transform: translate(0%, -50%);',
298
- 'bottom-left': 'bottom: 0; left: 0; transform: translate(0%, 0%);',
299
- 'bottom-center': 'bottom: 0; left: 50%; transform: translate(-50%, 0%);',
300
- 'bottom-right': 'bottom: 0; right: 0; transform: translate(0%, 0);',
301
- none: 'top: 0; bottom: 0; right: 0; left: 0;',
302
- };
303
- const TRANSFORM = {
304
- 'top-center': [50, 0],
305
- 'top-left': [0, 0],
306
- 'top-right': [0, 0],
307
- 'center-left': [0, -50],
308
- center: [-50, -50],
309
- 'center-right': [0, -50],
310
- 'bottom-left': [0, 0],
311
- 'bottom-center': [-50, 0],
312
- 'bottom-right': [0, 0],
313
- none: [0, 0],
314
- };
315
- /** @internal */
316
- const getPositionStyle = (position) => {
317
- const style = POSITION_STYLES[position];
318
- if (style != null) {
319
- return style;
320
- }
321
- else {
322
- console.warn(`[action-sdk] invalid '${position}', so we use 'center' instead`);
323
- return POSITION_STYLES['center'];
324
- }
325
- };
326
- /** @internal */
327
- const getTransform = (position) => {
328
- const transform = TRANSFORM[position];
329
- if (transform != null) {
330
- return transform;
331
- }
332
- else {
333
- console.warn(`[action-sdk] invalid '${position}', so we use 'center' instead`);
334
- return TRANSFORM['center'];
335
- }
336
- };
337
- /** @internal */
338
- const getMarginStyle = (margin) => {
339
- return `margin: ${margin?.top ?? 0} ${margin?.right ?? 0} ${margin?.bottom ?? 0} ${margin?.left ?? 0};`;
340
- };
341
- /** @internal */
342
- const stringifyStyleObj = (styleObj) => {
343
- return Object.entries(styleObj)
344
- .map(([key, value]) => `${key}:${value}`)
345
- .join(';');
346
- };
347
- /**
348
- * スクロール率が達したときに呼び出すコールバックを登録します
349
- *
350
- * @param rate - スクロール率。この値は viewport でのスクロールのパーセンテージ
351
- * @param fn - スクロール率が達したときに呼び出されるコールバック関数
352
- *
353
- * @returns スクロール率によって呼び出されるコールバックを停止する関数を返します
354
- *
355
- * @public
356
- */
357
- function onScroll(rate, fn) {
358
- const rates = Array.isArray(rate) ? rate : [rate];
359
- const body = window.document.body;
360
- const html = window.document.documentElement;
361
- const contexts = new Map();
362
- rates.forEach(rate => {
363
- contexts.set(rate, {
364
- rate,
365
- repeat: false,
366
- zone: 'out',
367
- previousRate: 0,
368
- deltaRate: 0,
369
- scrollRate: 0,
370
- scrollTop: html.scrollTop || body.scrollTop,
371
- });
372
- });
373
- const _fn = fn;
374
- const direction = (ctx) => ctx.deltaRate > 0 ? 'down' : 'up';
375
- const updateStates = (ctx, repeat) => {
376
- ctx.repeat = repeat;
377
- // prettier-ignore
378
- ctx.zone =
379
- // case: the scroll rate cannot detect the rate when scrolling to the top
380
- ctx.scrollTop === 0 && ctx.scrollRate >= ctx.rate
381
- ? 'out'
382
- : ctx.scrollRate >= ctx.rate
383
- ? 'in'
384
- : 'out';
385
- // console.log('updateStates', ctx.zone);
386
- };
387
- // prettier-ignore
388
- const canCall = ({ zone, scrollRate, rate, scrollTop, repeat }) => zone === 'out'
389
- ? scrollRate >= rate
390
- : repeat
391
- // case: the scroll rate cannot detect the rate when scrolling to the top
392
- ? scrollRate < rate || (scrollTop === 0 && scrollRate >= rate)
393
- : false;
394
- /*
395
- // NOTE: same logic the above (code size optimiazation)
396
- const canCall = (ctx: OnScrollInternalContext): boolean => {
397
- // console.log('repeat', ctx.repeat, 'rate', ctx.rate, 'scrollRate', ctx.scrollRate, '1 - rate', 1 - ctx.rate, '1 - scrollRate', 1 - ctx.scrollRate, 'scrollRate >= rate', ctx.scrollRate >= ctx.rate, '1 - scrollRate >= 1 - rate', 1 - ctx.scrollRate >= 1 - ctx.rate);
398
- // console.log(ctx.rate, 'deltaRate', ctx.deltaRate, 'reviousRate', ctx.previousRate)
399
- if (ctx.zone === 'out') {
400
- return ctx.scrollRate >= ctx.rate;
401
- } else {
402
- // 'in'
403
- if (ctx.repeat) {
404
- return ctx.scrollRate < ctx.rate || (ctx.scrollTop === 0 && ctx.scrollRate >= ctx.rate);
405
- } else {
406
- return false;
407
- }
408
- }
409
- };
410
- //*/
411
- const onScroll = () => {
412
- const scrollTop = html.scrollTop || body.scrollTop;
413
- const pageHeight = Math.max(...[body.clientHeight, body.scrollHeight, html.scrollHeight, html.clientHeight]);
414
- const viewHeight = Math.min(...[html.clientHeight, body.clientHeight]);
415
- const scrollRate = (scrollTop + viewHeight) / pageHeight;
416
- // console.log('scrollRate ->', scrollRate, 'scrollTop ->', scrollTop);
417
- contexts.forEach(ctx => {
418
- ctx.scrollRate = scrollRate;
419
- ctx.deltaRate = ctx.scrollRate - ctx.previousRate;
420
- ctx.previousRate = ctx.scrollRate;
421
- ctx.scrollTop = scrollTop;
422
- if (canCall(ctx)) {
423
- const repeat = !!_fn(Object.assign({ direction: direction(ctx) }, ctx));
424
- updateStates(ctx, repeat);
425
- }
426
- });
427
- };
428
- // register scorll event
429
- window.addEventListener('scroll', onScroll);
430
- // return disposing (finalizing/releasing) function
431
- return () => {
432
- window.removeEventListener('scroll', onScroll);
433
- };
434
- }
435
- /**
436
- * 指定した時間の経過後に呼び出すコールバックを登録します
437
- *
438
- * @param time - コールバックを呼び出すまでの時間。単位はミリセカンド(ms)
439
- * @param fn - 指定した時間が経過後に呼び出されるコールバック関数
440
- *
441
- * @returns コールバックを呼び出すためのタイマーを停止する関数を返します
442
- *
443
- * @public
444
- */
445
- function onTime(time, fn) {
446
- const timeoutHandler = setTimeout(fn, time);
447
- return () => timeoutHandler && clearTimeout(timeoutHandler);
448
- }
449
- /** @internal */
450
- function hasSuffix(value, suffix) {
451
- return new RegExp(`[0-9]${suffix}$`).test(value);
452
- }
453
- /** @internal */
454
- function randStr(digit = 8) {
455
- return Math.random().toString(32).substring(digit);
456
- }
457
- /**
458
- * Goolge Fonts用のURLを生成
459
- *
460
- * @param fonts - フォント名の配列
461
- * @param texts - 使用するテキストの配列
462
- *
463
- * @remarks
464
- * textsを指定した場合フォントサイズが削減される
465
- *
466
- * @internal
467
- */
468
- function makeGoogleFontUrl(fonts, texts) {
469
- const params = [];
470
- params.push('display=swap');
471
- if (texts) {
472
- texts.forEach(text => params.push(`text=${text}`));
473
- }
474
- fonts.forEach(font => params.push(`family=${font.replace(/['"]/g, '').replace(/ /g, '+')}`));
475
- return `https://fonts.googleapis.com/css2?${params.join('&')}`;
476
- }
477
- /**
478
- * HTML要素を生成
479
- *
480
- * @internal
481
- */
482
- const h = (type, props, ...children) => {
483
- const el = document.createElement(type);
484
- for (const key of Object.keys(props)) {
485
- const v = props[key];
486
- if (key === 'style') {
487
- Object.assign(el.style, v);
488
- }
489
- else {
490
- el.setAttribute(key, v);
491
- }
492
- }
493
- for (const child of children) {
494
- el.appendChild(child);
495
- }
496
- return el;
497
- };
498
- /**
499
- * 非推奨
500
- *
501
- * @deprecated 非推奨
502
- *
503
- * @internal
504
- */
505
- function getGoogleFontsParam() {
506
- return 'family=' + Fonts.map(font => font.replace(/ /g, '+')).join('&family=');
507
- }
508
-
509
499
  /**
510
500
  * Store to handle action setting
511
501
  *
@@ -1825,6 +1815,7 @@ async function runScript$1(options = {
1825
1815
  const { success } = await setupActionTable(options.localVariablesQuery, data.api_key);
1826
1816
  if (!success)
1827
1817
  return;
1818
+ options.send('script_fired');
1828
1819
  // 旧Widget API IFの処理
1829
1820
  const { onCreateHandlers } = getInternalHandlers();
1830
1821
  if (onCreateHandlers) {
@@ -4736,7 +4727,7 @@ function add_css$n(target) {
4736
4727
  append_styles(target, "svelte-wb7ek", ".text-button-element.svelte-wb7ek{width:100%;height:100%}.text-button-element.svelte-wb7ek > .button{display:flex;justify-content:center;align-items:center;width:100%;height:100%;background-color:transparent;border:none;box-shadow:transparent;box-sizing:border-box;cursor:pointer;transition:box-shadow 0.2s;white-space:pre-wrap;overflow:hidden}.text-button-element.svelte-wb7ek > .button._disabled{cursor:not-allowed !important;opacity:0.2}.text-button-element.svelte-wb7ek > .button:not(._disabled):active{box-shadow:inset 0 0 100px 100px rgba(0, 0, 0, 0.3)}.text-button-element.svelte-wb7ek > .button:not(._disabled):hover{box-shadow:inset 0 0 100px 100px rgba(255, 255, 255, 0.3)}");
4737
4728
  }
4738
4729
 
4739
- // (36:2) <Button onClick={onClick} {style} {eventName}>
4730
+ // (46:2) <Button onClick={onClick} {style} {eventName}>
4740
4731
  function create_default_slot$5(ctx) {
4741
4732
  let rendertext;
4742
4733
  let current;
@@ -4772,9 +4763,6 @@ function create_default_slot$5(ctx) {
4772
4763
 
4773
4764
  function create_fragment$o(ctx) {
4774
4765
  let div;
4775
- let link;
4776
- let link_href_value;
4777
- let t;
4778
4766
  let button;
4779
4767
  let current;
4780
4768
 
@@ -4791,31 +4779,21 @@ function create_fragment$o(ctx) {
4791
4779
  return {
4792
4780
  c() {
4793
4781
  div = element("div");
4794
- link = element("link");
4795
- t = space();
4796
4782
  create_component(button.$$.fragment);
4797
- attr(link, "href", link_href_value = `https://fonts.googleapis.com/css2?${getGoogleFontsParam()}&display=swap&text=${/*text*/ ctx[0]}`);
4798
- attr(link, "rel", "stylesheet");
4799
4783
  attr(div, "class", "text-button-element svelte-wb7ek");
4800
4784
  },
4801
4785
  m(target, anchor) {
4802
4786
  insert(target, div, anchor);
4803
- append(div, link);
4804
- append(div, t);
4805
4787
  mount_component(button, div, null);
4806
4788
  current = true;
4807
4789
  },
4808
4790
  p(ctx, [dirty]) {
4809
- if (!current || dirty & /*text*/ 1 && link_href_value !== (link_href_value = `https://fonts.googleapis.com/css2?${getGoogleFontsParam()}&display=swap&text=${/*text*/ ctx[0]}`)) {
4810
- attr(link, "href", link_href_value);
4811
- }
4812
-
4813
4791
  const button_changes = {};
4814
4792
  if (dirty & /*onClick*/ 2) button_changes.onClick = /*onClick*/ ctx[1];
4815
4793
  if (dirty & /*style*/ 8) button_changes.style = /*style*/ ctx[3];
4816
4794
  if (dirty & /*eventName*/ 4) button_changes.eventName = /*eventName*/ ctx[2];
4817
4795
 
4818
- if (dirty & /*$$scope, text*/ 65) {
4796
+ if (dirty & /*$$scope, text*/ 129) {
4819
4797
  button_changes.$$scope = { dirty, ctx };
4820
4798
  }
4821
4799
 
@@ -4842,6 +4820,7 @@ function instance$o($$self, $$props, $$invalidate) {
4842
4820
  let { text = 'ボタンラベル' } = $$props;
4843
4821
  let { onClick = { operation: 'none', args: [] } } = $$props;
4844
4822
  let { eventName = '' } = $$props;
4823
+ let { font = SYSTEM_FONT } = $$props;
4845
4824
  let { _buttonStyle = 'color:#ffffff; font-size:14px; font-weight:bold; justify-content:center; align-items:center; padding:1px 6px 1px 6px; line-height: 1.5;' } = $$props;
4846
4825
  let { _style = 'background-color: #000000; border-radius:4px; cursor: pointer' } = $$props;
4847
4826
 
@@ -4849,17 +4828,22 @@ function instance$o($$self, $$props, $$invalidate) {
4849
4828
  if ('text' in $$props) $$invalidate(0, text = $$props.text);
4850
4829
  if ('onClick' in $$props) $$invalidate(1, onClick = $$props.onClick);
4851
4830
  if ('eventName' in $$props) $$invalidate(2, eventName = $$props.eventName);
4852
- if ('_buttonStyle' in $$props) $$invalidate(4, _buttonStyle = $$props._buttonStyle);
4853
- if ('_style' in $$props) $$invalidate(5, _style = $$props._style);
4831
+ if ('font' in $$props) $$invalidate(4, font = $$props.font);
4832
+ if ('_buttonStyle' in $$props) $$invalidate(5, _buttonStyle = $$props._buttonStyle);
4833
+ if ('_style' in $$props) $$invalidate(6, _style = $$props._style);
4854
4834
  };
4855
4835
 
4856
4836
  $$self.$$.update = () => {
4857
- if ($$self.$$.dirty & /*_buttonStyle, _style*/ 48) {
4858
- $$invalidate(3, style = [..._buttonStyle.split(';'), ..._style.split(';')].filter(Boolean).join(';'));
4837
+ if ($$self.$$.dirty & /*font*/ 16) {
4838
+ addFont(font);
4839
+ }
4840
+
4841
+ if ($$self.$$.dirty & /*_buttonStyle, _style, font*/ 112) {
4842
+ $$invalidate(3, style = [..._buttonStyle.split(';'), ..._style.split(';'), `font-family:${font}`].filter(prop => prop).join(';'));
4859
4843
  }
4860
4844
  };
4861
4845
 
4862
- return [text, onClick, eventName, style, _buttonStyle, _style];
4846
+ return [text, onClick, eventName, style, font, _buttonStyle, _style];
4863
4847
  }
4864
4848
 
4865
4849
  class TextButtonElement extends SvelteComponent {
@@ -4876,8 +4860,9 @@ class TextButtonElement extends SvelteComponent {
4876
4860
  text: 0,
4877
4861
  onClick: 1,
4878
4862
  eventName: 2,
4879
- _buttonStyle: 4,
4880
- _style: 5
4863
+ font: 4,
4864
+ _buttonStyle: 5,
4865
+ _style: 6
4881
4866
  },
4882
4867
  add_css$n
4883
4868
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plaidev/karte-action-sdk",
3
- "version": "1.1.180-28041937.24d05b80",
3
+ "version": "1.1.181-28042089.f7e0349f",
4
4
  "author": "Plaid Inc.",
5
5
  "license": "Apache-2.0",
6
6
  "module": "./dist/index.es.js",