lib-pajakio-v2 1.0.26 → 1.0.28

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.
@@ -87,6 +87,13 @@ module.exports =
87
87
  /************************************************************************/
88
88
  /******/ ({
89
89
 
90
+ /***/ "0079":
91
+ /***/ (function(module, exports, __webpack_require__) {
92
+
93
+ // extracted by mini-css-extract-plugin
94
+
95
+ /***/ }),
96
+
90
97
  /***/ "00ee":
91
98
  /***/ (function(module, exports, __webpack_require__) {
92
99
 
@@ -920,6 +927,17 @@ module.exports = function (argument) {
920
927
  };
921
928
 
922
929
 
930
+ /***/ }),
931
+
932
+ /***/ "522e":
933
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
934
+
935
+ "use strict";
936
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_FormWysiwyg_vue_vue_type_style_index_0_id_2a54b263_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0079");
937
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_FormWysiwyg_vue_vue_type_style_index_0_id_2a54b263_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_FormWysiwyg_vue_vue_type_style_index_0_id_2a54b263_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
938
+ /* unused harmony reexport * */
939
+
940
+
923
941
  /***/ }),
924
942
 
925
943
  /***/ "5692":
@@ -2033,13 +2051,6 @@ module.exports = function (name) {
2033
2051
  /* unused harmony reexport * */
2034
2052
 
2035
2053
 
2036
- /***/ }),
2037
-
2038
- /***/ "c028":
2039
- /***/ (function(module, exports, __webpack_require__) {
2040
-
2041
- // extracted by mini-css-extract-plugin
2042
-
2043
2054
  /***/ }),
2044
2055
 
2045
2056
  /***/ "c04e":
@@ -2404,17 +2415,6 @@ exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
2404
2415
  } : $propertyIsEnumerable;
2405
2416
 
2406
2417
 
2407
- /***/ }),
2408
-
2409
- /***/ "d831":
2410
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
2411
-
2412
- "use strict";
2413
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_FormWysiwyg_vue_vue_type_style_index_0_id_52b4ebd4_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("c028");
2414
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_FormWysiwyg_vue_vue_type_style_index_0_id_52b4ebd4_lang_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_v16_dist_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_v16_dist_index_js_ref_1_1_FormWysiwyg_vue_vue_type_style_index_0_id_52b4ebd4_lang_scss__WEBPACK_IMPORTED_MODULE_0__);
2415
- /* unused harmony reexport * */
2416
-
2417
-
2418
2418
  /***/ }),
2419
2419
 
2420
2420
  /***/ "d9b5":
@@ -42281,51 +42281,66 @@ var FormTextareavue_type_style_index_0_id_4b6a6dc5_lang_scss = __webpack_require
42281
42281
  const FormTextarea_exports_ = /*#__PURE__*/exportHelper_default()(FormTextareavue_type_script_lang_js, [['render',FormTextareavue_type_template_id_4b6a6dc5_render]])
42282
42282
 
42283
42283
  /* harmony default export */ var FormTextarea = (FormTextarea_exports_);
42284
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader-v16/dist??ref--1-1!./src/components/Form/FormWysiwyg.vue?vue&type=template&id=52b4ebd4
42284
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader-v16/dist??ref--1-1!./src/components/Form/FormWysiwyg.vue?vue&type=template&id=2a54b263
42285
42285
 
