@cling-se/widget 0.17.0 → 1.0.0-beta.2

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.
Files changed (232) hide show
  1. package/dist/AddClientCallout-e8d19R3f.js +101 -0
  2. package/dist/AnswerModal-BGvB8IVV.js +3291 -0
  3. package/dist/AttachmentItem-CkHbAm4l.js +171 -0
  4. package/dist/BaseUpload-BiJBcWRu.js +2472 -0
  5. package/dist/BlockMedia-CW5wgipC.js +103 -0
  6. package/dist/CCallout-Cy2eeIYd.js +104 -0
  7. package/dist/{CCurrencyDropdown-C2rXt2cJ.js → CCurrencyDropdown-DE_3CTjm.js} +91 -53
  8. package/dist/CDropdownItem-Dmq5gYzA.js +751 -0
  9. package/dist/CFormField.vue_vue_type_script_setup_true_lang-D_U9coAY.js +292 -0
  10. package/dist/{CPhoneFormat-C8VPsiK6.js → CPhoneFormat-BS2nP9kc.js} +13 -21
  11. package/dist/CPhoneInput-Bf6329PO.js +207 -0
  12. package/dist/CPriceInput-d1yjuMQr.js +140 -0
  13. package/dist/CSelect-DgnT07Hk.js +98 -0
  14. package/dist/CSkeleton.vue_vue_type_script_setup_true_lang-Ckl--dyv.js +51 -0
  15. package/dist/ClientAutocomplete-9JzGcO9O.js +532 -0
  16. package/dist/ClientModal-BzWQtWSZ.js +1181 -0
  17. package/dist/ColorPicker-BvoFN8nu.js +1408 -0
  18. package/dist/CompanyModal-Bp4V_az9.js +250 -0
  19. package/dist/ContentWrapper-CuH6xKmo.js +265 -0
  20. package/dist/CoverBlockSettings-BA5L0Zee.js +861 -0
  21. package/dist/DocAnswer-BcNA_KEg.js +33 -0
  22. package/dist/DocDetails-CStEwWnU.js +448 -0
  23. package/dist/DocForm-BOoILf5E.js +6748 -0
  24. package/dist/DocFormSend-CQIf-HJY.js +171 -0
  25. package/dist/DocLinks-BRX5QzNe.js +36 -0
  26. package/dist/DocModalBase-D72yWj-x.js +29 -0
  27. package/dist/DocPrint-BI1LXUPE.js +399 -0
  28. package/dist/DocReceipt-DaZ4V76p.js +341 -0
  29. package/dist/DocSendReminder-DKGZlo7s.js +181 -0
  30. package/dist/DocTextEditor-Dm-cTZpA.js +19413 -0
  31. package/dist/DocTimeline-DCwofzuk.js +537 -0
  32. package/dist/DocumentClient-vJdxCB53.js +90 -0
  33. package/dist/DocumentLayout-CKSi42ev.js +1368 -0
  34. package/dist/DocumentLogotype-DbQlvQ-y.js +162 -0
  35. package/dist/DocumentVoided-CRX2WxWO.js +33 -0
  36. package/dist/EmbedInput-B-oeC4Wy.js +157 -0
  37. package/dist/EmbedSettings-B9Yka2yB.js +103 -0
  38. package/dist/ErrorCallout-B_ygH33E.js +34 -0
  39. package/dist/FilePreviewModal-Bf3ELTow.js +202 -0
  40. package/dist/Flag-BwTgCNHO.js +41 -0
  41. package/dist/HeaderSettings-DvC7nlyY.js +720 -0
  42. package/dist/ImageSelectModal-D3sP3lhR.js +119 -0
  43. package/dist/ImageUploadWrapper-RWNa-yIq.js +1585 -0
  44. package/dist/Index-0_3ULrWX.js +126 -0
  45. package/dist/Index-4NPe0sfX.js +629 -0
  46. package/dist/Index-B1uA0FF6.js +4 -0
  47. package/dist/Index-BBkCYm2q.js +201 -0
  48. package/dist/{Index-LzN6dktq.js → Index-BBwvo7S9.js} +10 -18
  49. package/dist/Index-BEMlsYwJ.js +68 -0
  50. package/dist/Index-BRBhJ6kz.js +21 -0
  51. package/dist/{Index-BPUYpfLJ.js → Index-BTFmHjUt.js} +47 -60
  52. package/dist/Index-BcUNnxLC.js +1098 -0
  53. package/dist/Index-Bo6ExBUL.js +93 -0
  54. package/dist/Index-BvMPCgdH.js +102 -0
  55. package/dist/Index-Bx5TOI9k.js +74 -0
  56. package/dist/Index-C7GZS8EI.js +16 -0
  57. package/dist/Index-CNWhm07R.js +25 -0
  58. package/dist/{Index-BUK-1yVR.js → Index-CQpznMKV.js} +9 -17
  59. package/dist/Index-CRzsnIij.js +159 -0
  60. package/dist/Index-CeSG1C41.js +140 -0
  61. package/dist/Index-CjfjdZj5.js +52 -0
  62. package/dist/Index-CskKmZpd.js +363 -0
  63. package/dist/Index-D5qwbCo1.js +28 -0
  64. package/dist/Index-D8Ae1Txt.js +228 -0
  65. package/dist/Index-DE8aenDB.js +3452 -0
  66. package/dist/Index-DI5EB5Rt.js +39 -0
  67. package/dist/Index-DaV57YPP.js +163 -0
  68. package/dist/Index-DbwkmoyM.js +38 -0
  69. package/dist/Index-Df9skok6.js +70 -0
  70. package/dist/{Index-BHJGfHm9.js → Index-DfLLA0ij.js} +313 -206
  71. package/dist/Index-Dw1CO5F9.js +76 -0
  72. package/dist/Index-PZXyOoVb.js +87 -0
  73. package/dist/{Index-BioOegOO.js → Index-ZUnH-BHj.js} +10 -18
  74. package/dist/Index-cjKGSiDi.js +136 -0
  75. package/dist/Index-m-goRuKD.js +49 -0
  76. package/dist/Index-rGeWbLcB.js +47 -0
  77. package/dist/Index-vrljNp6G.js +28 -0
  78. package/dist/Index.vue_vue_type_script_lang-aeVuChGF.js +671 -0
  79. package/dist/InputToggleRow-v6qAWPg6.js +99 -0
  80. package/dist/ManualPopover-BONBJIUA.js +57 -0
  81. package/dist/MediaWrapper-CXb2UGd9.js +18 -0
  82. package/dist/{NotBindingText-CM3FN0A6.js → NotBindingText-BqESO13N.js} +13 -17
  83. package/dist/PackageGroup-AIysVmyh.js +1058 -0
  84. package/dist/PdfTerms-BlhHdTu3.js +34 -0
  85. package/dist/PdfViewer-DwZ1rwlN.js +392 -0
  86. package/dist/PlainHtml.vue_vue_type_script_setup_true_lang-D6NNUTz0.js +17 -0
  87. package/dist/PriceHeader-C4XhnoA3.js +488 -0
  88. package/dist/SearchApi-B7lXgUY6.js +137 -0
  89. package/dist/SendForm-BcD0xSvB.js +7031 -0
  90. package/dist/Setup-C2qaYDei.js +47 -0
  91. package/dist/{SmartList-DhhjSWLO.js → SmartList-DqG7Q5t7.js} +16 -24
  92. package/dist/Sortable.vue_vue_type_script_setup_true_lang-CzMbr8AX.js +1303 -0
  93. package/dist/{TermsSettings-BEQwmkFH.js → TermsSettings-BOCONyM4.js} +169 -56
  94. package/dist/ThemeColorRow-sjGdMzGN.js +108 -0
  95. package/dist/ToggleBinding-7oq_oXPt.js +44 -0
  96. package/dist/UploadModal-C_X2NjVY.js +134 -0
  97. package/dist/VideoPlayerInput-BsUcmpl4.js +135 -0
  98. package/dist/VideoPlayerSettings-BXMmxaZQ.js +78 -0
  99. package/dist/VideoSelectModal-CW0OweCw.js +217 -0
  100. package/dist/{anime.es-BrPTThYb.js → anime.es-gdcpA-eY.js} +1 -2
  101. package/dist/{color-TdtKxwVa.js → color-HetJPhlA.js} +1 -2
  102. package/dist/{debounce-D0hKNU85.js → debounce-DNl99Gyo.js} +10 -10
  103. package/dist/dom-CkTGWrfu.js +69 -0
  104. package/dist/{focusDrawerMixin-C_aTLmK0.js → focusDrawerMixin-BwcErMDY.js} +1 -1
  105. package/dist/{formDrawerState-Da4mcbab.js → formDrawerState-DaurePnd.js} +2 -2
  106. package/dist/helpers-CPW--XIz.js +44 -0
  107. package/dist/index-BjiGCJPI.js +149 -0
  108. package/dist/index-CFNv6OvX.js +188 -0
  109. package/dist/index-Cx71On5Z.js +508 -0
  110. package/dist/index-DKMxIBz_.js +270 -0
  111. package/dist/index-DKf5SGLD.js +125 -0
  112. package/dist/index-E32WgUp9.js +3525 -0
  113. package/dist/index-kp-GC5I0.js +513 -0
  114. package/dist/index.es.js +2 -5
  115. package/dist/index.umd.js +285 -1485
  116. package/dist/{main-BgzLHIoo.js → main-Cb-nyil1.js} +41414 -42507
  117. package/dist/mapFormMixin-D3BihYWW.js +1544 -0
  118. package/dist/omit--YYr41Xp.js +31 -0
  119. package/dist/{publicSenderState-DB4BHByV.js → publicSenderState-CdRW_Wwp.js} +4 -4
  120. package/dist/splitpanes-D-ThFkeR.js +342 -0
  121. package/dist/style.css +1 -4
  122. package/dist/template-BvaNnq-g.js +1493 -0
  123. package/dist/{throttle-DT2UVOqm.js → throttle-D-bUGaVh.js} +2 -2
  124. package/dist/tippy.esm-BmKNqohP.js +1994 -0
  125. package/dist/useTermsModal-Dhf6_eYb.js +87 -0
  126. package/dist/{utils-nos8CB1L.js → utils-CBPcYdLv.js} +8 -11
  127. package/dist/validation-DOcUOoMe.js +40 -0
  128. package/package.json +18 -21
  129. package/dist/AddClientCallout-BJzBdba1.js +0 -48
  130. package/dist/AnswerModal-frHq1g4s.js +0 -3874
  131. package/dist/AttachmentItem-BaN0OrEV.js +0 -85
  132. package/dist/BaseDatePicker-B-AfdrSb.js +0 -3187
  133. package/dist/BaseUpload-CY3lTcte.js +0 -1977
  134. package/dist/BlockMedia-Bb5wQIDg.js +0 -76
  135. package/dist/CCallout-5quI6yyk.js +0 -58
  136. package/dist/CDropdownItem-CaoSQX6X.js +0 -640
  137. package/dist/CFormField-Dd2Y71JG.js +0 -240
  138. package/dist/CPhoneInput-BU1t6eo_.js +0 -138
  139. package/dist/CPriceInput-pv2aIVkH.js +0 -116
  140. package/dist/CSelect-CrM45B7V.js +0 -91
  141. package/dist/CSkeleton-BkvONMqL.js +0 -55
  142. package/dist/ClientAutocomplete-BRXIKQSk.js +0 -438
  143. package/dist/ClientModal-CvHAptV2.js +0 -666
  144. package/dist/ColorPicker-RgoXRrud.js +0 -2879
  145. package/dist/CompanyModal-OL4bD9Gk.js +0 -147
  146. package/dist/ContentWrapper-8HduCnR4.js +0 -190
  147. package/dist/CoverBlockSettings-DUv8AcdX.js +0 -659
  148. package/dist/DocAnswer-DiyFfpT2.js +0 -36
  149. package/dist/DocDetails-BxNRfBnK.js +0 -263
  150. package/dist/DocForm-MGp-o0pu.js +0 -5017
  151. package/dist/DocFormSend-q_QuVCqh.js +0 -146
  152. package/dist/DocLinks-DGDdp30U.js +0 -38
  153. package/dist/DocModalBase-qG4RqwBn.js +0 -28
  154. package/dist/DocPrint-Cln3kt0g.js +0 -240
  155. package/dist/DocReceipt-nbsJ-ukZ.js +0 -217
  156. package/dist/DocSendReminder-B3qdqduf.js +0 -140
  157. package/dist/DocTextEditor-CQDnjnRY.js +0 -17193
  158. package/dist/DocTimeline-CgKHoDcG.js +0 -485
  159. package/dist/DocumentClient-UZlnIlz5.js +0 -136
  160. package/dist/DocumentLayout-Dvr4zgyF.js +0 -4880
  161. package/dist/DocumentLogotype-mAVgMRHr.js +0 -92
  162. package/dist/DocumentVoided-BXYNrf_6.js +0 -25
  163. package/dist/EmbedInput-YRUrw3c6.js +0 -117
  164. package/dist/EmbedSettings-DvRreF7H.js +0 -74
  165. package/dist/ErrorCallout-DVknpLVY.js +0 -27
  166. package/dist/FilePreviewModal-DC56FaGy.js +0 -81
  167. package/dist/Flag-D5iZLESg.js +0 -46
  168. package/dist/HeaderSettings-DXZnZL7A.js +0 -440
  169. package/dist/ImageSelectModal-Bu4_xZga.js +0 -86
  170. package/dist/ImageUploadWrapper-CtZhkAm1.js +0 -1604
  171. package/dist/Index-B1dJO6Bk.js +0 -54
  172. package/dist/Index-B3pz1coY.js +0 -150
  173. package/dist/Index-BHgW8EHW.js +0 -2446
  174. package/dist/Index-BNucs2O-.js +0 -154
  175. package/dist/Index-BW-EtZ1z.js +0 -55
  176. package/dist/Index-BjKACpun.js +0 -66
  177. package/dist/Index-C94BL4uU.js +0 -294
  178. package/dist/Index-CB57haU8.js +0 -58
  179. package/dist/Index-CP17iXT6.js +0 -25
  180. package/dist/Index-CUSbvjoD.js +0 -62
  181. package/dist/Index-CVnD6jo5.js +0 -25
  182. package/dist/Index-Ci5zdPeT.js +0 -28
  183. package/dist/Index-CikqSMjb.js +0 -41
  184. package/dist/Index-CxO4tJ3U.js +0 -26
  185. package/dist/Index-D4J4BpHd.js +0 -230
  186. package/dist/Index-DAQQQlut.js +0 -754
  187. package/dist/Index-DNxSR72J.js +0 -73
  188. package/dist/Index-DPuKRwmu.js +0 -41
  189. package/dist/Index-DSy8QG8T.js +0 -32
  190. package/dist/Index-DX6_D-J-.js +0 -77
  191. package/dist/Index-Dk0KaIKg.js +0 -643
  192. package/dist/Index-Hkzoh9QR.js +0 -24
  193. package/dist/Index-KsHJxWAa.js +0 -94
  194. package/dist/Index-TtItTuv6.js +0 -33
  195. package/dist/Index-YAD39Qvg.js +0 -146
  196. package/dist/Index-eh909lAz.js +0 -107
  197. package/dist/Index-otowKI_C.js +0 -56
  198. package/dist/Index-t_oVV8Rc.js +0 -84
  199. package/dist/Index-vG96oEXZ.js +0 -144
  200. package/dist/InputToggleRow-CcqJDguN.js +0 -57
  201. package/dist/ManualPopover-BE2IN-XU.js +0 -60
  202. package/dist/MediaWrapper-lnGUFiyc.js +0 -23
  203. package/dist/PackageGroup-BsmxOMLW.js +0 -704
  204. package/dist/PdfTerms-BgYwZoAZ.js +0 -31
  205. package/dist/PdfViewer-C0lDpjte.js +0 -383
  206. package/dist/PlainHtml-5YwYVj1v.js +0 -27
  207. package/dist/PriceHeader-CxqhpGS-.js +0 -338
  208. package/dist/SearchApi-BndaIbri.js +0 -161
  209. package/dist/SendForm-D7U9fG-5.js +0 -1023
  210. package/dist/Setup-CmAK2_ZT.js +0 -50
  211. package/dist/ThemeColorRow-BlnhzebY.js +0 -69
  212. package/dist/ToggleBinding-t_58JFya.js +0 -42
  213. package/dist/UploadModal-T-WpYNsN.js +0 -95
  214. package/dist/VideoPlayerInput-DKHKjMgX.js +0 -97
  215. package/dist/VideoPlayerSettings-DDMlUvSt.js +0 -61
  216. package/dist/VideoSelectModal-B9bbP0dd.js +0 -104
  217. package/dist/answerDocumentMixin-DXI_E5Kx.js +0 -51
  218. package/dist/dom-CWsqMElk.js +0 -71
  219. package/dist/formValidationMixin-WZ2lGndu.js +0 -49
  220. package/dist/index-B2l57ilt.js +0 -102
  221. package/dist/index-COKDjmM2.js +0 -167
  222. package/dist/index-HtKGcIng.js +0 -2700
  223. package/dist/index-LQ7NztTt.js +0 -81
  224. package/dist/index-fx5gR8fM.js +0 -351
  225. package/dist/index-zXXJrTvv.js +0 -492
  226. package/dist/mapFormMixin-CQgSN7dv.js +0 -3028
  227. package/dist/omit-ScS7B6c5.js +0 -31
  228. package/dist/simplebar.min-B0cB_p8g.js +0 -71
  229. package/dist/splitpanes-BHUVsCZF.js +0 -382
  230. package/dist/tippy.esm-CR89mtdY.js +0 -1805
  231. package/dist/vuedraggable.umd-CkXXkt1b.js +0 -3161
  232. package/dist/vuex.esm-DKGl8mcw.js +0 -467
