@cling-se/widget 1.0.0-beta.1 → 1.0.0-beta.3

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 (241) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.internal.md +82 -0
  3. package/README.md +14 -40
  4. package/README.public.md +14 -0
  5. package/dist/AddClientCallout-DRcy9Dqb.js +101 -0
  6. package/dist/AnswerModal-Dc3cgkap.js +3291 -0
  7. package/dist/AttachmentItem-Bef5zdHr.js +171 -0
  8. package/dist/BaseUpload--paElAyr.js +2472 -0
  9. package/dist/BlockMedia-DbVE3vsb.js +103 -0
  10. package/dist/CCallout-81NkOge7.js +104 -0
  11. package/dist/{CCurrencyDropdown-qH-3m2eP.js → CCurrencyDropdown-M3hi1VVi.js} +91 -49
  12. package/dist/CDropdownItem-DvaU14-V.js +749 -0
  13. package/dist/CFormField.vue_vue_type_script_setup_true_lang-B4s_Zfsp.js +292 -0
  14. package/dist/{CPhoneFormat-CfQayFxw.js → CPhoneFormat-BBQ_UIc_.js} +13 -21
  15. package/dist/CPhoneInput-Dw_LJDgc.js +207 -0
  16. package/dist/CPriceInput-BfWZZv0f.js +140 -0
  17. package/dist/CSelect-B1AAIFbK.js +98 -0
  18. package/dist/CSkeleton.vue_vue_type_script_setup_true_lang-D56L_PYT.js +51 -0
  19. package/dist/ClientAutocomplete-D5veIKyZ.js +532 -0
  20. package/dist/ClientModal-D8_TPzkv.js +1181 -0
  21. package/dist/ColorPicker-C0OahiVg.js +1408 -0
  22. package/dist/CompanyModal-CjzwQU4B.js +250 -0
  23. package/dist/ContentWrapper-DrmiaFOz.js +265 -0
  24. package/dist/CoverBlockSettings-C9DWvA-C.js +861 -0
  25. package/dist/DocAnswer-BEsvAMEp.js +33 -0
  26. package/dist/DocDetails--LO0-S5d.js +448 -0
  27. package/dist/DocForm-D6_tGw06.js +6748 -0
  28. package/dist/DocFormSend-CdFL6rOD.js +171 -0
  29. package/dist/DocLinks-CIQFUh7c.js +36 -0
  30. package/dist/DocModalBase-DtPJK9sp.js +29 -0
  31. package/dist/DocPrint-qX88Ue2I.js +399 -0
  32. package/dist/DocReceipt-BbXoCmpz.js +341 -0
  33. package/dist/DocSendReminder-DZqOkd63.js +181 -0
  34. package/dist/DocTextEditor-Cw-Skmd4.js +19413 -0
  35. package/dist/DocTimeline-CdbSOVD1.js +537 -0
  36. package/dist/DocumentClient-DtTv7gkF.js +90 -0
  37. package/dist/DocumentLayout-BRfEjoYq.js +1368 -0
  38. package/dist/DocumentLogotype-CUNzyewq.js +162 -0
  39. package/dist/DocumentVoided-CgDt-JFI.js +33 -0
  40. package/dist/EmbedInput-rPvTnpXn.js +157 -0
  41. package/dist/EmbedSettings-BtmFxYGB.js +103 -0
  42. package/dist/ErrorCallout-B6YrdUsG.js +34 -0
  43. package/dist/FilePreviewModal-BfIqIIbb.js +202 -0
  44. package/dist/Flag-CE3K7-8a.js +41 -0
  45. package/dist/HeaderSettings-5QR7MmVf.js +720 -0
  46. package/dist/ImageSelectModal-E3hGi8ty.js +119 -0
  47. package/dist/ImageUploadWrapper-BaexFAAh.js +1585 -0
  48. package/dist/Index--gv5fH24.js +201 -0
  49. package/dist/{Index-D4XgxmbD.js → Index-B3ycPjAI.js} +10 -18
  50. package/dist/Index-B7ECpXAa.js +28 -0
  51. package/dist/Index-BIXfUsHH.js +52 -0
  52. package/dist/Index-BM658CCq.js +93 -0
  53. package/dist/{Index--qPMWUMT.js → Index-B_DCM_bL.js} +48 -61
  54. package/dist/Index-BcMATT2_.js +47 -0
  55. package/dist/Index-BpWFU3Td.js +68 -0
  56. package/dist/Index-BulSI5iO.js +38 -0
  57. package/dist/Index-CHInIRw5.js +228 -0
  58. package/dist/Index-COYqsxs9.js +25 -0
  59. package/dist/Index-CSGk060H.js +1098 -0
  60. package/dist/Index-CV2O2fWT.js +21 -0
  61. package/dist/{Index-Bu0MGrj6.js → Index-CXqdBSZ3.js} +313 -206
  62. package/dist/Index-CavttI66.js +126 -0
  63. package/dist/Index-CbZ65-O3.js +629 -0
  64. package/dist/Index-CqrTij2j.js +70 -0
  65. package/dist/Index-CrsGxDWC.js +16 -0
  66. package/dist/Index-CxY5Ii6K.js +49 -0
  67. package/dist/Index-D7Z2w9cd.js +163 -0
  68. package/dist/Index-D7ixmzBH.js +76 -0
  69. package/dist/Index-D7pzv-AR.js +74 -0
  70. package/dist/Index-D9keESQi.js +159 -0
  71. package/dist/Index-Dd6ueeUc.js +136 -0
  72. package/dist/{Index-DIOiMm9f.js → Index-DexIUz3R.js} +10 -18
  73. package/dist/Index-Dnmt6W0u.js +140 -0
  74. package/dist/Index-DtcV6rl1.js +4 -0
  75. package/dist/Index-DuDVafLn.js +3452 -0
  76. package/dist/Index-L913X8Ly.js +102 -0
  77. package/dist/Index-Mdn0niR_.js +28 -0
  78. package/dist/Index-_ellB2fs.js +363 -0
  79. package/dist/{Index-DcQbh-z2.js → Index-baSB5tPv.js} +9 -17
  80. package/dist/Index-bgKndj-l.js +39 -0
  81. package/dist/Index-lNYXAFUH.js +87 -0
  82. package/dist/Index.vue_vue_type_script_lang-DLogex2i.js +671 -0
  83. package/dist/InputToggleRow-BCvMVbW-.js +99 -0
  84. package/dist/ManualPopover-BzBvSl_x.js +57 -0
  85. package/dist/MediaWrapper-_LPau2Ks.js +18 -0
  86. package/dist/{NotBindingText-CNV2Wmdx.js → NotBindingText-DgcOjUmQ.js} +13 -17
  87. package/dist/PackageGroup-1X3jUipj.js +1058 -0
  88. package/dist/PdfTerms-Bf4TlzP5.js +34 -0
  89. package/dist/PdfViewer-BdhwFfc6.js +392 -0
  90. package/dist/PlainHtml.vue_vue_type_script_setup_true_lang-BgsfquR_.js +17 -0
  91. package/dist/PriceHeader-DyC8xssf.js +488 -0
  92. package/dist/SearchApi-C__orGkO.js +137 -0
  93. package/dist/SendForm-Be8uiuaJ.js +7031 -0
  94. package/dist/Setup-DbXs2Zar.js +47 -0
  95. package/dist/{SmartList-Qgu0rMrI.js → SmartList-BmmtZoZ0.js} +16 -24
  96. package/dist/Sortable.vue_vue_type_script_setup_true_lang-D0mloJIN.js +1303 -0
  97. package/dist/{TermsSettings-CE3h_xkm.js → TermsSettings-DsN6v5yj.js} +169 -49
  98. package/dist/ThemeColorRow-BL6p09pN.js +108 -0
  99. package/dist/ToggleBinding-B-tVioQ9.js +44 -0
  100. package/dist/UploadModal-BnA1xLMy.js +134 -0
  101. package/dist/VideoPlayerInput-D38S1IDH.js +135 -0
  102. package/dist/VideoPlayerSettings-B5iXoj5E.js +78 -0
  103. package/dist/VideoSelectModal-BNCoMFKU.js +217 -0
  104. package/dist/{anime.es-BrPTThYb.js → anime.es-gdcpA-eY.js} +1 -2
  105. package/dist/{color-TdtKxwVa.js → color-HetJPhlA.js} +1 -2
  106. package/dist/{debounce-C1AuSpOZ.js → debounce-CBRJalZI.js} +7 -7
  107. package/dist/dom-CkTGWrfu.js +69 -0
  108. package/dist/{focusDrawerMixin-Be6BAK8-.js → focusDrawerMixin-T94b2Y6F.js} +1 -1
  109. package/dist/{formDrawerState-DRbg5rVI.js → formDrawerState-jssoGOce.js} +2 -2
  110. package/dist/helpers-Vo_6Zz3M.js +44 -0
  111. package/dist/index-8g2jwLJx.js +513 -0
  112. package/dist/index-B0udVHyo.js +125 -0
  113. package/dist/index-D63IJVsJ.js +3525 -0
  114. package/dist/index-DCYCN_FR.js +508 -0
  115. package/dist/index-FRHGChx1.js +149 -0
  116. package/dist/index-HXiq8Yxs.js +270 -0
  117. package/dist/index-jOufDnZ8.js +188 -0
  118. package/dist/index.es.js +2 -5
  119. package/dist/index.umd.js +306 -1505
  120. package/dist/{main-WKzC-Dnu.js → main-C4OdoeS2.js} +36750 -37369
  121. package/dist/mapFormMixin-v-nbaWcx.js +1544 -0
  122. package/dist/omit-GuxX6Zt-.js +31 -0
  123. package/dist/{publicSenderState-BujjYsZZ.js → publicSenderState-C-7OMKKW.js} +4 -4
  124. package/dist/regions-BdZt9Srn.js +1250 -0
  125. package/dist/splitpanes-DChJiJ8d.js +342 -0
  126. package/dist/style.css +1 -4
  127. package/dist/template-m1V22cUt.js +1493 -0
  128. package/dist/{throttle-CWPJmFid.js → throttle-WWMDZKby.js} +2 -2
  129. package/dist/tippy.esm-Dz-faEsS.js +1994 -0
  130. package/dist/useTermsModal-C_eLdGLi.js +87 -0
  131. package/dist/{utils-CA_Zy6u1.js → utils-vnvZGRwQ.js} +8 -11
  132. package/dist/validation-C-dQpENM.js +40 -0
  133. package/package.json +25 -31
  134. package/.eslintrc.cjs +0 -4
  135. package/dist/AddClientCallout-BWnvyBcK.js +0 -46
  136. package/dist/AnswerModal-CLGRdSnK.js +0 -3874
  137. package/dist/AttachmentItem-BPS0-wyc.js +0 -78
  138. package/dist/BaseDatePicker-BbmV_GdD.js +0 -3183
  139. package/dist/BaseUpload-9gPgI7r6.js +0 -1977
  140. package/dist/BlockMedia-DkPFWiYL.js +0 -76
  141. package/dist/CCallout-T26jwUby.js +0 -59
  142. package/dist/CDropdownItem-BE8BAMD1.js +0 -636
  143. package/dist/CField.vue_vue_type_style_index_0_lang-l0sNRNKZ.js +0 -1
  144. package/dist/CFormField-DECEfoVq.js +0 -241
  145. package/dist/CPriceInput-C4SOB-P5.js +0 -112
  146. package/dist/CTabs.vue_vue_type_style_index_0_scoped_e02a6440_lang-l0sNRNKZ.js +0 -1
  147. package/dist/ClientAutocomplete-DSebA1Mx.js +0 -78
  148. package/dist/ClientModal-BXFYvYCF.js +0 -625
  149. package/dist/ColorPicker-CZ_bJabP.js +0 -2879
  150. package/dist/CompanyModal-CDr3t28n.js +0 -141
  151. package/dist/ContentWrapper-BwmMoe4W.js +0 -183
  152. package/dist/CoverBlockSettings-_F11-DGc.js +0 -275
  153. package/dist/DocAnswer-BR59xzkT.js +0 -36
  154. package/dist/DocDetails-D1qbCbps.js +0 -259
  155. package/dist/DocForm-DBc2a7z5.js +0 -7272
  156. package/dist/DocFormSend-Casix-yG.js +0 -144
  157. package/dist/DocLinks-DGTaewyX.js +0 -38
  158. package/dist/DocModalBase-BbS_qvSv.js +0 -28
  159. package/dist/DocPrint-0PqX3mbJ.js +0 -240
  160. package/dist/DocReceipt-CU3VD5pt.js +0 -210
  161. package/dist/DocSendReminder-CuycBspr.js +0 -137
  162. package/dist/DocTextEditor-CntS2Bd-.js +0 -17180
  163. package/dist/DocTimeline-DJuv3yBe.js +0 -481
  164. package/dist/DocumentClient-C25XXzz6.js +0 -136
  165. package/dist/DocumentLayout-B7afHRMr.js +0 -4909
  166. package/dist/DocumentLogotype-sqI51wvM.js +0 -87
  167. package/dist/DocumentVoided-TahdTSMn.js +0 -25
  168. package/dist/EmbedInput-BY-wHSfc.js +0 -113
  169. package/dist/EmbedSettings-8pfjk4NP.js +0 -72
  170. package/dist/ErrorCallout-Dsr8PNsU.js +0 -28
  171. package/dist/FilePreviewModal-CcEinEFg.js +0 -81
  172. package/dist/Flag-PJKrghi9.js +0 -114
  173. package/dist/HeaderSettings-BqczIOsG.js +0 -392
  174. package/dist/ImageSelectModal-Cd-HhKnH.js +0 -84
  175. package/dist/ImageUploadWrapper-Dv43rGdb.js +0 -1604
  176. package/dist/Index-6b5VBKE-.js +0 -107
  177. package/dist/Index-B4pRJnbw.js +0 -84
  178. package/dist/Index-B69f8qgZ.js +0 -62
  179. package/dist/Index-B79YN9RO.js +0 -25
  180. package/dist/Index-BBrlPoe8.js +0 -58
  181. package/dist/Index-BXfWJCuq.js +0 -52
  182. package/dist/Index-Bd76vb37.js +0 -55
  183. package/dist/Index-BmbtQO5F.js +0 -150
  184. package/dist/Index-ByV_kJaH.js +0 -77
  185. package/dist/Index-CDV5rhWS.js +0 -49
  186. package/dist/Index-CIx4OOK-.js +0 -144
  187. package/dist/Index-CL1OWLt6.js +0 -223
  188. package/dist/Index-Caow0eZu.js +0 -31
  189. package/dist/Index-Cd3-3PEK.js +0 -2402
  190. package/dist/Index-CdpZBEKU.js +0 -98
  191. package/dist/Index-CmU3Sys-.js +0 -754
  192. package/dist/Index-CtRtgnpm.js +0 -32
  193. package/dist/Index-Cukkr33D.js +0 -140
  194. package/dist/Index-Cuqw0ios.js +0 -57
  195. package/dist/Index-Czm_WdqC.js +0 -25
  196. package/dist/Index-DNdYXHgr.js +0 -33
  197. package/dist/Index-DcuBxutp.js +0 -642
  198. package/dist/Index-DpWNWiyY.js +0 -291
  199. package/dist/Index-DzS1rZdF.js +0 -24
  200. package/dist/Index-N6s5pZxv.js +0 -26
  201. package/dist/Index-g_DNu4mt.js +0 -69
  202. package/dist/Index-mJ8F41GY.js +0 -154
  203. package/dist/Index-q7W9KA8m.js +0 -21
  204. package/dist/Index-rtzblZp4.js +0 -70
  205. package/dist/InputToggleRow-CZjxsDOQ.js +0 -57
  206. package/dist/ManualPopover-CZrWiT-P.js +0 -58
  207. package/dist/MediaWrapper-D37qK4KR.js +0 -23
  208. package/dist/PackageGroup-Heo_s8ct.js +0 -699
  209. package/dist/PdfTerms-AB9tXAtU.js +0 -36
  210. package/dist/PdfViewer-CIVkvOBr.js +0 -373
  211. package/dist/PlainHtml-CPmIebjY.js +0 -20
  212. package/dist/PriceHeader-DhDAruwX.js +0 -339
  213. package/dist/SearchApi-BMgdaI4s.js +0 -161
  214. package/dist/Setup-VIaIV9uT.js +0 -50
  215. package/dist/ThemeColorRow-DYJNgk6S.js +0 -67
  216. package/dist/ToggleBinding-CuwCeYpO.js +0 -38
  217. package/dist/UploadModal-BITcxG-J.js +0 -95
  218. package/dist/VideoPlayerInput-8szEX_8L.js +0 -93
  219. package/dist/VideoPlayerSettings-BIPytm6w.js +0 -61
  220. package/dist/VideoSelectModal-B-Pe34nb.js +0 -100
  221. package/dist/answerDocumentMixin-W7vE1Gp4.js +0 -51
  222. package/dist/formComponentsInstall-Bm3VMOh6.js +0 -2507
  223. package/dist/formValidationMixin-COkY8COk.js +0 -49
  224. package/dist/index-BFvjENMH.js +0 -81
  225. package/dist/index-BV2nGWay.js +0 -492
  226. package/dist/index-BgJ05dYc.js +0 -165
  227. package/dist/index-CMPAXxzs.js +0 -347
  228. package/dist/index-DNDjI5uI.js +0 -3916
  229. package/dist/index-aoff9oUi.js +0 -102
  230. package/dist/mapFormMixin-QbevCwJK.js +0 -72
  231. package/dist/omit-CTp9CXoU.js +0 -31
  232. package/dist/splitpanes-BHUVsCZF.js +0 -382
  233. package/dist/tinycolor-kTl0yxzz.js +0 -633
  234. package/dist/tippy.esm-sS5koDSU.js +0 -1799
  235. package/dist/vuedraggable.umd-BA3ZDRAp.js +0 -3161
  236. package/dist/vuex.esm-DKGl8mcw.js +0 -467
  237. package/public/favicon.ico +0 -0
  238. package/tsconfig.json +0 -26
  239. package/tsconfig.node.json +0 -10
  240. package/tsconfig.paths.json +0 -17
  241. package/vite.config.ts +0 -60