42286
- const FormWysiwygvue_type_template_id_52b4ebd4_hoisted_1 = {
42286
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_1 = {
42287
42287
  class: "form-wysiwyg flex flex-col"
42288
42288
  };
42289
- const FormWysiwygvue_type_template_id_52b4ebd4_hoisted_2 = {
42289
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_2 = {
42290
42290
  class: "w-full"
42291
42291
  };
42292
- const FormWysiwygvue_type_template_id_52b4ebd4_hoisted_3 = {
42292
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_3 = {
42293
42293
  key: 0,
42294
42294
  class: "toolbar"
42295
42295
  };
42296
- const FormWysiwygvue_type_template_id_52b4ebd4_hoisted_4 = {
42296
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_4 = {
42297
42297
  key: 0,
42298
42298
  class: "toolbar-divider"
42299
42299
  };
42300
- const FormWysiwygvue_type_template_id_52b4ebd4_hoisted_5 = ["disabled", "title", "onClick"];
42301
- const FormWysiwygvue_type_template_id_52b4ebd4_hoisted_6 = {
42300
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_5 = ["disabled", "title", "value", "onChange"];
42301
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_6 = ["value"];
42302
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_7 = ["disabled", "title", "onClick"];
42303
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_8 = {
42302
42304
  key: 1,
42303
42305
  class: "toolbar-text"
42304
42306
  };
42305
- const FormWysiwygvue_type_template_id_52b4ebd4_hoisted_7 = ["contenteditable", "data-placeholder"];
42306
- const FormWysiwygvue_type_template_id_52b4ebd4_hoisted_8 = ["innerHTML"];
42307
- function FormWysiwygvue_type_template_id_52b4ebd4_render(_ctx, _cache, $props, $setup, $data, $options) {
42307
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_9 = ["contenteditable", "data-placeholder"];
42308
+ const FormWysiwygvue_type_template_id_2a54b263_hoisted_10 = ["innerHTML"];
42309
+ function FormWysiwygvue_type_template_id_2a54b263_render(_ctx, _cache, $props, $setup, $data, $options) {
42308
42310
  const _component_base_icon = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["resolveComponent"])("base-icon");
42309
- return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FormWysiwygvue_type_template_id_52b4ebd4_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
42311
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FormWysiwygvue_type_template_id_2a54b263_hoisted_1, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
42310
42312
  class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(`label-${$props.labelPosition}`)
42311
- }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "label"), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", FormWysiwygvue_type_template_id_52b4ebd4_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
42313
+ }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderSlot"])(_ctx.$slots, "label"), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", FormWysiwygvue_type_template_id_2a54b263_hoisted_2, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
42312
42314
  class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["editor-group", {
42313
42315
  error: $props.error,
42314
42316
  disabled: $props.disabled,
42315
42317
  readonly: $props.readonly && !$props.disabled
42316
42318
  }])
42317
- }, [$props.showToolbar ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FormWysiwygvue_type_template_id_52b4ebd4_hoisted_3, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.resolvedToolbar, (item, index) => {
42319
+ }, [$props.showToolbar ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FormWysiwygvue_type_template_id_2a54b263_hoisted_3, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])($options.resolvedToolbar, (item, index) => {
42318
42320
  return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], {
42319
42321
  key: `${item.action}-${index}`
42320
- }, [item.action === 'divider' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FormWysiwygvue_type_template_id_52b4ebd4_hoisted_4)) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("button", {
42322
+ }, [item.action === 'divider' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", FormWysiwygvue_type_template_id_2a54b263_hoisted_4)) : item.type === 'select' ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("select", {
42321
42323
  key: 1,
42324
+ class: "toolbar-select",
42325
+ disabled: $options.isActionDisabled(item),
42326
+ title: item.title || item.label,
42327
+ value: $options.getSelectValue(item),
42328
+ onMousedown: _cache[0] || (_cache[0] = (...args) => $options.saveRange && $options.saveRange(...args)),
42329
+ onChange: $event => $options.handleToolbarSelect(item, $event)
42330
+ }, [(Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])(external_commonjs_vue_commonjs2_vue_root_Vue_["Fragment"], null, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["renderList"])(item.options, option => {
42331
+ return Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("option", {
42332
+ key: option.value,
42333
+ value: option.value
42334
+ }, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(option.label), 9, FormWysiwygvue_type_template_id_2a54b263_hoisted_6);
42335
+ }), 128))], 40, FormWysiwygvue_type_template_id_2a54b263_hoisted_5)) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("button", {
42336
+ key: 2,
42322
42337
  type: "button",
42323
42338
  class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["toolbar-button", {
42324
42339
  active: $options.isActionActive(item)
42325
42340
  }]),
42326
42341
  disabled: $options.isActionDisabled(item),
42327
42342
  title: item.title || item.label,
42328
- onMousedown: _cache[0] || (_cache[0] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(() => {}, ["prevent"])),
42343
+ onMousedown: _cache[1] || (_cache[1] = Object(external_commonjs_vue_commonjs2_vue_root_Vue_["withModifiers"])(() => {}, ["prevent"])),
42329
42344
  onClick: $event => $options.handleToolbarAction(item)
42330
42345
  }, [item.icon ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createBlock"])(_component_base_icon, {
42331
42346
  key: 0,
@@ -42333,13 +42348,13 @@ function FormWysiwygvue_type_template_id_52b4ebd4_render(_ctx, _cache, $props, $
42333
42348
  width: "18",
42334
42349
  height: "18",
42335
42350
  color: $options.isActionActive(item) ? '#3e7dc0' : '#59636E'
42336
- }, null, 8, ["iconName", "color"])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", FormWysiwygvue_type_template_id_52b4ebd4_hoisted_6, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(item.label), 1))], 42, FormWysiwygvue_type_template_id_52b4ebd4_hoisted_5))], 64);
42351
+ }, null, 8, ["iconName", "color"])) : (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("span", FormWysiwygvue_type_template_id_2a54b263_hoisted_8, Object(external_commonjs_vue_commonjs2_vue_root_Vue_["toDisplayString"])(item.label), 1))], 42, FormWysiwygvue_type_template_id_2a54b263_hoisted_7))], 64);
42337
42352
  }), 128))])) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("input", {
42338
42353
  ref: "imageInputRef",
42339
42354
  type: "file",
42340
42355
  class: "image-input",
42341
42356
  accept: "image/*",
42342
- onChange: _cache[1] || (_cache[1] = (...args) => $options.handleImageSelected && $options.handleImageSelected(...args))
42357
+ onChange: _cache[2] || (_cache[2] = (...args) => $options.handleImageSelected && $options.handleImageSelected(...args))
42343
42358
  }, null, 544), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("div", {
42344
42359
  class: "editor-wrapper",
42345
42360
  style: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeStyle"])($options.editorStyle)
@@ -42350,28 +42365,55 @@ function FormWysiwygvue_type_template_id_52b4ebd4_render(_ctx, _cache, $props, $
42350
42365
  }]),
42351
42366
  contenteditable: $options.isEditable,
42352
42367
  "data-placeholder": $props.placeholder,
42353
- onInput: _cache[2] || (_cache[2] = (...args) => $options.handleInput && $options.handleInput(...args)),
42354
- onFocus: _cache[3] || (_cache[3] = (...args) => $options.handleFocus && $options.handleFocus(...args)),
42355
- onBlur: _cache[4] || (_cache[4] = (...args) => $options.handleBlur && $options.handleBlur(...args)),
42356
- onPaste: _cache[5] || (_cache[5] = (...args) => $options.handlePaste && $options.handlePaste(...args)),
42357
- onMouseup: _cache[6] || (_cache[6] = (...args) => $options.refreshToolbarState && $options.refreshToolbarState(...args)),
42358
- onKeyup: _cache[7] || (_cache[7] = (...args) => $options.refreshToolbarState && $options.refreshToolbarState(...args)),
42359
- onMousedown: _cache[8] || (_cache[8] = (...args) => $options.handleEditorMouseDown && $options.handleEditorMouseDown(...args)),
42360
- onMousemove: _cache[9] || (_cache[9] = (...args) => $options.handleEditorMouseMove && $options.handleEditorMouseMove(...args)),
42361
- onMouseleave: _cache[10] || (_cache[10] = (...args) => $options.handleEditorMouseLeave && $options.handleEditorMouseLeave(...args))
42362
- }, null, 42, FormWysiwygvue_type_template_id_52b4ebd4_hoisted_7)], 4)], 2), $props.message ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
42368
+ onInput: _cache[3] || (_cache[3] = (...args) => $options.handleInput && $options.handleInput(...args)),
42369
+ onFocus: _cache[4] || (_cache[4] = (...args) => $options.handleFocus && $options.handleFocus(...args)),
42370
+ onBlur: _cache[5] || (_cache[5] = (...args) => $options.handleBlur && $options.handleBlur(...args)),
42371
+ onPaste: _cache[6] || (_cache[6] = (...args) => $options.handlePaste && $options.handlePaste(...args)),
42372
+ onMouseup: _cache[7] || (_cache[7] = (...args) => $options.refreshToolbarState && $options.refreshToolbarState(...args)),
42373
+ onKeyup: _cache[8] || (_cache[8] = (...args) => $options.refreshToolbarState && $options.refreshToolbarState(...args)),
42374
+ onMousedown: _cache[9] || (_cache[9] = (...args) => $options.handleEditorMouseDown && $options.handleEditorMouseDown(...args)),
42375
+ onMousemove: _cache[10] || (_cache[10] = (...args) => $options.handleEditorMouseMove && $options.handleEditorMouseMove(...args)),
42376
+ onMouseleave: _cache[11] || (_cache[11] = (...args) => $options.handleEditorMouseLeave && $options.handleEditorMouseLeave(...args))
42377
+ }, null, 42, FormWysiwygvue_type_template_id_2a54b263_hoisted_9)], 4)], 2), $props.message ? (Object(external_commonjs_vue_commonjs2_vue_root_Vue_["openBlock"])(), Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementBlock"])("div", {
42363
42378
  key: 0,
42364
42379
  class: Object(external_commonjs_vue_commonjs2_vue_root_Vue_["normalizeClass"])(["helper-text", {
42365
42380
  'error-helper': $props.error
42366
42381
  }])
42367
42382
  }, [Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createElementVNode"])("span", {
42368
42383
  innerHTML: $props.message
42369
- }, null, 8, FormWysiwygvue_type_template_id_52b4ebd4_hoisted_8)], 2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)])], 2)]);
42384
+ }, null, 8, FormWysiwygvue_type_template_id_2a54b263_hoisted_10)], 2)) : Object(external_commonjs_vue_commonjs2_vue_root_Vue_["createCommentVNode"])("", true)])], 2)]);
42370
42385
  }
