@dev_ailaw/venus 1.425.0 → 1.427.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- /*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:before,:after{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#a1a1aa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#a1a1aa}input::placeholder,textarea::placeholder{opacity:1;color:#a1a1aa}button,[role=button]{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{border-color:currentColor}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.relative{position:relative}.mr-2{margin-right:.5rem}.mb-0{margin-bottom:0}.mb-5{margin-bottom:1.25rem}.ml-2{margin-left:.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-6{height:1.5rem}.h-screen{height:100vh}.w-6{width:1.5rem}.w-60{width:15rem}.w-72{width:18rem}.flex-1{flex:1 1 0%}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.rounded{border-radius:.25rem}.border{border-width:1px}.border-solid{border-style:solid}.border-light-purple{--tw-border-opacity: 1;border-color:rgba(192,150,250,var(--tw-border-opacity))}.border-light-blue{--tw-border-opacity: 1;border-color:rgba(145,213,255,var(--tw-border-opacity))}.bg-purple{--tw-bg-opacity: 1;background-color:rgba(249,240,255,var(--tw-bg-opacity))}.bg-blue{--tw-bg-opacity: 1;background-color:rgba(230,247,255,var(--tw-bg-opacity))}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.pt-3{padding-top:.75rem}.pt-3\.5{padding-top:.875rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-bold{font-weight:700}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.text-secondary{--tw-text-opacity: 1;color:rgba(102,102,102,var(--tw-text-opacity))}.text-smart{--tw-text-opacity: 1;color:rgba(114,46,209,var(--tw-text-opacity))}.text-classic{--tw-text-opacity: 1;color:rgba(24,144,255,var(--tw-text-opacity))}*,:before,:after{--tw-shadow: 0 0 #0000}*,:before,:after{--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000}.filter{--tw-blur: var(--tw-empty, );--tw-brightness: var(--tw-empty, );--tw-contrast: var(--tw-empty, );--tw-grayscale: var(--tw-empty, );--tw-hue-rotate: var(--tw-empty, );--tw-invert: var(--tw-empty, );--tw-saturate: var(--tw-empty, );--tw-sepia: var(--tw-empty, );--tw-drop-shadow: var(--tw-empty, );filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur{--tw-blur: blur(8px)}.btn-divider[data-v-20a86d10]{margin-bottom:0!important;margin-top:12px!important}.beta[data-v-1114aea6]{line-height:20px;border-radius:15px;background-color:red;color:#fff;padding:0 3.5px;margin:0 5px}.min-w-80[data-v-72ef9bd2]{min-width:320px}.ant-popover{z-index:9999!important}.ant-popover .ant-popover-inner-content{padding:8px 16px}.container[data-v-4027e57a]{border:1px solid #cccccc;border-radius:6px;padding:0 4px;min-height:30px;cursor:pointer}.block[data-v-4027e57a]{display:block}.tags-container[data-v-18554545]{word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.taskTemplateInline[data-v-c5d917d8]{float:right}a.taskTemplateInline[data-v-c5d917d8]{margin-left:10px}div.taskTemplateInline[data-v-c5d917d8]{margin-top:5px!important}.task-cart-main-modal[data-v-697d89e6] .ant-modal-body{padding-bottom:0}
1
+ /*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:before,:after{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#a1a1aa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#a1a1aa}input::placeholder,textarea::placeholder{opacity:1;color:#a1a1aa}button,[role=button]{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{border-color:currentColor}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.relative{position:relative}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mb-0{margin-bottom:0}.mb-5{margin-bottom:1.25rem}.ml-2{margin-left:.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.contents{display:contents}.hidden{display:none}.h-6{height:1.5rem}.h-screen{height:100vh}.w-6{width:1.5rem}.w-60{width:15rem}.w-72{width:18rem}.flex-1{flex:1 1 0%}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.rounded{border-radius:.25rem}.border{border-width:1px}.border-solid{border-style:solid}.border-light-purple{--tw-border-opacity: 1;border-color:rgba(192,150,250,var(--tw-border-opacity))}.border-light-blue{--tw-border-opacity: 1;border-color:rgba(145,213,255,var(--tw-border-opacity))}.bg-purple{--tw-bg-opacity: 1;background-color:rgba(249,240,255,var(--tw-bg-opacity))}.bg-blue{--tw-bg-opacity: 1;background-color:rgba(230,247,255,var(--tw-bg-opacity))}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.pt-3{padding-top:.75rem}.pt-3\.5{padding-top:.875rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.font-bold{font-weight:700}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.text-secondary{--tw-text-opacity: 1;color:rgba(102,102,102,var(--tw-text-opacity))}.text-smart{--tw-text-opacity: 1;color:rgba(114,46,209,var(--tw-text-opacity))}.text-classic{--tw-text-opacity: 1;color:rgba(24,144,255,var(--tw-text-opacity))}*,:before,:after{--tw-shadow: 0 0 #0000}*,:before,:after{--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000}.filter{--tw-blur: var(--tw-empty, );--tw-brightness: var(--tw-empty, );--tw-contrast: var(--tw-empty, );--tw-grayscale: var(--tw-empty, );--tw-hue-rotate: var(--tw-empty, );--tw-invert: var(--tw-empty, );--tw-saturate: var(--tw-empty, );--tw-sepia: var(--tw-empty, );--tw-drop-shadow: var(--tw-empty, );filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur{--tw-blur: blur(8px)}.btn-divider[data-v-20a86d10]{margin-bottom:0!important;margin-top:12px!important}.beta[data-v-1114aea6]{line-height:20px;border-radius:15px;background-color:red;color:#fff;padding:0 3.5px;margin:0 5px}.min-w-80[data-v-72ef9bd2]{min-width:320px}.ant-popover{z-index:9999!important}.ant-popover .ant-popover-inner-content{padding:8px 16px}.container[data-v-4027e57a]{border:1px solid #cccccc;border-radius:6px;padding:0 4px;min-height:30px;cursor:pointer}.block[data-v-4027e57a]{display:block}.tags-container[data-v-18554545]{word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.rule-link-tag[data-v-1798a7ac]{display:inline-block;vertical-align:middle;margin-left:8px;font-size:11px;line-height:18px;padding:0 6px;border-radius:3px;color:#0958d9;background:#e6f4ff;border:1px solid #91caff}.rule-link-tag-edited[data-v-1798a7ac]{color:#595959;background:#fafafa;border-color:#d9d9d9}.rule-status-row[data-v-1798a7ac]{font-size:12px;color:#999;line-height:22px;white-space:nowrap;margin-top:4px}.rule-status-ok[data-v-1798a7ac]{color:#52c41a}.rule-status-na[data-v-1798a7ac]{color:#bbb;cursor:default}.rule-status-hint[data-v-1798a7ac]{margin-left:8px;color:#bfbfbf}.taskTemplateInline[data-v-c5d917d8]{float:right}a.taskTemplateInline[data-v-c5d917d8]{margin-left:10px}div.taskTemplateInline[data-v-c5d917d8]{margin-top:5px!important}.task-cart-main-modal[data-v-596ec48c] .ant-modal-body{padding-bottom:0}.task-cart-header-actions[data-v-596ec48c]{display:inline-flex;align-items:center;gap:12px}
package/dist/venus.es.js CHANGED
@@ -38,7 +38,7 @@ function __variableDynamicImportRuntime0__$1(path2) {
38
38
  });
39
39
  }
40
40
  }
41
- var __vue2_script$k = defineComponent({
41
+ var __vue2_script$l = defineComponent({
42
42
  props: {
43
43
  type: {
44
44
  type: String,
@@ -65,13 +65,13 @@ var __vue2_script$k = defineComponent({
65
65
  return { iconUrl };
66
66
  }
67
67
  });
68
- var render$k = function() {
68
+ var render$l = function() {
69
69
  var _vm = this;
70
70
  var _h = _vm.$createElement;
71
71
  var _c = _vm._self._c || _h;
72
72
  return _c("img", { staticClass: "w-6 h-6", attrs: { "src": _vm.iconUrl, "alt": _vm.type } });
73
73
  };
74
- var staticRenderFns$k = [];
74
+ var staticRenderFns$l = [];
75
75
  function normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {
76
76
  var options = typeof scriptExports === "function" ? scriptExports.options : scriptExports;
77
77
  if (render2) {
@@ -123,17 +123,17 @@ function normalizeComponent(scriptExports, render2, staticRenderFns2, functional
123
123
  options
124
124
  };
125
125
  }
126
- const __cssModules$k = {};
127
- var __component__$k = /* @__PURE__ */ normalizeComponent(__vue2_script$k, render$k, staticRenderFns$k, false, __vue2_injectStyles$k, null, null, null);
128
- function __vue2_injectStyles$k(context) {
129
- for (let o in __cssModules$k) {
130
- this[o] = __cssModules$k[o];
126
+ const __cssModules$l = {};
127
+ var __component__$l = /* @__PURE__ */ normalizeComponent(__vue2_script$l, render$l, staticRenderFns$l, false, __vue2_injectStyles$l, null, null, null);
128
+ function __vue2_injectStyles$l(context) {
129
+ for (let o in __cssModules$l) {
130
+ this[o] = __cssModules$l[o];
131
131
  }
132
132
  }
133
133
  var ProfileTypeIcon = /* @__PURE__ */ function() {
134
- return __component__$k.exports;
134
+ return __component__$l.exports;
135
135
  }();
136
- var __vue2_script$j = defineComponent({
136
+ var __vue2_script$k = defineComponent({
137
137
  props: {
138
138
  source: {
139
139
  type: Object,
@@ -142,22 +142,22 @@ var __vue2_script$j = defineComponent({
142
142
  },
143
143
  components: { ProfileTypeIcon }
144
144
  });
145
- var render$j = function() {
145
+ var render$k = function() {
146
146
  var _vm = this;
147
147
  var _h = _vm.$createElement;
148
148
  var _c = _vm._self._c || _h;
149
149
  return _c("div", { staticClass: "flex space-x-1 items-center" }, [_c("ProfileTypeIcon", { attrs: { "type": _vm.source.profileType } }), _c("div", { staticClass: "text-secondary" }, [_vm._v(_vm._s(_vm.source.profileName))])], 1);
150
150
  };
151
- var staticRenderFns$j = [];
152
- const __cssModules$j = {};
153
- var __component__$j = /* @__PURE__ */ normalizeComponent(__vue2_script$j, render$j, staticRenderFns$j, false, __vue2_injectStyles$j, null, null, null);
154
- function __vue2_injectStyles$j(context) {
155
- for (let o in __cssModules$j) {
156
- this[o] = __cssModules$j[o];
151
+ var staticRenderFns$k = [];
152
+ const __cssModules$k = {};
153
+ var __component__$k = /* @__PURE__ */ normalizeComponent(__vue2_script$k, render$k, staticRenderFns$k, false, __vue2_injectStyles$k, null, null, null);
154
+ function __vue2_injectStyles$k(context) {
155
+ for (let o in __cssModules$k) {
156
+ this[o] = __cssModules$k[o];
157
157
  }
158
158
  }
159
159
  var ProfileSelectItem = /* @__PURE__ */ function() {
160
- return __component__$j.exports;
160
+ return __component__$k.exports;
161
161
  }();
162
162
  const meQuery = gql`
163
163
  query Me {
@@ -249,7 +249,7 @@ const profileTypes = {
249
249
  CLIENTPROFILE: "Company",
250
250
  PREPARERPROFILE: "Attorney"
251
251
  };
252
- var __vue2_script$i = defineComponent({
252
+ var __vue2_script$j = defineComponent({
253
253
  props: {
254
254
  value: {
255
255
  type: String
@@ -269,7 +269,7 @@ var __vue2_script$i = defineComponent({
269
269
  return { profileTypes, handleChange };
270
270
  }
271
271
  });
272
- var render$i = function() {
272
+ var render$j = function() {
273
273
  var _vm = this;
274
274
  var _h = _vm.$createElement;
275
275
  var _c = _vm._self._c || _h;
@@ -277,18 +277,18 @@ var render$i = function() {
277
277
  return _c("Option", { key, attrs: { "value": key } }, [_c("div", { staticClass: "flex items-center space-x-1" }, [_c("ProfileTypeIcon", { attrs: { "type": key } }), _c("div", { staticClass: "text-secondary" }, [_vm._v(_vm._s(_vm.profileTypes[key]))])], 1)]);
278
278
  }), 1);
279
279
  };
280
- var staticRenderFns$i = [];
281
- const __cssModules$i = {};
282
- var __component__$i = /* @__PURE__ */ normalizeComponent(__vue2_script$i, render$i, staticRenderFns$i, false, __vue2_injectStyles$i, null, null, null);
283
- function __vue2_injectStyles$i(context) {
284
- for (let o in __cssModules$i) {
285
- this[o] = __cssModules$i[o];
280
+ var staticRenderFns$j = [];
281
+ const __cssModules$j = {};
282
+ var __component__$j = /* @__PURE__ */ normalizeComponent(__vue2_script$j, render$j, staticRenderFns$j, false, __vue2_injectStyles$j, null, null, null);
283
+ function __vue2_injectStyles$j(context) {
284
+ for (let o in __cssModules$j) {
285
+ this[o] = __cssModules$j[o];
286
286
  }
287
287
  }
288
288
  var ProfileTypeSelect = /* @__PURE__ */ function() {
289
- return __component__$i.exports;
289
+ return __component__$j.exports;
290
290
  }();
291
- var __vue2_script$h = defineComponent({
291
+ var __vue2_script$i = defineComponent({
292
292
  props: {
293
293
  enabledTypes: {
294
294
  type: Array,
@@ -351,7 +351,7 @@ var __vue2_script$h = defineComponent({
351
351
  };
352
352
  }
353
353
  });
354
- var render$h = function() {
354
+ var render$i = function() {
355
355
  var _vm = this;
356
356
  var _h = _vm.$createElement;
357
357
  var _c = _vm._self._c || _h;
@@ -365,18 +365,18 @@ var render$h = function() {
365
365
  _vm.$set(_vm.value, "sendEmail", $$v);
366
366
  }, expression: "value.sendEmail" } }, [_vm._v("Send client portal login password (System will email client a login password)")])], 1) : _vm._e()], 1)], 1);
367
367
  };
368
- var staticRenderFns$h = [];
369
- const __cssModules$h = {};
370
- var __component__$h = /* @__PURE__ */ normalizeComponent(__vue2_script$h, render$h, staticRenderFns$h, false, __vue2_injectStyles$h, null, null, null);
371
- function __vue2_injectStyles$h(context) {
372
- for (let o in __cssModules$h) {
373
- this[o] = __cssModules$h[o];
368
+ var staticRenderFns$i = [];
369
+ const __cssModules$i = {};
370
+ var __component__$i = /* @__PURE__ */ normalizeComponent(__vue2_script$i, render$i, staticRenderFns$i, false, __vue2_injectStyles$i, null, null, null);
371
+ function __vue2_injectStyles$i(context) {
372
+ for (let o in __cssModules$i) {
373
+ this[o] = __cssModules$i[o];
374
374
  }
375
375
  }
376
376
  var ProfileCreateModal = /* @__PURE__ */ function() {
377
- return __component__$h.exports;
377
+ return __component__$i.exports;
378
378
  }();
379
- var __vue2_script$g = defineComponent({
379
+ var __vue2_script$h = defineComponent({
380
380
  props: {
381
381
  value: {
382
382
  type: Object
@@ -419,7 +419,7 @@ var __vue2_script$g = defineComponent({
419
419
  };
420
420
  }
421
421
  });
422
- var render$g = function() {
422
+ var render$h = function() {
423
423
  var _vm = this;
424
424
  var _h = _vm.$createElement;
425
425
  var _c = _vm._self._c || _h;
@@ -427,17 +427,17 @@ var render$g = function() {
427
427
  return _c("Option", { key: v.id, attrs: { "value": v.id, "name": v.profileName } }, [_c("ProfileSelectItem", { attrs: { "source": v } })], 1);
428
428
  })], 2);
429
429
  };
430
- var staticRenderFns$g = [];
430
+ var staticRenderFns$h = [];
431
431
  var profileSelector_vue_vue_type_style_index_0_scoped_true_lang = "";
432
- const __cssModules$g = {};
433
- var __component__$g = /* @__PURE__ */ normalizeComponent(__vue2_script$g, render$g, staticRenderFns$g, false, __vue2_injectStyles$g, "20a86d10", null, null);
434
- function __vue2_injectStyles$g(context) {
435
- for (let o in __cssModules$g) {
436
- this[o] = __cssModules$g[o];
432
+ const __cssModules$h = {};
433
+ var __component__$h = /* @__PURE__ */ normalizeComponent(__vue2_script$h, render$h, staticRenderFns$h, false, __vue2_injectStyles$h, "20a86d10", null, null);
434
+ function __vue2_injectStyles$h(context) {
435
+ for (let o in __cssModules$h) {
436
+ this[o] = __cssModules$h[o];
437
437
  }
438
438
  }
439
439
  var ProfileSelector = /* @__PURE__ */ function() {
440
- return __component__$g.exports;
440
+ return __component__$h.exports;
441
441
  }();
442
442
  function useProfiles(keywords, onlyRole, roleTypes, profileIds, disabledProfile) {
443
443
  const me = useMe();
@@ -466,7 +466,7 @@ function useProfiles(keywords, onlyRole, roleTypes, profileIds, disabledProfile)
466
466
  const profiles = useResult(result, [], (data) => data.profileSearch.profileList);
467
467
  return { profiles, loading };
468
468
  }
469
- var __vue2_script$f = defineComponent({
469
+ var __vue2_script$g = defineComponent({
470
470
  components: { ProfileSelector, ProfileCreateModal },
471
471
  props: {
472
472
  value: {
@@ -550,7 +550,7 @@ var __vue2_script$f = defineComponent({
550
550
  };
551
551
  }
552
552
  });
553
- var render$f = function() {
553
+ var render$g = function() {
554
554
  var _vm = this;
555
555
  var _h = _vm.$createElement;
556
556
  var _c = _vm._self._c || _h;
@@ -560,16 +560,16 @@ var render$f = function() {
560
560
  return _vm.toggleModal(false);
561
561
  }, "profile-created": _vm.handleProfileCreated } }) : _vm._e()], 1);
562
562
  };
563
- var staticRenderFns$f = [];
564
- const __cssModules$f = {};
565
- var __component__$f = /* @__PURE__ */ normalizeComponent(__vue2_script$f, render$f, staticRenderFns$f, false, __vue2_injectStyles$f, null, null, null);
566
- function __vue2_injectStyles$f(context) {
567
- for (let o in __cssModules$f) {
568
- this[o] = __cssModules$f[o];
563
+ var staticRenderFns$g = [];
564
+ const __cssModules$g = {};
565
+ var __component__$g = /* @__PURE__ */ normalizeComponent(__vue2_script$g, render$g, staticRenderFns$g, false, __vue2_injectStyles$g, null, null, null);
566
+ function __vue2_injectStyles$g(context) {
567
+ for (let o in __cssModules$g) {
568
+ this[o] = __cssModules$g[o];
569
569
  }
570
570
  }
571
571
  var index$4 = /* @__PURE__ */ function() {
572
- return __component__$f.exports;
572
+ return __component__$g.exports;
573
573
  }();
574
574
  const queryAllCaseTemplates = gql`
575
575
  query AllCaseTemplates($lawFirmId: Int!) {
@@ -621,7 +621,7 @@ function useCaseTemplates() {
621
621
  }));
622
622
  return { templates, loading };
623
623
  }
624
- var __vue2_script$e = defineComponent({
624
+ var __vue2_script$f = defineComponent({
625
625
  props: {
626
626
  isSmart: {
627
627
  type: Boolean
@@ -630,7 +630,7 @@ var __vue2_script$e = defineComponent({
630
630
  setup() {
631
631
  }
632
632
  });
633
- var render$e = function() {
633
+ var render$f = function() {
634
634
  var _vm = this;
635
635
  var _h = _vm.$createElement;
636
636
  var _c = _vm._self._c || _h;
@@ -639,18 +639,18 @@ var render$e = function() {
639
639
  "text-classic bg-blue border-light-blue": !_vm.isSmart
640
640
  } }, [_vm._v(" " + _vm._s(_vm.isSmart ? _vm.$t("message.smart") : _vm.$t("message.classic")) + " ")]);
641
641
  };
642
- var staticRenderFns$e = [];
643
- const __cssModules$e = {};
644
- var __component__$e = /* @__PURE__ */ normalizeComponent(__vue2_script$e, render$e, staticRenderFns$e, false, __vue2_injectStyles$e, null, null, null);
645
- function __vue2_injectStyles$e(context) {
646
- for (let o in __cssModules$e) {
647
- this[o] = __cssModules$e[o];
642
+ var staticRenderFns$f = [];
643
+ const __cssModules$f = {};
644
+ var __component__$f = /* @__PURE__ */ normalizeComponent(__vue2_script$f, render$f, staticRenderFns$f, false, __vue2_injectStyles$f, null, null, null);
645
+ function __vue2_injectStyles$f(context) {
646
+ for (let o in __cssModules$f) {
647
+ this[o] = __cssModules$f[o];
648
648
  }
649
649
  }
650
650
  var CaseTemplateTypeBadge = /* @__PURE__ */ function() {
651
- return __component__$e.exports;
651
+ return __component__$f.exports;
652
652
  }();
653
- var __vue2_script$d = defineComponent({
653
+ var __vue2_script$e = defineComponent({
654
654
  props: {
655
655
  source: {
656
656
  type: Object,
@@ -659,23 +659,23 @@ var __vue2_script$d = defineComponent({
659
659
  },
660
660
  components: { CaseTemplateTypeBadge, Popover }
661
661
  });
662
- var render$d = function() {
662
+ var render$e = function() {
663
663
  var _vm = this;
664
664
  var _h = _vm.$createElement;
665
665
  var _c = _vm._self._c || _h;
666
666
  return _c("popover", [_c("div", { staticClass: "flex space-x-2 items-center" }, [_c("span", [_vm._v(_vm._s(_vm.source.templateName))]), _c("case-template-type-badge", { attrs: { "isSmart": _vm.source.isSmart } })], 1), _c("div", { attrs: { "slot": "content" }, slot: "content" }, [_c("span", [_vm._v(_vm._s(_vm.source.templateName) + " ")]), _c("b", [_vm._v("(" + _vm._s(_vm.source.isSmart ? "Smart" : "Classic") + ")")])])]);
667
667
  };
668
- var staticRenderFns$d = [];
668
+ var staticRenderFns$e = [];
669
669
  var caseTemplateOption_vue_vue_type_style_index_0_scoped_true_lang = "";
670
- const __cssModules$d = {};
671
- var __component__$d = /* @__PURE__ */ normalizeComponent(__vue2_script$d, render$d, staticRenderFns$d, false, __vue2_injectStyles$d, "1114aea6", null, null);
672
- function __vue2_injectStyles$d(context) {
673
- for (let o in __cssModules$d) {
674
- this[o] = __cssModules$d[o];
670
+ const __cssModules$e = {};
671
+ var __component__$e = /* @__PURE__ */ normalizeComponent(__vue2_script$e, render$e, staticRenderFns$e, false, __vue2_injectStyles$e, "1114aea6", null, null);
672
+ function __vue2_injectStyles$e(context) {
673
+ for (let o in __cssModules$e) {
674
+ this[o] = __cssModules$e[o];
675
675
  }
676
676
  }
677
677
  var CaseTemplateOption = /* @__PURE__ */ function() {
678
- return __component__$d.exports;
678
+ return __component__$e.exports;
679
679
  }();
680
680
  const handleString = (str) => {
681
681
  const reg = /[-/]/g;
@@ -692,7 +692,7 @@ var caseTemplateFilter = (inputKeywords, formsString, label = formsString) => {
692
692
  const inputKW = inputKeywords.split(" ");
693
693
  return inputKW.some((v) => formsString.includes(v));
694
694
  };
695
- var __vue2_script$c = defineComponent({
695
+ var __vue2_script$d = defineComponent({
696
696
  props: ["value", "blackList", "exemptLawFirmList", "templateType"],
697
697
  components: {
698
698
  ASelect: Select,
@@ -756,7 +756,7 @@ var __vue2_script$c = defineComponent({
756
756
  };
757
757
  }
758
758
  });
759
- var render$c = function() {
759
+ var render$d = function() {
760
760
  var _vm = this;
761
761
  var _h = _vm.$createElement;
762
762
  var _c = _vm._self._c || _h;
@@ -766,18 +766,18 @@ var render$c = function() {
766
766
  return _c("a-option", { key: v.id, attrs: { "value": v.id, "name": v.templateName, "forms": v.keywords } }, [_c("CaseTemplateOption", { attrs: { "source": v } })], 1);
767
767
  }), 1)], 1);
768
768
  };
769
- var staticRenderFns$c = [];
769
+ var staticRenderFns$d = [];
770
770
  var index_vue_vue_type_style_index_0_scoped_true_lang$7 = "";
771
771
  var index_vue_vue_type_style_index_1_lang = "";
772
- const __cssModules$c = {};
773
- var __component__$c = /* @__PURE__ */ normalizeComponent(__vue2_script$c, render$c, staticRenderFns$c, false, __vue2_injectStyles$c, "72ef9bd2", null, null);
774
- function __vue2_injectStyles$c(context) {
775
- for (let o in __cssModules$c) {
776
- this[o] = __cssModules$c[o];
772
+ const __cssModules$d = {};
773
+ var __component__$d = /* @__PURE__ */ normalizeComponent(__vue2_script$d, render$d, staticRenderFns$d, false, __vue2_injectStyles$d, "72ef9bd2", null, null);
774
+ function __vue2_injectStyles$d(context) {
775
+ for (let o in __cssModules$d) {
776
+ this[o] = __cssModules$d[o];
777
777
  }
778
778
  }
779
779
  var index$3 = /* @__PURE__ */ function() {
780
- return __component__$c.exports;
780
+ return __component__$d.exports;
781
781
  }();
782
782
  function __variableDynamicImportRuntime0__(path2) {
783
783
  switch (path2) {
@@ -1893,7 +1893,7 @@ const acceptableFormats = [
1893
1893
  ".jpeg",
1894
1894
  ".png"
1895
1895
  ];
1896
- var __vue2_script$b = defineComponent({
1896
+ var __vue2_script$c = defineComponent({
1897
1897
  name: "aFileUploader",
1898
1898
  components: {
1899
1899
  AntUpload: Upload,
@@ -2020,7 +2020,7 @@ var __vue2_script$b = defineComponent({
2020
2020
  };
2021
2021
  }
2022
2022
  });
2023
- var render$b = function() {
2023
+ var render$c = function() {
2024
2024
  var _vm = this;
2025
2025
  var _h = _vm.$createElement;
2026
2026
  var _c = _vm._self._c || _h;
@@ -2047,17 +2047,17 @@ var render$b = function() {
2047
2047
  return _vm.handleSelectFolderTree.apply(null, arguments);
2048
2048
  } } }, [_vm._v(" Upload Folder Sample ")])], 1) : _vm._e()], 1);
2049
2049
  };
2050
- var staticRenderFns$b = [];
2050
+ var staticRenderFns$c = [];
2051
2051
  var index_vue_vue_type_style_index_0_scoped_true_lang$6 = "";
2052
- const __cssModules$b = {};
2053
- var __component__$b = /* @__PURE__ */ normalizeComponent(__vue2_script$b, render$b, staticRenderFns$b, false, __vue2_injectStyles$b, "4027e57a", null, null);
2054
- function __vue2_injectStyles$b(context) {
2055
- for (let o in __cssModules$b) {
2056
- this[o] = __cssModules$b[o];
2052
+ const __cssModules$c = {};
2053
+ var __component__$c = /* @__PURE__ */ normalizeComponent(__vue2_script$c, render$c, staticRenderFns$c, false, __vue2_injectStyles$c, "4027e57a", null, null);
2054
+ function __vue2_injectStyles$c(context) {
2055
+ for (let o in __cssModules$c) {
2056
+ this[o] = __cssModules$c[o];
2057
2057
  }
2058
2058
  }
2059
2059
  var AFileUploader = /* @__PURE__ */ function() {
2060
- return __component__$b.exports;
2060
+ return __component__$c.exports;
2061
2061
  }();
2062
2062
  var AssigneeTypes;
2063
2063
  (function(AssigneeTypes2) {
@@ -2084,7 +2084,7 @@ var ResponseCode;
2084
2084
  ResponseCode2["success"] = "SUCCESS";
2085
2085
  ResponseCode2["failed"] = "FAILED";
2086
2086
  })(ResponseCode || (ResponseCode = {}));
2087
- var __vue2_script$a = defineComponent({
2087
+ var __vue2_script$b = defineComponent({
2088
2088
  components: {
2089
2089
  AntTag: Tag
2090
2090
  },
@@ -2101,25 +2101,25 @@ var __vue2_script$a = defineComponent({
2101
2101
  };
2102
2102
  }
2103
2103
  });
2104
- var render$a = function() {
2104
+ var render$b = function() {
2105
2105
  var _vm = this;
2106
2106
  var _h = _vm.$createElement;
2107
2107
  var _c = _vm._self._c || _h;
2108
2108
  return _c("ant-tag", { attrs: { "color": _vm.tagColor(_vm.assigneeType || "EMPTY_DEFAULT") } }, [_vm._v(" " + _vm._s(_vm.$t(_vm.AssigneeTypesText[_vm.assigneeType])) + " ")]);
2109
2109
  };
2110
- var staticRenderFns$a = [];
2110
+ var staticRenderFns$b = [];
2111
2111
  var index_vue_vue_type_style_index_0_scoped_true_lang$5 = "";
2112
- const __cssModules$a = {};
2113
- var __component__$a = /* @__PURE__ */ normalizeComponent(__vue2_script$a, render$a, staticRenderFns$a, false, __vue2_injectStyles$a, "3f69c61c", null, null);
2114
- function __vue2_injectStyles$a(context) {
2115
- for (let o in __cssModules$a) {
2116
- this[o] = __cssModules$a[o];
2112
+ const __cssModules$b = {};
2113
+ var __component__$b = /* @__PURE__ */ normalizeComponent(__vue2_script$b, render$b, staticRenderFns$b, false, __vue2_injectStyles$b, "3f69c61c", null, null);
2114
+ function __vue2_injectStyles$b(context) {
2115
+ for (let o in __cssModules$b) {
2116
+ this[o] = __cssModules$b[o];
2117
2117
  }
2118
2118
  }
2119
2119
  var AssigneeTag = /* @__PURE__ */ function() {
2120
- return __component__$a.exports;
2120
+ return __component__$b.exports;
2121
2121
  }();
2122
- var __vue2_script$9 = defineComponent({
2122
+ var __vue2_script$a = defineComponent({
2123
2123
  name: "index",
2124
2124
  components: {
2125
2125
  AntTooltip: Tooltip
@@ -2138,23 +2138,23 @@ var __vue2_script$9 = defineComponent({
2138
2138
  }
2139
2139
  }
2140
2140
  });
2141
- var render$9 = function() {
2141
+ var render$a = function() {
2142
2142
  var _vm = this;
2143
2143
  var _h = _vm.$createElement;
2144
2144
  var _c = _vm._self._c || _h;
2145
2145
  return _c("ant-tooltip", { attrs: { "placement": _vm.placement, "title": _vm.tags ? _vm.tags.join(", ") : "-" } }, [_c("div", { staticClass: "tags-container", style: "max-width:" + _vm.maxWidth + "px" }, [_c("span", [_vm._v(_vm._s(_vm.tags ? _vm.tags.join(", ") : "-"))])])]);
2146
2146
  };
2147
- var staticRenderFns$9 = [];
2147
+ var staticRenderFns$a = [];
2148
2148
  var index_vue_vue_type_style_index_0_scoped_true_lang$4 = "";
2149
- const __cssModules$9 = {};
2150
- var __component__$9 = /* @__PURE__ */ normalizeComponent(__vue2_script$9, render$9, staticRenderFns$9, false, __vue2_injectStyles$9, "18554545", null, null);
2151
- function __vue2_injectStyles$9(context) {
2152
- for (let o in __cssModules$9) {
2153
- this[o] = __cssModules$9[o];
2149
+ const __cssModules$a = {};
2150
+ var __component__$a = /* @__PURE__ */ normalizeComponent(__vue2_script$a, render$a, staticRenderFns$a, false, __vue2_injectStyles$a, "18554545", null, null);
2151
+ function __vue2_injectStyles$a(context) {
2152
+ for (let o in __cssModules$a) {
2153
+ this[o] = __cssModules$a[o];
2154
2154
  }
2155
2155
  }
2156
2156
  var TagsWithTooltip = /* @__PURE__ */ function() {
2157
- return __component__$9.exports;
2157
+ return __component__$a.exports;
2158
2158
  }();
2159
2159
  var TaskTypes;
2160
2160
  (function(TaskTypes2) {
@@ -2197,6 +2197,7 @@ var refactorParams = (record) => {
2197
2197
  isEmployee: record.isEmployee || AssigneeTypes[AssigneeTypes.EMPTY_DEFAULT],
2198
2198
  generalTaskType: record.generalTaskType,
2199
2199
  descriptions: record.descriptions,
2200
+ ruleDescription: record.ruleDescription,
2200
2201
  tagList: record.tagList
2201
2202
  };
2202
2203
  };
@@ -2305,6 +2306,31 @@ var belongsTo = [
2305
2306
  "COMPANY_INDUSTRY_INTRODUCTION"
2306
2307
  ]
2307
2308
  ];
2309
+ async function ruleHashOf(name, rule) {
2310
+ const data = new TextEncoder().encode(`${name || ""}
2311
+ ${rule || ""}`);
2312
+ const digest = await crypto.subtle.digest("SHA-1", data);
2313
+ return Array.from(new Uint8Array(digest)).map((b) => b.toString(16).padStart(2, "0")).join("");
2314
+ }
2315
+ async function badgeOf(record) {
2316
+ const rule = (record.ruleDescription || "").trim();
2317
+ if (!rule)
2318
+ return { s: "notset", types: [], reason: "" };
2319
+ let items = null;
2320
+ try {
2321
+ items = JSON.parse(record.aiCheckItems || "null");
2322
+ } catch (e) {
2323
+ items = null;
2324
+ }
2325
+ if (items && items.hash === await ruleHashOf(record.taskName || "", rule)) {
2326
+ return {
2327
+ s: items.supported ? "ready" : "wont",
2328
+ types: items.types || [],
2329
+ reason: items.supported ? "" : items.reason || ""
2330
+ };
2331
+ }
2332
+ return { s: "notchecked", types: [], reason: "" };
2333
+ }
2308
2334
  const roles = [
2309
2335
  {
2310
2336
  id: AssigneeTypes.BENEFICIARY,
@@ -2328,7 +2354,7 @@ const roles = [
2328
2354
  hide: true
2329
2355
  }
2330
2356
  ];
2331
- var __vue2_script$8 = defineComponent({
2357
+ var __vue2_script$9 = defineComponent({
2332
2358
  name: "index",
2333
2359
  components: {
2334
2360
  AntForm: Form,
@@ -2364,6 +2390,14 @@ var __vue2_script$8 = defineComponent({
2364
2390
  showNotApplicable: {
2365
2391
  type: Boolean,
2366
2392
  default: false
2393
+ },
2394
+ showAiRule: {
2395
+ type: Boolean,
2396
+ default: false
2397
+ },
2398
+ checkRuleFunc: {
2399
+ type: Function,
2400
+ default: null
2367
2401
  }
2368
2402
  },
2369
2403
  mounted() {
@@ -2378,6 +2412,100 @@ var __vue2_script$8 = defineComponent({
2378
2412
  const typeError = ref(false);
2379
2413
  const nameErrorContent = ref("message.required");
2380
2414
  const changeVal = useChangeVal(props, emit);
2415
+ const ruleMirror = ref((props.value.ruleDescription || "") !== "" && (props.value.ruleDescription || "") === (props.value.descriptions || "") ? props.value.descriptions || "" : null);
2416
+ const ruleLinked = () => {
2417
+ const rule = props.value.ruleDescription || "";
2418
+ return !rule || rule === ruleMirror.value;
2419
+ };
2420
+ watch(() => props.value.descriptions, (desc) => {
2421
+ if (!props.showAiRule || !ruleLinked())
2422
+ return;
2423
+ ruleMirror.value = desc || "";
2424
+ changeVal("ruleDescription", desc || "");
2425
+ });
2426
+ const changeRule = (text) => {
2427
+ ruleMirror.value = null;
2428
+ changeVal("ruleDescription", text);
2429
+ };
2430
+ const ruleIsLinked = computed(() => {
2431
+ const rule = props.value.ruleDescription || "";
2432
+ return !rule || rule === ruleMirror.value;
2433
+ });
2434
+ const relinkRule = () => {
2435
+ const desc = props.value.descriptions || "";
2436
+ ruleMirror.value = desc;
2437
+ changeVal("ruleDescription", desc);
2438
+ };
2439
+ const ruleCheck = ref({ state: "idle", types: [], reason: "" });
2440
+ const checkRuleNow = async () => {
2441
+ if (!props.checkRuleFunc)
2442
+ return;
2443
+ const rule = (props.value.ruleDescription || "").trim();
2444
+ if (!rule || ruleCheck.value.state === "checking")
2445
+ return;
2446
+ ruleCheck.value = { state: "checking", types: [], reason: "" };
2447
+ try {
2448
+ const res = await props.checkRuleFunc({
2449
+ taskName: props.value.taskName || "",
2450
+ ruleDescription: rule
2451
+ });
2452
+ if (!res || res.error) {
2453
+ ruleCheck.value = { state: "error", types: [], reason: "" };
2454
+ } else {
2455
+ ruleCheck.value = {
2456
+ state: res.supported ? "ready" : "wont",
2457
+ types: res.types || [],
2458
+ reason: res.supported ? "" : res.reason || ""
2459
+ };
2460
+ }
2461
+ } catch (e) {
2462
+ ruleCheck.value = { state: "error", types: [], reason: "" };
2463
+ }
2464
+ };
2465
+ const ruleStatusHint = computed(() => {
2466
+ const s = ruleCheck.value.state;
2467
+ if (s === "checking")
2468
+ return null;
2469
+ if (s === "ready") {
2470
+ return { key: "aiCheckHintReady", detail: ruleCheck.value.types.join(", ") };
2471
+ }
2472
+ if (s === "wont") {
2473
+ return {
2474
+ key: "aiCheckHintWont",
2475
+ detail: ruleCheck.value.reason,
2476
+ fallbackKey: "aiCheckWontReviewHint"
2477
+ };
2478
+ }
2479
+ if (s === "error")
2480
+ return { key: "aiCheckHintError", detail: "" };
2481
+ if ((props.value.ruleDescription || "").trim()) {
2482
+ return { key: "aiCheckHintUnchecked", detail: "" };
2483
+ }
2484
+ return null;
2485
+ });
2486
+ let seedSeq = 0;
2487
+ const seedRuleCheck = async () => {
2488
+ const seq = ++seedSeq;
2489
+ const rule = (props.value.ruleDescription || "").trim();
2490
+ if (!props.showAiRule || !rule || !props.value.aiCheckItems)
2491
+ return;
2492
+ const badge = await badgeOf({
2493
+ taskName: props.value.taskName,
2494
+ ruleDescription: rule,
2495
+ aiCheckItems: props.value.aiCheckItems
2496
+ });
2497
+ if (seq !== seedSeq || ruleCheck.value.state === "checking")
2498
+ return;
2499
+ if (badge.s === "ready" || badge.s === "wont") {
2500
+ ruleCheck.value = { state: badge.s, types: badge.types, reason: badge.reason || "" };
2501
+ }
2502
+ };
2503
+ watch(() => [props.value.ruleDescription, props.value.taskName], () => {
2504
+ if (ruleCheck.value.state !== "checking") {
2505
+ ruleCheck.value = { state: "idle", types: [], reason: "" };
2506
+ }
2507
+ seedRuleCheck();
2508
+ }, { immediate: true });
2381
2509
  const changeMultiple = (event) => {
2382
2510
  let toBeEmitted = __spreadProps(__spreadValues({}, props.value), {
2383
2511
  isEmployee: event
@@ -2439,6 +2567,7 @@ var __vue2_script$8 = defineComponent({
2439
2567
  typeError,
2440
2568
  nameError,
2441
2569
  changeVal,
2570
+ changeRule,
2442
2571
  changeMultiple,
2443
2572
  validFields,
2444
2573
  TaskTypes,
@@ -2448,11 +2577,16 @@ var __vue2_script$8 = defineComponent({
2448
2577
  nameErrorContent,
2449
2578
  belongsTo,
2450
2579
  AssigneeTypes,
2451
- shouldShowBelongsTo
2580
+ shouldShowBelongsTo,
2581
+ ruleIsLinked,
2582
+ relinkRule,
2583
+ ruleCheck,
2584
+ ruleStatusHint,
2585
+ checkRuleNow
2452
2586
  };
2453
2587
  }
2454
2588
  });
2455
- var render$8 = function() {
2589
+ var render$9 = function() {
2456
2590
  var _vm = this;
2457
2591
  var _h = _vm.$createElement;
2458
2592
  var _c = _vm._self._c || _h;
@@ -2471,8 +2605,8 @@ var render$8 = function() {
2471
2605
  }, expression: "value.assigneeTypeList" } }, [_c("a-checkbox", { attrs: { "value": 1, "disabled": _vm.value.isEmployee === "BENEFICIARY" } }, [_vm._v(_vm._s(_vm.$t("message.Beneficiary")) + " ")]), _c("a-checkbox", { attrs: { "value": 2, "disabled": _vm.value.isEmployee === "PETITIONER" } }, [_vm._v(_vm._s(_vm.$t("message.petitioner")) + " ")])], 1)], 1)], 1) : _vm._e(), _c("ant-row", { attrs: { "gutter": 40 } }, [_c("ant-col", { attrs: { "span": 12 } }, [_c("ant-form-item", { attrs: { "required": "", "label": _vm.$t("message.type"), "help": _vm.typeError ? _vm.$t("message.required") : void 0, "validate-status": _vm.typeError ? "error" : void 0 } }, [_vm.value.generalTaskType !== _vm.TaskTypes.worksheet ? _c("ant-radio-group", { attrs: { "disabled": _vm.value.presetDocs != null || _vm.disabled, "value": _vm.value.generalTaskType }, on: { "change": function($event) {
2472
2606
  return _vm.changeVal("generalTaskType", $event.target.value);
2473
2607
  } } }, [_c("ant-radio", { attrs: { "value": _vm.TaskTypes.clientUpload } }, [_vm._v(" " + _vm._s(_vm.$t("message.clientUpload")) + " ")]), _c("ant-radio", { attrs: { "value": _vm.TaskTypes.clientReview, "disabled": _vm.isAttorneySelected } }, [_vm._v(" " + _vm._s(_vm.$t("message.clientReview")) + " ")])], 1) : _c("div", [_vm._v(_vm._s(_vm.$t("message.worksheet")))])], 1)], 1), _vm.shouldShowBelongsTo ? _c("ant-col", { attrs: { "span": 12 } }, [_c("ant-form-item", { scopedSlots: _vm._u([{ key: "label", fn: function() {
2474
- return [_vm._v(" " + _vm._s(_vm.$t("message.belongsTo")) + " "), _c("ant-popover", { attrs: { "content": _vm.$t("message.toReuseThisDoc") } }, [_c("ant-icon", { staticClass: "pt-3.5 text-classic cursor-pointer", attrs: { "type": "question-circle" } })], 1)];
2475
- }, proxy: true }], null, false, 4216407690) }, [_c("ant-select", { on: { "change": function($event) {
2608
+ return [_vm._v(" " + _vm._s(_vm.$t("message.belongsTo")) + " "), _c("ant-popover", { attrs: { "content": _vm.$t("message.toReuseThisDoc"), "overlay-style": { maxWidth: "380px" } } }, [_c("ant-icon", { staticClass: "pt-3.5 text-classic cursor-pointer", attrs: { "type": "question-circle" } })], 1)];
2609
+ }, proxy: true }], null, false, 1708057377) }, [_c("ant-select", { on: { "change": function($event) {
2476
2610
  return _vm.changeVal("taskSmartType", $event);
2477
2611
  } }, model: { value: _vm.value.taskSmartType, callback: function($$v) {
2478
2612
  _vm.$set(_vm.value, "taskSmartType", $$v);
@@ -2480,7 +2614,13 @@ var render$8 = function() {
2480
2614
  return _c("ant-select-option", { key: item[0], attrs: { "value": item[1] } }, [_vm._v(" " + _vm._s(item[0]) + " ")]);
2481
2615
  }), 1)], 1)], 1) : _vm._e()], 1), _c("ant-form-item", { attrs: { "label": "" + _vm.$t("message.descriptions") + " (" + _vm.$t("message.optional") + ")" } }, [_c("ant-textarea", { attrs: { "disabled": _vm.disabled, "value": _vm.value.descriptions }, on: { "input": function($event) {
2482
2616
  return _vm.changeVal("descriptions", $event.target.value);
2483
- } } })], 1), _c("ant-form-item", { attrs: { "label": "" + _vm.$t("message.attachment") + " (" + _vm.$t("message.optional") + ")" } }, [_c("a-file-uploader", { attrs: { "disabled": _vm.value.presetDocs != null || _vm.disabled, "value": _vm.value.presetDocs || _vm.value.sampleDocs, "uploadFilesFunc": _vm.uploadFilesFunc }, on: { "change": function($event) {
2617
+ } } })], 1), _vm.showAiRule ? _c("ant-form-item", { scopedSlots: _vm._u([{ key: "label", fn: function() {
2618
+ return [_vm._v(" " + _vm._s(_vm.$t("message.aiReviewRule")) + _vm._s(" ") + "(" + _vm._s(_vm.$t("message.optional")) + ") "), _c("ant-popover", { attrs: { "overlay-style": { maxWidth: "380px" } }, scopedSlots: _vm._u([{ key: "content", fn: function() {
2619
+ return [_c("p", { staticClass: "rule-hint-desc" }, [_vm._v(_vm._s(_vm.$t("message.aiReviewRuleHint")))]), _vm.checkRuleFunc && _vm.ruleStatusHint ? _c("div", { staticClass: "rule-hint-status" }, [_c("b", [_vm._v(_vm._s(_vm.$t("message." + _vm.ruleStatusHint.key)))]), _vm.ruleStatusHint.detail ? _c("span", [_vm._v(_vm._s(_vm.ruleStatusHint.detail))]) : _vm.ruleStatusHint.fallbackKey ? _c("span", [_vm._v(" " + _vm._s(_vm.$t("message." + _vm.ruleStatusHint.fallbackKey)) + " ")]) : _vm._e()]) : _vm._e()];
2620
+ }, proxy: true }], null, false, 2962716351) }, [_c("ant-icon", { staticClass: "pt-3.5 text-classic cursor-pointer", attrs: { "type": "question-circle" } })], 1), _vm.ruleIsLinked ? _c("span", { staticClass: "rule-link-tag" }, [_vm._v(_vm._s(_vm.$t("message.aiCheckLinkedToDesc")))]) : _c("span", { staticClass: "rule-link-tag rule-link-tag-edited" }, [_vm._v(" " + _vm._s(_vm.$t("message.aiCheckEditedTag")) + " \xB7 "), _c("a", { on: { "click": _vm.relinkRule } }, [_vm._v(_vm._s(_vm.$t("message.aiCheckRelink")))])])];
2621
+ }, proxy: true }], null, false, 2051542834) }, [_c("ant-textarea", { attrs: { "disabled": _vm.disabled, "value": _vm.value.ruleDescription, "placeholder": _vm.$t("message.aiReviewRulePlaceholder") }, on: { "input": function($event) {
2622
+ return _vm.changeRule($event.target.value);
2623
+ } } }), _vm.checkRuleFunc ? _c("div", { staticClass: "rule-status-row" }, [_vm.ruleCheck.state === "checking" ? [_c("ant-icon", { staticClass: "mr-1", attrs: { "type": "loading" } }), _vm._v(_vm._s(_vm.$t("message.aiCheckChecking")) + "\u2026 ")] : _vm.ruleCheck.state === "ready" ? [_c("span", { staticClass: "rule-status-ok" }, [_c("ant-icon", { staticClass: "mr-1", attrs: { "type": "check-circle" } }), _vm._v(_vm._s(_vm.$t("message.aiCheckReady")) + " \xB7 " + _vm._s(_vm.ruleCheck.types.join(", ")) + " ")], 1), _c("a", { staticClass: "ml-2", on: { "click": _vm.checkRuleNow } }, [_vm._v(_vm._s(_vm.$t("message.aiCheckCheckAgain")))])] : _vm.ruleCheck.state === "wont" ? [_c("span", { staticClass: "rule-status-na" }, [_vm._v(_vm._s(_vm.$t("message.aiCheckWontReview")))]), _c("a", { staticClass: "ml-2", on: { "click": _vm.checkRuleNow } }, [_vm._v(_vm._s(_vm.$t("message.aiCheckCheckAgain")))])] : _vm.ruleCheck.state === "error" ? [_c("span", { staticClass: "rule-status-na" }, [_vm._v(_vm._s(_vm.$t("message.aiCheckCheckFailed")))]), _c("a", { staticClass: "ml-2", on: { "click": _vm.checkRuleNow } }, [_vm._v(_vm._s(_vm.$t("message.aiCheckCheckAgain")))])] : (_vm.value.ruleDescription || "").trim() ? [_c("a", { on: { "click": _vm.checkRuleNow } }, [_vm._v(_vm._s(_vm.$t("message.aiCheckCheckNow")))]), _c("span", { staticClass: "rule-status-hint" }, [_vm._v(_vm._s(_vm.$t("message.aiCheckCheckNowHint")))])] : _vm._e()], 2) : _vm._e()], 1) : _vm._e(), _c("ant-form-item", { attrs: { "label": "" + _vm.$t("message.attachment") + " (" + _vm.$t("message.optional") + ")" } }, [_c("a-file-uploader", { attrs: { "disabled": _vm.value.presetDocs != null || _vm.disabled, "value": _vm.value.presetDocs || _vm.value.sampleDocs, "uploadFilesFunc": _vm.uploadFilesFunc }, on: { "change": function($event) {
2484
2624
  return _vm.changeVal("sampleDocs", $event);
2485
2625
  } } })], 1), _c("ant-form-item", { attrs: { "label": "" + _vm.$t("message.tags") + " (" + _vm.$t("message.optional") + ")" } }, [_c("ant-select", { attrs: { "disabled": _vm.disabled, "mode": "tags", "value": _vm.value.tagList || [], "options": [] }, on: { "change": function($event) {
2486
2626
  return _vm.changeVal("tagList", $event);
@@ -2488,19 +2628,19 @@ var render$8 = function() {
2488
2628
  return _vm.changeVal("allowSubmitWithoutFile", $event.target.checked);
2489
2629
  } } }, [_vm._v(" " + _vm._s(_vm.$t("message.notApplicable")) + " ")]) : _vm._e()], 1)], 1);
2490
2630
  };
2491
- var staticRenderFns$8 = [];
2631
+ var staticRenderFns$9 = [];
2492
2632
  var index_vue_vue_type_style_index_0_scoped_true_lang$3 = "";
2493
- const __cssModules$8 = {};
2494
- var __component__$8 = /* @__PURE__ */ normalizeComponent(__vue2_script$8, render$8, staticRenderFns$8, false, __vue2_injectStyles$8, "0b1cbb47", null, null);
2495
- function __vue2_injectStyles$8(context) {
2496
- for (let o in __cssModules$8) {
2497
- this[o] = __cssModules$8[o];
2633
+ const __cssModules$9 = {};
2634
+ var __component__$9 = /* @__PURE__ */ normalizeComponent(__vue2_script$9, render$9, staticRenderFns$9, false, __vue2_injectStyles$9, "1798a7ac", null, null);
2635
+ function __vue2_injectStyles$9(context) {
2636
+ for (let o in __cssModules$9) {
2637
+ this[o] = __cssModules$9[o];
2498
2638
  }
2499
2639
  }
2500
2640
  var TaskForm = /* @__PURE__ */ function() {
2501
- return __component__$8.exports;
2641
+ return __component__$9.exports;
2502
2642
  }();
2503
- var __vue2_script$7 = defineComponent({
2643
+ var __vue2_script$8 = defineComponent({
2504
2644
  name: "NewTask",
2505
2645
  components: {
2506
2646
  AFileUploader,
@@ -2550,6 +2690,14 @@ var __vue2_script$7 = defineComponent({
2550
2690
  hasDoubleConfirm: {
2551
2691
  type: Boolean,
2552
2692
  default: true
2693
+ },
2694
+ showAiRule: {
2695
+ type: Boolean,
2696
+ default: false
2697
+ },
2698
+ checkRuleFunc: {
2699
+ type: Function,
2700
+ default: null
2553
2701
  }
2554
2702
  },
2555
2703
  setup(props, { emit }) {
@@ -2611,7 +2759,7 @@ var __vue2_script$7 = defineComponent({
2611
2759
  };
2612
2760
  }
2613
2761
  });
2614
- var render$7 = function() {
2762
+ var render$8 = function() {
2615
2763
  var _vm = this;
2616
2764
  var _h = _vm.$createElement;
2617
2765
  var _c = _vm._self._c || _h;
@@ -2623,25 +2771,25 @@ var render$7 = function() {
2623
2771
  } } }, [_vm._v(" " + _vm._s(_vm.$t("message.sendTaskEmail")) + " ")])], 1) : _vm._e(), _c("div", [_vm.hasDoubleConfirm ? _c("ant-popconfirm", { attrs: { "title": _vm.$t("message.updateTaskConfirm"), "placement": "top" }, on: { "confirm": _vm.submit } }, [_c("ant-button", { attrs: { "loading": _vm.loading, "type": "primary" } }, [_vm._v(_vm._s(_vm.$t("message.submit")) + " ")])], 1) : _c("ant-button", { attrs: { "loading": _vm.loading, "type": "primary" }, on: { "click": _vm.submit } }, [_vm._v(_vm._s(_vm.$t("message.submit")) + " ")]), _c("ant-button", { on: { "click": function($event) {
2624
2772
  return _vm.changeVisible(false);
2625
2773
  } } }, [_vm._v(_vm._s(_vm.$t("message.cancel")) + " ")])], 1)])];
2626
- }, proxy: true }]) }, [_c("task-form", { ref: "taskForm", attrs: { "upload-files-func": _vm.uploadFilesFunc, "law-firm-id": _vm.lawFirmId, "user-id": _vm.userId, "value": _vm.value.taskTemplateObj }, on: { "update:value": _vm.updateFormValue } }), _vm.showAddToList ? _c("ant-checkbox", { attrs: { "checked": _vm.value.isAddedToTask }, on: { "change": function($event) {
2774
+ }, proxy: true }]) }, [_c("task-form", { ref: "taskForm", attrs: { "upload-files-func": _vm.uploadFilesFunc, "law-firm-id": _vm.lawFirmId, "user-id": _vm.userId, "value": _vm.value.taskTemplateObj, "show-ai-rule": _vm.showAiRule, "check-rule-func": _vm.checkRuleFunc }, on: { "update:value": _vm.updateFormValue } }), _vm.showAddToList ? _c("ant-checkbox", { attrs: { "checked": _vm.value.isAddedToTask }, on: { "change": function($event) {
2627
2775
  return _vm.changeVal("isAddedToTask", $event.target.checked);
2628
2776
  } } }, [_vm._v(" " + _vm._s(_vm.$t("message.addToTaskList")) + " ")]) : _vm._e(), _vm.showAllowSubmit ? _c("ant-checkbox", { staticClass: "ml-2", attrs: { "checked": _vm.value.allowSubmitWithoutFile }, on: { "change": function($event) {
2629
2777
  return _vm.changeVal("allowSubmitWithoutFile", $event.target.checked);
2630
2778
  } } }, [_vm._v(" " + _vm._s(_vm.$t("message.allowSubmitWithoutFile")) + " ")]) : _vm._e()], 1);
2631
2779
  };
2632
- var staticRenderFns$7 = [];
2780
+ var staticRenderFns$8 = [];
2633
2781
  var index_vue_vue_type_style_index_0_scoped_true_lang$2 = "";
2634
- const __cssModules$7 = {};
2635
- var __component__$7 = /* @__PURE__ */ normalizeComponent(__vue2_script$7, render$7, staticRenderFns$7, false, __vue2_injectStyles$7, "76e42884", null, null);
2636
- function __vue2_injectStyles$7(context) {
2637
- for (let o in __cssModules$7) {
2638
- this[o] = __cssModules$7[o];
2782
+ const __cssModules$8 = {};
2783
+ var __component__$8 = /* @__PURE__ */ normalizeComponent(__vue2_script$8, render$8, staticRenderFns$8, false, __vue2_injectStyles$8, "c6f522a6", null, null);
2784
+ function __vue2_injectStyles$8(context) {
2785
+ for (let o in __cssModules$8) {
2786
+ this[o] = __cssModules$8[o];
2639
2787
  }
2640
2788
  }
2641
2789
  var NewTask = /* @__PURE__ */ function() {
2642
- return __component__$7.exports;
2790
+ return __component__$8.exports;
2643
2791
  }();
2644
- var __vue2_script$6 = defineComponent({
2792
+ var __vue2_script$7 = defineComponent({
2645
2793
  name: "taskTemplateFilter",
2646
2794
  components: {
2647
2795
  AntInput: Input,
@@ -2687,7 +2835,7 @@ var __vue2_script$6 = defineComponent({
2687
2835
  };
2688
2836
  }
2689
2837
  });
2690
- var render$6 = function() {
2838
+ var render$7 = function() {
2691
2839
  var _vm = this;
2692
2840
  var _h = _vm.$createElement;
2693
2841
  var _c = _vm._self._c || _h;
@@ -2701,17 +2849,17 @@ var render$6 = function() {
2701
2849
  return _vm.changeVal("isEmployee", $event);
2702
2850
  } } }, [_c("ant-checkbox", { attrs: { "value": _vm.AssigneeTypes.ATTORNEY } }, [_vm._v(_vm._s(_vm.$t("message.attorney")) + " ")]), _c("ant-checkbox", { attrs: { "value": _vm.AssigneeTypes.BENEFICIARY } }, [_vm._v(_vm._s(_vm.$t("message.beneficiary")) + " ")]), _c("ant-checkbox", { attrs: { "value": _vm.AssigneeTypes.PETITIONER } }, [_vm._v(_vm._s(_vm.$t("message.petitioner")) + " ")]), _c("ant-checkbox", { attrs: { "value": _vm.AssigneeTypes.EMPTY_DEFAULT } }, [_vm._v(_vm._s(_vm.$t("message.none")) + " ")])], 1)], 1)], 1);
2703
2851
  };
2704
- var staticRenderFns$6 = [];
2852
+ var staticRenderFns$7 = [];
2705
2853
  var index_vue_vue_type_style_index_0_scoped_true_lang$1 = "";
2706
- const __cssModules$6 = {};
2707
- var __component__$6 = /* @__PURE__ */ normalizeComponent(__vue2_script$6, render$6, staticRenderFns$6, false, __vue2_injectStyles$6, "c5d917d8", null, null);
2708
- function __vue2_injectStyles$6(context) {
2709
- for (let o in __cssModules$6) {
2710
- this[o] = __cssModules$6[o];
2854
+ const __cssModules$7 = {};
2855
+ var __component__$7 = /* @__PURE__ */ normalizeComponent(__vue2_script$7, render$7, staticRenderFns$7, false, __vue2_injectStyles$7, "c5d917d8", null, null);
2856
+ function __vue2_injectStyles$7(context) {
2857
+ for (let o in __cssModules$7) {
2858
+ this[o] = __cssModules$7[o];
2711
2859
  }
2712
2860
  }
2713
2861
  var TaskTemplateFilter = /* @__PURE__ */ function() {
2714
- return __component__$6.exports;
2862
+ return __component__$7.exports;
2715
2863
  }();
2716
2864
  function useVm() {
2717
2865
  const scope = getCurrentScope();
@@ -2721,13 +2869,53 @@ function useT() {
2721
2869
  const vm = useVm();
2722
2870
  return (key) => vm.$i18n.t(key);
2723
2871
  }
2872
+ var __vue2_script$6 = defineComponent({
2873
+ name: "AiReviewBadge",
2874
+ components: {
2875
+ AntTag: Tag,
2876
+ AntIcon: Icon,
2877
+ AntTooltip: Tooltip
2878
+ },
2879
+ props: {
2880
+ status: {
2881
+ type: String,
2882
+ default: "notset"
2883
+ },
2884
+ types: {
2885
+ type: Array,
2886
+ default: () => []
2887
+ },
2888
+ reason: {
2889
+ type: String,
2890
+ default: ""
2891
+ }
2892
+ }
2893
+ });
2894
+ var render$6 = function() {
2895
+ var _vm = this;
2896
+ var _h = _vm.$createElement;
2897
+ var _c = _vm._self._c || _h;
2898
+ return _c("span", { staticStyle: { "white-space": "nowrap" } }, [_vm.status === "ready" ? _c("ant-tooltip", { attrs: { "title": _vm.types.join(", ") } }, [_c("ant-tag", { staticStyle: { "margin": "0" }, attrs: { "color": "green" } }, [_c("ant-icon", { attrs: { "type": "check" } }), _vm._v(" " + _vm._s(_vm.$t("message.aiCheckReady"))), _vm.types.length ? [_vm._v(" \xB7 " + _vm._s(_vm.types.join(", ")))] : _vm._e()], 2)], 1) : _vm.status === "wont" ? _c("ant-tooltip", { attrs: { "title": _vm.reason || _vm.$t("message.aiCheckWontReviewHint"), "overlay-style": { maxWidth: "320px" } } }, [_c("ant-tag", { staticStyle: { "margin": "0" } }, [_vm._v(_vm._s(_vm.$t("message.aiCheckWontReview")))])], 1) : _vm.status === "notchecked" ? _c("span", { staticStyle: { "font-size": "12px", "color": "#8c8c8c" } }, [_vm._v(" " + _vm._s(_vm.$t("message.aiCheckNotChecked")) + " ")]) : _c("span", { staticStyle: { "color": "#bfbfbf" } }, [_vm._v("\u2014")])], 1);
2899
+ };
2900
+ var staticRenderFns$6 = [];
2901
+ const __cssModules$6 = {};
2902
+ var __component__$6 = /* @__PURE__ */ normalizeComponent(__vue2_script$6, render$6, staticRenderFns$6, false, __vue2_injectStyles$6, null, null, null);
2903
+ function __vue2_injectStyles$6(context) {
2904
+ for (let o in __cssModules$6) {
2905
+ this[o] = __cssModules$6[o];
2906
+ }
2907
+ }
2908
+ var AiReviewBadge = /* @__PURE__ */ function() {
2909
+ return __component__$6.exports;
2910
+ }();
2724
2911
  var __vue2_script$5 = defineComponent({
2725
2912
  name: "TaskTablePure",
2726
2913
  components: {
2727
2914
  AntTable: Table,
2728
2915
  AntButton: Button,
2729
2916
  AssigneeTag,
2730
- TagsWithTooltip
2917
+ TagsWithTooltip,
2918
+ AiReviewBadge
2731
2919
  },
2732
2920
  props: {
2733
2921
  addedTasks: {
@@ -2753,12 +2941,16 @@ var __vue2_script$5 = defineComponent({
2753
2941
  showEdit: {
2754
2942
  type: Boolean,
2755
2943
  default: true
2944
+ },
2945
+ showAiRule: {
2946
+ type: Boolean,
2947
+ default: false
2756
2948
  }
2757
2949
  },
2758
2950
  setup(props) {
2759
2951
  const { addedTasks } = toRefs(props);
2760
2952
  const t = useT();
2761
- const columns = [
2953
+ const columns = computed(() => [
2762
2954
  {
2763
2955
  title: t("message.taskName"),
2764
2956
  dataIndex: "taskName",
@@ -2779,6 +2971,13 @@ var __vue2_script$5 = defineComponent({
2779
2971
  width: 120,
2780
2972
  scopedSlots: { customRender: "tagList" }
2781
2973
  },
2974
+ ...props.showAiRule ? [{
2975
+ title: t("message.aiCheckColumn"),
2976
+ dataIndex: "ruleDescription",
2977
+ key: "aiReview",
2978
+ width: 140,
2979
+ scopedSlots: { customRender: "aiReview" }
2980
+ }] : [],
2782
2981
  {
2783
2982
  title: "Operation",
2784
2983
  dataIndex: "id",
@@ -2786,11 +2985,22 @@ var __vue2_script$5 = defineComponent({
2786
2985
  width: 210,
2787
2986
  scopedSlots: { customRender: "operation" }
2788
2987
  }
2789
- ];
2988
+ ]);
2989
+ const badgeMap = ref({});
2990
+ watch(() => [props.dataSource, props.showAiRule], async ([list, on]) => {
2991
+ if (!on || !(list == null ? void 0 : list.length))
2992
+ return;
2993
+ const entries = await Promise.all(list.map(async (r) => [r.id, await badgeOf(r)]));
2994
+ const next = __spreadValues({}, badgeMap.value);
2995
+ for (const [id, badge] of entries)
2996
+ next[id] = badge;
2997
+ badgeMap.value = next;
2998
+ }, { immediate: true });
2790
2999
  const isTemplateAdded = (record) => addedTasks.value.some((added) => added.id === record.id);
2791
3000
  return {
2792
3001
  isTemplateAdded,
2793
- columns
3002
+ columns,
3003
+ badgeMap
2794
3004
  };
2795
3005
  }
2796
3006
  });
@@ -2806,6 +3016,8 @@ var render$5 = function() {
2806
3016
  return _c("span", {}, [_c("span", { staticStyle: { "word-break": "break-word" } }, [_vm._v(_vm._s(taskName))])]);
2807
3017
  } }, { key: "tagList", fn: function(tags) {
2808
3018
  return [_c("tags-with-tooltip", { attrs: { "tags": tags } })];
3019
+ } }, { key: "aiReview", fn: function(_, record) {
3020
+ return [_c("ai-review-badge", { attrs: { "status": (_vm.badgeMap[record.id] || {}).s || "notset", "types": (_vm.badgeMap[record.id] || {}).types || [], "reason": (_vm.badgeMap[record.id] || {}).reason || "" } })];
2809
3021
  } }, { key: "operation", fn: function(_, record) {
2810
3022
  return [_vm.showEdit && record.isGallery ? _c("span", { staticStyle: { "width": "82px", "display": "inline-block", "color": "#999" } }, [_vm._v(" Preset ")]) : _vm.showEdit ? _c("ant-button", { staticClass: "mr-2", attrs: { "disabled": _vm.isTemplateAdded(record), "size": "small" }, on: { "click": function($event) {
2811
3023
  return _vm.$emit("editTask", record);
@@ -2819,7 +3031,7 @@ var render$5 = function() {
2819
3031
  var staticRenderFns$5 = [];
2820
3032
  var TaskTablePure_vue_vue_type_style_index_0_scoped_true_lang = "";
2821
3033
  const __cssModules$5 = {};
2822
- var __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$5, staticRenderFns$5, false, __vue2_injectStyles$5, "58f5c207", null, null);
3034
+ var __component__$5 = /* @__PURE__ */ normalizeComponent(__vue2_script$5, render$5, staticRenderFns$5, false, __vue2_injectStyles$5, "8c062770", null, null);
2823
3035
  function __vue2_injectStyles$5(context) {
2824
3036
  for (let o in __cssModules$5) {
2825
3037
  this[o] = __cssModules$5[o];
@@ -2860,6 +3072,8 @@ const taskTemplateFragment = gql`
2860
3072
  taskType
2861
3073
  generalTaskType
2862
3074
  descriptions
3075
+ ruleDescription
3076
+ aiCheckItems
2863
3077
  sampleDocs {
2864
3078
  id
2865
3079
  name
@@ -2977,6 +3191,10 @@ var __vue2_script$4 = defineComponent({
2977
3191
  withGallery: {
2978
3192
  type: Boolean,
2979
3193
  default: true
3194
+ },
3195
+ showAiRule: {
3196
+ type: Boolean,
3197
+ default: false
2980
3198
  }
2981
3199
  },
2982
3200
  setup(props, { emit }) {
@@ -3008,13 +3226,13 @@ var render$4 = function() {
3008
3226
  var _h = _vm.$createElement;
3009
3227
  var _c = _vm._self._c || _h;
3010
3228
  return _c("div", [_vm._t("default", function() {
3011
- return [_c("task-table-pure", { attrs: { "loading": _vm.loading, "data-source": _vm.dataSource, "pagination": _vm.pagination, "added-tasks": _vm.addedTasks }, on: { "editTask": _vm.editTask, "addTask": _vm.addTask, "removeTask": _vm.removeTask, "changePagination": _vm.changePagination } })];
3229
+ return [_c("task-table-pure", { attrs: { "loading": _vm.loading, "data-source": _vm.dataSource, "pagination": _vm.pagination, "added-tasks": _vm.addedTasks, "show-ai-rule": _vm.showAiRule }, on: { "editTask": _vm.editTask, "addTask": _vm.addTask, "removeTask": _vm.removeTask, "changePagination": _vm.changePagination } })];
3012
3230
  }, { "loading": _vm.loading, "dataSource": _vm.dataSource, "pagination": _vm.pagination, "AssigneeTypesText": _vm.AssigneeTypesText, "changePagination": _vm.changePagination })], 2);
3013
3231
  };
3014
3232
  var staticRenderFns$4 = [];
3015
3233
  var TaskTable_vue_vue_type_style_index_0_scoped_true_lang = "";
3016
3234
  const __cssModules$4 = {};
3017
- var __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$4, staticRenderFns$4, false, __vue2_injectStyles$4, "6662fabb", null, null);
3235
+ var __component__$4 = /* @__PURE__ */ normalizeComponent(__vue2_script$4, render$4, staticRenderFns$4, false, __vue2_injectStyles$4, "079a9f4b", null, null);
3018
3236
  function __vue2_injectStyles$4(context) {
3019
3237
  for (let o in __cssModules$4) {
3020
3238
  this[o] = __cssModules$4[o];
@@ -3065,6 +3283,10 @@ var __vue2_script$3 = defineComponent({
3065
3283
  showNewBtn: {
3066
3284
  type: Boolean,
3067
3285
  default: true
3286
+ },
3287
+ showAiRule: {
3288
+ type: Boolean,
3289
+ default: false
3068
3290
  }
3069
3291
  },
3070
3292
  setup(props, { emit }) {
@@ -3089,19 +3311,27 @@ var render$3 = function() {
3089
3311
  var _vm = this;
3090
3312
  var _h = _vm.$createElement;
3091
3313
  var _c = _vm._self._c || _h;
3092
- return _c(_vm.currentComponent, { tag: "component", staticClass: "task-cart-main-modal", attrs: { "zIndex": 800, "width": 900, "visible": _vm.visible, "title": _vm.showPage ? _vm.$t("message.tasks") : _vm.$t("message.addTask") }, on: { "cancel": function($event) {
3314
+ return _c(_vm.currentComponent, { tag: "component", staticClass: "task-cart-main-modal", attrs: { "zIndex": 800, "width": 900, "visible": _vm.visible, "title": _vm.showPage ? void 0 : _vm.$t("message.addTask") }, on: { "cancel": function($event) {
3093
3315
  return _vm.$emit("update:visible", false);
3094
- } }, scopedSlots: _vm._u([{ key: "footer", fn: function() {
3316
+ } }, scopedSlots: _vm._u([_vm.showPage ? { key: "title", fn: function() {
3317
+ return [_vm._t("page-title", function() {
3318
+ return [_vm._v(_vm._s(_vm.$t("message.tasks")))];
3319
+ })];
3320
+ }, proxy: true } : null, _vm.showPage ? { key: "extra", fn: function() {
3321
+ return [_c("span", { staticClass: "task-cart-header-actions" }, [_vm._t("header-extra"), _vm.showNewBtn ? _c("ant-button", { attrs: { "type": "primary" }, on: { "click": function($event) {
3322
+ return _vm.$emit("update:newTaskVisible", true);
3323
+ } } }, [_vm._v(_vm._s(_vm.$t("message.newTask")))]) : _vm._e()], 2)];
3324
+ }, proxy: true } : null, { key: "footer", fn: function() {
3095
3325
  return [_c("ant-button", { staticStyle: { "margin-right": "20px" }, on: { "click": function($event) {
3096
3326
  return _vm.$emit("update:visible", false);
3097
3327
  } } }, [_vm._v("Cancel ")]), _c("ant-badge", { attrs: { "count": _vm.addedTasks.length } }, [_c("ant-button", { attrs: { "disabled": _vm.addedTasks.length === 0, "type": "primary" }, on: { "click": function($event) {
3098
3328
  return _vm.$emit("update:reviewModalVisible", true);
3099
3329
  } } }, [_vm._v(" " + _vm._s(_vm.openReviewButtonText) + " ")])], 1)];
3100
- }, proxy: true }]) }, [_c("task-template-filter", { attrs: { "show-task-home-page-link": true, "show-task-setting-link": _vm.showTaskSettingLink, "conditions": _vm.conditions, "inline": !!_vm.showPage, "show-new-btn": _vm.showNewBtn }, on: { "update:conditions": function($event) {
3330
+ }, proxy: true }], null, true) }, [_vm._t("header"), _c("task-template-filter", { attrs: { "show-task-home-page-link": true, "show-task-setting-link": _vm.showTaskSettingLink, "conditions": _vm.conditions, "inline": !!_vm.showPage, "show-new-btn": _vm.showNewBtn && !_vm.showPage }, on: { "update:conditions": function($event) {
3101
3331
  _vm.conditions = $event;
3102
3332
  }, "update:newTaskVisible": function($event) {
3103
3333
  return _vm.$emit("update:newTaskVisible", true);
3104
- } } }), _c("task-table", { ref: "taskTable", attrs: { "conditions": _vm.conditions, "added-tasks": _vm.addedTasks, "law-firm-id": _vm.lawFirmId, "page-size": _vm.pageSize, "with-gallery": _vm.withGallery }, on: { "update:addedTasks": function($event) {
3334
+ } } }), _c("task-table", { ref: "taskTable", attrs: { "conditions": _vm.conditions, "added-tasks": _vm.addedTasks, "law-firm-id": _vm.lawFirmId, "page-size": _vm.pageSize, "with-gallery": _vm.withGallery, "show-ai-rule": _vm.showAiRule }, on: { "update:addedTasks": function($event) {
3105
3335
  return _vm.$emit("update:addedTasks", $event);
3106
3336
  }, "editTask": function($event) {
3107
3337
  return _vm.$emit("editTask", $event);
@@ -3111,12 +3341,12 @@ var render$3 = function() {
3111
3341
  var pagination = ref2.pagination;
3112
3342
  var changePagination = ref2.changePagination;
3113
3343
  return [_vm._t("default", null, { "editAction": _vm.editAction, "loading": loading, "dataSource": dataSource, "pagination": pagination, "changePagination": changePagination })];
3114
- } }], null, true) })], 1);
3344
+ } }], null, true) })], 2);
3115
3345
  };
3116
3346
  var staticRenderFns$3 = [];
3117
3347
  var MainModal_vue_vue_type_style_index_0_scoped_true_lang = "";
3118
3348
  const __cssModules$3 = {};
3119
- var __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, render$3, staticRenderFns$3, false, __vue2_injectStyles$3, "697d89e6", null, null);
3349
+ var __component__$3 = /* @__PURE__ */ normalizeComponent(__vue2_script$3, render$3, staticRenderFns$3, false, __vue2_injectStyles$3, "596ec48c", null, null);
3120
3350
  function __vue2_injectStyles$3(context) {
3121
3351
  for (let o in __cssModules$3) {
3122
3352
  this[o] = __cssModules$3[o];
@@ -3359,6 +3589,14 @@ var __vue2_script$1 = defineComponent({
3359
3589
  showNewBtn: {
3360
3590
  type: Boolean,
3361
3591
  default: true
3592
+ },
3593
+ showAiRule: {
3594
+ type: Boolean,
3595
+ default: false
3596
+ },
3597
+ checkRuleFunc: {
3598
+ type: Function,
3599
+ default: null
3362
3600
  }
3363
3601
  },
3364
3602
  setup(props, { emit }) {
@@ -3471,7 +3709,7 @@ var render$1 = function() {
3471
3709
  var _vm = this;
3472
3710
  var _h = _vm.$createElement;
3473
3711
  var _c = _vm._self._c || _h;
3474
- return _vm.lawFirmId != null ? _c("div", { attrs: { "id": "venus-component-task-cart" } }, [_c("main-modal", { ref: "mainModal", attrs: { "visible": _vm.visible, "show-page": _vm.pageMode, "page-size": _vm.pageSize, "law-firm-id": _vm.lawFirmId, "tempTask": _vm.tempTask, "show-new-btn": _vm.showNewBtn, "with-gallery": _vm.withGallery, "added-tasks": _vm.addedTasks, "newTaskVisible": _vm.newTaskVisible, "show-task-setting-link": _vm.showTaskSettingLink, "reviewModalVisible": _vm.reviewModalVisible, "open-review-button-text": _vm.openReviewButtonText }, on: { "update:tempTask": function($event) {
3712
+ return _vm.lawFirmId != null ? _c("div", { attrs: { "id": "venus-component-task-cart" } }, [_c("main-modal", { ref: "mainModal", attrs: { "visible": _vm.visible, "show-page": _vm.pageMode, "page-size": _vm.pageSize, "law-firm-id": _vm.lawFirmId, "tempTask": _vm.tempTask, "show-new-btn": _vm.showNewBtn, "with-gallery": _vm.withGallery, "added-tasks": _vm.addedTasks, "newTaskVisible": _vm.newTaskVisible, "show-task-setting-link": _vm.showTaskSettingLink, "reviewModalVisible": _vm.reviewModalVisible, "open-review-button-text": _vm.openReviewButtonText, "show-ai-rule": _vm.showAiRule }, on: { "update:tempTask": function($event) {
3475
3713
  _vm.tempTask = $event;
3476
3714
  }, "update:temp-task": function($event) {
3477
3715
  _vm.tempTask = $event;
@@ -3495,7 +3733,9 @@ var render$1 = function() {
3495
3733
  var pagination = ref2.pagination;
3496
3734
  var changePagination = ref2.changePagination;
3497
3735
  return [_vm._t("table", null, { "loading": loading, "dataSource": dataSource, "pagination": pagination, "changePagination": changePagination })];
3498
- } }], null, true) }), _c("review-modal", { ref: "reviewModal", attrs: { "adding": _vm.adding, "sendEmail": _vm.sendEmail, "allow-clear": _vm.allowClear, "tempTask": _vm.tempTask, "review-text": _vm.reviewText, "added-tasks": _vm.addedTasks, "showSendEmail": _vm.showSendEmail, "visible": _vm.reviewModalVisible, "newTaskVisible": _vm.newTaskVisible }, on: { "update:tempTask": function($event) {
3736
+ } }], null, true) }, [_c("template", { slot: "page-title" }, [_vm._t("page-title", function() {
3737
+ return [_vm._v(_vm._s(_vm.$t("message.tasks")))];
3738
+ })], 2), _c("template", { slot: "header-extra" }, [_vm._t("header-extra")], 2), _c("template", { slot: "header" }, [_vm._t("header")], 2)], 2), _c("review-modal", { ref: "reviewModal", attrs: { "adding": _vm.adding, "sendEmail": _vm.sendEmail, "allow-clear": _vm.allowClear, "tempTask": _vm.tempTask, "review-text": _vm.reviewText, "added-tasks": _vm.addedTasks, "showSendEmail": _vm.showSendEmail, "visible": _vm.reviewModalVisible, "newTaskVisible": _vm.newTaskVisible }, on: { "update:tempTask": function($event) {
3499
3739
  _vm.tempTask = $event;
3500
3740
  }, "update:temp-task": function($event) {
3501
3741
  _vm.tempTask = $event;
@@ -3511,7 +3751,7 @@ var render$1 = function() {
3511
3751
  _vm.newTaskVisible = $event;
3512
3752
  }, "submit": _vm.endReviewing, "update:sendEmail": function($event) {
3513
3753
  return _vm.$emit("update:sendEmail", $event);
3514
- } } }), _c("new-task", { attrs: { "user-id": _vm.userId, "loading": _vm.submitting, "value": _vm.tempTask, "law-firm-id": _vm.lawFirmId, "visible": _vm.newTaskVisible, "upload-files-func": _vm.uploadFilesFunc, "has-double-confirm": !!_vm.tempTask.taskTemplateObj.id }, on: { "update:value": function($event) {
3754
+ } } }), _c("new-task", { attrs: { "user-id": _vm.userId, "loading": _vm.submitting, "value": _vm.tempTask, "law-firm-id": _vm.lawFirmId, "visible": _vm.newTaskVisible, "upload-files-func": _vm.uploadFilesFunc, "has-double-confirm": !!_vm.tempTask.taskTemplateObj.id, "show-ai-rule": _vm.showAiRule, "check-rule-func": _vm.checkRuleFunc }, on: { "update:value": function($event) {
3515
3755
  _vm.tempTask = $event;
3516
3756
  }, "update:visible": function($event) {
3517
3757
  _vm.newTaskVisible = $event;
@@ -3520,7 +3760,7 @@ var render$1 = function() {
3520
3760
  var staticRenderFns$1 = [];
3521
3761
  var index_vue_vue_type_style_index_0_scoped_true_lang = "";
3522
3762
  const __cssModules$1 = {};
3523
- var __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, render$1, staticRenderFns$1, false, __vue2_injectStyles$1, "678de73d", null, null);
3763
+ var __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, render$1, staticRenderFns$1, false, __vue2_injectStyles$1, "59a394f1", null, null);
3524
3764
  function __vue2_injectStyles$1(context) {
3525
3765
  for (let o in __cssModules$1) {
3526
3766
  this[o] = __cssModules$1[o];
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.425.0",
6
+ "version": "1.427.0",
7
7
  "files": [
8
8
  "dist"
9
9
  ],