@@ -1,339 +0,0 @@
1
- import { m as c } from "./mapFormMixin-QbevCwJK.js";
2
- import { B as l } from "./BlockMedia-DkPFWiYL.js";
3
- import { b as r, w as d, n, ab as m } from "./main-WKzC-Dnu.js";
4
- import { t as u } from "./tinycolor-kTl0yxzz.js";
5
- import { s as p } from "./CDropdownItem-BE8BAMD1.js";
6
- import { T as y } from "./DocTextEditor-CntS2Bd-.js";
7
- import { i as h } from "./i18nMessages-Chz_lxGG.js";
8
- const _ = {
9
- name: "SummaryBottom",
10
- mixins: [c([])],
11
- inject: ["parentSize"],
12
- props: {
13
- base: {
14
- type: Object,
15
- default: null
16
- },
17
- options: {
18
- type: Array,
19
- default: () => []
20
- },
21
- backgroundColor: {
22
- type: String,
23
- default: "#4c576d"
24
- },
25
- documentCurrency: {
26
- type: String,
27
- required: !0
28
- },
29
- vatType: {
30
- type: String,
31
- required: !0
32
- }
33
- },
34
- data() {
35
- return {
36
- get: r,
37
- tinycolor: u
38
- };
39
- },
40
- computed: {
41
- prices() {
42
- return r(this, "base.prices") || {};
43
- },
44
- isIndivid() {
45
- return r(this.prices, "helpers.isIndivid", !0);
46
- },
47
- showIncVat() {
48
- return this.isIndivid;
49
- },
50
- priceTotal() {
51
- return this.isIndivid ? r(this.prices, "total", null) : r(this.prices, "subTotal", null);
52
- },
53
- priceType() {
54
- return this.prices.type || ["fixed"];
55
- },
56
- currency() {
57
- return this.prices.currency || this.documentCurrency;
58
- },
59
- openAccMaxPrice() {
60
- return this.prices.maxTotal || null;
61
- },
62
- houseWorkType() {
63
- return r(this.prices, "region.houseWorkType", null);
64
- },
65
- isReverseVat() {
66
- return r(this.prices, "region.reverseVat", !1);
67
- },
68
- priceTypeString() {
69
- return this.priceType.includes("openAccMaxPrice") ? this._document.$t("price.openAccMaxPrice") : this.priceType.includes("openAcc") ? this._document.$t("price.openAcc") : this._document.$t("price.price").capitalize();
70
- },
71
- priceDeductionVatString() {
72
- let i = "";
73
- if (this.isReverseVat && !this.showIncVat) {
74
- const t = this.priceFormat(0, {
75
- currency: this.currency,
76
- showZero: !0
77
- });
78
- return i = this._document.$t("summaryBottom.reverseVat", { amount: t }), i;
79
- }
80
- return this.houseWorkType && (i = this._document.$t("deduction.afterType", {
81
- type: `${this.houseWorkType}_percentage`
82
- })), this.showIncVat && (i += ` ${this._document.$t("vat.incVat", {
83
- thing: this._document.$t(`vat.${this.vatType}`)
84
- })}`), this.showIncVat || (i += ` ${this._document.$t("vat.exVat", {
85
- thing: this._document.$t(`vat.${this.vatType}`)
86
- })}`), i.capitalize();
87
- },
88
- backgroundSecondary() {
89
- if (!this.isSmallScreen)
90
- return { backgroundColor: "transparent" };
91
- const i = this.backgroundColor.match(/(\d*\.)?\d+/g)[0], t = this.backgroundColor.match(/(\d*\.)?\d+/g)[1], e = this.backgroundColor.match(/(\d*\.)?\d+/g)[2], s = this.backgroundColor.match(/(\d*\.)?\d+/g)[3];
92
- return {
93
- backgroundColor: `hsla(${i}, ${t ** 0.9}%, ${e ** 0.9}%, ${s})`
94
- };
95
- },
96
- isSmallScreen() {
97
- return this.parentSize.width <= 576;
98
- }
99
- },
100
- methods: {
101
- priceFormat: d,
102
- scrollToPricing() {
103
- const i = document.querySelector("#price");
104
- i && p(i);
105
- }
106
- }
107
- };
108
- var v = function() {
109
- var t = this, e = t._self._c;
110
- return e("section", { staticClass: "summary-bottom-root" }, [e("div", { staticClass: "summary-bottom", style: [
111
- {
112
- backgroundColor: t.backgroundColor,
113
- color: t.tinycolor.readability(t.backgroundColor, "#FFF") > 2.2 ? "#FFF" : "#000"
114
- },
115
- t.options.length && {
116
- overflow: "hidden",
117
- padding: 0
118
- }
119
- ] }, [t.options.length ? e("div", { staticClass: "flex w-full items-center justify-end", staticStyle: { height: "108px" } }, [e("div", { staticStyle: { "text-align": "right", padding: "calc(2 * var(--rem))" } }, [e("div", { staticStyle: { "font-size": "calc(1.5 * var(--rem))", "font-weight": "900" } }, [t._v(" " + t._s(t._document.$t("price.proposal")) + " ")]), e("div", [t._v(t._s(t._document.$t("summaryBottom.chooseFrom")))])]), e("div", { staticStyle: { "background-color": "hsla(0, 0%, 0%, 0.15)", paadding: "calc(1 * var(--rem)) calc(2 * var(--rem))", height: "100%", display: "inline-flex" } }, [t.base ? e("div", { staticStyle: { display: "flex", "flex-direction": "column", "align-items": "flex-start", "justify-content": "center", padding: "calc(1 * var(--rem)) calc(1 * var(--rem))", "text-align": "left" } }, [e("div", { staticStyle: { "font-weight": "900", "font-size": "calc(1.5 * var(--rem))" } }, [t._v(" " + t._s(t.priceFormat(t.base.prices.total, { currency: t.currency, decimals: 2, hideZeroDecimals: !0 })) + " ")]), e("div", [t._v(" + " + t._s(t._document.$tc("summaryBottom.option", { count: t.options.length })) + " ")])]) : e("div", { staticStyle: { padding: "calc(2 * var(--rem))", display: "inline-flex", "align-items": "center", "justify-content": "center", "font-weight": "900", "font-size": "calc(2.5 * var(--rem))" } }, [t._v(" " + t._s(t._document.$t("summaryBottom.noOfOptions", { count: t.options.length })) + " ")])]), e("div", { staticStyle: { "background-color": "hsla(0, 0%, 0%, 0.4)", overflow: "hidden", width: "calc(1.5 * var(--rem))", display: "flex", "flex-direction": "column", "justify-content": "center", "align-items": "center", height: "100%", color: "hsla(0, 0%, 100%, 0.2)" } })]) : e("div", { staticClass: "flex w-full justify-between", class: [
120
- {
121
- column: t.isSmallScreen,
122
- sm: t.isSmallScreen
123
- }
124
- ], staticStyle: { position: "relative" } }, [e("div", { staticClass: "flex w-full flex-col", class: [{ "fixed-price-type-string": t.isSmallScreen }], staticStyle: { "background-color": "hsl(224, 57%, 39%)" }, style: [t.backgroundSecondary] }, [e("div", { staticClass: "price-type-string data-text" }, [t._v(" " + t._s(t.priceTypeString) + " ")]), t.isSmallScreen ? t._e() : e("div", { staticClass: "price-deduction-text" }, [t._v(" " + t._s(t.priceDeductionVatString) + " ")])]), t.priceType.some((s) => ["openAcc", "openAccMaxPrice"].includes(s)) ? e("div", { staticClass: "open-acc-wrapper" }, [t.openAccMaxPrice ? e("div", { staticClass: "open-acc-item" }, [e("div", [t._v(" " + t._s(t._document.$t("price.maxPrice").capitalize()) + " " + t._s(t._document.$t("vat.exVat", { thing: t._document.$t(`vat.${t.vatType}`) })) + ": ")]), e("div", [t._v(t._s(t.priceFormat(t.openAccMaxPrice, { currency: t.currency })))])]) : t._e(), e("div", { staticClass: "open-acc-link" }, [t._v(" " + t._s(t._document.$t("see").capitalize()) + " "), e("span", { staticStyle: { color: "inherit", cursor: "pointer" }, on: { click: t.scrollToPricing } }, [e("u", [t._v(t._s(t._document.$t("price.price_plural")))])]), t._v(" " + t._s(t._document.$t("summaryBottom.forDetails")) + " ")])]) : e("div", { staticClass: "flex w-full items-center", class: [{ "justify-end": !t.isSmallScreen }] }, [e("div", { staticClass: "data-text", staticStyle: { "font-size": "calc(2 * var(--rem))", "font-weight": "900", "letter-spacing": "1px", "line-height": "1", "padding-bottom": "calc(0.3 * var(--rem))" } }, [t._v(" " + t._s(t.priceType.includes("approx") ? t._document.$t("approx").capitalize() : "") + " " + t._s(t.priceFormat(t.priceTotal, { currency: t.currency, decimals: 2, hideZeroDecimals: !0 })) + " ")])]), t.isSmallScreen ? e("div", { staticClass: "label-text caps price-deduction-text", staticStyle: { "margin-top": "4px" } }, [t._v(" " + t._s(t.priceDeductionVatString) + " ")]) : t._e()])])]);
125
- }, g = [], f = /* @__PURE__ */ n(
126
- _,
127
- v,
128
- g,
129
- !1,
130
- null,
131
- "625c1189"
132
- );
133
- const S = f.exports, x = {
134
- name: "SummaryTop",
135
- i18nOptions: {
136
- namespaces: "summaryTop",
137
- messages: h
138
- },
139
- components: {
140
- TextEditor: y,
141
- DocumentLogotype: () => import("./DocumentLogotype-sqI51wvM.js")
142
- },
143
- mixins: [c([])],
144
- inject: ["parentSize"],
145
- props: {
146
- showLogo: {
147
- type: Boolean,
148
- default: !0
149
- },
150
- logotype: {
151
- type: String,
152
- default: null
153
- },
154
- companyLogotype: {
155
- type: String,
156
- default: null
157
- },
158
- senderName: {
159
- type: String,
160
- default: null
161
- },
162
- docName: {
163
- type: String,
164
- default: null
165
- },
166
- docType: {
167
- type: String,
168
- required: !0
169
- },
170
- docNumber: {
171
- type: [Number, String],
172
- default: null
173
- },
174
- sentAt: {
175
- type: [String, Number],
176
- default: null
177
- // required: true,
178
- },
179
- expiresAt: {
180
- type: String,
181
- default: null
182
- },
183
- estimatedTime: {
184
- type: String,
185
- default: null
186
- },
187
- validator: {
188
- type: Object,
189
- default: () => ({})
190
- },
191
- hasHover: {
192
- type: Boolean,
193
- default: !1
194
- }
195
- },
196
- computed: {
197
- logotypeListeners() {
198
- return {
199
- ...this.$listeners,
200
- input: (i) => this.$emit("update:logotype", i)
201
- };
202
- }
203
- }
204
- };
205
- var b = function() {
206
- var t = this, e = t._self._c;
207
- return e("section", { staticClass: "summary-top flex w-full justify-center" }, [e("div", { staticClass: "doc-summary-top-wrapper" }, [e("div", { staticClass: "doc-summary-top-wrapper__background" }), e("div", { staticClass: "flex w-full justify-between", staticStyle: { "margin-bottom": "calc(2.5 * var(--rem))" } }, [t.showLogo && (t.logotype || t.companyLogotype) || t.canEdit ? e("DocumentLogotype", t._g({ attrs: { value: t.logotype, "show-logo": t.showLogo, "company-logotype": t.companyLogotype, "has-hover": t.hasHover } }, t.logotypeListeners)) : e("div", { staticClass: "company-name" }, [t._v(" " + t._s(t.senderName) + " ")]), e("div", { staticClass: "top-right-text-wrapper" }, [t.sentAt ? e("div", [t._v(t._s(t.$formatDate(t.sentAt)))]) : t._e(), t.docNumber ? e("div", [t._v(" #" + t._s(t.docNumber) + " ")]) : t._e()])], 1), e("div", { staticClass: "title-text" }, [t.canEdit ? e("TextEditor", { ref: "editor", staticClass: "no-drag", staticStyle: { "will-change": "opacity" }, attrs: { value: t.docName, placeholder: t.$t("name.placeholder"), extensions: {
208
- bulletList: !1,
209
- heading: [1, 2, 3],
210
- bold: !1,
211
- link: !1,
212
- underline: !1,
213
- blockquote: !0,
214
- table: !1
215
- }, unstyled: "", static: "" }, on: { input: function(s) {
216
- return t.$emit("update:doc-name", s);
217
- } } }) : e("div", { staticClass: "quill-custom", domProps: { innerHTML: t._s(t.docName) } })], 1), e("div", { staticClass: "flex w-full justify-between" }, [t.expiresAt ? e("div", { staticClass: "data-group" }, [e("div", { staticClass: "label-text caps" }, [t._v(t._s(t._document.$t("replyBy")))]), e("div", { staticClass: "data-text" }, [t._v(t._s(t.$formatDate(t.expiresAt)))])]) : t._e(), t.docType !== "document" ? e("div", { staticClass: "data-group" }, [e("div", { staticClass: "label-text caps" }, [t._v(" " + t._s(t._document.$t("document").capitalize()) + " ")]), e("div", { staticClass: "data-text" }, [t._v(" " + t._s(t._document.$t(`series.${t.docType}`).capitalize()) + " ")])]) : t._e(), t.parentSize.width >= 576 ? [t.estimatedTime ? e("div", { staticClass: "data-group" }, [e("div", { staticClass: "label-text caps" }, [t._v(t._s(t.$t("estimatedTime")))]), e("div", { staticClass: "data-text" }, [t._v(" " + t._s(t._document.$t("approx")) + " " + t._s(t.estimatedTime) + " ")])]) : t._e()] : t._e()], 2)])]);
218
- }, C = [], $ = /* @__PURE__ */ n(
219
- x,
220
- b,
221
- C,
222
- !1,
223
- null,
224
- "29bec6e5"
225
- );
226
- const w = $.exports, T = {
227
- name: "PriceHeader",
228
- components: {
229
- SummaryTop: w,
230
- SummaryBottom: S,
231
- BlockMedia: l
232
- },
233
- mixins: [
234
- c([
235
- "media",
236
- "backgroundColor",
237
- "documentName",
238
- "showPriceSummary",
239
- "showLogo",
240
- "logotype"
241
- ])
242
- ],
243
- props: {
244
- _document: {
245
- type: Object,
246
- default: () => ({})
247
- },
248
- _value: {
249
- type: Object,
250
- default: () => ({})
251
- },
252
- hasHover: {
253
- type: Boolean,
254
- default: !1
255
- }
256
- },
257
- computed: {
258
- internalName: {
259
- get() {
260
- var i;
261
- return this.documentName || `<p data-typography="title">${((i = this._document.data) == null ? void 0 : i.name) || ""}</p>`;
262
- },
263
- set(i) {
264
- this.documentName = i, this.$emit("input", {
265
- key: "data.name",
266
- value: m(i).trim().slice(0, 255)
267
- });
268
- }
269
- },
270
- company() {
271
- return this._document.sender.company;
272
- },
273
- prices() {
274
- return this._document.prices;
275
- },
276
- estimatedTimeString() {
277
- var e, s;
278
- const { value: i, unitType: t } = ((s = (e = this._document) == null ? void 0 : e.data) == null ? void 0 : s.estimatedTime) || {};
279
- return !i || !t ? null : this.$tc(`${t}`, { count: i });
280
- },
281
- sendAtShowDate() {
282
- const { sentAt: i, scheduledFirstDelivery: t } = this._document;
283
- return i || (t ? t.sendAt : null);
284
- },
285
- summaryBottom() {
286
- var s;
287
- let i = {
288
- show: !1,
289
- backgroundColor: this.backgroundColor || this._document.theme.priceSummaryBackground,
290
- documentCurrency: this._document.currency,
291
- vatType: this._document.vatType
292
- }, { showPriceSummary: t } = this;
293
- typeof t != "boolean" && ({ showPriceSummary: t } = this._document.theme);
294
- const e = ((s = this._document.packageGroups) == null ? void 0 : s.packages) || [];
295
- return e.length > 1 ? i = {
296
- ...i,
297
- show: t,
298
- base: { prices: this.prices },
299
- options: e.filter(({ toggable: o }) => o).map(({ prices: o }) => ({ prices: o }))
300
- } : i = {
301
- ...i,
302
- show: t && this._document.readPrices && (this.prices.total || this.prices.type.some(
303
- (o) => ["openAccMaxPrice", "openAcc"].includes(o)
304
- )),
305
- base: { prices: this.prices }
306
- }, this.canEdit && t && (i.show = !0), i.documentCurrency || (i.show = !1), i;
307
- }
308
- }
309
- };
310
- var k = function() {
311
- var s, o;
312
- var t = this, e = t._self._c;
313
- return e("div", [e("div", { staticClass: "doc-jumbotron-wrapper" }, [e("BlockMedia", { staticClass: "price-media-wrapper", attrs: { media: {
314
- ...t.media,
315
- resourceUrl: ((s = t.media) == null ? void 0 : s.resourceUrl) || t._document.theme.background,
316
- overlayColor: ((o = t.media) == null ? void 0 : o.overlayColor) || t._document.theme.backgroundFilter
317
- } } }), e("SummaryTop", { attrs: { _document: t._document, "show-logo": t.showLogo, logotype: t.logotype, "company-logotype": t.company.logotype, "sender-name": t.company.name, "doc-type": t._document.docNumber.series, "doc-name": t.internalName, "doc-number": t._document.docNumber.value, "sent-at": t.sendAtShowDate, "expires-at": t._document.expiresAt, "estimated-time": t.estimatedTimeString, "has-hover": t.hasHover }, on: { "update:showLogo": function(a) {
318
- t.showLogo = a;
319
- }, "update:show-logo": function(a) {
320
- t.showLogo = a;
321
- }, "update:logotype": function(a) {
322
- t.logotype = a;
323
- }, "update:docName": function(a) {
324
- t.internalName = a;
325
- }, "update:doc-name": function(a) {
326
- t.internalName = a;
327
- } } })], 1), t.summaryBottom.show ? e("SummaryBottom", t._b({ attrs: { _document: t._document } }, "SummaryBottom", t.summaryBottom, !1)) : t._e()], 1);
328
- }, A = [], B = /* @__PURE__ */ n(
329
- T,
330
- k,
331
- A,
332
- !1,
333
- null,
334
- "e3b73dd6"
335
- );
336
- const D = B.exports;
337
- export {
338
- D as default
339
- };
@@ -1,161 +0,0 @@
1
- import { g as u, p as h, i as f, j as d, n as m } from "./main-WKzC-Dnu.js";
2
- import { d as p } from "./debounce-C1AuSpOZ.js";
3
- import { m as y, a as g } from "./vuex.esm-DKGl8mcw.js";
4
- const A = {
5
- name: "SearchApi",
6
- props: {
7
- customSearch: {
8
- type: Object,
9
- default: () => ({})
10
- }
11
- },
12
- data() {
13
- return {
14
- defaultSearch: {
15
- project: !0,
16
- user: !0,
17
- endCustomer: !1,
18
- article: !1,
19
- extensionArticle: !1,
20
- // Articles in any authenticated CRM
21
- document: !1
22
- },
23
- hasLoadedUsers: !1,
24
- isLoading: !1,
25
- emptyQuery: null,
26
- // String to track last query that was empty, if a new query starts with this string we do not have to search again
27
- hasSearchedAll: !1
28
- // Helper to keep track when some search types have not yet searched due min query length
29
- };
30
- },
31
- computed: {
32
- ...y({
33
- allUsers: "companyUsers/all",
34
- allAuthenticatedCRMs: "settings/allAuthenticatedCRMs",
35
- can: "application/can"
36
- }),
37
- typesToFetch() {
38
- return Object.keys(this.customSearch).length ? Object.keys(this.customSearch).filter(
39
- (t) => this.customSearch[t]
40
- ) : Object.keys(this.defaultSearch).filter(
41
- (t) => this.defaultSearch[t]
42
- );
43
- }
44
- },
45
- methods: {
46
- ...g({
47
- loadUsers: u.LOAD_COMPANY_USERS
48
- }),
49
- canFetchType(t) {
50
- return t === "endCustomer" ? this.can("endCustomers", "read") : t === "user" ? this.can("users", "modify") : !0;
51
- },
52
- async fetch({ query: t, start: s = null, end: a = null }) {
53
- const e = this.typesToFetch.reduce(
54
- (n, c) => ({ ...n, [c]: [] }),
55
- {}
56
- ), r = t.toLowerCase();
57
- if (this.emptyQuery && r && r.startsWith(this.emptyQuery) || (this.emptyQuery = null, this.hasSearchedAll = !0, !r))
58
- return e;
59
- try {
60
- const n = [], c = Object.keys(this.defaultSearch);
61
- (this.typesToFetch || []).forEach((l) => {
62
- c.includes(l) && n.push(
63
- (async () => {
64
- let o = [];
65
- l === "document" ? o = await this.fetchDocuments(r, s, a) : l === "user" ? o = await this.fetchUsers(r, s, a) : l === "extensionArticle" ? o = await this.fetchExtensionArticles(r, s, a) : o = await this.fetchType(l, r, s, a), e[l] = o;
66
- })()
67
- );
68
- }), await Promise.all(n);
69
- } finally {
70
- this.isLoading = !1;
71
- }
72
- return Object.keys(e).every(
73
- (n) => e[n].length === 0
74
- ) && this.hasSearchedAll && (this.emptyQuery = r), e;
75
- },
76
- async fetchType(t, s, a, e) {
77
- if (!this.canFetchType(t))
78
- return [];
79
- const { data: r } = await h("search", {
80
- type: t,
81
- query: s,
82
- ...a !== null && e !== null && { start: a, end: e }
83
- });
84
- return r;
85
- },
86
- async fetchUsers(t, s, a) {
87
- if (!this.canFetchType("user"))
88
- return [];
89
- this.hasLoadedUsers || (await this.loadUsers(), this.hasLoadedUsers = !0);
90
- const r = Object.values(this.allUsers).filter((i) => !!(i.fullName && i.fullName.toLowerCase().includes(t) || i.email && i.email.toLowerCase().includes(t)));
91
- return s !== null && a !== null ? r.slice(s, a) : r;
92
- },
93
- async fetchDocuments(t, s, a) {
94
- const e = t.replace(/[-[\]{}()*+?.,\\/^$|#]/g, "\\$&"), r = {
95
- $or: [
96
- { "data.name": { $regex: e, $options: "i" } },
97
- { "docNumber.value": { $regex: e, $options: "i" } },
98
- {
99
- clients: {
100
- $elemMatch: {
101
- $or: ["name", "email", "socialNo", "orgNo"].map((c) => ({
102
- [c]: { $regex: e, $options: "i" }
103
- }))
104
- }
105
- }
106
- }
107
- ]
108
- }, { data: i } = await f("/document", {
109
- params: {
110
- lean: !0,
111
- filter: encodeURIComponent(JSON.stringify(r)),
112
- fields: "clients,data.name,projectId,docNumber,createdAt",
113
- ...s !== null && a !== null && { skip: s, limit: a - s }
114
- }
115
- }), { items: n = [] } = i || {};
116
- return n;
117
- },
118
- async fetchExtensionArticles(t) {
119
- const s = [];
120
- return await Promise.all(
121
- this.allAuthenticatedCRMs.map(async (a) => {
122
- try {
123
- if (a === "pipedrive" && t.length < 2) {
124
- this.hasSearchedAll = !1;
125
- return;
126
- }
127
- const { data: e } = await d.search(a, {
128
- query: t,
129
- type: "article"
130
- });
131
- e && Array.isArray(e) && s.push(...e);
132
- } catch {
133
- }
134
- })
135
- ), s;
136
- },
137
- triggerSearch: p(async function({ q: s, cb: a, start: e, end: r }) {
138
- this.isLoading = !0;
139
- const i = await this.fetch({ query: s, start: e, end: r });
140
- return this.isLoading = !1, a(i);
141
- }, 500)
142
- },
143
- render() {
144
- return this.$scopedSlots.default({
145
- fetch: ({ q: t, cb: s, start: a = null, end: e = null }) => (this.isLoading = !0, this.triggerSearch({ q: t, cb: s, start: a, end: e })),
146
- isLoading: this.isLoading
147
- });
148
- }
149
- }, S = null, w = null;
150
- var L = /* @__PURE__ */ m(
151
- A,
152
- S,
153
- w,
154
- !1,
155
- null,
156
- null
157
- );
158
- const $ = L.exports;
159
- export {
160
- $ as S
161
- };
@@ -1,50 +0,0 @@
1
- import { n as s, c as o, e as c } from "./main-WKzC-Dnu.js";
2
- const i = {
3
- name: "Setup",
4
- props: {
5
- partnerName: {
6
- type: String,
7
- default: "Partner"
8
- },
9
- closeFunc: {
10
- type: Function,
11
- default: () => {
12
- }
13
- }
14
- },
15
- computed: {
16
- baseAppUrl() {
17
- return o.baseUrl;
18
- },
19
- iframeUrl() {
20
- return `${this.baseAppUrl}/partner/connect?partnerName=${this.partnerName}`;
21
- }
22
- },
23
- created() {
24
- window.addEventListener("message", this.onReceiveMessage);
25
- },
26
- beforeDestroy() {
27
- window.removeEventListener("message", this.onReceiveMessage);
28
- },
29
- methods: {
30
- onReceiveMessage({ data: e, origin: r, source: n }) {
31
- var t;
32
- r === this.baseAppUrl && ((e == null ? void 0 : e.type) === "channelPartnerConnect" && (n == null || n.postMessage({ type: "readyForPartnerConnect" }, r)), (e == null ? void 0 : e.type) === "partnerUserConnect" && (c.trigger("account:userConnect", e == null ? void 0 : e.value), (t = this.closeFunc) == null || t.call(this)));
33
- }
34
- }
35
- };
36
- var p = function() {
37
- var r = this, n = r._self._c;
38
- return n("iframe", { staticClass: "h-full w-full", attrs: { title: "Partner Connect", src: r.iframeUrl, frameborder: "0" } });
39
- }, l = [], a = /* @__PURE__ */ s(
40
- i,
41
- p,
42
- l,
43
- !1,
44
- null,
45
- null
46
- );
47
- const m = a.exports;
48
- export {
49
- m as default
50
- };
@@ -1,67 +0,0 @@
1
- import { C as n } from "./ColorPicker-CZ_bJabP.js";
2
- import { M as s } from "./ManualPopover-CZrWiT-P.js";
3
- import { h as a } from "./color-TdtKxwVa.js";
4
- import { n as i } from "./main-WKzC-Dnu.js";
5
- const l = {
6
- name: "ThemeColorRow",
7
- components: {
8
- ColorPicker: n,
9
- ManualPopover: s
10
- },
11
- props: {
12
- value: {
13
- type: String,
14
- default: ""
15
- },
16
- pickerOptions: {
17
- type: Object,
18
- default: () => ({})
19
- },
20
- showReset: {
21
- type: Boolean,
22
- default: !1
23
- },
24
- placement: {
25
- type: String,
26
- default: "bottom-end"
27
- }
28
- },
29
- computed: {
30
- internalValue: {
31
- get() {
32
- return this.value;
33
- },
34
- set(r) {
35
- this.$emit("change", a(r.hsl));
36
- }
37
- }
38
- },
39
- methods: {
40
- reset() {
41
- this.$emit("change", null);
42
- }
43
- }
44
- };
45
- var c = function() {
46
- var e = this, t = e._self._c;
47
- return t("div", { ref: "themeContainer", staticClass: "theme-row" }, [t("div", { staticStyle: { flex: "1 1 auto" } }, [e._t("default")], 2), e.showReset ? t("div", { directives: [{ name: "tooltip", rawName: "v-tooltip", value: e.$t("reset"), expression: "$t('reset')" }], staticClass: "reset-button", on: { click: e.reset } }, [t("svg", { attrs: { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" } }, [t("path", { attrs: { d: "M2.5 2v6h6M2.66 15.57a10 10 0 1 0 .57-8.38" } })])]) : e._e(), t("ManualPopover", { attrs: { "popover-class": "popover-color-picker no-tip", "popover-inner-class": "color-wrapper" } }, [t("div", { ref: "button" }, [e._t("button", function() {
48
- return [t("div", { staticClass: "current-color-icon", style: { backgroundColor: e.internalValue } })];
49
- })], 2), t("div", { attrs: { slot: "popover" }, on: { mousedown: function(o) {
50
- o.stopPropagation();
51
- }, click: function(o) {
52
- o.stopPropagation();
53
- } }, slot: "popover" }, [t("ColorPicker", e._b({ ref: "colorPicker", model: { value: e.internalValue, callback: function(o) {
54
- e.internalValue = o;
55
- }, expression: "internalValue" } }, "ColorPicker", e.pickerOptions, !1))], 1)])], 1);
56
- }, p = [], u = /* @__PURE__ */ i(
57
- l,
58
- c,
59
- p,
60
- !1,
61
- null,
62
- "dd26960c"
63
- );
64
- const h = u.exports;
65
- export {
66
- h as T
67
- };
@@ -1,38 +0,0 @@
1
- import { m as i } from "./mapFormMixin-QbevCwJK.js";
2
- import { I as t } from "./InputToggleRow-CZjxsDOQ.js";
3
- import { n as s } from "./main-WKzC-Dnu.js";
4
- const a = {
5
- name: "ToggleBinding",
6
- i18nOptions: {
7
- namespaces: "ToggleBinding",
8
- messages: {
9
- en: {
10
- label: "Answer not binding"
11
- },
12
- sv: {
13
- label: "Ej bindande svar"
14
- }
15
- }
16
- },
17
- components: {
18
- InputToggleRow: t
19
- },
20
- mixins: [i(["notBinding"])]
21
- };
22
- var l = function() {
23
- var n = this, e = n._self._c;
24
- return e("div", [e("InputToggleRow", { attrs: { "display-value": n.notBinding, label: n.$t("label") } }, [e("CSwitch", { attrs: { slot: "toggle" }, slot: "toggle", model: { value: n.notBinding, callback: function(o) {
25
- n.notBinding = o;
26
- }, expression: "notBinding" } })], 1)], 1);
27
- }, r = [], g = /* @__PURE__ */ s(
28
- a,
29
- l,
30
- r,
31
- !1,
32
- null,
33
- null
34
- );
35
- const _ = g.exports;
36
- export {
37
- _ as default
38
- };