42371
- // CONCATENATED MODULE: ./src/components/Form/FormWysiwyg.vue?vue&type=template&id=52b4ebd4
42386
+ // CONCATENATED MODULE: ./src/components/Form/FormWysiwyg.vue?vue&type=template&id=2a54b263
42372
42387
 
42373
42388
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader-v16/dist??ref--1-1!./src/components/Form/FormWysiwyg.vue?vue&type=script&lang=js
42374
42389
 
42390
+
42391
+ const DEFAULT_FONT_SIZE = "14px";
42392
+ const FONT_SIZE_OPTIONS = [{
42393
+ label: "12px",
42394
+ value: "12px"
42395
+ }, {
42396
+ label: "14px",
42397
+ value: DEFAULT_FONT_SIZE
42398
+ }, {
42399
+ label: "16px",
42400
+ value: "16px"
42401
+ }, {
42402
+ label: "18px",
42403
+ value: "18px"
42404
+ }, {
42405
+ label: "20px",
42406
+ value: "20px"
42407
+ }, {
42408
+ label: "24px",
42409
+ value: "24px"
42410
+ }, {
42411
+ label: "28px",
42412
+ value: "28px"
42413
+ }, {
42414
+ label: "32px",
42415
+ value: "32px"
42416
+ }];
42375
42417
  const TOOLBAR_ITEMS = {
42376
42418
  paragraph: {
42377
42419
  action: "paragraph",
@@ -42388,6 +42430,13 @@ const TOOLBAR_ITEMS = {
42388
42430
  label: "H2",
42389
42431
  title: "Heading 2"
42390
42432
  },
42433
+ fontSize: {
42434
+ action: "fontSize",
42435
+ type: "select",
42436
+ label: "Font Size",
42437
+ title: "Font Size",
42438
+ options: FONT_SIZE_OPTIONS
42439
+ },
42391
42440
  bold: {
42392
42441
  action: "bold",
42393
42442
  icon: "format_bold",
@@ -42443,6 +42492,11 @@ const TOOLBAR_ITEMS = {
42443
42492
  icon: "format_align_justify",
42444
42493
  title: "Justify"
42445
42494
  },
42495
+ horizontalRule: {
42496
+ action: "horizontalRule",
42497
+ icon: "horizontal_rule",
42498
+ title: "Insert Divider Line"
42499
+ },
42446
42500
  link: {
42447
42501
  action: "link",
42448
42502
  icon: "insert_link",
@@ -42453,6 +42507,26 @@ const TOOLBAR_ITEMS = {
42453
42507
  icon: "insert_photo",
42454
42508
  title: "Insert Image"
42455
42509
  },
42510
+ articleCards: {
42511
+ action: "articleCards",
42512
+ icon: "article",
42513
+ title: "Insert Article Cards"
42514
+ },
42515
+ timelineStep: {
42516
+ action: "timelineStep",
42517
+ icon: "playlist_add",
42518
+ title: "Add Timeline Step"
42519
+ },
42520
+ numberedCards: {
42521
+ action: "numberedCards",
42522
+ icon: "format_list_numbered",
42523
+ title: "Insert Numbered Cards"
42524
+ },
42525
+ borderSection: {
42526
+ action: "borderSection",
42527
+ icon: "border_outer",
42528
+ title: "Insert Border Section"
42529
+ },
42456
42530
  unlink: {
42457
42531
  action: "unlink",
42458
42532
  icon: "link_off",
@@ -42477,13 +42551,16 @@ const TOOLBAR_ITEMS = {
42477
42551
  action: "divider"
42478
42552
  }
42479
42553
  };
42480
- const DEFAULT_TOOLBAR = ["paragraph", "heading1", "heading2", "divider", "bold", "italic", "underline", "strikeThrough", "divider", "unorderedList", "orderedList", "blockquote", "divider", "alignLeft", "alignCenter", "alignRight", "alignJustify", "divider", "link", "insertImage", "unlink", "divider", "undo", "redo", "clear"];
42554
+ const DEFAULT_TOOLBAR = ["paragraph", "heading1", "heading2", "fontSize", "divider", "bold", "italic", "underline", "strikeThrough", "divider", "unorderedList", "orderedList", "blockquote", "divider", "alignLeft", "alignCenter", "alignRight", "alignJustify", "divider", "horizontalRule", "divider", "link", "insertImage", "articleCards", "timelineStep", "numberedCards", "borderSection", "unlink", "divider", "undo", "redo", "clear"];
42481
42555
  const ALIGNABLE_TAGS = ["P", "DIV", "H1", "H2", "H3", "BLOCKQUOTE", "LI", "PRE"];
42482
42556
  const SAFE_PROTOCOLS = ["http://", "https://", "mailto:", "tel:"];
42483
42557
  const SAFE_IMAGE_PROTOCOLS = ["http://", "https://", "data:image/", "blob:", "/"];
42484
42558
  const IMAGE_MIN_WIDTH = 40;
42485
42559
  const IMAGE_RESIZE_HANDLE_GAP = 16;
42486
- const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "H2", "H3", "I", "IMG", "LI", "OL", "P", "PRE", "S", "SPAN", "STRIKE", "STRONG", "U", "UL"];
42560
+ const ALLOWED_FONT_SIZE_VALUES = FONT_SIZE_OPTIONS.map(option => option.value);
42561
+ const FONT_SIZE_TAGS = ["ARTICLE", "BLOCKQUOTE", "DIV", "H1", "H2", "H3", "LI", "P", "SPAN"];
42562
+ const WYSIWYG_TEMPLATE_CLASSES = ["wysiwyg-article-grid", "wysiwyg-article-card", "wysiwyg-article-icon", "wysiwyg-divider-line", "wysiwyg-timeline", "wysiwyg-timeline-content", "wysiwyg-timeline-item", "wysiwyg-timeline-marker", "wysiwyg-numbered-card", "wysiwyg-numbered-card-content", "wysiwyg-numbered-card-list", "wysiwyg-numbered-card-marker", "wysiwyg-border-section"];
42563
+ const ALLOWED_TAGS = ["A", "ARTICLE", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "H2", "H3", "HR", "I", "IMG", "LI", "OL", "P", "PRE", "S", "SPAN", "STRIKE", "STRONG", "U", "UL"];
42487
42564
  /* harmony default export */ var FormWysiwygvue_type_script_lang_js = ({
42488
42565
  components: {
42489
42566
  BaseIcon: BaseIcon
@@ -42568,7 +42645,8 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
42568
42645
  orderedList: false,
42569
42646
  blockquote: false,
42570
42647
  align: "justifyLeft",
42571
- formatBlock: "P"
42648
+ formatBlock: "P",
42649
+ fontSize: DEFAULT_FONT_SIZE
42572
42650
  }
42573
42651
  };
42574
42652
  },
@@ -42632,9 +42710,11 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
42632
42710
  if (editor.innerHTML !== nextValue) {
42633
42711
  editor.innerHTML = nextValue;
42634
42712
  }
42713
+ this.normalizeStructuredTemplateMarkers();
42635
42714
  this.updateEmptyState();
42636
42715
  },
42637
42716
  handleInput() {
42717
+ this.normalizeStructuredTemplateMarkers();
42638
42718
  this.emitModelValue();
42639
42719
  this.refreshToolbarState();
42640
42720
  },
@@ -42795,6 +42875,7 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
42795
42875
  if (!editor) {
42796
42876
  return "";
42797
42877
  }
42878
+ this.normalizeStructuredTemplateMarkers();
42798
42879
  let htmlValue = editor.innerHTML;
42799
42880
  if (this.isHtmlEmpty(htmlValue)) {
42800
42881
  htmlValue = "";
@@ -42823,7 +42904,8 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
42823
42904
  orderedList: false,
42824
42905
  blockquote: false,
42825
42906
  align: "justifyLeft",
42826
- formatBlock: "P"
42907
+ formatBlock: "P",
42908
+ fontSize: DEFAULT_FONT_SIZE
42827
42909
  };
42828
42910
  return;
42829
42911
  }
@@ -42838,7 +42920,8 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
42838
42920
  orderedList: document.queryCommandState("insertOrderedList"),
42839
42921
  blockquote: blockValue === "BLOCKQUOTE",
42840
42922
  align: activeAlign || "justifyLeft",
42841
- formatBlock: blockValue || "P"
42923
+ formatBlock: blockValue || "P",
42924
+ fontSize: this.getSelectionFontSize()
42842
42925
  };