@@ -0,0 +1,629 @@
1
+ import { P as x, aJ as A, z, a as P, g as V, y as T, _ as D, b as y, o as r, c as p, w as g, f as c, s as i, d, l as k, v as o, e as w, B as l, n as B, aa as E, q as N, a3 as O, aq as M, E as b, aj as S } from "./main-Cb-nyil1.js";
2
+ import "./template-BvaNnq-g.js";
3
+ import { s as q, i as L } from "./dom-CkTGWrfu.js";
4
+ import { v as $ } from "./validation-DOcUOoMe.js";
5
+ import { i as R } from "./DocumentLayout-CKSi42ev.js";
6
+ import { w as I } from "./CDropdownItem-Dmq5gYzA.js";
7
+ import { D as j } from "./DocModalBase-D72yWj-x.js";
8
+ import { _ as U } from "./CFormField.vue_vue_type_script_setup_true_lang-D_U9coAY.js";
9
+ import { u as F } from "./index-kp-GC5I0.js";
10
+ import { a as H, m as W, b as J } from "./index-BjiGCJPI.js";
11
+ function K(e) {
12
+ const { isValid: t } = x($) || {}, { show: n, getOpenInstances: v } = A();
13
+ function s() {
14
+ var m;
15
+ return (m = v()) == null ? void 0 : m.some(
16
+ (u) => {
17
+ var h;
18
+ return ((h = u.modalAttrs) == null ? void 0 : h.name) === "AnswerModal";
19
+ }
20
+ );
21
+ }
22
+ async function a(m = "accept", u = {}) {
23
+ if (!s() && !(e != null && e.isPreview)) {
24
+ if (typeof t != "function")
25
+ throw new Error("isValid is not a function");
26
+ m === "accept" && !await t() || n(
27
+ z(
28
+ () => import(
29
+ // @ts-ignore
30
+ "./AnswerModal-BGvB8IVV.js"
31
+ )
32
+ ),
33
+ {
34
+ mode: m,
35
+ _document: e,
36
+ fullScreen: R.value,
37
+ calcHeight: !!u.calcHeight
38
+ },
39
+ {
40
+ name: "AnswerModal",
41
+ adaptive: !0,
42
+ height: "auto",
43
+ width: "90%",
44
+ maxWidth: 420,
45
+ classes: "overflow-visible",
46
+ transition: "modal-soft",
47
+ clickToClose: !1
48
+ }
49
+ );
50
+ }
51
+ }
52
+ return {
53
+ answer: a
54
+ };
55
+ }
56
+ const G = {
57
+ i18nOptions: {
58
+ namespaces: "components",
59
+ keyPrefix: "document.propertyDesignationModal"
60
+ },
61
+ components: {
62
+ DocModalBase: j,
63
+ CField: U
64
+ },
65
+ emits: ["close"],
66
+ mixins: [I],
67
+ props: {
68
+ senderName: {
69
+ type: String,
70
+ required: !0
71
+ },
72
+ propertyDesignation: {
73
+ type: Object,
74
+ default: null
75
+ },
76
+ fullScreen: {
77
+ type: Boolean,
78
+ default: !1
79
+ }
80
+ },
81
+ setup() {
82
+ return {
83
+ v$: F()
84
+ };
85
+ },
86
+ data() {
87
+ return {
88
+ cornerRadius: 0,
89
+ spacing: 0,
90
+ view: "start",
91
+ form: "",
92
+ realEstateId: "",
93
+ condominiumId: null,
94
+ condominiumOrgNo: null
95
+ };
96
+ },
97
+ validations() {
98
+ return {
99
+ condominiumId: {
100
+ required: H(this.form === "condominium"),
101
+ minLength: W(4),
102
+ maxLength: J(4)
103
+ },
104
+ condominiumOrgNo: {
105
+ required: H(this.form === "condominium")
106
+ },
107
+ realEstateId: {
108
+ required: H(this.form === "realEstate")
109
+ }
110
+ };
111
+ },
112
+ computed: {
113
+ messages() {
114
+ const e = (t) => this.$t(`validations.${t}`);
115
+ return {
116
+ condominiumId: {
117
+ required: e("condominiumId.required"),
118
+ minLength: e("condominiumId.minLength"),
119
+ maxLength: e("condominiumId.maxLength")
120
+ },
121
+ condominiumOrgNo: {
122
+ required: e("condominiumOrgNo.required")
123
+ },
124
+ realEstateId: {
125
+ required: e("realEstateId.required")
126
+ }
127
+ };
128
+ }
129
+ },
130
+ created() {
131
+ if (this.propertyDesignation) {
132
+ const {
133
+ propertyType: e = "",
134
+ propertyId: t = "",
135
+ condominiumOrgNo: n = null
136
+ } = this.propertyDesignation;
137
+ this.form = e, e === "realEstate" ? this.realEstateId = t : this.condominiumId = t, this.condominiumOrgNo = n;
138
+ }
139
+ },
140
+ mounted() {
141
+ this.spacing = window.getComputedStyle(this.$refs.root.$el).paddingTop, this.cornerRadius = window.getComputedStyle(
142
+ this.$refs.root.$el
143
+ ).borderRadius;
144
+ },
145
+ methods: {
146
+ ...P({
147
+ putCurrentDoc: V.PUT_CURRENT_PUBLIC_DOCUMENT,
148
+ reloadCurrentDocument: V.RELOAD_CURRENT_DOCUMENT
149
+ }),
150
+ async updateClientPropertyDesignation() {
151
+ if (this.v$.$touch(), this.v$.$invalid) return;
152
+ const e = {
153
+ propertyType: this.form,
154
+ propertyId: this.form === "realEstate" ? this.realEstateId : this.condominiumId,
155
+ ...this.form === "condominium" && {
156
+ condominiumOrgNo: this.condominiumOrgNo
157
+ }
158
+ };
159
+ try {
160
+ await this.putCurrentDoc({
161
+ body: {
162
+ ["clients[0].region.propertyDesignation"]: e
163
+ }
164
+ }), this.reloadCurrentDocument(), this.view = "complete";
165
+ } catch (t) {
166
+ T(t);
167
+ }
168
+ }
169
+ }
170
+ }, Q = { key: 1 }, X = { class: "mb-2 text-lg font-semibold" }, Y = { class: "text-gray-700" }, Z = { key: 2 }, ee = { class: "mb-2 text-lg font-semibold" }, te = { class: "text-gray-700" }, ne = {
171
+ href: "https://www.lantmateriet.se/",
172
+ target: "_blank",
173
+ rel: "noopener",
174
+ style: { "text-decoration": "underline" }
175
+ }, ie = {
176
+ key: 1,
177
+ class: "mb-12 text-center"
178
+ }, oe = { class: "mb-4 text-base font-medium" }, se = { class: "flex justify-center" }, re = { class: "mx-4" }, ae = { class: "text-sm leading-tight text-gray-700" }, de = { class: "mx-4" }, le = { class: "text-sm leading-tight text-gray-700" }, me = { key: 2 }, ce = { class: "space-y-6" }, ue = { key: 3 }, he = { class: "flex flex-col items-center justify-center text-center" }, ve = { class: "bg-primary-50 mb-4 flex h-12 w-12 items-center justify-center rounded-full" }, ge = { class: "mb-1 text-base font-semibold" }, fe = { class: "mb-6 text-base text-gray-700" }, we = { class: "mt-4 w-full" };
179
+ function pe(e, t, n, v, s, a) {
180
+ const m = y("CButton"), u = y("CInput"), h = y("CField"), _ = y("CIcon"), C = y("DocModalBase");
181
+ return r(), p(C, {
182
+ ref: "root",
183
+ class: B([{ "full-screen": e.mq === "sm" }]),
184
+ onClose: t[8] || (t[8] = (f) => e.$emit("close"))
185
+ }, {
186
+ default: g(() => [
187
+ n.fullScreen ? (r(), p(m, {
188
+ key: 0,
189
+ class: "absolute right-4 top-4 z-50",
190
+ icon: "x",
191
+ circle: "",
192
+ onClick: t[0] || (t[0] = (f) => e.$emit("close"))
193
+ })) : c("", !0),
194
+ i("div", null, [
195
+ s.view !== "complete" ? (r(), d("div", {
196
+ key: 0,
197
+ style: k({
198
+ paddingTop: s.spacing,
199
+ marginTop: `-${s.spacing}`,
200
+ borderRadius: `${s.cornerRadius} ${s.cornerRadius} 0 0`
201
+ }),
202
+ class: "negate-padding relative mb-8 border-b border-gray-100 bg-gray-50 pb-8 text-center"
203
+ }, [
204
+ s.view === "start" ? (r(), d("div", Q, [
205
+ i("div", X, o(e.$t("title")), 1),
206
+ i("div", Y, o(e.$t("subTitle", { senderName: n.senderName })), 1)
207
+ ])) : c("", !0),
208
+ s.view === "form" ? (r(), d("div", Z, [
209
+ w(m, {
210
+ circle: "",
211
+ class: "absolute left-4 top-4",
212
+ icon: "arrow-left",
213
+ onClick: t[1] || (t[1] = (f) => s.view = "start")
214
+ }),
215
+ i("div", ee, o(e.$t("howToFind")), 1),
216
+ i("div", te, [
217
+ l(o(e.$t("goto1")) + " ", 1),
218
+ i("a", ne, o(e.$t("goto2")), 1),
219
+ l(" " + o(e.$t("goto3")), 1)
220
+ ])
221
+ ])) : c("", !0)
222
+ ], 4)) : c("", !0),
223
+ s.view === "start" ? (r(), d("div", ie, [
224
+ i("div", oe, o(e.$t("whereTitle")), 1),
225
+ i("div", se, [
226
+ i("div", re, [
227
+ i("div", {
228
+ class: "mb-2 flex h-24 w-24 cursor-pointer items-center justify-center rounded-xl border border-gray-300 bg-gray-50 hover:bg-gray-100 active:bg-gray-200",
229
+ onClick: t[2] || (t[2] = () => {
230
+ s.view = "form", s.form = "realEstate";
231
+ })
232
+ }, t[9] || (t[9] = [
233
+ i("svg", {
234
+ class: "text-gray-400",
235
+ width: "59",
236
+ height: "41",
237
+ viewBox: "0 0 59 59",
238
+ xmlns: "http://www.w3.org/2000/svg"
239
+ }, [
240
+ i("g", {
241
+ fill: "currentColor",
242
+ "fill-rule": "evenodd"
243
+ }, [
244
+ i("path", { d: "M6 28h47v29H6V28zm6 7.998101V40.0019C12 41.113294 12.89458 42 13.998101 42H18.0019C19.113294 42 20 41.10542 20 40.001899V35.9981C20 34.886706 19.10542 34 18.001899 34H13.9981C12.886706 34 12 34.89458 12 35.998101zm22-.007306V54h11V35.990795C45 34.898212 44.108144 34 43.007983 34h-7.015966C34.900177 34 34 34.89131 34 35.990795zM27.189354 1.837583C28.46549.536998 30.53366.53613 31.813677 1.840673L56.5 27h-54l9.85551-10.044348V7.141778h6.733007v2.95186l8.100837-8.256055zM25.5 15.861211v4.003797c0 1.111395.89458 1.998102 1.998101 1.998102H31.5019c1.111395 0 1.998101-.89458 1.998101-1.998102v-4.003797c0-1.111395-.89458-1.998101-1.998101-1.998101H27.4981c-1.111395 0-1.998101.89458-1.998101 1.998101z" }),
245
+ i("path", { d: "M0 56.004882C0 54.897616.90314 54 1.996843 54h55.006314C58.105983 54 59 54.8939 59 56.004882V59H0v-2.995118z" })
246
+ ])
247
+ ], -1)
248
+ ])),
249
+ i("div", ae, [
250
+ l(o(e.$t("house")), 1),
251
+ t[10] || (t[10] = i("br", null, null, -1)),
252
+ l("/ " + o(e.$t("realEstate")), 1)
253
+ ])
254
+ ]),
255
+ i("div", de, [
256
+ i("div", {
257
+ class: "mb-2 flex h-24 w-24 cursor-pointer items-center justify-center rounded-xl border border-gray-300 bg-gray-50 hover:bg-gray-100 active:bg-gray-200",
258
+ onClick: t[3] || (t[3] = () => {
259
+ s.view = "form", s.form = "condominium";
260
+ })
261
+ }, t[11] || (t[11] = [
262
+ i("svg", {
263
+ class: "text-gray-400",
264
+ width: "59",
265
+ height: "50",
266
+ viewBox: "0 0 59 73",
267
+ xmlns: "http://www.w3.org/2000/svg"
268
+ }, [
269
+ i("g", {
270
+ fill: "currentColor",
271
+ "fill-rule": "evenodd"
272
+ }, [
273
+ i("path", { d: "M6 9.004723C6 7.34526 7.343394 6 8.993614 6h41.012771C51.659714 6 53 7.342697 53 9.004723V71H6V9.004723zm5 4.993378V18.0019C11 19.113294 11.89458 20 12.998101 20H17.0019C18.113294 20 19 19.10542 19 18.001899V13.9981C19 12.886706 18.10542 12 17.001899 12H12.9981C11.886706 12 11 12.89458 11 13.998101zm14.5 0V18.0019C25.5 19.113294 26.39458 20 27.498101 20H31.5019C32.613294 20 33.5 19.10542 33.5 18.001899V13.9981C33.5 12.886706 32.60542 12 31.501899 12H27.4981C26.386706 12 25.5 12.89458 25.5 13.998101zm14.5 0V18.0019C40 19.113294 40.89458 20 41.998101 20H46.0019C47.113294 20 48 19.10542 48 18.001899V13.9981C48 12.886706 47.10542 12 46.001899 12H41.9981C40.886706 12 40 12.89458 40 13.998101zm-29 12V30.0019C11 31.113294 11.89458 32 12.998101 32H17.0019C18.113294 32 19 31.10542 19 30.001899V25.9981C19 24.886706 18.10542 24 17.001899 24H12.9981C11.886706 24 11 24.89458 11 25.998101zm14.5 0V30.0019C25.5 31.113294 26.39458 32 27.498101 32H31.5019C32.613294 32 33.5 31.10542 33.5 30.001899V25.9981C33.5 24.886706 32.60542 24 31.501899 24H27.4981C26.386706 24 25.5 24.89458 25.5 25.998101zm14.5 0V30.0019C40 31.113294 40.89458 32 41.998101 32H46.0019C47.113294 32 48 31.10542 48 30.001899V25.9981C48 24.886706 47.10542 24 46.001899 24H41.9981C40.886706 24 40 24.89458 40 25.998101zm-29 12V42.0019C11 43.113294 11.89458 44 12.998101 44H17.0019C18.113294 44 19 43.10542 19 42.001899V37.9981C19 36.886706 18.10542 36 17.001899 36H12.9981C11.886706 36 11 36.89458 11 37.998101zm14.5 0V42.0019C25.5 43.113294 26.39458 44 27.498101 44H31.5019C32.613294 44 33.5 43.10542 33.5 42.001899V37.9981C33.5 36.886706 32.60542 36 31.501899 36H27.4981C26.386706 36 25.5 36.89458 25.5 37.998101zm14.5 0V42.0019C40 43.113294 40.89458 44 41.998101 44H46.0019C47.113294 44 48 43.10542 48 42.001899V37.9981C48 36.886706 47.10542 36 46.001899 36H41.9981C40.886706 36 40 36.89458 40 37.998101zm-29 12V54.0019C11 55.113294 11.89458 56 12.998101 56H17.0019C18.113294 56 19 55.10542 19 54.001899V49.9981C19 48.886706 18.10542 48 17.001899 48H12.9981C11.886706 48 11 48.89458 11 49.998101zm14.5 0V54.0019C25.5 55.113294 26.39458 56 27.498101 56H31.5019C32.613294 56 33.5 55.10542 33.5 54.001899V49.9981C33.5 48.886706 32.60542 48 31.501899 48H27.4981C26.386706 48 25.5 48.89458 25.5 49.998101zM21 60.997391V68h17v-7.002608C38 59.895858 37.104522 59 35.999894 59H23.000106C21.890058 59 21 59.894263 21 60.997392zm19-10.99929V54.0019C40 55.113294 40.89458 56 41.998101 56H46.0019C47.113294 56 48 55.10542 48 54.001899V49.9981C48 48.886706 47.10542 48 46.001899 48H41.9981C40.886706 48 40 48.89458 40 49.998101zM10 2.5C10 1.119288 11.125134 0 12.498953 0h34.002094C47.88118 0 49 1.109662 49 2.5V5H10V2.5z" }),
274
+ i("path", { d: "M0 70.004881C0 68.897616.90314 68 1.996843 68h55.006314C58.105983 68 59 68.8939 59 70.004881V73H0v-2.995119z" })
275
+ ])
276
+ ], -1)
277
+ ])),
278
+ i("div", le, [
279
+ l(o(e.$t("condominium")), 1),
280
+ t[12] || (t[12] = i("br", null, null, -1)),
281
+ l("/ " + o(e.$t("apartment")), 1)
282
+ ])
283
+ ])
284
+ ])
285
+ ])) : c("", !0),
286
+ s.view === "form" ? (r(), d("div", me, [
287
+ i("div", ce, [
288
+ s.form === "realEstate" ? (r(), p(h, {
289
+ key: 0,
290
+ vuelidate: v.v$.realEstateId,
291
+ "vuelidate-messages": a.messages.realEstateId,
292
+ label: e.$t("propertyDesignation")
293
+ }, {
294
+ default: g(() => [
295
+ w(u, {
296
+ modelValue: s.realEstateId,
297
+ "onUpdate:modelValue": t[4] || (t[4] = (f) => s.realEstateId = f),
298
+ placeholder: e.$t("propertyDesignationPlaceholder")
299
+ }, null, 8, ["modelValue", "placeholder"])
300
+ ]),
301
+ _: 1
302
+ }, 8, ["vuelidate", "vuelidate-messages", "label"])) : c("", !0),
303
+ s.form === "condominium" ? (r(), p(h, {
304
+ key: 1,
305
+ vuelidate: v.v$.condominiumId,
306
+ "vuelidate-messages": a.messages.condominiumId,
307
+ label: e.$t("condominiumId")
308
+ }, {
309
+ default: g(() => [
310
+ w(u, {
311
+ modelValue: s.condominiumId,
312
+ "onUpdate:modelValue": t[5] || (t[5] = (f) => s.condominiumId = f),
313
+ placeholder: e.$t("condominiumIdPlaceholder"),
314
+ type: "number"
315
+ }, null, 8, ["modelValue", "placeholder"])
316
+ ]),
317
+ _: 1
318
+ }, 8, ["vuelidate", "vuelidate-messages", "label"])) : c("", !0),
319
+ s.form === "condominium" ? (r(), p(h, {
320
+ key: 2,
321
+ vuelidate: v.v$.condominiumOrgNo,
322
+ "vuelidate-messages": a.messages.condominiumOrgNo,
323
+ label: e.$t("condominiumOrgNo")
324
+ }, {
325
+ default: g(() => [
326
+ w(u, {
327
+ modelValue: s.condominiumOrgNo,
328
+ "onUpdate:modelValue": t[6] || (t[6] = (f) => s.condominiumOrgNo = f),
329
+ placeholder: e.$t("condominiumOrgNoPlaceholder"),
330
+ type: "number",
331
+ class: "mt-3"
332
+ }, null, 8, ["modelValue", "placeholder"])
333
+ ]),
334
+ _: 1
335
+ }, 8, ["vuelidate", "vuelidate-messages", "label"])) : c("", !0),
336
+ i("div", null, [
337
+ w(m, {
338
+ type: "secondary",
339
+ wide: "",
340
+ onClick: a.updateClientPropertyDesignation
341
+ }, {
342
+ default: g(() => [
343
+ l(o(e.$t("_common:save")), 1)
344
+ ]),
345
+ _: 1
346
+ }, 8, ["onClick"])
347
+ ])
348
+ ])
349
+ ])) : c("", !0),
350
+ s.view === "complete" ? (r(), d("div", ue, [
351
+ i("div", he, [
352
+ i("div", ve, [
353
+ w(_, {
354
+ type: "check",
355
+ class: "text-primary-500"
356
+ })
357
+ ]),
358
+ i("div", ge, o(e.$t("savedTitle")), 1),
359
+ i("div", fe, o(e.$t("savedSubTitle", { senderName: n.senderName })), 1),
360
+ i("div", we, [
361
+ w(m, {
362
+ type: "secondary",
363
+ wide: "",
364
+ onClick: t[7] || (t[7] = (f) => e.$emit("close"))
365
+ }, {
366
+ default: g(() => [
367
+ l(o(e.$t("_common:close")), 1)
368
+ ]),
369
+ _: 1
370
+ })
371
+ ])
372
+ ])
373
+ ])) : c("", !0)
374
+ ])
375
+ ]),
376
+ _: 1
377
+ }, 8, ["class"]);
378
+ }
379
+ const ye = /* @__PURE__ */ D(G, [["render", pe]]), Ce = {
380
+ i18nOptions: {
381
+ namespaces: "docAnswer",
382
+ messages: {
383
+ en: {
384
+ previewTooltip: "Only your clients can answer"
385
+ },
386
+ sv: {
387
+ previewTooltip: "Enbart din mottagare kan besvara"
388
+ }
389
+ }
390
+ },
391
+ name: "DocumentAnswerRead",
392
+ mixins: [I],
393
+ inject: {
394
+ isPdf: {
395
+ default: !1
396
+ },
397
+ customHtmlAccept: {
398
+ default: ""
399
+ },
400
+ customHtmlDeny: {
401
+ default: ""
402
+ }
403
+ },
404
+ props: {
405
+ _document: {
406
+ type: Object,
407
+ required: !0
408
+ }
409
+ },
410
+ setup(e) {
411
+ const { answer: t } = K(e._document);
412
+ return { onAnswer: t };
413
+ },
414
+ data() {
415
+ return {
416
+ isInViewport: !1,
417
+ scrollToElement: q
418
+ };
419
+ },
420
+ computed: {
421
+ viewerId() {
422
+ var e;
423
+ return ((e = this._document._doc) == null ? void 0 : e.viewerId) || null;
424
+ },
425
+ isPreview() {
426
+ return this._document.isPreview;
427
+ },
428
+ modalHeight() {
429
+ return this.mq === "sm" ? "100%" : "auto";
430
+ },
431
+ allowPropertyDesignation() {
432
+ const { prices: e } = this._document;
433
+ if (!e || !e.region) return !1;
434
+ const { houseWorkType: t } = e.region;
435
+ return ["rot", "greenRot15", "greenRot20", "greenRot50"].includes(
436
+ t
437
+ );
438
+ },
439
+ propertyDesignation() {
440
+ return E(this._document, "clients[0].region.propertyDesignation", null);
441
+ }
442
+ },
443
+ watch: {
444
+ $route: {
445
+ immediate: !0,
446
+ handler(e) {
447
+ e != null && e.hash && this.onAnswer("accept", { calcHeight: !0 });
448
+ }
449
+ },
450
+ isInViewport: {
451
+ immediate: !0,
452
+ handler(e, t) {
453
+ e !== t && N.trigger("ui:document.block.answer.visible", e);
454
+ }
455
+ }
456
+ },
457
+ mounted() {
458
+ window.addEventListener("scroll", this.scrollHandler, {
459
+ capture: !0,
460
+ passive: !0
461
+ }), this.$route.name === "docPropertyDesignation" && this.showPropertyDesignation();
462
+ },
463
+ unmounted() {
464
+ window.removeEventListener("scroll", this.scrollHandler);
465
+ },
466
+ methods: {
467
+ scrollHandler() {
468
+ this.$refs.answerButtons && (this.isInViewport = L(this.$refs.answerButtons));
469
+ },
470
+ showPropertyDesignation() {
471
+ this.$modal.show(
472
+ ye,
473
+ {
474
+ senderName: this._document.sender.user.name,
475
+ propertyDesignation: this.propertyDesignation,
476
+ fullScreen: this.modalHeight === "100%"
477
+ },
478
+ {
479
+ adaptive: !0,
480
+ height: this.modalHeight,
481
+ width: "100%",
482
+ maxWidth: this.modalHeight === "100%" ? 999 : 400,
483
+ classes: "overflow-visible",
484
+ transition: "fade-in-slide-up"
485
+ }
486
+ );
487
+ }
488
+ }
489
+ }, _e = {
490
+ key: 0,
491
+ style: { padding: "calc(3 * var(--rem)) 0" }
492
+ }, be = {
493
+ ref: "answerButtons",
494
+ class: "flex w-full justify-center"
495
+ }, He = {
496
+ key: 1,
497
+ class: "flex w-full justify-center"
498
+ }, Ve = ["innerHTML"], De = ["innerHTML"], ke = {
499
+ key: 2,
500
+ class: "text-center"
501
+ }, Ie = { style: { "font-weight": "600", "font-size": "calc(calc(1 * var(--rem)) + 2px)", "margin-bottom": "calc(0.5 * var(--rem))" } }, xe = { style: { "text-decoration": "underline" } }, Ae = { key: 3 }, ze = { class: "callout accepted" }, Pe = { class: "title" }, Te = {
502
+ key: 4,
503
+ class: "callout denied"
504
+ }, Be = { class: "title" }, Ee = {
505
+ key: 5,
506
+ class: "callout expired"
507
+ }, Ne = { class: "title" }, Oe = {
508
+ key: 0,
509
+ class: "flex justify-center"
510
+ };
511
+ function Me(e, t, n, v, s, a) {
512
+ const m = y("CButton"), u = O("tooltip");
513
+ return n._document.answerActions.showActions && !a.isPdf ? (r(), d("div", _e, [
514
+ i("div", be, [
515
+ w(S, {
516
+ name: "fade",
517
+ mode: "out-in"
518
+ }, {
519
+ default: g(() => {
520
+ var h, _;
521
+ return [
522
+ ((_ = (h = n._document.viewer) == null ? void 0 : h.answerMethod) == null ? void 0 : _.accept) === "inPerson" ? (r(), d("div", {
523
+ key: 0,
524
+ style: k([e.mq === "sm" ? { padding: "0 calc(1.5 * var(--rem))" } : null, { "max-width": "720px", margin: "0 auto", padding: "0 calc(3 * var(--rem))" }])
525
+ }, [
526
+ l(o(n._document.$t("chapters.answerButtons.inPersonSignatureHint")) + " ", 1),
527
+ (r(), p(M(n._document.sender.user.email ? "a" : "span"), {
528
+ href: `mailto:${n._document.sender.user.email}`
529
+ }, {
530
+ default: g(() => [
531
+ l(o(n._document.sender.company.name || n._document.$t("theSender")), 1)
532
+ ]),
533
+ _: 1
534
+ }, 8, ["href"]))
535
+ ], 4)) : (n._document.answerActions.canAnswer || a.isPreview) && n._document.answerActions.showActions ? (r(), d("div", He, [
536
+ a.customHtmlDeny ? (r(), d("div", {
537
+ key: 0,
538
+ onClick: t[0] || (t[0] = (C) => v.onAnswer("decline")),
539
+ innerHTML: a.customHtmlDeny
540
+ }, null, 8, Ve)) : b((r(), p(m, {
541
+ key: 1,
542
+ disabled: a.isPreview,
543
+ size: "medium",
544
+ class: "text-gray-400",
545
+ onClick: t[1] || (t[1] = (C) => v.onAnswer("decline"))
546
+ }, {
547
+ default: g(() => [
548
+ l(o(n._document.$t("deny").capitalize()), 1)
549
+ ]),
550
+ _: 1
551
+ }, 8, ["disabled"])), [
552
+ [u, a.isPreview && e.$t("previewTooltip")]
553
+ ]),
554
+ a.customHtmlAccept ? (r(), d("div", {
555
+ key: 2,
556
+ onClick: t[2] || (t[2] = (C) => v.onAnswer("accept")),
557
+ innerHTML: a.customHtmlAccept
558
+ }, null, 8, De)) : b((r(), p(m, {
559
+ key: 3,
560
+ "icon-props": { strokeWidth: 2.5 },
561
+ disabled: a.isPreview,
562
+ type: "success",
563
+ size: "medium",
564
+ "icon-left": "check",
565
+ raised: "",
566
+ style: { "margin-left": "1em", "padding-left": "1.5em", "padding-right": "1.5em", background: "var(--block-answer-accept-bg, hsl(114deg, 75%, 43%))" },
567
+ onClick: t[3] || (t[3] = (C) => v.onAnswer("accept"))
568
+ }, {
569
+ default: g(() => [
570
+ l(o(n._document.$t("sign").capitalize()), 1)
571
+ ]),
572
+ _: 1
573
+ }, 8, ["disabled"])), [
574
+ [u, a.isPreview && e.$t("previewTooltip")]
575
+ ])
576
+ ])) : n._document.answerActions.hasAnswered && n._document.answerActions.waitingForOthers ? (r(), d("div", ke, [
577
+ i("div", Ie, [
578
+ l(o(n._document.$t("chapters.answerButtons.youHave")) + " ", 1),
579
+ b((r(), d("span", xe, [
580
+ l(o(n._document.viewer.answer.didAccept ? n._document.$t("approved") : n._document.$t("denied")), 1)
581
+ ])), [
582
+ [
583
+ u,
584
+ `${e.$formatDate(n._document.viewer.answer.didAnswerAt, "Pp")}`
585
+ ]
586
+ ]),
587
+ l(" " + o(" " + n._document.$t("theDocument")) + ". ", 1)
588
+ ]),
589
+ i("div", null, o(n._document.$t("chapters.answerButtons.waitingDescription", {
590
+ remaining: n._document.remainingSignatures
591
+ })), 1)
592
+ ])) : n._document.status === "accepted" ? (r(), d("div", Ae, [
593
+ i("div", ze, [
594
+ i("div", Pe, o(n._document.$t("chapters.answerButtons.approveTitle")), 1),
595
+ i("div", null, o(n._document.$t("chapters.answerButtons.approveDescription", {
596
+ sender: n._document.sender.company.name || n._document.$t("theSender")
597
+ })), 1)
598
+ ])
599
+ ])) : n._document.status === "denied" ? (r(), d("div", Te, [
600
+ i("div", Be, o(n._document.$t("chapters.answerButtons.denyTitle")), 1),
601
+ i("div", null, o(n._document.$t("chapters.answerButtons.denyDescription", {
602
+ sender: n._document.sender.company.name || n._document.$t("theSender")
603
+ })), 1)
604
+ ])) : n._document.status === "expired" ? (r(), d("div", Ee, [
605
+ i("div", Ne, o(n._document.$t("chapters.answerButtons.expiredTitle")), 1),
606
+ i("div", null, o(n._document.$t("chapters.answerButtons.expiredDescription", {
607
+ sender: n._document.sender.company.name || n._document.$t("theSender")
608
+ })), 1)
609
+ ])) : c("", !0)
610
+ ];
611
+ }),
612
+ _: 1
613
+ })
614
+ ], 512),
615
+ n._document.status === "accepted" && a.allowPropertyDesignation && n._document.answerActions.hasAnswered ? (r(), d("div", Oe, [
616
+ i("div", {
617
+ class: "answer button accept",
618
+ style: { "padding-left": "calc(1.5 * var(--rem))", "padding-right": "calc(1.5 * var(--rem))" },
619
+ onClick: t[4] || (t[4] = (h) => a.showPropertyDesignation())
620
+ }, o(n._document.$t(
621
+ `chapters.answerButtons.${a.propertyDesignation ? "editPropDes" : "enterPropDes"}`
622
+ )), 1)
623
+ ])) : c("", !0)
624
+ ])) : c("", !0);
625
+ }
626
+ const Ke = /* @__PURE__ */ D(Ce, [["render", Me], ["__scopeId", "data-v-15346065"]]);
627
+ export {
628
+ Ke as default
629
+ };
@@ -0,0 +1,4 @@
1
+ import { _ as f } from "./Index.vue_vue_type_script_lang-aeVuChGF.js";
2
+ export {
3
+ f as default
4
+ };