@daracl/form 0.0.19 → 0.0.22
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/README.md +51 -18
- package/dist/daracl.form.css +312 -160
- package/dist/daracl.form.min.css +1 -10
- package/dist/daracl.form.min.umd.js +36 -41
- package/dist/daracl.form.min.umd.js.map +1 -1
- package/dist/daracl.form.umd.js +221 -226
- package/dist/daracl.form.umd.js.map +1 -1
- package/dist/defaultOption.d.ts +3 -0
- package/dist/index.cjs +104 -1537
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +58 -1491
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +33 -98
- package/dist/index.min.cjs.map +1 -1
- package/dist/index.min.js +471 -1384
- package/dist/index.min.js.map +1 -1
- package/dist/index.umd.d.ts +1 -0
- package/dist/util/utils.d.ts +8 -30
- package/package.json +37 -49
- package/style/base/_base.scss +7 -6
- package/style/components/_button.scss +5 -4
- package/style/components/_field-container.scss +4 -3
- package/style/components/_field-group.scss +1 -1
- package/style/components/_file-list.scss +3 -2
- package/style/components/_form-field.scss +13 -4
- package/style/components/_form-group.scss +8 -7
- package/style/components/_grid-field.scss +12 -11
- package/style/components/_icon.scss +2 -1
- package/style/components/_label.scss +10 -9
- package/style/components/_tab.scss +8 -7
- package/style/daracl.form.scss +17 -31
- package/style/themes/_common.scss +0 -18
- package/style/themes/_dark.scss +0 -32
- package/style/themes/_index.scss +0 -14
- package/style/themes/_light.scss +0 -26
- package/style/themes/_mixin.scss +0 -6
package/dist/index.min.cjs
CHANGED
|
@@ -1,59 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
* @daracl/form v0.0.19
|
|
3
|
-
* Copyright 2023-2026 darainfo;
|
|
4
|
-
* Licensed MIT
|
|
5
|
-
*/
|
|
6
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("@daracl/core"),le={"&":"&","<":"<",">":">",'"':""","'":"'"},Z=l=>{let e=l;return e&&Object.keys(le).forEach(t=>{e=e.replaceAll(t,le[t])}),e},qe=(l,e)=>l.hasOwnProperty(e),D=l=>l===null||l===""||typeof l>"u"||typeof l=="string"&&(l===""||l.replace(/\s/g,"")===""),E=l=>typeof l>"u",Ee=l=>typeof l=="function",ae=l=>typeof l=="string",M=l=>D(l)?!1:(l=+l,!isNaN(l)),L=l=>g.isArray(l),C=l=>E(l)||l==null,_=l=>l&&l.renderType==="tab",xe=l=>l&&l.renderType==="grid",Ne=l=>(l.$xssName=Se(l),l.label=Z(l.label),l),Ve=l=>xe(l.$parent)||_(l.$parent),Se=l=>{if(E(l.$xssName)){let e=l.name;return e&&Object.keys(le).forEach(t=>{e=e.replaceAll(t,"_")}),"df_"+e}return l.$xssName},Ae=l=>{let e=0;if(l.length==0)return e;for(let t=0;t<l.length;t++){let i=l.charCodeAt(t);e=(e<<5)-e+i,e=e&e}return String(e).replaceAll(/-/g,"_")},Re=l=>l.renderType==="hidden",j=l=>{const e=document.createElement("template");return e.innerHTML=l,e.content.firstElementChild};function re(l){if(typeof l!="object"||l===null)return!1;let e=l;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(l)===e}function Le(l){return typeof l=="object"&&l!==null&&!L(l)}function He(l){return l instanceof Date&&!isNaN(l.valueOf())}const oe=(...l)=>{let e=l[0];if(!re(e)||C(e))return e;let t=1;Object.keys(e).length>0&&(t=0,e=L(e)?[]:{});const i=l.length;for(;t<i;t+=1)Q(e,l[t]);return e};function Q(l,e){return Le(e)?Ye(l,e):L(e)?_e(l,e):He(e)?new e.constructor(e):e}function Ye(l,e){if(Ee(e))return e;for(const t of Object.keys(e)){const i=e[t];E(i)||(i===null||Ee(i)?l[t]=i:C(l[t])?l[t]=Q(L(i)?[]:{},i):Le(i)?Q(l[t],i):l[t]=i)}return l}function _e(l,e){const t=re(l);for(let i=0;i<e.length;i+=1){const s=e[i];let n;s==null?n=s:n=Q(L(s)?[]:{},s),t?l[i]=n:l.push(n)}return l}class f{constructor(e,t,i){var s;this.enableView=!0,this.daraForm=e,this.field=t,this.rowElement=i,this.createField(),t.tooltip&&((s=i.querySelector(".df-tooltip"))==null||s.setAttribute("tooltip",t.tooltip))}setDefaultInfo(){if(E(this.field.defaultValue)?this.setValue("",!1):this.setValue(this.field.defaultValue,!1),!E(this.field.placeholder)){const e=this.getElement();e instanceof Element&&e.setAttribute("placeholder",this.field.placeholder)}}setDefaultOption(){this.setDisabled(this.field.disabled??!1)}addChildField(e){var t;(t=this.rowElement.querySelector(".df-field-container"))==null||t.append(e)}static isDataRender(){return!0}static isChildrenCreate(){return!0}getForm(){return this.daraForm}setValueItems(e){}static getDescriptionTemplate(e){const t=e.descriptionClass?Z(e.descriptionClass):"",i=e.descriptionStyle?'style="'+Z(e.descriptionStyle)+'"':"";return e.description?`<div class="df-description ${t}" ${i}>${e.description}</div>`:""}changeEventCall(e,t,i,s){var n;if(e.onChange){let a={field:e,evt:t,oldValue:e.$value,value:s};if((n=e.listItem)!=null&&n.list){let o=[];const r=f.valuesValueKey(e);for(let d of e.listItem.list){let h=d[r];if(ae(s)){if(h==s){o.push(d);break}}else L(s)&&s.includes(h)&&o.push(d)}a.valueItems=o}if(a.oldValue!=a.value&&e.onChange.call(null,a)===!1)return i.setValue(e.$value,!1),!1;e.$value=a.value}this.daraForm.conditionCheck()}focus(){this.getElement().focus()}isEnableView(){return this.enableView}show(){this.enableView=!0,this.rowElement.classList.remove("df-hidden")}hide(){this.enableView=!1,this.rowElement.classList.contains("df-hidden")||this.rowElement.classList.add("df-hidden")}setDescription(e){var i;const t=this.rowElement.querySelector(".df-description");if(t)t.textContent=e;else{const s=this.rowElement.querySelector(".df-field");if(s){const n=new DOMParser;this.field.description=e;const a=n.parseFromString(f.getDescriptionTemplate(this.field),"text/html").querySelector(".df-description");a&&((i=s.parentNode)==null||i.insertBefore(a,s.nextSibling))}}}setActive(e){}setDisabled(e){this.getElement()instanceof HTMLElement&&(e===!1?this.getElement().removeAttribute("disabled"):this.getElement().setAttribute("disabled",!0))}commonValidator(){}static valuesValueKey(e){var t;return(t=e.listItem)!=null&&t.valueField?e.listItem.valueField:"value"}static valuesLabelKey(e){var t;return(t=e.listItem)!=null&&t.labelField?e.listItem.labelField:"label"}static valuesLabelValue(e,t){let i=!1;const s=e.replace(/\{\{([A-Za-z0-9_.]*)\}\}/g,(n,a)=>(i=!0,t[a]||""));return i?s:t[e]||""}}const je={mobile:/^\d{3}-\d{3,4}-\d{4}$/,email:/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,url:/^(?:(?:https?|HTTPS?|ftp|FTP):\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-zA-Z\u00a1-\uffff0-9]-*)*[a-zA-Z\u00a1-\uffff0-9]+)(?:\.(?:[a-zA-Z\u00a1-\uffff0-9]-*)*[a-zA-Z\u00a1-\uffff0-9]+)*(?:\.(?:[a-zA-Z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/,number:/\d$/,alpha:/^[a-zA-Z]+$/,"alpha-num":/^[a-zA-Z0-9]+$/,variable:/^[a-zA-Z0-9_$][a-zA-Z0-9_$]*$/,"number-char":/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]/,"upper-char":/^(?=.*?[A-Z])(?=.*?[a-z])/,"upper-char-special":/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[#?!@$%^&*-])/,"upper-char-special-number":/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]/},Ce=(l,e,t)=>{if(!e.$instance.isEnableView())return{name:e.name,constraint:[]};typeof t>"u"&&(t={name:e.name,constraint:[]});const i=e.regexpType;return i&&!je[i].test(l)&&(t.regexp=i),t},Te=(l,e,t)=>{if(e.validator&&(t.validator=e.validator(e,l),typeof t.validator=="object")||(t=Ce(l,e,t),t.regexp))return t;if(e.different){const i=e.different.field,s=e.$instance.getForm().getField(i);if(!C(s)&&e.$instance.getValue()==s.$instance.getValue())return t.message=e.different.message,t}if(e.identical){const i=e.identical.field,s=e.$instance.getForm().getField(i);if(!C(s)&&e.$instance.getValue()!=s.$instance.getValue())return t.message=e.identical.message,t}return!0},de=(l,e)=>{if(!e.$instance.isEnableView())return!0;const t={name:e.name,constraint:[]},i=Number(l);if(e.required&&D(l))return t.constraint.push(y.REQUIRED),t;if(!M(l))return t.constraint.push(y.NAN),t;if(Te(l,e,t)!==!0)return t;const s=e.rule;if(s){const n=M(s.minimum),a=M(s.maximum);let o=!1,r=!1,d=!1,h=!1;n&&(s.exclusiveMinimum&&i<=s.minimum?r=!0:i<s.minimum&&(o=!0)),a&&(s.exclusiveMaximum&&i>=s.maximum?h=!0:i>s.maximum&&(d=!0)),n&&a&&(o||r||d||h)?s.exclusiveMinimum&&s.exclusiveMaximum&&(r||h)?t.constraint.push(y.BETWEEN_EXCLUSIVE_MINMAX):r?t.constraint.push(y.BETWEEN_EXCLUSIVE_MIN):h?t.constraint.push(y.BETWEEN_EXCLUSIVE_MAX):t.constraint.push(y.BETWEEN):(r&&t.constraint.push(y.EXCLUSIVE_MIN),h&&t.constraint.push(y.EXCLUSIVE_MAX),o&&t.constraint.push(y.MIN),d&&t.constraint.push(y.MAX))}return t.constraint.length>0?t:!0},$=(l,e,t)=>{if(t===!0){e.classList.remove("invalid"),e.classList.contains("valid")||e.classList.add("valid");const i=e.querySelector(".df-help-message");i&&(i.innerHTML="");return}if(e.classList.remove("valid"),e.classList.contains("invalid")||e.classList.add("invalid"),t!==!1){const i=I.validMessage(l,t);t.message&&i.push(t.message);const s=e.querySelector(".df-help-message");if(s&&i.length>0){const n=[];i.forEach(a=>{n.push(`<div>${a}</div>`)}),s.innerHTML=n.join("")}}},w=l=>{l.classList.remove("invalid"),l.classList.remove("valid")},he=(l,e,t)=>{e.addEventListener("input",i=>{O(l,i,t,t.getValue()),t.valid()})},ze=(l,e,t)=>{e.addEventListener("keyup",i=>{const s=i.target.value;M(s)||(e.value=s.replace(/[^0-9\.\-\+]/g,""),i.preventDefault()),O(l,i,t,t.getValue()),t.valid()})},We=(l,e,t)=>{e.addEventListener("change",i=>{O(l,i,t,t.getValue()),t.valid()})},O=(l,e,t,i)=>{t.changeEventCall(l,e,t,i)};class Pe extends f{constructor(e,t,i){super(i,e,t),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){ze(this.field,this.element,this)}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("@daracl/core/utils"),ae=require("@daracl/datetimepicker"),E=n=>!h.isBlank(n)&&h.isNumeric(+n,!0),T=n=>(n==null?void 0:n.renderType)==="tab",ee=n=>(n==null?void 0:n.renderType)==="grid",re=n=>(n.$xssName=ie(n),n.label=h.xss(n.label),n),te=n=>ee(n.$parent)||T(n.$parent),ie=n=>{if(h.isUndefined(n.$xssName)){let e=n.name;return e&&(e=e.replace(/[&<>"']/g,"_")),"df_"+e}return n.$xssName},oe=n=>(n==null?void 0:n.renderType)==="hidden",O=(...n)=>h.isPlainObject(n[0])?h.objectDeepMerge(...n,{}):n[0];class f{constructor(e,t,i){var s;this.enableView=!0,this.daraForm=e,this.field=t,this.rowElement=i,this.createField(),t.tooltip&&((s=i.querySelector(".df-tooltip"))==null||s.setAttribute("tooltip",t.tooltip))}setDefaultInfo(){if(h.isUndefined(this.field.defaultValue)?this.setValue("",!1):this.setValue(this.field.defaultValue,!1),!h.isUndefined(this.field.placeholder)){const e=this.getElement();e instanceof Element&&e.setAttribute("placeholder",this.field.placeholder)}}setDefaultOption(){this.setDisabled(this.field.disabled??!1)}addChildField(e){var t;(t=this.rowElement.querySelector(".df-field-container"))==null||t.append(e)}static isDataRender(){return!0}static isChildrenCreate(){return!0}getForm(){return this.daraForm}setValueItems(e){}static getDescriptionTemplate(e){const t=e.descriptionClass?h.xss(e.descriptionClass):"",i=e.descriptionStyle?'style="'+h.xss(e.descriptionStyle)+'"':"";return e.description?`<div class="df-description ${t}" ${i}>${e.description}</div>`:""}changeEventCall(e,t,i,s){var l;if(e.onChange){let a={field:e,evt:t,oldValue:e.$value,value:s};if((l=e.listItem)!=null&&l.list){let r=[];const o=f.valuesValueKey(e);for(let d of e.listItem.list){let u=d[o];if(h.isString(s)){if(u==s){r.push(d);break}}else h.isArray(s)&&s.includes(u)&&r.push(d)}a.valueItems=r}if(a.oldValue!=a.value&&e.onChange.call(null,a)===!1)return i.setValue(e.$value,!1),!1;e.$value=a.value}this.daraForm.conditionCheck()}focus(){this.getElement().focus()}isEnableView(){return this.enableView}show(){this.enableView=!0,this.rowElement.classList.remove("df-hidden")}hide(){this.enableView=!1,this.rowElement.classList.contains("df-hidden")||this.rowElement.classList.add("df-hidden")}setDescription(e){var i;const t=this.rowElement.querySelector(".df-description");if(t)t.textContent=e;else{const s=this.rowElement.querySelector(".df-field");if(s){const l=new DOMParser;this.field.description=e;const a=l.parseFromString(f.getDescriptionTemplate(this.field),"text/html").querySelector(".df-description");a&&((i=s.parentNode)==null||i.insertBefore(a,s.nextSibling))}}}setActive(e){}setDisabled(e){this.getElement()instanceof HTMLElement&&(e===!1?this.getElement().removeAttribute("disabled"):this.getElement().setAttribute("disabled",!0))}commonValidator(){}static valuesValueKey(e){var t;return(t=e.listItem)!=null&&t.valueField?e.listItem.valueField:"value"}static valuesLabelKey(e){var t;return(t=e.listItem)!=null&&t.labelField?e.listItem.labelField:"label"}static valuesLabelValue(e,t){let i=!1;const s=e.replace(/\{\{([A-Za-z0-9_.]*)\}\}/g,(l,a)=>(i=!0,t[a]||""));return i?s:t[e]||""}}const de={mobile:/^\d{3}-\d{3,4}-\d{4}$/,email:/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,url:/^(?:(?:https?|HTTPS?|ftp|FTP):\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-zA-Z\u00a1-\uffff0-9]-*)*[a-zA-Z\u00a1-\uffff0-9]+)(?:\.(?:[a-zA-Z\u00a1-\uffff0-9]-*)*[a-zA-Z\u00a1-\uffff0-9]+)*(?:\.(?:[a-zA-Z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/,number:/\d$/,alpha:/^[a-zA-Z]+$/,"alpha-num":/^[a-zA-Z0-9]+$/,variable:/^[a-zA-Z0-9_$][a-zA-Z0-9_$]*$/,"number-char":/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]/,"upper-char":/^(?=.*?[A-Z])(?=.*?[a-z])/,"upper-char-special":/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[#?!@$%^&*-])/,"upper-char-special-number":/^(?=.*[A-Za-z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!%*#?&]/},se=(n,e,t)=>{if(!e.$instance.isEnableView())return{name:e.name,constraint:[]};typeof t>"u"&&(t={name:e.name,constraint:[]});const i=e.regexpType;return i&&!de[i].test(n)&&(t.regexp=i),t},le=(n,e,t)=>{if(e.validator&&(t.validator=e.validator(e,n),typeof t.validator=="object")||(t=se(n,e,t),t.regexp))return t;if(e.different){const i=e.different.field,s=e.$instance.getForm().getField(i);if(!h.isNil(s)&&e.$instance.getValue()==s.$instance.getValue())return t.message=e.different.message,t}if(e.identical){const i=e.identical.field,s=e.$instance.getForm().getField(i);if(!h.isNil(s)&&e.$instance.getValue()!=s.$instance.getValue())return t.message=e.identical.message,t}return!0},H=(n,e)=>{if(!e.$instance.isEnableView())return!0;const t={name:e.name,constraint:[]},i=Number(n);if(e.required&&h.isBlank(n))return t.constraint.push(g.REQUIRED),t;if(!E(n))return t.constraint.push(g.NAN),t;if(le(n,e,t)!==!0)return t;const s=e.rule;if(s){const l=E(s.minimum),a=E(s.maximum);let r=!1,o=!1,d=!1,u=!1;l&&(s.exclusiveMinimum&&i<=s.minimum?o=!0:i<s.minimum&&(r=!0)),a&&(s.exclusiveMaximum&&i>=s.maximum?u=!0:i>s.maximum&&(d=!0)),l&&a&&(r||o||d||u)?s.exclusiveMinimum&&s.exclusiveMaximum&&(o||u)?t.constraint.push(g.BETWEEN_EXCLUSIVE_MINMAX):o?t.constraint.push(g.BETWEEN_EXCLUSIVE_MIN):u?t.constraint.push(g.BETWEEN_EXCLUSIVE_MAX):t.constraint.push(g.BETWEEN):(o&&t.constraint.push(g.EXCLUSIVE_MIN),u&&t.constraint.push(g.EXCLUSIVE_MAX),r&&t.constraint.push(g.MIN),d&&t.constraint.push(g.MAX))}return t.constraint.length>0?t:!0},v=(n,e,t)=>{if(t===!0){e.classList.remove("invalid"),e.classList.contains("valid")||e.classList.add("valid");const i=e.querySelector(".df-help-message");i&&(i.innerHTML="");return}if(e.classList.remove("valid"),e.classList.contains("invalid")||e.classList.add("invalid"),t!==!1){const i=b.validMessage(n,t);t.message&&i.push(t.message);const s=e.querySelector(".df-help-message");if(s&&i.length>0){const l=[];i.forEach(a=>{l.push(`<div>${a}</div>`)}),s.innerHTML=l.join("")}}},$=n=>{n.classList.remove("invalid"),n.classList.remove("valid")},U=(n,e,t)=>{e.addEventListener("input",i=>{V(n,i,t,t.getValue()),t.valid()})},ue=(n,e,t)=>{e.addEventListener("keyup",i=>{const s=i.target.value;E(s)||(e.value=s.replace(/[^0-9\.\-\+]/g,""),i.preventDefault()),V(n,i,t,t.getValue()),t.valid()})},he=(n,e,t)=>{e.addEventListener("change",i=>{V(n,i,t,t.getValue()),t.valid()})},V=(n,e,t,i)=>{t.changeEventCall(n,e,t,i)};class ce extends f{constructor(e,t,i){super(i,e,t),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){ue(this.field,this.element,this)}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
7
2
|
<div class="df-field">
|
|
8
3
|
<input type="text" name="${e.$xssName}" class="df-form-field df-number df-help-icon" />
|
|
9
4
|
</div>
|
|
10
5
|
${f.getDescriptionTemplate(e)}
|
|
11
6
|
<div class="df-help-message"></div>
|
|
12
|
-
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1)
|
|
7
|
+
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.element}valid(){const e=H(this.getValue(),this.field);return v(this.field,this.rowElement,e),e}}const x=(n,e)=>{if(!e.$instance.isEnableView())return!0;let t={name:e.name,constraint:[]};if(e.required&&h.isBlank(n))return t.constraint.push(g.REQUIRED),t;const i=le(n,e,t);if(i!==!0)return i;const s=e.rule;if(s){const l=n.length,a=E(s.minLength),r=E(s.maxLength);let o=!1,d=!1;if(a&&l<s.minLength&&(o=!0),r&&l>s.maxLength&&(d=!0),a&&r&&(o||d)?t.constraint.push(g.BETWEEN):(o&&t.constraint.push(g.MIN_LENGTH),d&&t.constraint.push(g.MAX_LENGTH)),t.constraint.length>0)return t}return!0};class fe extends f{constructor(e,t,i){super(i,e,t),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){U(this.field,this.element,this)}createField(){var s;const e=this.field,t=this.rowElement.querySelector(".df-field-container");let i=(s=e.rendererOptions)==null?void 0:s.rows;i=+i>0?i:3,t.innerHTML=`
|
|
13
8
|
<div class="df-field">
|
|
14
9
|
<textarea name="${e.$xssName}" rows="${i}" class="df-form-field df-textarea df-help-icon"></textarea>
|
|
15
10
|
</div>
|
|
16
11
|
${f.getDescriptionTemplate(e)}
|
|
17
12
|
<div class="df-help-message"></div>
|
|
18
|
-
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1)
|
|
13
|
+
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.element}valid(){const e=x(this.getValue(),this.field);return v(this.field,this.rowElement,e),e}}class j extends f{constructor(e,t,i){var r,o,d,u,c;super(i,e,t);let s="";h.isUndefined(e.defaultValue)||(s=e.defaultValue);const l=j.valuesValueKey(e);let a=!1;(o=(r=this.field.listItem)==null?void 0:r.list)==null||o.forEach(m=>{let p=m[l];m.selected&&(this.defaultSelected=p),p==s&&(a=!0)}),a?this.defaultSelected=s:this.defaultSelected||((d=e.rendererOptions)==null?void 0:d.disableDefaultOption)===!0&&(this.defaultSelected=((c=(u=this.field.listItem)==null?void 0:u.list)==null?void 0:c.length)>0&&this.field.listItem.list[0][l]||""),h.isUndefined(this.defaultSelected)&&(this.defaultSelected=""),this.mounted(),this.setDefaultOption(),this.setValue(this.defaultSelected,!1)}mounted(){he(this.field,this.element,this)}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");let i=` <div class="df-field"><select name="${e.$xssName}" class="df-form-field df-dropdown">
|
|
19
14
|
${this.dropdownValuesTemplate(e)}
|
|
20
15
|
</select> <i class="df-help-icon"></i></div>
|
|
21
16
|
${f.getDescriptionTemplate(e)}
|
|
22
17
|
<div class="df-help-message"></div>
|
|
23
|
-
`;t.innerHTML=i,this.element=t.querySelector(`[name="${e.$xssName}"]`)}setValueItems(e){if(this.field.listItem?this.field.listItem.list=e:this.field.listItem={list:e},this.element.innerHTML=this.dropdownValuesTemplate(this.field),!
|
|
18
|
+
`;t.innerHTML=i,this.element=t.querySelector(`[name="${e.$xssName}"]`)}setValueItems(e){if(this.field.listItem?this.field.listItem.list=e:this.field.listItem={list:e},this.element.innerHTML=this.dropdownValuesTemplate(this.field),!h.isBlank(this.field.$value)){const t=this.field.$value;this.field.$value="",this.setValue(t)}}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setValue(this.defaultSelected,!1),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.element}valid(){const e=this.getValue();let t=!0;return this.field.required&&e.length<1&&(t={name:this.field.name,constraint:[]},t.constraint.push(g.REQUIRED)),v(this.field,this.rowElement,t),t}dropdownValuesTemplate(e){var l,a,r;const t=f.valuesLabelKey(e),i=f.valuesValueKey(e);let s="";return((l=e.rendererOptions)==null?void 0:l.disableDefaultOption)!==!0&&(s+=`<option value="">${b.getMessage("selection")}</option>`),(r=(a=e.listItem)==null?void 0:a.list)==null||r.forEach(o=>{const d=`${o.selected?"selected":""} ${o.disabled?"disabled":""}`;h.isUndefined(o[i])&&o.label?s+=`<option value="${o.value||""}" ${d}>${o.label}</option>`:s+=`<option value="${o[i]}" ${d}>${f.valuesLabelValue(t,o)}</option>`}),s}}class me extends f{constructor(e,t,i){super(i,e,t),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){U(this.field,this.element,this)}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
24
19
|
<div class="df-field">
|
|
25
20
|
<input type="text" name="${e.$xssName}" class="df-form-field df-text df-help-icon" />
|
|
26
21
|
</div>
|
|
27
22
|
${f.getDescriptionTemplate(e)}
|
|
28
23
|
<div class="df-help-message"></div>
|
|
29
|
-
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1)
|
|
30
|
-
<span class="df-field-item ${
|
|
24
|
+
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.element}valid(){const e=x(this.getValue(),this.field);return v(this.field,this.rowElement,e),e}}function w(n,e,t,i){var m,p,M,C,F,k,W,K,X;const s={rowStyleClass:_(e.orientation),fieldClass:"",fieldStyle:"",labelClass:"",labelStyle:"",labelAlignClass:"",valueClass:"",valueStyle:"",tabAlignClass:""},l=((m=t==null?void 0:t.style)==null?void 0:m.labelWidth)??n.style.labelWidth??"3";let a=((p=t==null?void 0:t.style)==null?void 0:p.valueWidth)??n.style.valueWidth??"9";const r=((M=t==null?void 0:t.style)==null?void 0:M.position)??n.style.position,o=(C=e.style)==null?void 0:C.width,d=y[(F=e.style)==null?void 0:F.position]??y[r]??y.top;s.fieldClass=`${d[0]?"df-"+d[0]:""} ${((k=e.style)==null?void 0:k.customClass)||""}`,o&&(E(o)?s.fieldClass+=E(o)?` df-col-xs-${o}`:"":s.fieldStyle=E(o)?"":`width:${o};`),s.tabAlignClass="df-tab-al-"+(["right","center"].includes((W=e.style)==null?void 0:W.tabAlign)?e.style.tabAlign:"left");const u=((K=e.style)==null?void 0:K.labelWidth)||l;if(s.labelAlignClass=d[1],!i&&u&&!["top","bottom"].includes(d[0]))if(E(u)){const Z=+u;a=12-Z,s.labelClass=`df-col-xs-${Z}`,s.valueClass=s.labelStyle?"df-col-full":`df-col-xs-${a}`}else s.labelStyle=`width:${u};`;const c=((X=e.style)==null?void 0:X.valueWidth)||a;return i&&!["left","right"].includes(d[0])?s.valueClass="df-col-full":c&&!["top","bottom"].includes(d[0])?E(c)?s.valueClass=s.labelStyle?"df-col-full":`df-col-xs-${c}`:s.valueStyle=`width:${c};`:s.valueClass=s.labelStyle?"df-col-full":"",s.fieldClass=h.resolveClassName(s.fieldClass).join(" "),s.labelClass=h.resolveClassName(s.labelClass).join(" "),s.valueClass=h.resolveClassName(s.valueClass).join(" "),s}function _(n){return n==="horizontal"?"df-horizontal":"df-vertical"}class z extends f{constructor(e,t,i){var r,o;super(i,e,t),this.defaultCheckValue=[],this.defaultCheckValue=[];let s=[];h.isUndefined(e.defaultValue)||(h.isArray(e.defaultValue)?s=e.defaultValue:s=[e.defaultValue]);const l=z.valuesValueKey(e);h.isUndefined(this.field.listItem)&&this.setValueItems([{label:"",value:"Y"}]);let a=!1;(o=(r=this.field.listItem)==null?void 0:r.list)==null||o.forEach(d=>{let u=d[l];d.selected&&this.defaultCheckValue.push(u||!0),s.includes(u)&&(a=!0)}),this.defaultCheckValue=a?s:this.defaultCheckValue,this.mounted(),this.setDefaultOption(),this.setValue(this.defaultCheckValue,!1)}mounted(){this.initEvent()}initEvent(){this.rowElement.querySelectorAll(this.getSelector()).forEach(t=>{t.addEventListener("change",i=>{V(this.field,i,this,this.getValue()),this.valid()})})}getSelector(){return`input[type="checkbox"][name="${this.field.$xssName}"]`}createField(){var r,o;const e=this.field,t=this.rowElement.querySelector(".df-field-container"),i=[],s=e.$xssName,l=f.valuesLabelKey(e),a=f.valuesValueKey(e);i.push(' <div class="df-field"><div class="df-field-group">'),(o=(r=e.listItem)==null?void 0:r.list)==null||o.forEach(d=>{const u=String(d[a]??"");i.push(`
|
|
25
|
+
<span class="df-field-item ${_(e.listItem.orientation??ne.horizontal)}">
|
|
31
26
|
<label>
|
|
32
|
-
<input type="checkbox" name="${s}" value="${h
|
|
33
|
-
${f.valuesLabelValue(
|
|
27
|
+
<input type="checkbox" name="${s}" value="${u?h.xss(u):""}" class="df-form-field df-checkbox" ${d.selected?"checked":""} ${d.disabled?"disabled":""} />
|
|
28
|
+
${f.valuesLabelValue(l,d)}
|
|
34
29
|
</label>
|
|
35
30
|
</span>
|
|
36
|
-
`)}),i.push(`<i class="df-form-icon df-help-icon"></i></div></div> ${f.getDescriptionTemplate(e)}<div class="df-help-message"></div>`),t.innerHTML=i.join("")}setValueItems(e){if(this.rowElement.querySelector(".df-field-container")&&(this.field.listItem?this.field.listItem.list=e:this.field.listItem={list:e},this.createField(),!
|
|
31
|
+
`)}),i.push(`<i class="df-form-icon df-help-icon"></i></div></div> ${f.getDescriptionTemplate(e)}<div class="df-help-message"></div>`),t.innerHTML=i.join("")}setValueItems(e){if(this.rowElement.querySelector(".df-field-container")&&(this.field.listItem?this.field.listItem.list=e:this.field.listItem={list:e},this.createField(),!h.isBlank(this.field.$value))){const i=this.field.$value;this.field.$value="",this.setValue(i)}}getValue(){const e=this.rowElement.querySelectorAll(this.getSelector());if(e.length>1){const t=[];return e.forEach(i=>{const s=i;s.checked&&t.push(s.value)}),t}else{const t=this.rowElement.querySelector(`[name="${this.field.$xssName}"]`);return t!=null&&t.checked?t.value?t.value:!0:t.value?"":!1}}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1&&(e=this.field.$value),this.field.$value=e,e===!0){this.rowElement.querySelector(`[name="${this.field.$xssName}"]`).checked=!0;return}if(e===!1){this.rowElement.querySelector(`[name="${this.field.$xssName}"]`).checked=!1;return}let i=[];h.isArray(e)?i=e:i.push(e),this.rowElement.querySelectorAll(this.getSelector()).forEach(l=>{l.checked=!1}),i.forEach(l=>{const a=this.rowElement.querySelector(`[name="${this.field.$xssName}"][value="${l}"]`);a&&(a.checked=!0)})}reset(){var e,t;((t=(e=this.field.listItem)==null?void 0:e.list)==null?void 0:t.length)==1&&this.defaultCheckValue.length==1?this.setValue(!0,!1):this.setValue(this.defaultCheckValue,!1),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.rowElement.querySelectorAll(`[name="${this.field.$xssName}"]`)}focus(){const e=this.getElement();e&&e.length>0&&this.getElement()[0].focus()}valid(){const e=this.getValue();let t=!0;return this.field.required&&h.isArray(e)&&e.length<1&&(t={name:this.field.name,constraint:[]},t.constraint.push(g.REQUIRED)),v(this.field,this.rowElement,t),t}}class B extends f{constructor(e,t,i){var r,o,d,u,c;super(i,e,t),this.defaultCheckValue="";let s=[];h.isUndefined(e.defaultValue)||(s=e.defaultValue);const l=B.valuesValueKey(e);let a=!1;(o=(r=this.field.listItem)==null?void 0:r.list)==null||o.forEach(m=>{let p=m[l];m.selected&&(this.defaultCheckValue=p),s==p&&(a=!0)}),a?this.defaultCheckValue=s:this.defaultCheckValue||(this.defaultCheckValue=((u=(d=this.field.listItem)==null?void 0:d.list)==null?void 0:u.length)>0?(c=this.field.listItem)==null?void 0:c.list[0][l]:""),this.mounted(),this.setDefaultOption(),this.setValue(this.defaultCheckValue,!1)}mounted(){this.initEvent()}initEvent(){this.rowElement.querySelectorAll(this.getSelector()).forEach(t=>{t.addEventListener("change",i=>{V(this.field,i,this,this.getValue()),this.valid()})})}getSelector(){return`input[type="radio"][name="${this.field.$xssName}"]`}createField(){var r,o;const e=this.field,t=this.rowElement.querySelector(".df-field-container"),i=[],s=e.$xssName,l=f.valuesLabelKey(e),a=f.valuesValueKey(e);i.push('<div class="df-field"><div class="df-field-group">'),(o=(r=e.listItem)==null?void 0:r.list)==null||o.forEach(d=>{const u=d[a];i.push(`<span class="df-field-item ${_(e.orientation??ne.horizontal)}">
|
|
37
32
|
<label>
|
|
38
|
-
<input type="radio" name="${s}" value="${
|
|
39
|
-
${f.valuesLabelValue(
|
|
33
|
+
<input type="radio" name="${s}" value="${u}" class="df-form-field df-radio" ${d.selected?"checked":""} ${d.disabled?"disabled":""}/>
|
|
34
|
+
${f.valuesLabelValue(l,d)}
|
|
40
35
|
</label>
|
|
41
36
|
</span>
|
|
42
37
|
`)}),i.push(`<i class="df-form-icon df-help-icon"></i></div></div>
|
|
43
38
|
${f.getDescriptionTemplate(e)}
|
|
44
39
|
<div class="df-help-message"></div>
|
|
45
|
-
`),t.innerHTML=i.join(""),this.initEvent()}setValueItems(e){if(this.rowElement.querySelector(".df-field-container")&&(this.field.listItem?this.field.listItem.list=e:this.field.listItem={list:e},this.createField(),!
|
|
40
|
+
`),t.innerHTML=i.join(""),this.initEvent()}setValueItems(e){if(this.rowElement.querySelector(".df-field-container")&&(this.field.listItem?this.field.listItem.list=e:this.field.listItem={list:e},this.createField(),!h.isBlank(this.field.$value))){const i=this.field.$value;this.field.$value="",this.setValue(i)}}getValue(){var e;return(e=this.rowElement.querySelector(`[name="${this.field.$xssName}"]:checked`))==null?void 0:e.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1&&(e=this.field.$value),this.field.$value=e,e===!0){this.rowElement.querySelector(`[name="${this.field.$xssName}"]`).checked=!0;return}if(e===!1){this.rowElement.querySelector(`[name="${this.field.$xssName}"]`).checked=!1;return}this.rowElement.querySelectorAll(this.getSelector()).forEach(s=>{let l=s;l.value==e?l.checked=!0:l.checked=!1})}reset(){this.setValue(this.defaultCheckValue,!1),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.rowElement.querySelectorAll(this.getSelector())}focus(){const e=this.getElement();e&&e.length>0&&this.getElement()[0].focus()}valid(){const e=this.getValue();let t=!0;return this.field.required&&h.isBlank(e)&&(t={name:this.field.name,constraint:[]},t.constraint.push(g.REQUIRED)),v(this.field,this.rowElement,t),t}}class pe extends f{constructor(e,t,i){super(i,e,t),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){U(this.field,this.element,this)}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
46
41
|
<div class="df-field">
|
|
47
42
|
<input type="password" name="${e.$xssName}" class="df-form-field df-password df-help-icon" autocomplete="off" />
|
|
48
43
|
</div>
|
|
49
44
|
${f.getDescriptionTemplate(e)}
|
|
50
45
|
<div class="df-help-message"></div>
|
|
51
|
-
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1)
|
|
46
|
+
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.element}valid(){const e=x(this.getValue(),this.field);return v(this.field,this.rowElement,e),e}}const ge=(n,e,t)=>{const i={name:e.name,constraint:[]};return e.required&&t.length<1?(i.constraint.push(g.REQUIRED),i):i.constraint.length>0?i:!0};class ve extends f{constructor(e,t,i){var s;super(i,e,t),this.removeIds=[],this.uploadFiles={},this.fileList=[],this.fileSeq=0,this.element=t.querySelector(`[name="${e.$xssName}"]`),this.fileList=((s=e.listItem)==null?void 0:s.list)||[],this.mounted(),this.setDefaultOption()}mounted(){this.element.addEventListener("change",e=>{var i;const t=(i=e.target)==null?void 0:i.files;if(t){let s=[];for(let l of t)s.push(l);this.addFiles(s)}V(this.field,e,this,this.fileList),this.valid()}),this.fileList.forEach(e=>{e.$seq=this.fileSeq+=1}),this.setFileList(this.fileList)}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
52
47
|
<div class="df-field">
|
|
53
48
|
<span class="df-file-wrapper">
|
|
54
49
|
<label class="df-file-label">
|
|
55
50
|
<input type="file" name="${e.$xssName}" class="df-form-field df-file" multiple />
|
|
56
|
-
${
|
|
51
|
+
${b.getMessage("fileButton")}
|
|
57
52
|
</label>
|
|
58
53
|
<i class="df-form-icon df-help-icon"></i>
|
|
59
54
|
</span>
|
|
@@ -61,111 +56,51 @@
|
|
|
61
56
|
${f.getDescriptionTemplate(e)}
|
|
62
57
|
<div class="df-file-list"></div>
|
|
63
58
|
<div class="df-help-message"></div>
|
|
64
|
-
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}addFiles(e){let t=!1;const i=[];for(let s of e){if(this.fileList.filter(
|
|
65
|
-
<div class="df-file-item" data-seq="${
|
|
66
|
-
${
|
|
67
|
-
<span class="df-file-name">${
|
|
68
|
-
</div>`)}),i.insertAdjacentHTML("beforeend",s.join("")),e.forEach(
|
|
59
|
+
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}addFiles(e){let t=!1;const i=[];for(let s of e){if(this.fileList.filter(r=>r.fileName==s.name&&r.fileSize==s.size&&r.lastModified==s.lastModified).length>0)continue;this.fileSeq+=1,this.uploadFiles[this.fileSeq]=s;let a={fileName:s.name,$seq:this.fileSeq,fileSize:s.size,lastModified:s.lastModified};i.push(a),t=!0}t&&(this.setFileList(i),this.fileList.push(...i))}setFileList(e,t){const i=this.rowElement.querySelector(".df-file-list");if(i){t===!0&&(i.innerHTML="");const s=[];e.forEach(l=>{s.push(`
|
|
60
|
+
<div class="df-file-item" data-seq="${l.$seq}">
|
|
61
|
+
${l.fileId?'<span class="df-file-icon df-file-download"></span>':'<span class="df-file-icon df-empty-icon"></span>'} <span class="df-file-icon df-file-remove"></span>
|
|
62
|
+
<span class="df-file-name">${l.fileName}</span >
|
|
63
|
+
</div>`)}),i.insertAdjacentHTML("beforeend",s.join("")),e.forEach(l=>{this.removeFileEvent(l,i),this.downloadFileEvent(l,i)})}}downloadFileEvent(e,t){const i=t.querySelector(`[data-seq="${e.$seq}"] .df-file-download`);i&&i.addEventListener("click",s=>{const l=s.target.closest(".df-file-item");if(l){const a=l.getAttribute("data-seq");if(a){const r=parseInt(a,10),o=this.fileList.findIndex(u=>u.$seq===r),d=this.fileList[o];if(d.url){location.href=d.url;return}if(this.field.fileDownload){this.field.fileDownload.call(null,{file:d,field:this.field});return}}}})}removeFileEvent(e,t){const i=t.querySelector(`[data-seq="${e.$seq}"] .df-file-remove`);i&&i.addEventListener("click",s=>{const l=s.target.closest(".df-file-item");if(l){const a=l.getAttribute("data-seq");if(a){const r=parseInt(a,10),o=this.fileList.findIndex(u=>u.$seq===r),d=this.fileList[o];this.fileList.splice(o,1),delete this.uploadFiles[r],l.remove(),d.fileId&&this.removeIds.push(d.fileId)}}this.valid()})}getValue(){return{uploadFile:Object.values(this.uploadFiles),removeIds:this.removeIds}}setValueItems(e){this.fileList=[],this.uploadFiles=[],this.removeIds=[];for(let t of e)t.$seq=this.fileSeq+=1,this.fileList.push(t);this.setFileList(this.fileList,!0)}setValue(e){h.isArray(e)&&this.setValueItems(e),this.element.value=""}reset(){this.setValue(""),this.setValueItems([]),$(this.rowElement)}getElement(){return this.element}valid(){const e=ge(this.element,this.field,this.fileList);return v(this.field,this.rowElement,e),e}}class $e extends f{constructor(e,t,i){super(i,e,t),e.renderer?(this.customFunction=e.renderer,this.mounted(),this.setDefaultOption(),this.setDefaultInfo()):this.customFunction={}}mounted(){this.customFunction.mounted&&this.customFunction.mounted.call(this,this.field,this.rowElement)}static isDataRender(){return!1}createField(){const e=this.field,t=h.isNil(e.template)?"":h.isString(e.template)?e.template:e.template(),i=this.rowElement.querySelector(".df-field-container");i.innerHTML=` <div class="df-field">
|
|
69
64
|
${t}
|
|
70
65
|
</div>
|
|
71
66
|
${f.getDescriptionTemplate(e)}
|
|
72
|
-
<div class="df-help-message"></div>`}getValue(){return this.customFunction.getValue?this.customFunction.getValue.call(this,this.field,this.rowElement):""}setValue(e,t){this.customFunction.setValue&&(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1&&(e=this.field.$value),this.customFunction.setValue.call(this,e,this.field,this.rowElement)),this.field.$value=e}reset(){this.setDefaultInfo()
|
|
67
|
+
<div class="df-help-message"></div>`}getValue(){return this.customFunction.getValue?this.customFunction.getValue.call(this,this.field,this.rowElement):""}setValue(e,t){this.customFunction.setValue&&(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1&&(e=this.field.$value),this.customFunction.setValue.call(this,e,this.field,this.rowElement)),this.field.$value=e}reset(){this.setDefaultInfo(),$(this.rowElement)}getElement(){return this.customFunction.getElement?this.customFunction.getElement.call(this,this.field,this.rowElement):null}valid(){if(this.customFunction.valid){const t=this.customFunction.valid.call(this,this.field,this.rowElement);v(this.field,this.rowElement,t);return}const e=x(this.getValue(),this.field);return v(this.field,this.rowElement,e),e}focus(){this.customFunction.focus&&this.customFunction.focus.call(this,this.field,this.rowElement)}}class Ee extends f{constructor(e,t,i){super(i,e,t)}mounted(){}static isDataRender(){return!1}createField(){return""}getValue(){return null}setValue(e){}reset(){}getElement(){return this.rowElement}valid(){return!0}addChildField(e){let t=this.rowElement.querySelector(".df-field-container");t?t.append(e):this.rowElement.append(e)}focus(){}}class ye extends f{constructor(e,t,i){super(i,e,t),this.field.$value=e.defaultValue}mounted(){}createField(){return""}getValue(){return this.field.$value}setValue(e){this.field.$value=e}reset(){this.setValue(this.field.defaultValue)}getElement(){}valid(){return!0}}class Fe extends f{constructor(e,t,i){super(i,e,t),this.mounted(),this.setDefaultOption()}mounted(){var e;(e=this.rowElement.querySelector(`#${this.field.$key}`))==null||e.addEventListener("click",t=>{this.field.onClick&&this.field.onClick.call(null,this.field)})}static isDataRender(){return!1}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
73
68
|
<button type="button" id="${e.$key}" class="df-btn">${e.label}</button> ${f.getDescriptionTemplate(e)}
|
|
74
|
-
`}getValue(){return""}setValue(e){}reset(){this.setDisabled(!1)}getElement(){return null}valid(){return!0}}class
|
|
69
|
+
`}getValue(){return""}setValue(e){}reset(){this.setDisabled(!1)}getElement(){return null}valid(){return!0}}class be extends f{constructor(e,t,i){super(i,e,t),this.rangeNumElement=t.querySelector(".df-range-num"),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){this.element.addEventListener("input",e=>{this.rangeNumElement.innerHTML=e.target.value,this.element.setAttribute("title",e.target.value),V(this.field,e,this,this.getValue()),this.valid()})}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
75
70
|
<div class="df-field">
|
|
76
71
|
<span class="df-range-num">${e.defaultValue?e.defaultValue:0}</span>
|
|
77
72
|
<input type="range" name="${e.$xssName}" class="df-form-field df-range df-help-icon" min="${e.rule.minimum}" max="${e.rule.maximum}"/>
|
|
78
73
|
</div>
|
|
79
74
|
${f.getDescriptionTemplate(e)}
|
|
80
75
|
<div class="df-help-message"></div>
|
|
81
|
-
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1),w(this.rowElement)}getElement(){return this.element}valid(){const e=de(this.getValue(),this.field);return $(this.field,this.rowElement,e),e}}let P={year:"Year",month:"Month",day:"Day",am:"AM",pm:"PM",today:"Today",ok:"Ok",months:{full:["January","February","March","April","May","June","July","August","September","October","November","December"],abbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},weeks:{full:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}},it=class{constructor(){this.lang=P}setDefaultMessage(e){P=Object.assign(P,e)}set(e){this.lang=Object.assign({},P,e)}getMessage(e){return this.lang[e]}getMonthsMessage(e,t="abbr"){return this.lang.months[t][e]||""}getWeeksMessage(e,t="abbr"){return this.lang.weeks[t][e]||""}getMonthsIdx(e,t="abbr"){return t=="full"?this.lang.months.full.indexOf(e):this.lang.months.abbr.indexOf(e)}getWeeksIdx(e,t="abbr"){return t=="full"?this.lang.weeks.full.indexOf(e):this.lang.weeks.abbr.indexOf(e)}};const v=new it,G=["YY","YYYY","MMMM","MMM","MM","M","dddd","ddd","dd","d","DD","D","S","HH","H","hh","h","mm","m","ss","s","SSS","zzzz","zzz","zz","z","a","A"];let J=0,S={year:"YYYY",month:"YYYY-MM",date:"YYYY-MM-DD",time:"HH:mm",datetime:"YYYY-MM-DD HH:mm"};const k=["ddtp-sun","ddtp-mon","ddtp-tue","ddtp-wed","ddtp-thu","ddtp-fri","ddtp-sat"];var m=(l=>(l.year="year",l.month="month",l.date="date",l.datetime="datetime",l.time="time",l))(m||{});G.forEach(l=>{J=Math.max(l.length,J)});const ke=(l,e)=>{e=e||"YYYY-MM-DD";const t=e.length;let i=[];for(let s=0;s<t;){let a=Math.min(J,t-s);for(;a>0;a--){const o=e.substring(s,s+a);if(G.includes(o)){try{i.push(st[o](l))}catch(r){console.log(G.includes(o),o,r)}break}}a<1?(i.push(e.substring(s,s+1)),s+=1):s+=a}return i.join("")},st={YY:l=>String(l.getFullYear()).slice(-2),YYYY:l=>String(l.getFullYear()),M:l=>String(l.getMonth()+1),MM:l=>g.leftPad(l.getMonth()+1,2),MMM:l=>v.getMonthsMessage(l.getMonth()),MMMM:l=>v.getMonthsMessage(l.getMonth(),"full"),D:l=>String(l.getDate()),DD:l=>g.leftPad(l.getDate(),2),d:l=>String(l.getDate()),dd:l=>g.leftPad(l.getDate(),2),ddd:l=>v.getWeeksMessage(l.getDay()),dddd:l=>v.getWeeksMessage(l.getDay(),"full"),H:l=>String(l.getHours()),HH:l=>g.leftPad(l.getHours(),2),h:l=>be(l),hh:l=>g.leftPad(be(l),2),a:l=>String(l.getFullYear()).slice(-2),A:l=>lt(l),m:l=>String(l.getMinutes()),mm:l=>g.leftPad(l.getMinutes(),2),s:l=>String(l.getSeconds()),ss:l=>g.leftPad(l.getSeconds(),2),SSS:l=>g.leftPad(l.getMilliseconds(),3)};function be(l){let e=l.getHours();return e>12?e-=12:e<1&&(e=12),e}function lt(l,e,t){let s=l.getHours()<12?"am":"pm";return s=v.getMessage(s),s=s.toUpperCase(),s}const H=(l,e)=>{if(l.length>1e3)return null;e=e||S.date;const t={year:new Date().getFullYear(),month:0,day:1,hour:0,minute:0,second:0,millisecond:0,isPm:!1,isH:!1,charIdx:0},i=e.length;let s=0;for(let a=0;a<i;){let r=Math.min(J,i-a);for(;r>0;r--){const d=e.substring(a,a+r);if(G.includes(d)){const h=at[d],u=nt(l.substring(s),h[0]);h[1](t,u),s+=u.length;break}}r<1?(a+=1,s+=1):a+=r}t.hour!=null&&!t.isH&&(t.isPm&&+t.hour!=12?t.hour=+t.hour+12:!t.isPm&&+t.hour==12&&(t.hour=0));let n;return n=new Date(t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond),n},nt=(l,e)=>{const t=e.exec(l);return t==null?"":t[0]},b={twoOptional:/\d\d?/,two:/\d\d/,three:/\d{3}/,four:/\d{4}/},q=/[^\s]+/,at={YY:[b.two,(l,e)=>(l.year=+((""+new Date().getFullYear()).substring(0,2)+e),l)],YYYY:[b.four,(l,e)=>(l.year=+e,l)],M:[b.twoOptional,(l,e)=>(l.month=+e-1,l)],MM:[b.two,(l,e)=>(l.month=+e-1,l)],MMM:[q,(l,e)=>(l.month=v.getMonthsIdx(e,"abbr"),l)],MMMM:[q,(l,e)=>(l.month=v.getMonthsIdx(e,"full"),l)],D:[b.twoOptional,(l,e)=>(l.day=+e,l)],DD:[b.two,(l,e)=>(l.day=+e,l)],d:[b.twoOptional,(l,e)=>(l.day=+e,l)],dd:[b.two,(l,e)=>(l.day=+e,l)],ddd:[q,(l,e)=>l],dddd:[q,(l,e)=>l],H:[b.twoOptional,(l,e)=>(l.hour=+e,l.isH=!0,l)],HH:[b.two,(l,e)=>(l.hour=+e,l.isH=!0,l)],h:[b.twoOptional,(l,e)=>(l.hour=+e,l)],hh:[b.two,(l,e)=>(l.hour=+e,l)],a:[q,(l,e)=>(v.getMessage("am")!=e.toLowerCase()&&(l.isPm=!0),l)],A:[q,(l,e)=>(v.getMessage("am")!=e.toLowerCase()&&(l.isPm=!0),l)],m:[b.twoOptional,(l,e)=>(l.minute=+e,l)],mm:[b.two,(l,e)=>(l.minute=+e,l)],s:[b.twoOptional,(l,e)=>(l.second=+e,l)],ss:[b.two,(l,e)=>(l.second=+e,l)],SSS:[b.three,(l,e)=>(l.millisecond=+e,l)]};function rt(l,e){let t=l;for(;t;){if(t==e)return!0;t=t.parentElement}return!1}class N{constructor(e){this.date=e}setYear(e){return this.date.setFullYear(e),this}addYear(e){return this.date.setFullYear(this.date.getFullYear()+e),this}addMonth(e){return this.date.setMonth(this.date.getMonth()+e),this}setMonth(e){return this.date.setMonth(e),this}setDate(e){return this.date.setDate(e),this}addDate(e){return this.date.setDate(this.date.getDate()+e),this}addWeek(e){return this.date.setDate(this.date.getDate()+e*7),this}addHours(e){return this.date.setHours(this.date.getHours()+e),this}setHour(e){return this.date.setHours(e),this}addMinutes(e){return this.date.setMinutes(this.date.getMinutes()+e),this}setMinutes(e){return this.date.setMinutes(e),this}addSeconds(e){return this.date.setSeconds(this.date.getSeconds()+e),this}addMilliseconds(e){return this.date.setMilliseconds(this.date.getMilliseconds()+e),this}compare(e){return this.date.valueOf()<e.valueOf()?-1:this.date.valueOf()>e.valueOf()?1:0}getYear(){return this.date.getFullYear()}getMonth(){return this.date.getMonth()+1}getDate(){return this.date.getDate()}getDay(){return this.date.getDay()}getTime(){return this.date.getTime()}format(e){return ke(this.date,e)}clone(){return new N(new Date(this.date.valueOf()))}}let ie={inline:!1,weekStartDay:0,initialDate:"",autoClose:!0,isRTL:!1,mode:m.date,enableTodayBtn:!1,showMonthAfterYear:!1,isPositionFixed:!1,format:"",zIndex:1e3,minDate:"",maxDate:"",beforeDrawDate:l=>({check:!1,style:"",tooltip:""})};function ot(){var l;return document.getElementById("hiddenDaraDatetimeElement")==null&&((l=document.querySelector("body"))==null||l.insertAdjacentHTML("beforeend",'<div id="hiddenDaraDatetimeElement" class="daracl-datetime-hidden"></div>')),document.getElementById("hiddenDaraDatetimeElement")}let se=0;const ee=class Ie{constructor(e,t,i){var s;this.isInput=!1,this.isVisible=!1,this.minYear=-1,this.maxYear=-1,this.minMonth=-1,this.maxMonth=-1,this.dayOrder=[0,1,2,3,4,5,6],this._documentClickEvent=o=>{this.isVisible&&o.target!=this.targetElement&&!rt(o.target,this.datetimeElement)&&this.hide()},this.options=Object.assign({},ie,t),se+=1;let n;if(typeof e=="string"?n=document.querySelector(e):n=e,!n)throw new Error(`${e} datetimepicker element not found`);this._viewMode=Object.keys(m).includes(this.options.mode)?this.options.mode:m.date,this.initMode=this._viewMode,v.set(i),this.initMode==m.year?this.dateFormat=this.options.format||S.year:this.initMode==m.month?this.dateFormat=this.options.format||S.month:this.initMode==m.time?this.dateFormat=this.options.format||S.time:this.initMode==m.datetime?this.dateFormat=this.options.format||S.datetime:this.dateFormat=this.options.format||S.date;let a;if(this.options.initialDate?typeof this.options.initialDate=="string"?a=new N(H(this.options.initialDate,this.dateFormat)||new Date):a=new N(this.options.initialDate):(a=new N(new Date),this.options.initialDate=a.format(this.dateFormat)),this.setWeekDays(),this.todayDate=a.format(S.date),this.currentDate=a,this.targetElement=n,this.minDate=this._minDate(),this.maxDate=this._maxDate(),this.options.inline)this.datetimeElement=n,this.datetimeElement.className=`daracl-datetime-wrapper ddtp-${se} embed`;else{this.isInput=!0,this.targetElement.setAttribute("value",a.format(this.dateFormat));const o=document.createElement("div");o.className=`daracl-datetime-wrapper ddtp-${se} layer`,o.setAttribute("style",`z-index:${this.options.zIndex};`),(s=ot())==null||s.appendChild(o),this.datetimeElement=o,this.initTargetEvent()}this.createDatetimeTemplate(),this.isTimeMode()?(this.hourInputEle=this.datetimeElement.querySelector(".ddtp-hour"),this.minuteInputEle=this.datetimeElement.querySelector(".ddtp-minute")):(this.hourInputEle={},this.minuteInputEle={}),this.changeViewMode(this._viewMode),this.initHeaderEvent(),this.initDateEvent(),this.initTimeEvent()}setWeekDays(){let e=this.options.weekStartDay;if(e!=0){(e<0||e>6)&&(e=0);for(let t=0;t<7;t++){let i=e+t;this.dayOrder[t]=i<7?i:i-7}}}static create(e,t,i){return new Ie(e,t,i)}static setDefaultFormat(e){Object.assign(S,e)}_minDate(){let e=this.options.minDate;if(e!=""){if(typeof e=="string"){const t=H(e,this.dateFormat);if(!t)return-1;e=t}return this.minYear=e.getFullYear(),this.minMonth=+(this.minYear+g.leftPad(e.getMonth(),2)),new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0).getTime()}return-1}_maxDate(){let e=this.options.maxDate;if(e!=""){if(typeof e=="string"){const t=H(e,this.dateFormat);if(!t)return-1;e=t}return this.maxYear=e.getFullYear(),this.maxMonth=+(this.maxYear+g.leftPad(e.getMonth(),2)),new Date(e.getFullYear(),e.getMonth(),e.getDate(),23,59).getTime()}return-1}set viewMode(e){this._viewMode!==e&&(this._viewMode=e,this.changeViewMode(e))}get viewMode(){return this._viewMode}changeViewMode(e){var t;(t=this.datetimeElement.querySelector(".ddtp-datetime"))==null||t.setAttribute("view-mode",e),e==="year"?this.yearDraw():e==="month"?this.monthDraw():this.dayDraw()}initHeaderEvent(){var e,t,i,s;const n=this.options.isRTL;(e=this.datetimeElement.querySelector(".ddtp-move-btn.prev"))==null||e.addEventListener("click",a=>{this.moveDate(n?"next":"prev",a)}),(t=this.datetimeElement.querySelector(".ddtp-move-btn.next"))==null||t.addEventListener("click",a=>{this.moveDate(n?"prev":"next",a)}),(i=this.datetimeElement.querySelector(".ddtp-header-year"))==null||i.addEventListener("click",a=>{this.viewMode=m.year}),(s=this.datetimeElement.querySelector(".ddtp-header-month"))==null||s.addEventListener("click",a=>{this.viewMode=m.month})}initDateEvent(){var e,t;(e=this.datetimeElement.querySelector(".ddtp-day-body"))==null||e.addEventListener("click",i=>{var s;const n=i.target;if(n.classList.contains("ddtp-day")||n.closest(".ddtp-day")){const o=(n.getAttribute("data-day")||"1").split(",");if(this.currentDate.setMonth(+o[0]-1),this.currentDate.setDate(+o[1]),this.isDayDisabled(this.currentDate))return;(s=this.datetimeElement.querySelector(".select"))==null||s.classList.remove("select"),n.classList.add("select"),this.isTimeMode()&&(this.currentDate.setHour(+this.hourInputEle.value),this.currentDate.setMinutes(+this.minuteInputEle.value)),this.dateChangeEvent(i)}}),(t=this.datetimeElement.querySelector(".ddtp-today"))==null||t.addEventListener("click",i=>{const s=new N(H(this.todayDate,S.date)||new Date);this.currentDate.setYear(s.getYear()),this.currentDate.setMonth(s.getMonth()-1),this.currentDate.setDate(s.getDate()),this.changeViewMode(this.initMode)})}isTimeMode(){return this._viewMode===m.time||this._viewMode===m.datetime}getTimeNumberValue(e){return g.isNumeric(e)?parseInt(e,10):0}initTimeEvent(){var e;if(!this.isTimeMode())return;let t=this.currentDate.format("HH");const i=this.datetimeElement,s=i.querySelector(".ddtp-hour"),n=i.querySelector(".ddtp-hour-range");s.value=t,n.value=t,s.addEventListener("input",d=>{const h=d.target;let u=this.getTimeNumberValue(h.value),c=g.leftPadClamp(u,2,"0");parseInt(c,10)>23&&(c="23"),s.value=c,n.value=c}),n.addEventListener("input",d=>{const h=d.target;s.value=g.leftPadClamp(h.value,2,"0")});let a=this.currentDate.format("mm");const o=i.querySelector(".ddtp-minute"),r=i.querySelector(".ddtp-minute-range");o.value=a,r.value=a,o.addEventListener("input",d=>{const h=d.target;let u=this.getTimeNumberValue(h.value),c=g.leftPadClamp(u,2,"0");parseInt(c,10)>59&&(c="59"),o.value=c,r.value=c}),r.addEventListener("input",d=>{const h=d.target;o.value=g.leftPadClamp(h.value,2,"0")}),(e=i.querySelector(".time-select"))==null||e.addEventListener("click",d=>{this.currentDate.setHour(+s.value),this.currentDate.setMinutes(+o.value),this.dateChangeEvent(d)})}moveDate(e,t){if(this._viewMode===m.date||this._viewMode===m.datetime){this.currentDate.setDate(1),this.currentDate.addMonth(e==="prev"?-1:1),this.dayDraw();return}if(this._viewMode===m.month){this.currentDate.setDate(1),this.currentDate.addYear(e==="prev"?-1:1),this.monthDraw();return}this._viewMode===m.year&&(this.currentDate.setDate(1),this.currentDate.addYear(e==="prev"?-16:16),this.yearDraw())}getDateValue(){return this.currentDate.format(this.dateFormat)}static setOptions(e){ie=Object.assign({},ie,e)}show(){if(this.isVisible)return;this.isVisible=!0;const e=ht();this.datetimeElement.classList.remove("hide"),this.datetimeElement.classList.add("show");const t=this.targetElement.getBoundingClientRect(),i=window.scrollY||document.documentElement.scrollTop,s=window.scrollX||document.documentElement.scrollLeft,n=this.datetimeElement.offsetHeight,a=this.targetElement.offsetHeight+2;let o=t.left+s,r=0;this.options.isPositionFixed?(r=t.top+a,o=t.left):t.top+a+n>e.clientHeight&&t.top>=n?r=i+t.top-n-2:r=i+t.top+a,this.datetimeElement.setAttribute("style",`${this.options.isPositionFixed?"position:fixed;":""}top:${r}px;left:${o}px;z-index:${this.options.zIndex}`),document.addEventListener("click",this._documentClickEvent)}hide(){this.isVisible=!1,!(this.options.onClose&&this.options.onClose()===!1)&&(this.datetimeElement.classList.remove("show"),this.datetimeElement.classList.add("hide"),document.removeEventListener("click",this._documentClickEvent))}initTargetEvent(){this.targetElement&&this.targetElement.addEventListener("click",e=>{this.show()})}afterChangeDatepicker(){const e=this.currentDate.format(this.dateFormat);this.options.afterChangeDatepicker&&g.isFunction(this.options.afterChangeDatepicker)&&this.options.afterChangeDatepicker(e,this.viewMode)}beforeChangeDatepicker(){const e=this.currentDate.format(this.dateFormat);if(this.options.beforeChangeDatepicker&&g.isFunction(this.options.beforeChangeDatepicker)){if(this.options.beforeChangeDatepicker(e,i=>{i!==!1&&this.refresh(!1)})===!1)return;this.refresh(!1);return}this.refresh(!1)}dateChangeEvent(e){const t=this.currentDate.format(this.dateFormat);this.options.onSelect&&this.options.onSelect(t,this.viewMode,e)===!1||(this.isInput&&this.targetElement.setAttribute("value",t),!this.options.inline&&this.options.autoClose&&this.hide())}createDatetimeTemplate(){const e=this.options.showMonthAfterYear;let t=`<div class="ddtp-datetime ${this.options.isRTL?"rtl":""}" view-mode="${this._viewMode}">
|
|
82
|
-
<div class="ddtp-header">
|
|
83
|
-
<span class="${e?"ddtp-header-year":"ddtp-header-month"}"></span>
|
|
84
|
-
<span class="${e?"ddtp-header-month":"ddtp-header-year"}"></span>
|
|
85
|
-
|
|
86
|
-
<span class="ddtp-date-move">
|
|
87
|
-
<a href="javascript:;" class="ddtp-move-btn prev">
|
|
88
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>
|
|
89
|
-
</a>
|
|
90
|
-
<a href="javascript:;" class="ddtp-move-btn next">
|
|
91
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>
|
|
92
|
-
</a>
|
|
93
|
-
</span>
|
|
94
|
-
</div>
|
|
95
|
-
<div class="ddtp-body">
|
|
96
|
-
<table class="ddtp-days">
|
|
97
|
-
<thead class="ddtp-day-header">
|
|
98
|
-
<tr>
|
|
99
|
-
<td class="ddtp-day-label ${k[this.dayOrder[0]]}">${v.getWeeksMessage(this.dayOrder[0])}</td>
|
|
100
|
-
<td class="ddtp-day-label ${k[this.dayOrder[1]]}">${v.getWeeksMessage(this.dayOrder[1])}</td>
|
|
101
|
-
<td class="ddtp-day-label ${k[this.dayOrder[2]]}">${v.getWeeksMessage(this.dayOrder[2])}</td>
|
|
102
|
-
<td class="ddtp-day-label ${k[this.dayOrder[3]]}">${v.getWeeksMessage(this.dayOrder[3])}</td>
|
|
103
|
-
<td class="ddtp-day-label ${k[this.dayOrder[4]]}">${v.getWeeksMessage(this.dayOrder[4])}</td>
|
|
104
|
-
<td class="ddtp-day-label ${k[this.dayOrder[5]]}">${v.getWeeksMessage(this.dayOrder[5])}</td>
|
|
105
|
-
<td class="ddtp-day-label ${k[this.dayOrder[6]]}">${v.getWeeksMessage(this.dayOrder[6])}</td>
|
|
106
|
-
</tr>
|
|
107
|
-
</thead>
|
|
108
|
-
<tbody class="ddtp-day-body">
|
|
109
|
-
</tbody>
|
|
110
|
-
|
|
111
|
-
<tfoot class="ddtp-day-footer">
|
|
112
|
-
<td colspan="7">
|
|
113
|
-
<div style="width:99%;text-align:center;margin-top: 5px;${this.options.enableTodayBtn?"":"display:none;"}"><button type="button" class="ddtp-today">${v.getMessage("today")}</button></div>
|
|
114
|
-
<div class="footer-tooltip"></div>
|
|
115
|
-
</td>
|
|
116
|
-
</tfoot>
|
|
117
|
-
</table>
|
|
118
|
-
|
|
119
|
-
<div class="ddtp-times">
|
|
120
|
-
<div class="time-container">
|
|
121
|
-
<div class="ddtp-time">
|
|
122
|
-
<span>H: </span><input type="number" class="ddtp-hour" min="0" max="23" maxlength="2">
|
|
123
|
-
<input type="range" min="0" max="23" class="ddtp-hour-range">
|
|
124
|
-
</div>
|
|
125
|
-
<div class="ddtp-time">
|
|
126
|
-
<span>M: </span><input type="number" class="ddtp-minute" min="0" max="59" size="2" maxlength="2">
|
|
127
|
-
<input type="range" min="0" max="59" class="ddtp-minute-range">
|
|
128
|
-
</div>
|
|
129
|
-
</div>
|
|
130
|
-
<div class="ddtp-btn">
|
|
131
|
-
<button type="button" class="time-select">${v.getMessage("ok")}</button>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
|
|
135
|
-
<div class="ddtp-months">
|
|
136
|
-
</div>
|
|
137
|
-
|
|
138
|
-
<div class="ddtp-years">
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
</div>`;this.datetimeElement.innerHTML=t}refresh(e){if(this._viewMode===m.date||this._viewMode===m.datetime){this.dayDraw(e);return}if(this._viewMode===m.month){this.monthDraw(e);return}this._viewMode===m.year&&this.yearDraw(e)}yearDraw(e){var t;const i=this.currentDate.format("YYYY");if(e!==!1&&this.initMode==m.year){this.beforeChangeDatepicker();return}const s=+i-8;this.datetimeElement.querySelector(".ddtp-header-year").textContent=`${s} ~ ${s+15}`;const n=g.isFunction(this.options.beforeDrawDate),a=n?this.options.beforeDrawDate:!1,o=[];for(let r=0;r<16;r++){const d=s+r;let u=this.isYearDisabled(d)?" disabled":"",c="";if(n&&a){const p=a({mode:this._viewMode,date:d});u+=p.style?" "+p.style:"",c=p.tooltip,c=c?`title="${c}"`:""}o.push(`<div class="ddtp-year ${u}" data-year="${d}" ${c}>${d}</div>`)}this.datetimeElement.querySelector(".ddtp-years").innerHTML=o.join(""),this.initMode==m.year&&this.afterChangeDatepicker(),(t=this.datetimeElement.querySelectorAll(".ddtp-year"))==null||t.forEach(r=>{r.addEventListener("click",d=>{const h=d.target;if(h){const u=h.getAttribute("data-year");if(u){const c=+u;if(this.isYearDisabled(c))return;if(this.initMode==m.year){if(this.isYearDisabled(c))return;this.currentDate.setYear(c),this.dateChangeEvent(d);return}this.currentDate.setYear(c),this.viewMode=this.initMode}}})})}monthDraw(e){var t;if(e!==!1&&this.initMode==m.month){this.beforeChangeDatepicker();return}const i=this.currentDate.format("YYYY");this.datetimeElement.querySelector(".ddtp-header-year").textContent=`${i}`;const s=this.datetimeElement.querySelectorAll(".ddtp-months > .ddtp-month");if(s.length>0){if(this.isYearDisabled(+i)){s.forEach(r=>{r.classList.contains("disabled")||r.classList.add("disabled")});return}s.forEach((r,d)=>{this.isMonthDisabled(+i,d)?r.classList.contains("disabled")||r.classList.add("disabled"):r.classList.remove("disabled")}),this.initMode==m.month&&this.afterChangeDatepicker();return}this.datetimeElement.querySelector(".ddtp-header-month").textContent=this.currentDate.format("MMMM");const n=g.isFunction(this.options.beforeDrawDate),a=n?this.options.beforeDrawDate:!1,o=[];for(let r=0;r<12;r++){let h=this.isMonthDisabled(+i,r)?" disabled":"",u="";if(n&&a){const c=a({mode:this._viewMode,date:i+"/"+(r+1)});h+=c.style?" "+c.style:"",u=c.tooltip,u=u?`title="${u}"`:""}o.push(`<div class="ddtp-month ${h}" data-month="${r}" ${u}>${v.getMonthsMessage(r,"abbr")}</div>`)}this.datetimeElement.querySelector(".ddtp-months").innerHTML=o.join(""),this.initMode==m.month&&this.afterChangeDatepicker(),(t=this.datetimeElement.querySelectorAll(".ddtp-month"))==null||t.forEach(r=>{r.addEventListener("click",d=>{const h=d.target;if(h){const u=h.getAttribute("data-month");if(u){if(this.isMonthDisabled(this.currentDate.getYear(),+u))return!1;if(this.initMode==m.month){this.currentDate.setMonth(+u),this.dateChangeEvent(d);return}this.currentDate.setMonth(+u),this.viewMode=this.initMode,this.dayDraw()}}})})}dayDraw(e){if(e!==!1&&(this.initMode==m.date||this.initMode==m.datetime)){this.beforeChangeDatepicker();return}let t=this.currentDate.clone();const i=t.getMonth();t.setDate(1),this.datetimeElement.querySelector(".ddtp-header-year").textContent=t.format("YYYY"),this.datetimeElement.querySelector(".ddtp-header-month").textContent=t.format("MMMM");let s=t.getDay();s=s-this.dayOrder[0],s>=0?t.addDate(-s):t.addDate(-(7+s));const n=g.isFunction(this.options.beforeDrawDate),a=n?this.options.beforeDrawDate:!1,o=[];for(let r=0;r<42;r++){let d;r==0?d=t:d=t.clone().addDate(r);const h=d.format(S.date);r%7==0&&o.push((r==0?"":"</tr>")+"<tr>");let u=this.isDayDisabled(d),c=k[this.dayOrder[r%7]];const p=d.getMonth();p!=i&&(p<i?c+=p==1?" new":" old":c+=i==1&&p==12?" old":" new"),c+=this.todayDate==h?" ddtp-today":"",c+=u?" disabled":"";let x="";if(n&&a){const V=a({mode:this._viewMode,item:d,date:d.format(this.dateFormat)});c+=V.style?" "+V.style:"",c+=V.check?" ddtp-event":"",x=V.tooltip,x=x?`title="${x}"`:""}o.push(`<td class="ddtp-day ${c}" data-day="${d.format("M,D")}" ${x}>`),o.push(`<span>${d.format("d")}</span>`),o.push("</td>")}o.push("</tr>"),this.datetimeElement.querySelector(".ddtp-day-body").innerHTML=o.join(""),(this.initMode==m.date||this.initMode==m.datetime)&&this.afterChangeDatepicker()}isDayDisabled(e){return this.minDate!=-1&&this.minDate>e.getTime()||this.maxDate!=-1&&this.maxDate<e.getTime()}isYearDisabled(e){return this.minYear!=-1&&this.minYear>e||this.maxYear!=-1&&this.maxYear<e}isMonthDisabled(e,t){if(this.isYearDisabled(e))return!0;let i=+(e+g.leftPad(t,2));return this.minMonth!=-1&&this.minMonth>i||this.maxMonth!=-1&&this.maxMonth<i}static setMessage(e){v.setDefaultMessage(e)}};ee.VERSION="0.0.13";ee.format=ke;ee.parser=H;let dt=ee;function ht(){return{clientHeight:Math.max(document.documentElement.clientHeight,window.innerHeight||0),clientWidth:Math.max(document.documentElement.clientWidth,window.innerWidth||0)}}class B extends f{constructor(e,t,i){super(i,e,t),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){let e;this.field.rendererOptions=Object.assign({},this.field.rendererOptions),typeof this.field.rendererOptions.onSelect<"u"&&(e=typeof this.field.rendererOptions.onSelect),E(this.field.rendererOptions.mode)&&(this.field.renderType=="datemonth"||this.field.renderType=="datehour"?this.field.rendererOptions.mode=this.field.renderType.replace("date",""):this.field.rendererOptions.mode=this.field.renderType),this.field.rendererOptions.onSelect=(t,i)=>{e&&e(t,i),this.setValue(t),this.valid()},this.dateObj=new dt(this.element,this.field.rendererOptions,{})}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
76
|
+
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.element}valid(){const e=H(this.getValue(),this.field);return v(this.field,this.rowElement,e),e}}class q extends f{constructor(e,t,i){super(i,e,t),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){let e;this.field.rendererOptions=Object.assign({},this.field.rendererOptions),typeof this.field.rendererOptions.onSelect<"u"&&(e=this.field.rendererOptions.onSelect),h.isUndefined(this.field.rendererOptions.mode)&&(this.field.renderType=="datemonth"||this.field.renderType=="datehour"?this.field.rendererOptions.mode=this.field.renderType.replace("date",""):this.field.rendererOptions.mode=this.field.renderType),this.field.rendererOptions.onSelect=(t,i)=>{h.isFunction(e)&&e(t,i),this.setValue(t),this.valid()},this.dateObj=new ae.DateTimePicker(this.element,this.field.rendererOptions,{})}createField(){const e=this.field,t=this.rowElement.querySelector(".df-field-container");t.innerHTML=`
|
|
142
77
|
<div class="df-field">
|
|
143
78
|
<input type="text" name="${e.$xssName}" class="df-form-field df-text df-help-icon" autocomplete="off" readonly/>
|
|
144
79
|
</div>
|
|
145
80
|
${f.getDescriptionTemplate(e)}
|
|
146
81
|
<div class="df-help-message"></div>
|
|
147
|
-
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1)
|
|
82
|
+
`,this.element=t.querySelector(`[name="${e.$xssName}"]`)}getValue(){return this.element.value}setValue(e,t){if(t!==!1&&this.changeEventCall(this.field,null,this,e)===!1){this.element.value=this.field.$value;return}this.field.$value=e,this.element.value=e}reset(){this.setDefaultInfo(),this.setDisabled(!1),$(this.rowElement)}getElement(){return this.element}valid(){const e=x(this.getValue(),this.field);return v(this.field,this.rowElement,e),e}}class Ve extends f{constructor(e,t,i){super(i,e,t),e.renderer?this.customFunction=e.renderer:this.customFunction={},this.mounted()}mounted(){this.customFunction.mounted&&this.customFunction.mounted.call(this,this.field,this.rowElement),this.tabContainerElement.querySelectorAll(".df-tab-item").forEach(e=>{e.addEventListener("click",t=>{this.clickEventHandler(e,t)})})}clickEventHandler(e,t){this.setActive(e.getAttribute("data-tab-id")??"")}setActive(e){var s,l;const t=this.tabContainerElement.querySelector(`[data-tab-id="${e}"]`);if(!t)return;if(!t.classList.contains("active")){for(let a of((s=t==null?void 0:t.parentElement)==null?void 0:s.children)??[])a.classList.remove("active");t.classList.add("active")}const i=this.rowElement.querySelector(`[tab-panel-id="${e}"]`);if(!(i!=null&&i.classList.contains("active"))){for(let a of((l=i==null?void 0:i.parentElement)==null?void 0:l.children)??[])a.classList.remove("active");i==null||i.classList.add("active")}}static isDataRender(){return!1}static isChildrenCreate(){return!1}createField(){var a,r;const e=this.field,t=this.daraForm.formTemplate,i=this.daraForm.getOptions(),s=this.rowElement.querySelector(".df-field-container");let l=w(i,e);if(s.innerHTML=`
|
|
148
83
|
<div class="df-field ">
|
|
149
|
-
<div class="df-tab-header ${
|
|
84
|
+
<div class="df-tab-header ${l.tabAlignClass}"></div>
|
|
150
85
|
</div>
|
|
151
86
|
<div class="df-tab-body"></div>
|
|
152
|
-
`,e.children){let
|
|
87
|
+
`,e.children){let o=!0;const d=this.getForm().getOptions();let u=w(d,e,null,t.isLabelHide(e));for(const c of e.children){c.$parent=e,t.addRowFieldInfo(c);let m=c.$key,p=`<span class="df-tab-item ${o?"active":""}" data-tab-id="${m}"><a href="javascript:;">${c.label}</a></span>`,M=`<div class="df-tab-panel ${o?"active":""}" tab-panel-id="${m}">${f.getDescriptionTemplate(c)}
|
|
153
88
|
<div class="df-tab-group"></div>
|
|
154
|
-
</div>`;const
|
|
89
|
+
</div>`;const C=h.templateToElement(p),F=h.templateToElement(M);if(o=!1,C&&((a=s.querySelector(".df-tab-header"))==null||a.appendChild(C)),F&&((r=s.querySelector(".df-tab-body"))==null||r.appendChild(F),c.children)){let k={style:{width:d.style.width??"100%",labelWidth:d.style.labelWidth??3,valueWidth:d.style.valueWidth??9,position:d.style.position??"left-right"},useTypeValue:d.useTypeValue,autoCreate:!1,notValidMessage:"This form is not valid.",fields:[]};c.$tabForm=new N(document.createElement("div"),k),c.$instance=new c.$renderType(c,F==null?void 0:F.querySelector(".df-tab-group"),c.$tabForm),c.$tabForm.formTemplate.childTemplate(c,u)}}this.tabContainerElement=s}}getValue(){var i;if(this.customFunction.getValue)return this.customFunction.getValue.call(this,this.field,this.rowElement);let e={},t=this.getForm().getOptions().useTypeValue;for(const s of this.field.children){const l=(i=s.$tabForm)==null?void 0:i.getValue(!1);if(t)e[s.$validName]=l;else for(let[a,r]of Object.entries(l))e[a]=r}return e}setValue(e){var t;for(const i of this.field.children){let s=e[i.$validName];s&&((t=i.$tabForm)==null||t.setValue(s))}}reset(){var e;for(const t of this.field.children??[])(e=t.$tabForm)==null||e.resetForm()}getElement(){return this.rowElement}valid(){var t;if(this.customFunction.valid){const i=this.customFunction.valid.call(this,this.field,this.rowElement);v(this.field,this.rowElement,i);return}const e=this.field;for(const i of e.children){const s=(t=i.$tabForm)==null?void 0:t.validForm();if(s&&s.length>0){const l=s[0];if(l.message)return l.message="["+this.field.label+"] "+l.message,l}}return!0}focus(){}}let A=0;class we extends f{constructor(e,t,i){super(i,e,t),this.allAddRowInfo={},e.renderer?this.customFunction=e.renderer:this.customFunction={};const s={style:{width:"100%",labelWidth:3,valueWidth:9,position:"left-right"},autoCreate:!1,notValidMessage:"This form is not valid.",fields:[]};this.gridForm=new N(document.createElement("div"),s),this.mounted(),this.setDefaultOption(),this.setDefaultInfo()}mounted(){var e;this.addRow(),this.customFunction.mounted&&this.customFunction.mounted.call(this,this.field,this.rowElement),(e=this.rowElement.querySelector(".df-grid-add-row-btn"))==null||e.addEventListener("click",t=>{this.addRow()})}static isDataRender(){return!1}static isChildrenCreate(){return!1}createField(){var a,r,o,d;const e=this.field,t=this.rowElement.querySelector(".df-field-container");let i=[],s=[],l=[];if(l.push(""),e.children){s.push("<colgroup>"),i.push("<tr>"),s.push('<col style="width:38px">'),i.push("<th>"),((a=e.rendererOptions)==null?void 0:a.disableAddButton)!==!0&&i.push('<button type="button" class="df-btn df-grid-add-row-btn" title="Add"><i class="df-icon df-add-icon"></i></button>'),i.push("</th>");for(const u of e.children)s.push(`<col style="width:${((r=u.style)==null?void 0:r.width)??"*"}">`),i.push(`<th class="df-grid-header">${u.label}</th>`);s.push("</colgroup>"),i.push("</tr>")}t.innerHTML=`
|
|
155
90
|
<div class="df-grid-field">
|
|
156
|
-
${
|
|
157
|
-
<div class="df-grid-container ${((
|
|
91
|
+
${l.join("")}
|
|
92
|
+
<div class="df-grid-container ${((o=e.style)==null?void 0:o.position)??""}" style="height:${((d=e.rendererOptions)==null?void 0:d.height)??"auto"};">
|
|
158
93
|
<table class="df-grid">${s.join("")}<thead>${i.join("")}</thead><tbody></tbody></table>
|
|
159
94
|
</div>
|
|
160
95
|
</div>
|
|
161
|
-
`}addRow(e){var
|
|
96
|
+
`}addRow(e){var o,d,u;let t=[];const i=this.daraForm.getOptions(),s=this.gridForm.formTemplate,l=this.field.$xssName;++A;let a=[];t.push('<tr class="df-grid-row">'),t.push("<td>"),((o=this.field.rendererOptions)==null?void 0:o.disableRemoveButton)!==!0&&t.push(`<button type="button" data-row-idx="${A}" class="df-btn df-grid-row-remove"><i class="df-icon df-remove-icon"></i></button>`),t.push("</td>");for(const c of this.field.children){let m=w(i,c,null,!0),p=O({},c);a.push(p),p.$orgin=c,p.name=p.name+"_"+A,p.$xssName=l+"_"+ie(p),s.addRowFieldInfo(p),t.push(`<td id="${p.$xssName}"><div class="df-field-container ${p.required?"required":""} " style="${m.valueStyle}"></div></td>`)}t.push("</tr>"),this.allAddRowInfo[A]=a;const r=h.templateToElement(t.join(""));r&&((d=this.rowElement.querySelector("tbody"))==null||d.append(r),(u=r.querySelector(".df-grid-row-remove"))==null||u.addEventListener("click",c=>{this.removeRow(c)})),e=e??{};for(let c of a)c.$instance=new c.$renderType(c,r==null?void 0:r.querySelector(`#${c.$xssName}`),this.gridForm),h.hasProperty(e,c.$orgin.name)&&c.$instance.setValue(e[c.$orgin.name])}removeRow(e){var s;const i=e.target.closest("tr");if(i){let l=((s=e.currentTarget)==null?void 0:s.getAttribute("data-row-idx"))||"-1";this.removeFieldInfo(l),i.remove()}}removeFieldInfo(e){let t=[];if(h.isNil(e)){for(let i in this.allAddRowInfo)t=t.concat(this.allAddRowInfo[i]);this.allAddRowInfo={}}else if(e){const i=parseInt(e,10);t=t.concat(this.allAddRowInfo[i]),delete this.allAddRowInfo[i]}for(let i of t)this.gridForm.getFieldInfoMap().removeFieldInfo(i.name)}allRemoveRow(){var e;(e=this.rowElement.querySelector("tbody"))==null||e.replaceChildren(),this.removeFieldInfo()}getValue(){if(this.customFunction.getValue)return this.customFunction.getValue.call(this,this.field,this.rowElement);let e=[];const t=this.field.children,i=t.length;for(let s in this.allAddRowInfo){const l=this.allAddRowInfo[s];let a={};for(let r=0;r<i;r++){let o=t[r];a[o.name]=this.gridForm.getFieldValue(l[r].name)}e.push(a)}return e}setValue(e){this.field.$value=e;let t=[];h.isArray(e)?t=e:h.isPlainObject(e)&&t.push(e),this.allRemoveRow();for(let i of t)this.addRow(i)}reset(){this.setDefaultInfo(),$(this.rowElement)}getElement(){return this.customFunction.getElement?this.customFunction.getElement.call(this,this.field,this.rowElement):null}valid(){if(this.customFunction.valid){const t=this.customFunction.valid.call(this,this.field,this.rowElement);v(this.field,this.rowElement,t);return}const e=this.gridForm.validForm();if(e.length>0){const t=e[0];if(t.message)return t.message="["+this.field.label+"] "+t.message,t}return!0}focus(){}}const g={NAN:"nan",MIN:"minimum",EXCLUSIVE_MIN:"exclusiveMinimum",MAX:"maximum",EXCLUSIVE_MAX:"exclusiveMaximum",MIN_LENGTH:"minLength",MAX_LENGTH:"maxLength",BETWEEN:"between",BETWEEN_EXCLUSIVE_MIN:"betweenExclusiveMin",BETWEEN_EXCLUSIVE_MAX:"betweenExclusiveMax",BETWEEN_EXCLUSIVE_MINMAX:"betweenExclusiveMinMax",REQUIRED:"required"},xe="dff",R={number:ce,textarea:fe,dropdown:j,checkbox:z,radio:B,text:me,password:pe,file:ve,custom:$e,group:Ee,hidden:ye,button:Fe,range:be,datehour:q,datemonth:q,date:q,datetime:q,tab:Ve,grid:we},ne={horizontal:"horizontal"},y={"top-left":["top","df-txt-left"],"top-center":["top","df-txt-center"],"top-right":["top","df-txt-right"],"left-left":["","df-txt-left"],"left-center":["","df-txt-center"],"left-right":["","df-txt-right"],"right-right":["right","df-txt-right"],"right-center":["right","df-txt-center"],"right-left":["right","df-txt-left"],"bottom-left":["bottom","df-txt-left"],"bottom-center":["bottom","df-txt-center"],"bottom-right":["bottom","df-txt-right"]};y.top=y["top-left"];y.right=y["right-right"];y.left=y["left-left"];y.bottom=y["bottom-left"];let P={required:"{label} 필수 입력사항입니다.",fileButton:"파일찾기",selection:"선택",string:{minLength:"{minLength} 글자 이상으로 입력하세요.",maxLength:"{maxLength} 글자 이하로 입력하세요.",between:"{minLength} ~ {maxLength} 사이의 글자를 입력하세요."},number:{nan:"숫자만 입력 가능 합니다.",minimum:"{minimum} 값과 같거나 커야 합니다",exclusiveMinimum:"{minimum} 보다 커야 합니다",maximum:"{maximum} 값과 같거나 작아야 합니다",exclusiveMaximum:"{maximum} 보다 작아야 합니다.",between:"{minimum}~{maximum} 사이의 값을 입력하세요.",betweenExclusiveMin:"{minimum} 보다 크고 {maximum} 보다 같거나 작아야 합니다",betweenExclusiveMax:"{minimum} 보다 같거나 크고 {maximum} 보다 작아야 합니다",betweenExclusiveMinMax:"{minimum} 보다 크고 {maximum} 보다 작아야 합니다"},regexp:{mobile:"핸드폰 번호가 유효하지 않습니다.",email:"이메일이 유효하지 않습니다.",url:"URL이 유효하지 않습니다.",alpha:"영문만 입력 가능 합니다.","alpha-num":"영문과 숫자만 입력 가능 합니다.",number:"숫자만 입력 가능 합니다.",variable:"값이 유효하지 않습니다.","number-char":"숫자, 문자 각각 하나 이상 포함 되어야 합니다.","upper-char":"대문자가 하나 이상 포함 되어야 합니다.","upper-char-special":"대문자,소문자,특수문자 각각 하나 이상 포함 되어야 합니다.","upper-char-special-number":"대문자,소문자,특수문자,숫자 각각 하나 이상 포함 되어야합니다."}},Ce=class{constructor(){this.lang=P}set(e){this.lang=Object.assign({},P,e)}getMessage(e){return this.lang[e]}validMessage(e,t){let i="",s=[];t.regexp&&(i=this.lang.regexp[t.regexp],s.push(i)),(t.constraint??[]).forEach(r=>{r===g.REQUIRED&&(i=Q(this.lang.required,e),s.push(i)),e.renderType=="number"||e.renderType=="range"?(i=this.lang.number[r],s.push(i)):(i=this.lang.string[r],s.push(i))});const l=[],a=Object.assign({},{name:e.name,label:e.label},e.rule);return s.forEach(r=>{r&&l.push(Q(r,a))}),t.validator&&l.push(t.validator.message),l}};function Q(n,e){return n.replace(/\{{1,1}([A-Za-z0-9_.]*)\}{1,1}/g,(t,i)=>typeof e[i]<"u"?e[i]:t)}const b=new Ce,Ie=n=>{let e;return n.renderType&&(e=R[n.renderType]),e&&(e.isDataRender()===!1||!h.isUndefined(n.name))?e:h.isUndefined(n.name)?n.children?R.group:R.hidden:R.text};class Se{constructor(e,t){this.fieldIdx=0,this.allFieldInfo={},this.keyNameMap={},this.conditionFields=[],this.fieldPrefix=`${xe}_${h.getHashCode(e)}`,this.form=t}addField(e){re(e),this.fieldIdx+=1,e.$key=`${this.fieldPrefix}_${this.fieldIdx}`,e.$validName=e.name??e.label,this.keyNameMap[e.$validName]=e.$key,this.allFieldInfo[e.$key]=e,e.$renderType=Ie(e),e.conditional&&this.conditionFields.push(e.$key)}getFieldName(e){return this.allFieldInfo[this.keyNameMap[e]]}get(e){return this.allFieldInfo[e]}hasFieldName(e){return!!(this.keyNameMap[e]&&this.allFieldInfo[this.keyNameMap[e]])}getAllFieldInfo(){return this.allFieldInfo}removeFieldInfo(e){const t=this.keyNameMap[e];h.isUndefined(t)||(this.removeFieldInfoByKey(t),delete this.keyNameMap[e])}removeFieldInfoByKey(e){const t=this.allFieldInfo[e];t&&this.keyNameMap[t.$validName]===e&&delete this.keyNameMap[t.$validName],delete this.allFieldInfo[e],this.conditionFields=this.conditionFields.filter(i=>i!==e)}getAllFieldValue(e,t){const i=this.form.getOptions().useTypeValue;if(t!==!0){for(let[s,l]of Object.entries(this.allFieldInfo))e=G(e,l,i);return e}return new Promise((s,l)=>{for(let[a,r]of Object.entries(this.allFieldInfo)){if(!r.$instance.isEnableView())continue;let o=this.getFieldValidation(r,!0);if(o!==!0){l(new Error(o.message,{cause:o}));return}e=G(e,r,i)}s(e)})}getFormDataValue(e,t){if(t!==!0){let i=new FormData;for(let[s,l]of Object.entries(e))i.set(s,l);for(let[s,l]of Object.entries(this.allFieldInfo))Y(i,l,l.$instance.getValue());return i}return new Promise((i,s)=>{let l=new FormData;for(let[a,r]of Object.entries(e))l.set(a,r);for(let[a,r]of Object.entries(this.allFieldInfo)){if(!r.$instance.isEnableView())continue;let o=this.getFieldValidation(r,!0);if(o!==!0){s(new Error(o.message,{cause:o}));return}Y(l,r,r.$instance.getValue())}i(l)})}isConditionFieldCheck(e){let t=e;for(;typeof t<"u";){if(!this.isConditionField(t))return!1;t=t.$parent}return!0}isConditionField(e){if(!this.conditionFields.includes(e.$key))return!0;let t=!1;if(e.conditional.custom)t=e.conditional.custom.call(null,e);else if(e.conditional.field){const i=this.getFieldName(e.conditional.field);i&&e.conditional.eq==i.$instance.getValue()&&(t=!0)}return t}conditionCheck(){this.conditionFields.forEach(e=>{const t=this.allFieldInfo[e];this.isConditionField(t)?t.$instance.show():t.$instance.hide()})}getFieldValidation(e,t){if(!this.isConditionFieldCheck(e))return!0;const i=e.$instance;let s=i.valid();return s===!0?!0:(t&&i.focus(),s=s,h.isUndefined(s.message)&&(s.message=b.validMessage(e,s)[0]),s)}}function G(n,e,t){if(te(e))return n;const i=e.$instance.getValue();if(e.renderType==="file"){const s=i.uploadFile;n[e.$validName]=s,n[e.$validName+"RemoveIds"]=i.removeIds}else if(t!==!0)if(T(e))for(let[s,l]of Object.entries(i))n[s]=l;else h.isNil(e.name)||(n[e.name]=i);else n[e.$validName]=i;return n}function Y(n,e,t){if(te(e))return n;const i=e.$instance.getValue();if(e.renderType==="file"){const s=i.uploadFile;n.delete(e.$validName);for(let l of s)n.append(e.$validName,l);n.set(e.$validName+"RemoveIds",i.removeIds)}else if(t!==!0)if(T(e))for(let[s,l]of Object.entries(i))n.set(s,l);else h.isNil(e.name)||n.set(e.$validName,i);else n.set(e.$validName,i);return n}class Te{constructor(e,t,i){this.addRowFields=[],this.daraform=e,this.options=e.getOptions(),this.formElement=t,this.fieldInfoMap=i}addRow(e){this.checkHiddenField(e)||(this.addRowFields=[],this.addRowTemplate(e))}addRowTemplate(e){let t=this.isLabelHide(e),i=w(this.options,e,null,t);this.addRowFieldInfo(e);const s=h.templateToElement(`
|
|
162
97
|
<div class="df-row df-form-group ${i.fieldClass}" id="${e.$key}">
|
|
163
98
|
${t?"":`<div class="df-label ${i.labelClass} ${i.labelAlignClass}" title="${e.label??""}" style="${i.labelStyle}">${this.getLabelTemplate(e)}</div>`}
|
|
164
99
|
|
|
165
100
|
<div class="df-field-container ${i.valueClass} ${e.required?"required":""}" style="${i.valueStyle}"></div>
|
|
166
101
|
</div>
|
|
167
|
-
`);s&&(this.createField(e,s),this.formElement.append(s),e.children&&this.childTemplate(e,i))}createField(e,t){e.$instance=new e.$renderType(e,t,this.daraform)}childTemplate(e,t){let i=null,s=!0,
|
|
168
|
-
${
|
|
169
|
-
<span class="df-field-container ${
|
|
170
|
-
</div>`);
|
|
102
|
+
`);s&&(this.createField(e,s),this.formElement.append(s),e.children&&this.childTemplate(e,i))}createField(e,t){e.$instance=new e.$renderType(e,t,this.daraform)}childTemplate(e,t){let i=null,s=!0,l=!1;if(!e.$renderType.isChildrenCreate())return;const a=document.createElement("div");a.classList.add("df-row",t.rowStyleClass??"");let r=0;for(const o of e.children){if(h.isNil(o))throw new Error(`parent field :[${e.$validName}], children index ${r}, empty [${o}]`);if(o.$parent=e,++r,this.checkHiddenField(o))continue;this.addRowFieldInfo(o),s&&(i=o);let d=this.isLabelHide(o),u,c="";d?(u=w(this.options,o,i,!l),c=l?`<span class="df-label df-empty ${u.labelClass}" style="${u.labelStyle}"></span>`:""):(u=w(this.options,o,i,!1),c=`<span class="df-label ${u.labelClass} ${u.labelAlignClass}" title="${o.label??""}" style="${u.labelStyle}">${this.getLabelTemplate(o)}</span>`);const m=h.templateToElement(`<div class="df-form-group ${u.fieldClass}" style="${u.fieldStyle}" id="${o.$key}">
|
|
103
|
+
${c}
|
|
104
|
+
<span class="df-field-container ${u.valueClass} ${o.required?"required":""}" style="${u.valueStyle}"></span>
|
|
105
|
+
</div>`);m&&(this.createField(o,m),a.append(m),o.children&&this.childTemplate(o,o.children?u:t)),d||(l=!0),s=!1}e.$instance.addChildField(a)}getLabelTemplate(e){const t=e.required?'<span class="required"></span>':"",i=h.isBlank(e.tooltip)?"":`<span class="df-tooltip">?<span class="df-tooltip-text">${e.tooltip}</span></span>`;return`<span class="df-label-text">${e.label??""}</span> ${i} ${t}`}isLabelHide(e){var t;return((t=e.style)==null?void 0:t.labelHide)||h.isUndefined(e.label)}checkHiddenField(e){return oe(e)?(this.fieldInfoMap.addField(e),e.$instance=new e.$renderType(e,null,this.daraform),!0):!1}addRowFieldInfo(e){if(!h.isBlank(e.name)&&this.fieldInfoMap.hasFieldName(e.name))throw new Error(`Duplicate field name "${e.name}"`);this.fieldInfoMap.addField(e),this.addRowFields.push(e.$key)}}function Le(n){const e=O({},I,n);return e.fields=L(e.fields),e}function Ne(n){I=O({},I,n),I.fields=L(I.fields)}function L(n){return(n??[]).filter(e=>e!=null).map(e=>(Array.isArray(e.children)&&(e.children=L(e.children)),e))}let I={style:{width:"100%",labelWidth:3,valueWidth:9,position:"left-right"},mode:"new",useTypeValue:!0,autoCreate:!0,notValidMessage:"This form is not valid.",fields:[]};const D={},J="data-form-uid";let Me=0;const S=class S{constructor(e,t,i){if(this.formValue={},this.changeListeners=[],this.changeMode=s=>{this.options.mode=s,this.formElement.setAttribute("data-df-mode",s);const l=this.formElement.querySelectorAll(".df-field input, .df-field textarea, .df-field select");s=="view"?l.forEach(a=>{a instanceof HTMLInputElement&&(a.readOnly=!0),a instanceof HTMLTextAreaElement&&(a.readOnly=!0)}):l.forEach(a=>{a instanceof HTMLInputElement&&(a.readOnly=!1),a instanceof HTMLTextAreaElement&&(a.readOnly=!1)})},this.resetForm=()=>{const s=this.fieldInfoMap.getAllFieldInfo();for(const l in s){const r=s[l].$instance;r&&typeof r.reset=="function"&&r.reset()}this.formValue={},this.conditionCheck()},this.resetField=s=>{this.fieldInfoMap.getFieldName(s).$instance.reset(),this.formValue[s]="",this.conditionCheck()},this.getFieldValue=s=>{const l=this.fieldInfoMap.getFieldName(s);return l?l.$instance.getValue():null},this.getValue=s=>this.fieldInfoMap.getAllFieldValue(this.formValue,s),this.getFormDataValue=s=>this.fieldInfoMap.getFormDataValue(this.formValue,s),this.setValue=(s,l)=>{l!==!1&&this.resetForm(),Object.keys(s).forEach(a=>{this._setFieldValue(a,s[a])}),this.conditionCheck()},this.setFieldValue=(s,l)=>{this._setFieldValue(s,l),this.conditionCheck()},this.setFieldItems=(s,l)=>{const a=this.fieldInfoMap.getFieldName(s);if(a)return a.$instance.setValueItems(l)},this.addField=s=>{L([s]).length&&(this.options.fields.push(s),this.formTemplate.addRow(s),this.conditionCheck())},this.removeField=s=>{const l=this.fieldInfoMap.getFieldName(s);if(!l)return;const a=this.getRemoveFields(l);a.forEach(r=>{this.removeFormValue(r)}),this.removeFieldElement(l),this.removeParentChildField(l),a.forEach(r=>{this.fieldInfoMap.removeFieldInfoByKey(r.$key)}),this.conditionCheck()},this.isValidForm=()=>this.validForm().length<1,this.validForm=()=>{let s=[],l=this.options.autoFocus!==!1,a=!0;const r=this.fieldInfoMap.getAllFieldInfo();for(const o in r){const d=r[o];let u=this.fieldInfoMap.getFieldValidation(d,l);u!==!0&&(l=!1,ee(d)?s=s.concat(u):(a&&(this.validTabCheck(d),a=!1),s.push(u)))}return s},this.isValidField=s=>{const l=this.fieldInfoMap.getFieldName(s);if(h.isUndefined(l))throw new Error(`Field name [${s}] not found`);const a=l.$instance;return a?a.valid()===!0:!0},this.getOptions=()=>this.options,this.subscribe=s=>(this.changeListeners.push(s),()=>{this.changeListeners=this.changeListeners.filter(l=>l!==s)}),this.destroy=()=>{this.formElement.className=this.orginFormStyleClass,this.formElement.replaceChildren(),delete D[this.selector];for(const s in this)h.hasProperty(this,s)&&delete this[s]},this.getFields=()=>this.options.fields,this.setFields=s=>{this.options.fields=L(s),this.formElement.replaceChildren(),this.formValue={},this.createForm(this.options.fields)},this.options=Le(t),b.set(i),e)this.orginFormStyleClass=e.className,e.classList.add("daracl-form"),this.selector=`df_${++Me}`,e.setAttribute("name",this.selector),e.setAttribute(J,this.selector),this.options.style.width&&e.setAttribute("style",`width:${this.options.style.width};`),this.formElement=e,this.changeMode(this.options.mode??"new"),this.createForm(this.options.fields),this.options.autoCreate!==!1&&(D[this.selector]=this);else throw new Error(`${e} form selector not found`)}static create(e,t,i){return new S(e,t,i)}static setMessage(e){b.set(e)}static setDefaultOptions(e,t){Ne(e),t&&b.set(t)}createForm(e){this.fieldInfoMap=new Se(this.selector,this),this.formTemplate=new Te(this,this.formElement,this.fieldInfoMap),this.options.autoCreate!==!1&&(e.forEach(t=>{this.formTemplate.addRow(t)}),this.conditionCheck(),this.options.onMounted&&this.options.onMounted.call(this))}getFieldElement(e){const t=this.fieldInfoMap.getFieldName(e);return t!=null&&t.$instance?t.$instance.getElement():null}getField(e){return this.fieldInfoMap.getFieldName(e)}_setFieldValue(e,t){this.formValue[e]=t;const i=this.fieldInfoMap.getFieldName(e);i&&i.$instance.setValue(t)}getRemoveFields(e,t=[]){var i;return t.push(e),(i=e.children)==null||i.forEach(s=>{s&&this.fieldInfoMap.get(s.$key)===s&&this.getRemoveFields(s,t)}),t}removeFieldElement(e){var r,o;const t=e.$parent;if(t&&T(t)){const d=t.$instance.getElement(),u=d.querySelector(`[data-tab-id="${e.$key}"]`),c=u==null?void 0:u.classList.contains("active");u==null||u.remove(),(r=d.querySelector(`[tab-panel-id="${e.$key}"]`))==null||r.remove();const m=d.querySelector(".df-tab-header .df-tab-item");c&&m&&t.$instance.setActive(m.getAttribute("data-tab-id")??"");return}const i=`[id="${e.$key}"]`;let s=(o=e.$instance)==null?void 0:o.getElement();(s instanceof NodeList||s instanceof HTMLCollection)&&(s=s[0]??null);const l=(s instanceof Element?s.closest(i):null)??this.formElement.querySelector(i),a=l==null?void 0:l.parentElement;l==null||l.remove(),t&&(a!=null&&a.classList.contains("df-row"))&&a.childElementCount<1&&a.remove()}removeParentChildField(e){const t=e.$parent?e.$parent.children:this.options.fields,i=t?t.indexOf(e):-1;i>-1&&(t==null||t.splice(i,1))}removeFormValue(e){const t=[e.name,e.$validName];e.renderType==="file"?t.push(e.$validName+"RemoveIds"):T(e)&&t.push(...Object.keys(e.$instance.getValue()??{})),e.$tabForm&&t.push(...Object.keys(e.$tabForm.getValue(!1)??{})),t.forEach(i=>{h.isBlank(i)||delete this.formValue[i]})}validTabCheck(e){e.$parent&&(e.$parent.renderType=="tab"&&e.$parent.$instance.setActive(e.$key),this.validTabCheck(e.$parent))}conditionCheck(){this.fieldInfoMap.conditionCheck(),this.notifyChange()}notifyChange(){if(this.changeListeners.length<1)return;const e={form:this};this.changeListeners.forEach(t=>t(e))}setFieldDisabled(e,t){this.fieldInfoMap.getFieldName(e).$instance.setDisabled(t)}setFieldDescription(e,t){this.fieldInfoMap.getFieldName(e).$instance.setDescription(t)}static instance(e){const t=h.isString(e)?document.querySelector(e):e;if(!t)return;let i=t.getAttribute(J);if(h.isBlank(i)){const s=Object.keys(D);if(s.length>1)throw new Error(`selector empty : [${i}]`);i=s[0]}return i?D[i]:void 0}getFieldInfoMap(){return this.fieldInfoMap}};S.VERSION="0.0.22",S.validator={string:(e,t)=>x(e,t),number:(e,t)=>H(e,t),regexp:(e,t)=>{let i={name:t.name,constraint:[]};return se(e,t,i)}};let N=S;exports.DaraForm=N;
|
|
171
106
|
//# sourceMappingURL=index.min.cjs.map
|