42843
42926
  },
42844
42927
  selectionInsideEditor() {
@@ -42918,12 +43001,27 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
42918
43001
  case "alignJustify":
42919
43002
  this.executeCommand("justifyFull");
42920
43003
  break;
43004
+ case "horizontalRule":
43005
+ this.insertHorizontalRule();
43006
+ break;
42921
43007
  case "link":
42922
43008
  this.createLink();
42923
43009
  break;
42924
43010
  case "insertImage":
42925
43011
  this.triggerImagePicker();
42926
43012
  break;
43013
+ case "articleCards":
43014
+ this.insertArticleCards();
43015
+ break;
43016
+ case "timelineStep":
43017
+ this.insertTimelineStep();
43018
+ break;
43019
+ case "numberedCards":
43020
+ this.insertNumberedCards();
43021
+ break;
43022
+ case "borderSection":
43023
+ this.insertBorderSection();
43024
+ break;
42927
43025
  case "unlink":
42928
43026
  this.executeCommand("unlink");
42929
43027
  break;
@@ -42942,12 +43040,90 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
42942
43040
  break;
42943
43041
  }
42944
43042
  },
43043
+ handleToolbarSelect(item, event) {
43044
+ if (this.isActionDisabled(item)) {
43045
+ return;
43046
+ }
43047
+ const value = event.target.value;
43048
+ this.focusEditor();
43049
+ this.restoreRange();
43050
+ if (item.action === "fontSize") {
43051
+ this.applyFontSize(value);
43052
+ }
43053
+ },
42945
43054
  executeCommand(command, value = null) {
42946
43055
  this.focusEditor();
42947
43056
  this.restoreRange();
42948
43057
  document.execCommand(command, false, value);
42949
43058
  this.handleInput();
42950
43059
  },
43060
+ insertHorizontalRule() {
43061
+ this.focusEditor();
43062
+ this.restoreRange();
43063
+ document.execCommand("insertHTML", false, '<hr class="wysiwyg-divider-line"><p><br></p>');
43064
+ this.handleInput();
43065
+ },
43066
+ applyFontSize(rawFontSize) {
43067
+ const fontSize = this.normalizeFontSize(rawFontSize);
43068
+ if (!fontSize) {
43069
+ return;
43070
+ }
43071
+ const editor = this.$refs.editorRef;
43072
+ const selection = window.getSelection();
43073
+ if (!editor || !selection || !selection.rangeCount || !this.selectionInsideEditor()) {
43074
+ return;
43075
+ }
43076
+ const range = selection.getRangeAt(0);
43077
+ if (range.collapsed) {
43078
+ const targetElement = this.getClosestFontSizeTarget(range.startContainer);
43079
+ if (targetElement) {
43080
+ targetElement.style.fontSize = fontSize;
43081
+ }
43082
+ } else {
43083
+ const fontSizeWrapper = document.createElement("span");
43084
+ fontSizeWrapper.style.fontSize = fontSize;
43085
+ try {
43086
+ range.surroundContents(fontSizeWrapper);
43087
+ } catch (error) {
43088
+ fontSizeWrapper.appendChild(range.extractContents());
43089
+ range.insertNode(fontSizeWrapper);
43090
+ }
43091
+ const nextRange = document.createRange();
43092
+ nextRange.selectNodeContents(fontSizeWrapper);
43093
+ selection.removeAllRanges();
43094
+ selection.addRange(nextRange);
43095
+ }
43096
+ this.handleInput();
43097
+ },
43098
+ getClosestFontSizeTarget(node) {
43099
+ const editor = this.$refs.editorRef;
43100
+ let currentNode = node && node.nodeType === Node.ELEMENT_NODE ? node : node === null || node === void 0 ? void 0 : node.parentElement;
43101
+ while (currentNode && currentNode !== editor) {
43102
+ if (FONT_SIZE_TAGS.includes(currentNode.tagName)) {
43103
+ return currentNode;
43104
+ }
43105
+ currentNode = currentNode.parentElement;
43106
+ }
43107
+ return null;
43108
+ },
43109
+ normalizeFontSize(rawFontSize) {
43110
+ const fontSize = String(rawFontSize || "").trim().toLowerCase();
43111
+ return ALLOWED_FONT_SIZE_VALUES.includes(fontSize) ? fontSize : "";
43112
+ },
43113
+ getSelectionFontSize() {
43114
+ const editor = this.$refs.editorRef;
43115
+ const selection = window.getSelection();
43116
+ if (!editor || !selection || !selection.rangeCount || !this.selectionInsideEditor()) {
43117
+ return DEFAULT_FONT_SIZE;
43118
+ }
43119
+ const anchorNode = selection.anchorNode;
43120
+ const anchorElement = (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) === Node.ELEMENT_NODE ? anchorNode : anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.parentElement;
43121
+ if (!anchorElement) {
43122
+ return DEFAULT_FONT_SIZE;
43123
+ }
43124
+ const fontSize = window.getComputedStyle(anchorElement).fontSize;
43125
+ return this.normalizeFontSize(fontSize) || DEFAULT_FONT_SIZE;
43126
+ },
42951
43127
  triggerImagePicker() {
42952
43128
  const imageInput = this.$refs.imageInputRef;
42953
43129
  if (!imageInput) {
@@ -42979,6 +43155,375 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
42979
43155
  document.execCommand("insertHTML", false, `<img src="${safeSrc}" alt="image">`);
42980
43156
  this.handleInput();
42981
43157
  },
43158
+ insertArticleCards() {
43159
+ this.focusEditor();
43160
+ this.restoreRange();
43161
+ const editor = this.$refs.editorRef;
43162
+ const selection = window.getSelection();
43163
+ const anchorElement = this.getSelectionAnchorElement(selection);
43164
+ const currentGrid = this.getClosestElementByClass(anchorElement, "wysiwyg-article-grid");
43165
+ const currentCard = this.getClosestElementByClass(anchorElement, "wysiwyg-article-card");
43166
+ if (!editor || !selection || !currentGrid) {
43167
+ const articleGrid = document.createElement("div");
43168
+ articleGrid.className = "wysiwyg-article-grid";
43169
+ const articleCard = this.createArticleCardElement(document, 1);
43170
+ const spacer = document.createElement("p");
43171
+ spacer.innerHTML = "<br>";
43172
+ articleGrid.appendChild(articleCard);
43173
+ this.insertNodesAtSelection([articleGrid, spacer]);
43174
+ this.placeCaretAtEnd(articleCard.querySelector("h3"));
43175
+ this.handleInput();
43176
+ return;
43177
+ }
43178
+ const articleCards = this.getArticleCards(currentGrid);
43179
+ const currentCardIndex = currentCard ? articleCards.indexOf(currentCard) : -1;
43180
+ const nextCardNumber = currentCardIndex >= 0 ? currentCardIndex + 2 : articleCards.length + 1;
43181
+ const articleCard = this.createArticleCardElement(document, nextCardNumber);
43182
+ if (currentCard && currentCard.parentElement === currentGrid) {
43183
+ currentCard.insertAdjacentElement("afterend", articleCard);
43184
+ } else {
43185
+ currentGrid.appendChild(articleCard);
43186
+ }
43187
+ this.placeCaretAtEnd(articleCard.querySelector("h3"));
43188
+ this.handleInput();
43189
+ },
43190
+ insertBorderSection() {
43191
+ this.focusEditor();
43192
+ this.restoreRange();
43193
+ const borderSection = document.createElement("div");
43194
+ borderSection.className = "wysiwyg-border-section";
43195
+ borderSection.innerHTML = "<p><br></p>";
43196
+ const spacer = document.createElement("p");
43197
+ spacer.innerHTML = "<br>";
43198
+ this.insertNodesAtSelection([borderSection, spacer]);
43199
+ this.placeCaretAtEnd(borderSection.querySelector("p"));
43200
+ this.handleInput();
43201
+ },
43202
+ createArticleCardHtml(cardNumber = 1) {
43203
+ const articleCard = this.getArticleCardContent(cardNumber);
43204
+ return ['<article class="wysiwyg-article-card">', `<span class="wysiwyg-article-icon">${articleCard.icon}</span>`, `<h3>${this.escapeHtml(articleCard.title)}</h3>`, `<p>${this.escapeHtml(articleCard.description)}</p>`, "</article>"].join("");
43205
+ },
43206
+ createArticleCardElement(doc, cardNumber = 1) {
43207
+ const wrapper = doc.createElement("div");
43208
+ wrapper.innerHTML = this.createArticleCardHtml(cardNumber);
43209
+ return wrapper.firstElementChild;
43210
+ },
43211
+ getArticleCardContent(cardNumber) {
43212
+ const articleCardContents = [{
43213
+ icon: "&#129517;",
43214
+ title: "Masih Wacana",
43215
+ description: "Belum ada perubahan perlakuan pajak bagi pengguna jalan tol sampai ada aturan yang resmi berlaku."
43216
+ }, {
43217
+ icon: "&#128196;",
43218
+ title: "Masuk Renstra DJP",
43219
+ description: "Topik ini tercantum dalam agenda regulasi perluasan basis pajak pada Renstra DJP 2025-2029."
43220
+ }, {
43221
+ icon: "&#8987;",
43222
+ title: "Target Regulasi 2028",
43223
+ description: "Dokumen Renstra menempatkan penyusunan regulasi mekanisme pemungutan sebagai target jangka menengah."
43224
+ }];
43225
+ return articleCardContents[cardNumber - 1] || {
43226
+ icon: "&#128196;",
43227
+ title: `Article Card ${cardNumber}`,
43228
+ description: "Deskripsi article card."
43229
+ };
43230
+ },
43231
+ getArticleCards(articleGrid) {
43232
+ if (!articleGrid) {
43233
+ return [];
43234
+ }
43235
+ return Array.from(articleGrid.children).filter(child => {
43236
+ var _child$classList;
43237
+ return (_child$classList = child.classList) === null || _child$classList === void 0 ? void 0 : _child$classList.contains("wysiwyg-article-card");
43238
+ });
43239
+ },
43240
+ insertNumberedCards() {
43241
+ this.focusEditor();
43242
+ this.restoreRange();
43243
+ const editor = this.$refs.editorRef;
43244
+ const selection = window.getSelection();
43245
+ const anchorElement = this.getSelectionAnchorElement(selection);
43246
+ const currentList = this.getClosestElementByClass(anchorElement, "wysiwyg-numbered-card-list");
43247
+ const currentCard = this.getClosestElementByClass(anchorElement, "wysiwyg-numbered-card");
43248
+ if (!editor || !selection || !currentList) {
43249
+ const numberedCardList = document.createElement("div");
43250
+ numberedCardList.className = "wysiwyg-numbered-card-list";
43251
+ const numberedCard = this.createNumberedCardElement(document, 1);
43252
+ const spacer = document.createElement("p");
43253
+ spacer.innerHTML = "<br>";
43254
+ numberedCardList.appendChild(numberedCard);
43255
+ this.insertNodesAtSelection([numberedCardList, spacer]);
43256
+ this.placeCaretAtEnd(numberedCard.querySelector("h3"));
43257
+ this.handleInput();
43258
+ return;
43259
+ }
43260
+ const numberedCards = this.getNumberedCards(currentList);
43261
+ const currentCardIndex = currentCard ? numberedCards.indexOf(currentCard) : -1;
43262
+ const nextNumber = currentCardIndex >= 0 ? currentCardIndex + 2 : numberedCards.length + 1;
43263
+ const numberedCard = this.createNumberedCardElement(document, nextNumber);
43264
+ if (currentCard && currentCard.parentElement === currentList) {
43265
+ currentCard.insertAdjacentElement("afterend", numberedCard);
43266
+ } else {
43267
+ currentList.appendChild(numberedCard);
43268
+ }
43269
+ this.normalizeNumberedCardMarkers();
43270
+ this.placeCaretAtEnd(numberedCard.querySelector("h3"));
43271
+ this.handleInput();
43272
+ },
43273
+ createNumberedCardHtml(cardNumber = 1) {
43274
+ const numberedCard = this.getNumberedCardContent(cardNumber);
43275
+ return ['<article class="wysiwyg-numbered-card">', `<span class="wysiwyg-numbered-card-marker">${cardNumber}</span>`, '<div class="wysiwyg-numbered-card-content">', `<h3>${this.escapeHtml(numberedCard.title)}</h3>`, `<p>${this.escapeHtml(numberedCard.description)}</p>`, "</div>", "</article>"].join("");
43276
+ },
43277
+ createNumberedCardElement(doc, cardNumber = 1) {
43278
+ const wrapper = doc.createElement("div");
43279
+ wrapper.innerHTML = this.createNumberedCardHtml(cardNumber);
43280
+ return wrapper.firstElementChild;
43281
+ },
43282
+ getNumberedCardContent(cardNumber) {
43283
+ const numberedCardContents = [{
43284
+ title: "Pantau aturan resmi",
43285
+ description: "Gunakan kanal DJP dan Kementerian Keuangan sebagai rujukan utama, bukan hanya ringkasan media."
43286
+ }, {
43287
+ title: "Petakan biaya transportasi",
43288
+ description: "Identifikasi kontrak logistik, perjalanan dinas, dan biaya operasional yang sensitif terhadap tarif tol."
43289
+ }, {
43290
+ title: "Siapkan skenario PPN",
43291
+ description: "Buat simulasi sederhana untuk melihat dampak jika tarif tol menjadi termasuk atau ditambah PPN."
43292
+ }, {
43293
+ title: "Rapikan arsip transaksi",
43294
+ description: "Pastikan bukti pembayaran, invoice vendor, dan pencatatan biaya transportasi mudah ditelusuri."
43295
+ }];
43296
+ return numberedCardContents[cardNumber - 1] || {
43297
+ title: `Nomor ${cardNumber}`,
43298
+ description: "Deskripsi kartu bernomor."
43299
+ };
43300
+ },
43301
+ getNumberedCards(numberedCardList) {
43302
+ if (!numberedCardList) {
43303
+ return [];
43304
+ }
43305
+ return Array.from(numberedCardList.children).filter(child => {
43306
+ var _child$classList2;
43307
+ return (_child$classList2 = child.classList) === null || _child$classList2 === void 0 ? void 0 : _child$classList2.contains("wysiwyg-numbered-card");
43308
+ });
43309
+ },
43310
+ insertTimelineStep() {
43311
+ this.focusEditor();
43312
+ this.restoreRange();
43313
+ const editor = this.$refs.editorRef;
43314
+ const selection = window.getSelection();
43315
+ const anchorElement = this.getSelectionAnchorElement(selection);
43316
+ const currentTimeline = this.getClosestElementByClass(anchorElement, "wysiwyg-timeline");
43317
+ const currentItem = this.getClosestElementByClass(anchorElement, "wysiwyg-timeline-item");
43318
+ if (!editor || !selection || !currentTimeline) {
43319
+ const timeline = document.createElement("div");
43320
+ timeline.className = "wysiwyg-timeline";
43321
+ const timelineStep = this.createTimelineStepElement(document, 1);
43322
+ const spacer = document.createElement("p");
43323
+ spacer.innerHTML = "<br>";
43324
+ timeline.appendChild(timelineStep);
43325
+ this.insertNodesAtSelection([timeline, spacer]);
43326
+ this.placeCaretAtEnd(timelineStep.querySelector("h3"));
43327
+ this.handleInput();
43328
+ return;
43329
+ }
43330
+ const timelineItems = this.getTimelineItems(currentTimeline);
43331
+ const currentItemIndex = currentItem ? timelineItems.indexOf(currentItem) : -1;
43332
+ const nextStepNumber = currentItemIndex >= 0 ? currentItemIndex + 2 : timelineItems.length + 1;
43333
+ const timelineStep = this.createTimelineStepElement(document, nextStepNumber);
43334
+ if (currentItem && currentItem.parentElement === currentTimeline) {
43335
+ currentItem.insertAdjacentElement("afterend", timelineStep);
43336
+ } else {
43337
+ currentTimeline.appendChild(timelineStep);
43338
+ }
43339
+ this.normalizeTimelineMarkers();
43340
+ this.placeCaretAtEnd(timelineStep.querySelector("h3"));
43341
+ this.handleInput();
43342
+ },
43343
+ createTimelineStepHtml(stepNumber = 1) {
43344
+ const timelineStep = this.getTimelineStepContent(stepNumber);
43345
+ return ['<article class="wysiwyg-timeline-item">', `<span class="wysiwyg-timeline-marker">${stepNumber}</span>`, '<div class="wysiwyg-timeline-content">', `<h3>${this.escapeHtml(timelineStep.title)}</h3>`, `<p>${this.escapeHtml(timelineStep.description)}</p>`, "</div>", "</article>"].join("");
43346
+ },
43347
+ createTimelineStepElement(doc, stepNumber = 1) {
43348
+ const wrapper = doc.createElement("div");
43349
+ wrapper.innerHTML = this.createTimelineStepHtml(stepNumber);
43350
+ return wrapper.firstElementChild;
43351
+ },
43352
+ getTimelineStepContent(stepNumber) {
43353
+ const timelineStepContents = [{
43354
+ title: "2015: Aturan Sempat Terbit",
43355
+ description: "PER-10/PJ/2015 mengatur tata cara pemungutan PPN atas jasa jalan tol, tetapi kemudian dicabut melalui PER-16/PJ/2015."
43356
+ }, {
43357
+ title: "2025-2029: Masuk Rencana Strategis",
43358
+ description: "KEP-252/PJ/2025 menempatkan mekanisme pemungutan PPN jasa jalan tol dalam agenda regulasi perluasan basis pajak."
43359
+ }, {
43360
+ title: "April 2026: DJP Memberi Klarifikasi",
43361
+ description: "DJP menyampaikan bahwa isu ini masih tahap perencanaan kebijakan dan belum menjadi ketentuan yang berlaku."
43362
+ }, {
43363
+ title: "2028: Target Penyelesaian Regulasi",
43364
+ description: "Target ini perlu dibaca sebagai agenda penyusunan regulasi, bukan otomatis berarti tarif tol langsung berubah."
43365
+ }];
43366
+ return timelineStepContents[stepNumber - 1] || {
43367
+ title: `Step ${stepNumber}`,
43368
+ description: "Deskripsi timeline."
43369
+ };
43370
+ },
43371
+ getTimelineItems(timeline) {
43372
+ if (!timeline) {
43373
+ return [];
43374
+ }
43375
+ return Array.from(timeline.children).filter(child => {
43376
+ var _child$classList3;
43377
+ return (_child$classList3 = child.classList) === null || _child$classList3 === void 0 ? void 0 : _child$classList3.contains("wysiwyg-timeline-item");
43378
+ });
43379
+ },
43380
+ insertNodesAtSelection(nodes) {
43381
+ const selection = window.getSelection();
43382
+ if (!selection || !selection.rangeCount) {
43383
+ return;
43384
+ }
43385
+ const range = selection.getRangeAt(0);
43386
+ range.deleteContents();
43387
+ const fragment = document.createDocumentFragment();
43388
+ nodes.forEach(node => {
43389
+ fragment.appendChild(node);
43390
+ });
43391
+ range.insertNode(fragment);
43392
+ },
43393
+ getSelectionAnchorElement(selection = window.getSelection()) {
43394
+ if (!selection || !selection.rangeCount) {
43395
+ return null;
43396
+ }
43397
+ const anchorNode = selection.anchorNode;
43398
+ return (anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.nodeType) === Node.ELEMENT_NODE ? anchorNode : anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.parentElement;
43399
+ },
43400
+ getClosestElementByClass(node, className) {
43401
+ const editor = this.$refs.editorRef;
43402
+ let currentNode = node;
43403
+ while (currentNode && currentNode !== editor) {
43404
+ var _currentNode$classLis;
43405
+ if ((_currentNode$classLis = currentNode.classList) !== null && _currentNode$classLis !== void 0 && _currentNode$classLis.contains(className)) {
43406
+ return currentNode;
43407
+ }
43408
+ currentNode = currentNode.parentElement;
43409
+ }
43410
+ return null;
43411
+ },
43412
+ normalizeTimelineMarkers() {
43413
+ const editor = this.$refs.editorRef;
43414
+ if (!editor) {
43415
+ return;
43416
+ }
43417
+ editor.querySelectorAll(".wysiwyg-timeline").forEach(timeline => {
43418
+ const timelineItems = this.getTimelineItems(timeline);
43419
+ timelineItems.forEach((item, index) => {
43420
+ let marker = item.querySelector(":scope > .wysiwyg-timeline-marker");
43421
+ if (!marker) {
43422
+ marker = document.createElement("span");
43423
+ marker.className = "wysiwyg-timeline-marker";
43424
+ item.insertBefore(marker, item.firstChild);
43425
+ }
43426
+ const markerValue = String(index + 1);
43427
+ if (marker.textContent !== markerValue) {
43428
+ marker.textContent = markerValue;
43429
+ }
43430
+ });
43431
+ });
43432
+ },
43433
+ normalizeNumberedCardMarkers() {
43434
+ const editor = this.$refs.editorRef;
43435
+ if (!editor) {
43436
+ return;
43437
+ }
43438
+ editor.querySelectorAll(".wysiwyg-numbered-card-list").forEach(numberedCardList => {
43439
+ const numberedCards = this.getNumberedCards(numberedCardList);
43440
+ numberedCards.forEach((card, index) => {
43441
+ let marker = card.querySelector(":scope > .wysiwyg-numbered-card-marker");
43442
+ if (!marker) {
43443
+ marker = document.createElement("span");
43444
+ marker.className = "wysiwyg-numbered-card-marker";
43445
+ card.insertBefore(marker, card.firstChild);
43446
+ }
43447
+ const markerValue = String(index + 1);
43448
+ if (marker.textContent !== markerValue) {
43449
+ marker.textContent = markerValue;
43450
+ }
43451
+ });
43452
+ });
43453
+ },
43454
+ normalizeStructuredTemplateMarkers() {
43455
+ this.normalizeArticleCardIcons();
43456
+ this.normalizeTimelineMarkers();
43457
+ this.normalizeNumberedCardMarkers();
43458
+ },
43459
+ normalizeArticleCardIcons() {
43460
+ const editor = this.$refs.editorRef;
43461
+ if (!editor) {
43462
+ return;
43463
+ }
43464
+ editor.querySelectorAll(".wysiwyg-article-card").forEach(card => {
43465
+ const directChildren = Array.from(card.children);
43466
+ let icon = directChildren.find(child => {
43467
+ var _child$classList4;
43468
+ return (_child$classList4 = child.classList) === null || _child$classList4 === void 0 ? void 0 : _child$classList4.contains("wysiwyg-article-icon");
43469
+ });
43470
+ if (icon) {
43471
+ if (!this.hasVisibleIconContent(icon)) {
43472
+ icon.remove();
43473
+ return;
43474
+ }
43475
+ if (icon.tagName !== "SPAN") {
43476
+ const spanIcon = document.createElement("span");
43477
+ spanIcon.className = "wysiwyg-article-icon";
43478
+ spanIcon.innerHTML = icon.innerHTML || icon.textContent || "";
43479
+ icon.replaceWith(spanIcon);
43480
+ }
43481
+ return;
43482
+ }
43483
+ const iconCandidate = Array.from(card.childNodes).find(node => {
43484
+ if (node.nodeType === Node.TEXT_NODE) {
43485
+ return (node.textContent || "").trim();
43486
+ }
43487
+ if (node.nodeType !== Node.ELEMENT_NODE) {
43488
+ return false;
43489
+ }
43490
+ return !["H1", "H2", "H3", "P"].includes(node.tagName);
43491
+ });
43492
+ if (!iconCandidate) {
43493
+ return;
43494
+ }
43495
+ icon = document.createElement("span");
43496
+ icon.className = "wysiwyg-article-icon";
43497
+ if (iconCandidate.nodeType === Node.TEXT_NODE) {
43498
+ icon.textContent = (iconCandidate.textContent || "").trim();
43499
+ } else {
43500
+ icon.innerHTML = iconCandidate.innerHTML || iconCandidate.textContent || "";
43501
+ }
43502
+ iconCandidate.remove();
43503
+ const firstContent = Array.from(card.children).find(child => ["H1", "H2", "H3", "P"].includes(child.tagName));
43504
+ card.insertBefore(icon, firstContent || card.firstChild);
43505
+ });
43506
+ },
43507
+ hasVisibleIconContent(icon) {
43508
+ if (!icon) {
43509
+ return false;
43510
+ }
43511
+ if (icon.querySelector("img, svg")) {
43512
+ return true;
43513
+ }
43514
+ return Boolean((icon.textContent || "").replace(/\u00A0/g, "").trim());
43515
+ },
43516
+ placeCaretAtEnd(element) {
43517
+ if (!element) {
43518
+ return;
43519
+ }
43520
+ const range = document.createRange();
43521
+ range.selectNodeContents(element);
43522
+ range.collapse(false);
43523
+ const selection = window.getSelection();
43524
+ selection.removeAllRanges();
43525
+ selection.addRange(range);
43526
+ },
42982
43527
  createLink() {
42983
43528
  this.restoreRange();
42984
43529
  const selection = window.getSelection();
@@ -43102,9 +43647,21 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
43102
43647
  element.setAttribute("width", `${Math.max(IMAGE_MIN_WIDTH, Math.round(imageWidth))}`);
43103
43648
  }
43104
43649
  }
43650
+ const className = this.extractAllowedClassName(node.getAttribute("class"));
43651
+ if (className) {
43652
+ element.setAttribute("class", className);
43653
+ }
43654
+ const styleRules = [];
43105
43655
  const textAlign = this.extractAllowedTextAlign(node.getAttribute("style"));
43106
43656
  if (textAlign && ALIGNABLE_TAGS.includes(tagName)) {
43107
- element.setAttribute("style", `text-align:${textAlign};`);
43657
+ styleRules.push(`text-align:${textAlign};`);
43658
+ }
43659
+ const fontSize = this.extractAllowedFontSize(node.getAttribute("style"));
43660
+ if (fontSize && FONT_SIZE_TAGS.includes(tagName)) {
43661
+ styleRules.push(`font-size:${fontSize};`);
43662
+ }
43663
+ if (styleRules.length) {
43664
+ element.setAttribute("style", styleRules.join(""));
43108
43665
  }
43109
43666
  Array.from(node.childNodes).forEach(child => {
43110
43667
  const childNode = this.createSanitizedNode(child, doc);
@@ -43114,6 +43671,12 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
43114
43671
  });
43115
43672
  return element;
43116
43673
  },
43674
+ extractAllowedClassName(classValue) {
43675
+ if (!classValue) {
43676
+ return "";
43677
+ }
43678
+ return String(classValue).split(/\s+/).filter(className => WYSIWYG_TEMPLATE_CLASSES.includes(className)).join(" ");
43679
+ },
43117
43680
  extractAllowedTextAlign(styleValue) {
43118
43681
  if (!styleValue) {
43119
43682
  return "";
@@ -43130,6 +43693,27 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
43130
43693
  const alignValue = parsed[1].trim().toLowerCase();
43131
43694
  return ["left", "center", "right", "justify"].includes(alignValue) ? alignValue : "";
43132
43695
  },
43696
+ extractAllowedFontSize(styleValue) {
43697
+ if (!styleValue) {
43698
+ return "";
43699
+ }
43700
+ const rules = styleValue.split(";").map(style => style.trim());
43701
+ const fontSizeRule = rules.find(style => style.toLowerCase().startsWith("font-size"));
43702
+ if (!fontSizeRule) {
43703
+ return "";
43704
+ }
43705
+ const parsed = fontSizeRule.split(":");
43706
+ if (parsed.length < 2) {
43707
+ return "";
43708
+ }
43709
+ return this.normalizeFontSize(parsed[1]);
43710
+ },
43711
+ getSelectValue(item) {
43712
+ if (item.action === "fontSize") {
43713
+ return this.toolbarState.fontSize || DEFAULT_FONT_SIZE;
43714
+ }
43715
+ return "";
43716
+ },
43133
43717
  isActionActive(item) {
43134
43718
  switch (item.action) {
43135
43719
  case "paragraph":
@@ -43187,7 +43771,8 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
43187
43771
  inspector.innerHTML = htmlValue;
43188
43772
  const textContent = (inspector.textContent || "").replace(/\u200B/g, "").trim();
43189
43773
  const hasImage = Boolean(inspector.querySelector("img"));
43190
- if (hasImage) {
43774
+ const hasHorizontalRule = Boolean(inspector.querySelector("hr"));
43775
+ if (hasImage || hasHorizontalRule) {
43191
43776
  return false;
43192
43777
  }
43193
43778
  return textContent.length === 0;
@@ -43206,8 +43791,8 @@ const ALLOWED_TAGS = ["A", "B", "BLOCKQUOTE", "BR", "CODE", "DIV", "EM", "H1", "
43206
43791
  });
43207
43792
  // CONCATENATED MODULE: ./src/components/Form/FormWysiwyg.vue?vue&type=script&lang=js
43208
43793
 
43209
- // EXTERNAL MODULE: ./src/components/Form/FormWysiwyg.vue?vue&type=style&index=0&id=52b4ebd4&lang=scss
43210
- var FormWysiwygvue_type_style_index_0_id_52b4ebd4_lang_scss = __webpack_require__("d831");
43794
+ // EXTERNAL MODULE: ./src/components/Form/FormWysiwyg.vue?vue&type=style&index=0&id=2a54b263&lang=scss
43795
+ var FormWysiwygvue_type_style_index_0_id_2a54b263_lang_scss = __webpack_require__("522e");
43211
43796
 
43212
43797
  // CONCATENATED MODULE: ./src/components/Form/FormWysiwyg.vue
43213
43798
 
@@ -43217,7 +43802,7 @@ var FormWysiwygvue_type_style_index_0_id_52b4ebd4_lang_scss = __webpack_require_
43217
43802
 
43218
43803
 
43219
43804
 
43220
- const FormWysiwyg_exports_ = /*#__PURE__*/exportHelper_default()(FormWysiwygvue_type_script_lang_js, [['render',FormWysiwygvue_type_template_id_52b4ebd4_render]])
43805
+ const FormWysiwyg_exports_ = /*#__PURE__*/exportHelper_default()(FormWysiwygvue_type_script_lang_js, [['render',FormWysiwygvue_type_template_id_2a54b263_render]])
43221
43806
 
43222
43807
  /* harmony default export */ var FormWysiwyg = (FormWysiwyg_exports_);
43223
43808
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader-v16/dist/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader-v16/dist??ref--1-1!./src/components/ExpansionPanel/index.vue?vue&type=template&id=01544323